Strings and language

Every string the board shows comes from a table you can replace.

import { registerBoardStrings } from '@dev-bloom/boardkit-react';

registerBoardStrings('en', { 'board.column.BACKLOG': 'Backlog', /* … */ });

The board ships es and en. Anything you do not override falls back to the shipped table, so a partial override is a valid override.

The rule that keeps them honest#

es and en have exactly the same keys. Not "roughly": the same. A key that exists in one and not the other is a test failure, not a missing translation to be filled in later — because what the user sees otherwise is a raw key in the middle of a sentence.

That parity test lives next to the tables, and a new string means touching both files in the same commit.

What is not a string#

  • Task keys (<KEY>-42) — they come from config.keyPrefix.
  • Status names in the API (BACKLOG, IN_REVIEW) — those are the domain, and the table only translates how they are shown.
  • What agents read: get_task_brief writes its own markdown, and its wording is part of the agent contract, not of the interface.