Files
infiplot-web/lib/i18n/locales/nl.ts
T
DESKTOP-I1T6TF3\Q 2d35c1d9de feat(i18n): add language switcher with en/ja translations
- New client-side i18n via React Context (useI18n, tArray, I18nProvider)
- Catalog ships 21 locale stubs; only zh-CN/en/ja have reviewed translations
- Header language switcher (globe icon + short label) before settings gear
- All hardcoded Chinese UI text migrated to keys: typewriter, options,
  hints (with embedded gear icon via dangerouslySetInnerHTML), settings
  panel, footer/about, play page hints
- AI output language follows user-selected locale via trailing one-liner
  directive appended to Architect/Writer/CharacterDesigner/InsertBeat
  user messages (preserves system-prompt cacheability)
- Per-locale separator rule: zh uses middot between every glyph; en/ja
  use plain spaces
- Option value → i18n key suffix maps preserve Chinese as the underlying
  identifier so analytics unions and STYLE_MAP keys stay byte-stable

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 16:54:35 +08:00

90 lines
2.0 KiB
TypeScript

// Dutch
// Auto-generated by scripts/translate-i18n.mjs
export const nl = {
"layout": {
"metadata": {
"title": "InfiPlot",
"description": "InfiPlot"
}
},
"home": {
"examples": {
"male": [],
"female": [],
"x": []
},
"options": {
"gender": "",
"artStyle": "",
"plotStyle": "",
"voice": "",
"pacing": ""
},
"genders": {
"male": "",
"female": "",
"x": ""
},
"artStyles": {},
"plotStyles": {
"straightforward": "",
"twist": ""
},
"voiceOptions": {
"off": "",
"on": ""
},
"pacings": {
"fast": "",
"relaxed": ""
},
"stories": {},
"ui": {
"start": "",
"loadStory": "",
"settings": "",
"searchPlaceholder": "",
"noMatchingStyle": "",
"close": "",
"back": "",
"save": "",
"cancel": "",
"saveAndSelect": ""
},
"styleModal": {},
"hero": {
"title": "",
"placeholder": " ",
"enterHint": ""
},
"hint": {
"text": (params: { authEnabled?: boolean }) => {
const authHint = params.authEnabled ? ' (inloggen vereist tijdens beta, gratis spelen)' : '';
return `Voer je ideeën in, configureer stijlen en klik op "Starten" om te spelen${authHint}. Je kunt ook een gecureerd verhaal onderaan kiezen om <em>InfiPlot</em> snel te ervaren. Klik op "Instellingen" om je naam in te voeren en je eigen tekst-, afbeeldings-, visie- en TTS-sleutels te configureren—alles lokaal in je browser opgeslagen voor een stabielere ervaring.`;
},
"closeAriaLabel": "Deze hint niet meer weergeven"
},
"about": {},
"errors": {
"emptyFile": "",
"fileTooLarge": "",
"unpackFailed": "",
"parseFailed": "",
"cardNotFound": ""
}
},
"play": {},
"settings": {},
"auth": {},
"history": {},
"customForm": {},
"language": {
"title": "",
"current": "",
"select": ""
}
} as const;
export type NlTranslations = typeof nl;