textmachine/frontend/src/showcase/languages.ts

16 lines
986 B
TypeScript

// Which language pairs the add-a-book form OFFERS.
//
// ⚠ This is a client-side offer list and it is the honest weak point of the intake screen: the
// contract has no handle for "what this deployment can translate", and which pairs a deployment
// can actually run is its own property — the engine reads a pair out of a language pack, and a
// deployment shipping a different set would make this list lie. A code the user cannot enter is
// worse than a list that is short, so the form offers what the product translates today and the
// gap is written down rather than papered over (BACKLOG Ф-57: a handle in the contract).
//
// Codes only, never names: the name is computed by `Intl.DisplayNames` for the language of the
// INTERFACE, so a second interface language renames the list without an edit here (the same rule
// the whole zone follows — CLAUDE.md §2).
export const sourceLanguages = ['zh', 'ja', 'en'] as const;
export const targetLanguages = ['ru'] as const;