2d35c1d9de
- 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>
90 lines
2.0 KiB
TypeScript
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;
|