feat(i18n): complete message parity across all 25 locales
Gitea Actions Runner Test / test-job (push) Successful in 1s
CI / check (push) Successful in 37s
CI / tests-unit (push) Successful in 1m49s
CI / tests-integration (push) Successful in 1m50s
CI / tests-ui (push) Successful in 2m29s
CI / preflight (push) Skipped
CI / deploy (push) Failing after 1m37s
Gitea Actions Runner Test / test-job (push) Successful in 1s
CI / check (push) Successful in 37s
CI / tests-unit (push) Successful in 1m49s
CI / tests-integration (push) Successful in 1m50s
CI / tests-ui (push) Successful in 2m29s
CI / preflight (push) Skipped
CI / deploy (push) Failing after 1m37s
The admin.studio.nitroCleanup section (102 keys) only existed in en and nl, so 23 locales fell back to English for the entire Nitro Cleanup panel. The referrals and dailyRewards keys were missing from the same 23 locales, and en itself was missing 6 keys that nl had. Add the missing keys to every locale with translations, so all 25 locales now carry the same 6063 keys.
This commit is contained in:
1 parent
944527e078
commit
bc00ecf08c
24 files changed
+4483
-182
No files matched your search
+195
-8
@@ -818,9 +818,9 @@
|
||||
"rateLimit": "Too many attempts. Please wait before trying again."
|
||||
},
|
||||
"title": "Propojené účty",
|
||||
"subtitle": "Propojte sociální účet, abyste se mohli přihlásit jedním kliknutím",
|
||||
"connected": "Připojeno",
|
||||
"unavailable": "Není k dispozici",
|
||||
"subtitle": "Propojte sociální účet a přihlaste se jedním kliknutím",
|
||||
"connected": "Propojeno",
|
||||
"unavailable": "Nedostupné",
|
||||
"login": {
|
||||
"title": "Přihlaste se",
|
||||
"subtitle": "Vítejte zpět – přihlaste se pro vstup do hotelu.",
|
||||
@@ -882,7 +882,9 @@
|
||||
"hidePassword": "Hide",
|
||||
"accountDetails": "Account details",
|
||||
"credentials": "Credentials & security",
|
||||
"newestCitizens": "Newest citizens"
|
||||
"newestCitizens": "Newest citizens",
|
||||
"ageVerified": "Je mi 18+ a souhlasím s věkovým požadavkem.",
|
||||
"invitedBy": "Pozván uživatelem {username}"
|
||||
},
|
||||
"forgot": {
|
||||
"title": "Obnovit heslo",
|
||||
@@ -1048,7 +1050,9 @@
|
||||
"cmsErrors": "CMS errors",
|
||||
"themeBuilder": "Theme builder",
|
||||
"openSidebar": "Open menu",
|
||||
"closeSidebar": "Close menu"
|
||||
"closeSidebar": "Close menu",
|
||||
"referrals": "Doporučení",
|
||||
"dailyRewards": "Denní odměny"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
@@ -4336,7 +4340,9 @@
|
||||
"importAudit": "Audit",
|
||||
"themeBuilder": "Theme Builder",
|
||||
"studio": "Studio",
|
||||
"cmsErrors": "CMS errors"
|
||||
"cmsErrors": "CMS errors",
|
||||
"referrals": "Doporučení",
|
||||
"dailyRewards": "Denní odměny"
|
||||
},
|
||||
"events": "Events",
|
||||
"eventsSubtitle": "Hotel events and event types",
|
||||
@@ -5843,6 +5849,64 @@
|
||||
"NoscopescreatedyetAddonebelow": "No scopes created yet. Add one below.",
|
||||
"Rename": "Rename"
|
||||
}
|
||||
},
|
||||
"referrals": {
|
||||
"title": "Doporučení",
|
||||
"subtitle": "Systém pozvánek",
|
||||
"referralsToday": "Doporučení dnes",
|
||||
"referralsTotal": "Celkem doporučení",
|
||||
"invitedTotal": "Spočítané pozvánky",
|
||||
"claims": "Vyzvednuté odměny",
|
||||
"settings": "Nastavení odměny",
|
||||
"needed": "Potřebná doporučení",
|
||||
"rewardAmount": "Výše odměny",
|
||||
"rewardCurrency": "Měna odměny",
|
||||
"blockSameIp": "Odmítnout doporučení sdílející aktuální IP adresu zvatele",
|
||||
"save": "Uložit nastavení",
|
||||
"saving": "Ukládání…",
|
||||
"saved": "Nastavení doporučení bylo uloženo.",
|
||||
"saveError": "Nastavení doporučení se nepodařilo uložit.",
|
||||
"recent": "Nedávná doporučení",
|
||||
"unavailable": "Data o doporučeních jsou dočasně nedostupná.",
|
||||
"empty": "Zatím žádná doporučení.",
|
||||
"inviter": "Zvatele",
|
||||
"invitee": "Pozvaný uživatel",
|
||||
"ip": "IP adresa",
|
||||
"date": "Datum"
|
||||
},
|
||||
"dailyRewards": {
|
||||
"title": "Denní odměny za přihlášení",
|
||||
"subtitle": "Plán denních odměn za přihlášení",
|
||||
"enabled": "Stav funkce",
|
||||
"yes": "Povoleno",
|
||||
"no": "Zakázáno",
|
||||
"scheduleDays": "Dny plánu",
|
||||
"claimsToday": "Vyzvednutí dnes",
|
||||
"claimsTotal": "Celkem vyzvednutí",
|
||||
"status": "Stav funkce",
|
||||
"statusHint": "Při zakázání se karta odměny skryje a nová vyzvednutí budou odmítnuta.",
|
||||
"disable": "Zakázat",
|
||||
"enable": "Povolit",
|
||||
"schedule": "Plán odměn",
|
||||
"day": "Den {day}",
|
||||
"reward": "Odměna",
|
||||
"amount": "Částka",
|
||||
"actions": "Akce",
|
||||
"addDay": "Den",
|
||||
"add": "Přidat den",
|
||||
"save": "Uložit",
|
||||
"saving": "Ukládání…",
|
||||
"saved": "Plán odměn byl uložen.",
|
||||
"cancel": "Zrušit",
|
||||
"edit": "Upravit",
|
||||
"delete": "Smazat",
|
||||
"created": "Den odměny byl přidán.",
|
||||
"updated": "Den odměny byl aktualizován.",
|
||||
"deleted": "Den odměny byl odstraněn.",
|
||||
"saveError": "Den odměny se nepodařilo uložit.",
|
||||
"deleteError": "Den odměny se nepodařilo odstranit.",
|
||||
"confirmDeleteTitle": "Odstranit den odměny",
|
||||
"confirmDeleteBody": "Tento den odměny již nebude udělen. Minulá vyzvednutí zůstávají zaznamenána."
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
@@ -6223,8 +6287,27 @@
|
||||
"empty": "You're all caught up. No actions waiting.",
|
||||
"unavailable": "Some actions could not be checked. Available actions are shown above.",
|
||||
"retry": "Try again",
|
||||
"rewardUnavailable": "Referral progress is temporarily unavailable. Please try again."
|
||||
}
|
||||
"rewardUnavailable": "Referral progress is temporarily unavailable. Please try again.",
|
||||
"dailyReward": "Vaše denní odměna je připravena k vyzvednutí"
|
||||
},
|
||||
"dailyClaimed": "Denní odměna vyzvednuta — zítra se uvidíme!",
|
||||
"dailyErrors": {
|
||||
"already_claimed": "Dnešní denní odměnu jste již vyzvedli.",
|
||||
"disabled": "Denní odměny jsou momentálně zakázány.",
|
||||
"bad_config": "Plán denní odměny není správně nakonfigurovaný. Kontaktujte personál.",
|
||||
"ratelimit": "Příliš mnoho pokusů. Počkejte chvíli a zkuste to znovu.",
|
||||
"error": "Denní odměnu se nepodařilo vyzvednout. Zkuste to prosím znovu."
|
||||
},
|
||||
"dailyRewardTitle": "Denní odměny",
|
||||
"dailyRewardHint": "Přihlašte se každý den a vyzvedněte si odměnu — série rostou až do velkých dnů.",
|
||||
"dailyRewardDay": "Den {day}",
|
||||
"dailyRewardStreak": "{count, plural, one {Série: # den} few {Série: # dny} other {Série: # dnů}}",
|
||||
"dailyRewardNextClaim": "Další vyzvednutí: {amount} {currency}",
|
||||
"dailyRewardTomorrow": "Zítra: {amount} {currency}",
|
||||
"dailyRewardClaim": "Vyzvednout denní odměnu",
|
||||
"dailyRewardClaimedToday": "Vyzvednuto dnes — vraťte se zítra pro další odměnu.",
|
||||
"dailyRewardDisabled": "Denní odměny jsou momentálně zakázány. Můžete prozkoumat hotel.",
|
||||
"dailyRewardUnavailable": "Plán denní odměny se nepodařilo načíst. Zkuste to prosím znovu."
|
||||
},
|
||||
"housekeeping": {
|
||||
"preview": {
|
||||
@@ -6502,6 +6585,110 @@
|
||||
},
|
||||
"admin": {
|
||||
"studio": {
|
||||
"nitroCleanup": {
|
||||
"alreadyRunning": "Skenování již běží — připojeno k němu.",
|
||||
"ageUnknown": "věk neznámý",
|
||||
"ageBelow": "< 1d",
|
||||
"scanButton": "Skenovat nábytek",
|
||||
"scanningAssets": "Skenování aktiv…",
|
||||
"cancelButton": "Zrušit",
|
||||
"deleteSelected": "Smazat vybrané ({count})",
|
||||
"deleting": "Mazání…",
|
||||
"redownloadBroken": "Stáhnout poškozené znovu",
|
||||
"redownloading": "Opětovné stahování…",
|
||||
"autoClean": "Automatické čištění starých falešných",
|
||||
"cleaning": "Čištění…",
|
||||
"exportManifest": "Exportovat manifest",
|
||||
"exporting": "Exportování…",
|
||||
"phaseStems": "Načítání stonků nábytku…",
|
||||
"phaseReaddir": "Čtení adresářů aktiv…",
|
||||
"phaseValidate": "Ověřování balíčků .nitro…",
|
||||
"phaseScanning": "Skenování…",
|
||||
"scanProgressFiles": "{count} souborů",
|
||||
"repairProgress": "ok {ok}, selhalo {failed}",
|
||||
"attachedNotice": "Skenování pokračuje na pozadí — výsledky se zobrazí po dokončení.",
|
||||
"sessionCancelled": "Skenování zrušeno.",
|
||||
"onlyOldLabel": "Zobrazit pouze soubory starší než",
|
||||
"onlyOldAgeLabel": "Minimální věk ve dnech pro zobrazení",
|
||||
"onlyOldToggle": "Skrýt nedávné soubory",
|
||||
"daysLabel": "dny",
|
||||
"autoAgeLabel": "Minimální věk ve dnech pro automatické čištění",
|
||||
"loadingResult": "Načítání výsledku skenování…",
|
||||
"scannedStat": "souborů aktiv skenováno",
|
||||
"cachedNotice": "(ve vyrovnávací paměti — adresáře se nezměnily)",
|
||||
"fakeStat": "Falešné nitro (bez odpovídající položky)",
|
||||
"brokenStat": "Poškozené nitro (nečitelné)",
|
||||
"groupEmpty": "Nic nenalezeno",
|
||||
"selectedCount": "vybráno {count}",
|
||||
"copiesBadge": "{count} kopií",
|
||||
"groupFakeLabel": "Falešné nitro",
|
||||
"groupFakeDescription": "Tyto soubory neodpovídají žádné položce v items_base — zbytky po smazaném nebo přejmenovaném nábytku.",
|
||||
"groupBrokenLabel": "Poškozené nitro",
|
||||
"groupBrokenDescription": "Tyto soubory patří položce, ale nelze je rozpoznat jako platný Nitro balíček.",
|
||||
"groupSwfLabel": "Osiřelé SWF soubory",
|
||||
"groupSwfDescription": "Soubory .swf, které neodpovídají žádné položce v items_base.",
|
||||
"groupIconLabel": "Osiřelé ikony",
|
||||
"groupIconDescription": "Soubory ikon, které neodpovídají žádné položce v items_base.",
|
||||
"warningText": "Smazání poškozeného .nitro zanechá položku v databázi bez balíčku — raději si jej stáhněte znovu, nebo jej nechte získat audit katalogu později. Řádky databazé nikdy nesmaže tento nástroj.",
|
||||
"onlyAssetsTouched": "Mění se pouze soubory aktiv — FurnitureData.json a řádky databáze zůstávají nedotčeny.",
|
||||
"emptyHint": "Skenujte každý adresář s nábytkem a najděte falešné a poškozené nitro balíčky plus osiřelé SWF soubory a ikony. Smažte je, stáhněte poškozené znovu nebo automaticky uklidte staré zbytky.",
|
||||
"noResult": "Zatím žádný výsledek skenování — nejprvě spusťte skenování aktiv nábytku.",
|
||||
"scanFailed": "Skenování selhalo.",
|
||||
"confirmDeleteTitle": "Smazat {count} soubor(ů)?",
|
||||
"confirmDeleteDescription": "Soubory budou odstraněny ze všech adresářů (public + zrcadlená gamedata). Řádky databáze se nikdy nemění.",
|
||||
"confirmDeleteLabel": "Smazat",
|
||||
"confirmRepairTitle": "Stáhnout znovu {count} poškozený(ch) .nitro balíček(ů)?",
|
||||
"confirmRepairDescription": "Balíčky budou znovu staženy z nakonfigurovaných nitro zdrojů a přepsány do všech adresářů (public + zrcadlená gamedata).",
|
||||
"confirmRepairLabel": "Stáhnout znovu",
|
||||
"confirmAutoCleanTitle": "Automaticky uklidit falešné nitro starší než {days} dn(ů)?",
|
||||
"confirmAutoCleanDescription": "Odstraní se pouze falešné .nitro soubory (bez odpovídající položky) starší než prahová hodnota. Poškozené balíčky a nedávné soubory se nikdy nedotknou.",
|
||||
"confirmAutoCleanLabel": "Automaticky uklidit",
|
||||
"toastDeletePartial": "Smazáno {copies} kopií, ale některé soubory nelze odstranit",
|
||||
"toastDeleteDone": "Smazáno {copies} kopií souborů ({deleted} souborů)",
|
||||
"toastRepairDone": "Opraveno {count} .nitro balíčků",
|
||||
"toastRepairFailed": "Nepodařilo se získat žádný balíček ({failed} selhalo)",
|
||||
"toastRepairCancelled": "Oprava zrušena",
|
||||
"toastAutoCleanDone": "Uklizeno {deleted} starých falešných .nitro souborů ({copies} kopií). Přeskočeno {recent} nedávných + {broken} poškozených.",
|
||||
"toastAutoCleanNothing": "Nic není dostatečně staré k odstranění (přeskočeno {recent} nedávných, {broken} poškozených)",
|
||||
"toastManifestDownload": "Manifest skenování stažen",
|
||||
"gamedataTitle": "Čištění herních dat",
|
||||
"gamedataHint": "Nejprvě zobrazit náhled: tepíše FurnitureData.json, FigureMap.json a FigureData.json. Na rozdíl od nástrojů výše odstraňuje řádky, které na nic neukazují — zkontrolujte počty před spuštěním.",
|
||||
"gamedataScan": "Náhled herních dat",
|
||||
"gamedataScanning": "Skenování…",
|
||||
"gamedataRun": "Spustit vybrané",
|
||||
"gamedataRunning": "Čištění…",
|
||||
"gamedataNoResult": "Zatím žádný náhled — nejprvě naskenujte JSON soubory herních dat.",
|
||||
"gamedataCount_duplicates": "Duplikáty FurnitureData",
|
||||
"gamedataCount_orphans": "Osiřelé FurnitureData",
|
||||
"gamedataCount_figureMap": "Problémy FigureMap",
|
||||
"gamedataCount_figureData": "Nepoužitý FigureData",
|
||||
"gamedataPass_dedupeFurnitureData": "Odstranit duplikáty FurnitureData",
|
||||
"gamedataPassDesc_dedupeFurnitureData": "Odstraní opakující se classnames v jedné sekci a zachová záznam s nejvyšší revizí.",
|
||||
"gamedataPass_cleanFurnitureData": "Uklidit FurnitureData",
|
||||
"gamedataPassDesc_cleanFurnitureData": "Odstraní záznamy, pro které neexistuje .nitro balíček v žádném adresáři.",
|
||||
"gamedataPass_cleanFigureMap": "Uklidit FigureMap",
|
||||
"gamedataPassDesc_cleanFigureMap": "Odstraní části odkazující na chybějící sadu v FigureData plus přesné duplicitní části.",
|
||||
"gamedataPass_cleanFigureData": "Uklidit FigureData",
|
||||
"gamedataPassDesc_cleanFigureData": "Odstraní sady, na které neodkazuje žádná část FigureMap, pak palety, které nepoužívá žádný typ sady. Musí běžet po Uklidit FigureMap.",
|
||||
"gamedataNothingSelected": "Vyberte alespoň jeden krok čištění",
|
||||
"gamedataConfirmTitle": "Přepsat JSON soubory herních dat?",
|
||||
"gamedataConfirmDescription": "{passes} krok(ů) poběží proti {duplicates} duplicitním skupinám, {orphans} osiřelým řádkům, {figureMap} problémům FigureMap a {figureData} nepoužitým záznamům FigureData. Řádky se odstraňují bez zálohy — to nelze vrátit zpět.",
|
||||
"gamedataConfirmLabel": "Přepsat soubory",
|
||||
"gamedataDifferingWarning": "Alespoň jeden duplicit není přesná kopie záznamu, který se zachová, takže odstraněný řádek obsahoval data, které zachovaný nemá.",
|
||||
"gamedataCrossSectionNote": "{count} classname(ů) existuje jak v roomitemtypes, tak ve wallitemtypes. Ty jsou pouze hlášeny — odstranění jednoho změní typ položky.",
|
||||
"gamedataToastDone": "Čištění herních dat odstranilo {removed} řádků",
|
||||
"gamedataToastNothing": "Herní data již byla čistá",
|
||||
"gamedataMaxRemovalsLabel": "Max. řádků na krok",
|
||||
"gamedataMaxRemovalsHint": "0 používá výchozí hodnotu 500. Krok, který by odstranil více, se zastaví a zeptá se místo zápisu.",
|
||||
"gamedataLimitTitle": "{pass} by odstranil {wouldRemove} řádků, nad limitem {maxRemovals}.",
|
||||
"gamedataLimitDescription": "Tento krok nic nezapsal, takže soubory jsou nezměněné. Nejprvě zkontrolujte cesty k aktivům — chybný adresář vytvoří z každého řádku osiřelého. Zvednutí limitu je samostatné, záměrné spuštění.",
|
||||
"gamedataLimitOverride": "Přesto odstranit {wouldRemove} řádků",
|
||||
"historyTitle": "Historie automatického čištění",
|
||||
"historyScheduled": "naplánováno",
|
||||
"historyManual": "ručně",
|
||||
"historyEntry": "Odstraněno {deleted} ({copies} kopií); přeskočeno {recent} nedávných a {broken} poškozených",
|
||||
"historyErrors": "{count} chyb"
|
||||
},
|
||||
"importDiagnostics": {
|
||||
"attempts": "Diagnostika souborů",
|
||||
"preliminary": "Předběžná kontrola adres; obsah se ověří při importu.",
|
||||
|
||||
Reference in new issue
Block a user