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 fromconfig.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_briefwrites its own markdown, and its wording is part of the agent contract, not of the interface.