Files
infiplot-web/lib/i18n/locales/cs.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

322 lines
13 KiB
TypeScript

// Czech
// Auto-generated by scripts/translate-i18n.mjs
export const cs = {
"layout": {
"metadata": {
"title": "InfiPlot — AI interaktivní hra příběhů",
"description": "InfiPlot je interaktivní hra příběhů, která používá AI k generování obsahu v reálném čase."
}
},
"home": {
"examples": {
"male": [
"Dětství přítelkyně se náhle zčervenal a přiznala mi lásku",
"Po probuzení se zdá, že všechny dívky ve třídě mě tajně milují",
"Uplynuly tři roky, ukázalo se, že jsem bohatý syn, čas na pomstu přišel",
"Vrátil jsem se s nekonečným Tokenem těsně před vznikem internetu..."
],
"female": [
"Přešla jsem do domu generála jako bezcenná dcera, ale chladný regent mě miluje jen mě",
"Vrátila jsem se noc před rozchodem, tentokrát já jsem odešla první",
"Probudila jsem se ve hře jako padouchova dcera, musím se vyhnout všem smrtícím koncům"
],
"x": [
"Otevřela se trhlina v čase, různé verze mě z různých světů se náhle objevily",
"V paláci paměti se zapomenuté fragmenty reformují do nového příběhu",
"Začala nekonečná hra, každý má jedinou šanci na úspěch",
"Systémové upozornění: Vaše volba rozhodne o osudu celého vesmíru"
]
},
"options": {
"gender": "Zaměření pohlaví",
"artStyle": "Umělecký styl",
"plotStyle": "Styl příběhu",
"voice": "Hlasové obsazení",
"pacing": "Tempo obsahu"
},
"genders": {
"male": "Mužské",
"female": "Ženské",
"x": "X"
},
"artStyles": {
"auto": "Automatické",
"custom": "Vlastní styl",
"kyoani": "Kyoto Animation",
"shinkai": "Makoto Shinkai",
"ghibli": "Studio Ghibli",
"3d": "3D animace",
"cyberpunk": "Kyberpunk",
"gothic": "Gotika",
"wasteland": "Poustevna",
"pixel": "Pixel art",
"realistic": "Realistické",
"oil": "Klasický olej",
"monet": "Claude Monet",
"watercolor": "Akvarel",
"ink": "Inkoust",
"ukiyoe": "Ukijo-e",
"pencil": "Barevná tužka",
"sketch": "Ruční skica",
"manga": "Černobílá manga",
"children": "Dětská kniha",
"crayon": "Dětská kresba",
"clay": "Hliněná plastika",
"dunhuang": "Dunhuangské nástěnné malby",
"miniature": "Miniatura",
"mosaic": "Mozaika",
"stainedGlass": "Skleněná mozaika",
"vaporwave": "Vaporwave",
"vector": "Vektorová ilustrace",
"lowpoly": "Nízký počet polygonů",
"popart": "Pop art",
"glitch": "Glitch art",
"papercut": "Paper cutting",
"steampunk": "Steampunk",
"xianxia": "Sien-šia",
"darkFairytale": "Tmavá pohádka",
"urbanFantasy": "Městská fantasy"
},
"plotStyles": {
"straightforward": "Přímé a vzrušující",
"twist": "Vícezávitkové"
},
"voiceOptions": {
"off": "Vypnuto",
"on": "Zapnuto"
},
"pacings": {
"fast": "Rychlé a strhující",
"relaxed": "Pomalejší a detailní"
},
"stories": {
"贤者陨落": "Pád mudrce",
"画中圣手": "Božská ruka v obraze",
"花魁的刀": "Meč courtesan"
},
"ui": {
"start": "Start",
"loadStory": "Načíst příběh",
"settings": "Nastavení",
"searchPlaceholder": "Hledat styl...",
"noMatchingStyle": "Žádný odpovídající styl",
"close": "Zavřít",
"back": "Zpět",
"save": "Uložit",
"cancel": "Zrušit",
"saveAndSelect": "Uložit a vybrat"
},
"styleModal": {
"title": "Vyberte umělecký styl",
"subtitle": "Výchozí 'Automatické' · AI automaticky odpovídající styl podle příběhu; 'Vlastní styl' umožňuje zadat popis nebo nahrát referenční obrázek",
"customTitle": "Vlastní styl",
"customPlaceholder": "Popište požadovaný styl obrazu, například:\nSnnová akvarelová stylizace, jemné tóny, nostalgická atmosféra\n\n💡 Tip: Některé modely lépe pracují s anglickými popisy, doporučuje použít AI nástroj k vytvoření profesionálního anglického popisu",
"uploadImage": "Nahrát referenční obrázek",
"changeImage": "Změnit",
"remove": "Odebrat",
"parsing": "Zpracování...",
"importFromPreset": "Importovat z přednastaveného stylu...",
"uploadError": "Podporovány jsou pouze obrazové soubory",
"visionError": "Vision model vrátil prázdný popis stylu",
"fileReadError": "Čtení souboru selhalo",
"imageDecodeError": "Dekódování obrazu selhalo",
"parseError": "Zpracování selhalo",
"refImageAlt": "Referenční obrázek stylu"
},
"hero": {
"title": "Jaký příběh chcete dnes zažít?",
"placeholder": "Omlouváme se, ale nemohu splnit tento požadavek.",
"enterHint": "Enter k odeslání · Shift+Enter nový řádek"
},
"hint": {
"text": (params: { authEnabled?: boolean }) => {
const authHint = params.authEnabled ? ' (během bety vyžadováno přihlášení, hra zdarma)' : '';
return `Zadejte své nápady, nakonfigurujte styly a klikněte na "Spustit" pro hraní${authHint}. Můžete si také vybrat kurátorskou příběh z níže pro rychlé zážitky <em>InfiPlot</em>. Klikněte na "Nastavení" pro zadání vašeho jména a konfiguraci vlastních klíčů pro text, obrázky, vizi a TTS—vše uloženo lokálně ve vašem prohlížeči pro stabilnější zážitek.`;
},
"closeAriaLabel": "Znovu nezobrazovat tuto nápovědu"
},
"about": {
"title": "InfiPlot",
"description": "je interaktivní hra příběhů, která používá AI k generování obsahu v reálném čase — obrázky, zvuk a větve příběhu jsou generovány během hraní.",
"team": "TÝM",
"teamText": "Pocházíme z univerzit včetně Tsinghua University a Lanzhou University, chceme prozkoumat více možností multimodálních modelů mimo schopnosti jako 'přímé generování obrázků a videí'. Tento projekt je stále v rané fázi, stále rekrutujeme členy. Pokud máte zájem, kontaktujte nás, těšíme se na vás.",
"contact": "KONTAKT",
"email": "E-mail",
"openSource": "OTEVŘENÝ ZDROJ",
"betaUsers": "BETA TESTERI",
"qqGroupLabel": "Skupina QQ:",
"qqGroupAlt": "InfiPlot veřejná beta skupina QR kód (ID skupiny 575404333)",
"privacyPolicy": "Zásady ochrany soukromí",
"terms": "Podmínky služby",
"copyright": "© 2026 InfiPlot. Všechna práva vyhrazena."
},
"errors": {
"emptyFile": "Tento soubor příběhu je prázdný.",
"fileTooLarge": "Soubor příběhu je příliš velký.",
"unpackFailed": "Rozbalení souboru příběhu selhalo.",
"parseFailed": "Zpracování souboru příběhu selhalo.",
"cardNotFound": "Curated story nebyl nalezen: {cardName}"
}
},
"play": {
"loading": {
"firstFrame": "Načítání prvního scény",
"transitioning": "AI vytváří další scénu",
"visionThinking": "AI přemýšlí co jste viděli",
"loadingFirst": "První scény se načítá",
"awakening": "Načítání"
},
"freeform": {
"placeholder": "Zadejte co chcete říct nebo udělat...",
"title": "Volný vstup",
"ariaLabel": "Volný vstup"
},
"choiceDisabled": "Sdílený příběh neobsahuje tuto větev",
"tooltips": {
"openSettings": "Otevřít nastavení",
"openHistory": "Historie příběhu",
"fullscreen": "Režim celé obrazovky (F)",
"enterFullscreen": "Vstoupit do režimu celé obrazovky",
"exportGallery": "Exportovat jako interaktivní galerii",
"exportGalleryLabel": "Exportovat galerii",
"shareStory": "Exportovat příběh jako .infiplot",
"shareStoryLabel": "Sdílet aktuální příběh",
"mute": "Ztlumit",
"unmute": "Zrušit ztlumení",
"closeNudge": "Zavřít nápovědu",
"silenceNudge": "Nejste spokojeni? Zkuste zadat vlastní API klíč",
"back": "Zpět"
},
"imageAlt": "Vygenerovaná scéna",
"counter": {
"scene": "Scéna {n}",
"beat": "Beat {n}",
"middle": "·"
},
"buttons": {
"fullscreen": "F · klávesa · celá obrazovka",
"exportGallery": "Exportovat galerii",
"shareStory": "Sdílet příběh",
"muted": "Ztlumeno",
"sound": "Se zvukem"
},
"error": {
"title": "Došlo k chybě",
"back": "Zpět"
},
"previousStep": "Předchozí krok",
"settingsFooter": "Po uložení se TTS klíč okamžitě uplatní, použijte svůj limit k syntéze zvuku pro aktuální scénu.",
"shareErrors": {
"notFound": "Soubor příběhu nebyl nalezen.",
"invalid": "Sdílený soubor příběhu neobsahuje platný příběh.",
"noImage": "Sdílený soubor postrádá první obrázek scény.",
"noNextImage": "Sdílený soubor postrádá další obrázek scény.",
"noMemory": "Sdílený soubor postrádá počáteční paměť příběhu.",
"packFailed": "Balení sdíleného příběhu selhalo"
}
},
"settings": {
"title": "Nastavení",
"subtitle": "Volitelné · Tato nastavení jsou uložena pouze v místním prohlížeči",
"tabs": {
"general": "Obecné",
"models": "Modely"
},
"general": {
"playerName": "Jméno hráče",
"playerNamePlaceholder": "Prázdné použije 'vy'",
"playerNameHint": "NPC budou oslovoováni tímto jménem v dialogu.",
"visionClick": "Kliknutí pro identifikaci scény",
"visionOn": "Zapnuto",
"visionOff": "Vypnuto",
"visionHint": "Po zapnutí kliknutí na scénu ve výběrovém uzlu spustí AI identifikaci a vygeneruje novou větev příběhu."
},
"models": {
"corsNotice": "Ujistěte se, že váš API endpoint podporuje CORS požadavky z prohlížeče. Většina hlavních poskytovatelů (OpenAI, Anthropic, Gemini, Runware atd.) již ve výchozím nastavení podporuje.",
"textModel": "Textový model",
"imageModel": "Obrazový model",
"visionModel": "Vision model",
"baseUrl": "Základní URL",
"apiKey": "API klíč",
"model": "Model",
"provider": "Poskytovatel (volitelné)",
"providerHint": "Při prázdném systém automaticky odvodí protokol podle základní URL.",
"providerAuto": "Automatické odvození (doporučeno)",
"show": "Zobrazit",
"hide": "Skrýt"
},
"tts": {
"title": "Model hlasového doprovodu",
"description": 'Zadejte svůj <span class="text-clay-800">Xiaomi MiMo API klíč</span>, hlasový doprovod bude syntetizován lokálně v prohlížeči, klíč je uložen pouze lokálně. MiMo TTS je nyní<span class="text-clay-800">zdarma</span>.',
"keyType": "Typ klíče",
"payg": "Pay-as-you-go",
"paygSub": "Začíná na sk-",
"tokenPlan": "Token plán",
"tokenPlanSub": "Začíná na tp-",
"region": "Regionální uzel",
"regionHint": "Vyberte uzel odpovídající vaší oblasti předplatného.",
"apiKeyPlaceholderPayg": "Vložte klíč začínající na sk-",
"apiKeyPlaceholderToken": "Vložte klíč začínající na tp-",
"keyMismatchPayg": "Tento klíč nezačíná na sk-",
"keyMismatchToken": "Tento klíč nezačíná na tp-",
"tutorialLink": "Jak získat klíč zdarma? Zobrazit tutoriál"
},
"actions": {
"save": "Uložit",
"clearAll": "Vymazat vše"
}
},
"auth": {
"steps": {
"pick": "Přihlaste se pro pokračování",
"email": "Přihlášení e-mailem",
"otp": "Ověřovací kód"
},
"googleLogin": "Přihlášení Google",
"githubLogin": "Přihlášení GitHub",
"emailLogin": "Přihlášení ověřovacím kódem e-mailem",
"or": "Nebo",
"emailPlaceholder": "your@email.com",
"sendCode": "Odeslat kód",
"sending": "Odesílání...",
"codeSent": "Ověřovací kód byl odeslán na {email}",
"codePlaceholder": "6místný ověřovací kód",
"verify": "Potvrdit",
"verifying": "Ověřování...",
"resend": "Znovu odeslat",
"back": "Zpět",
"close": "Zavřít",
"ariaLabel": "Přihlášení"
},
"history": {
"title": "Historie příběhu",
"close": "Zavřít",
"closeAriaLabel": "Zavřít historii příběhu",
"noHistory": "Zatím žádná historie.",
"scene": "Scéna {n}",
"choice": "Volba",
"action": "Akce",
"ariaLabel": "Historie příběhu"
},
"customForm": {
"world": "Svět · Světový názor",
"style": "Styl · Vizuální styl",
"worldPlaceholder": "Příklad: Jihočínský okresální město koncem 90. let. Hlavní postava je přestupující student v posledním ročníku střední školy, který v deštivém červnu potkává spolužáka, který čte básně na střeše.",
"stylePlaceholder": "Příklad: Akvarelové měkké světlo, teplé odpolední světlo, styl vizuální novely, tradiční panel dialogu...",
"status": {
"ready": "Připraven",
"needMore": "Je třeba ještě dva odstavce",
"starting": "První scény se načítá..."
},
"start": "Spustit"
},
"language": {
"title": "Jazyk",
"current": "Aktuální jazyk",
"select": "Vybrat jazyk"
}
} as const;
export type csTranslations = typeof cs;