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
+197
-10
@@ -817,10 +817,10 @@
|
||||
"enable": "Омогући 2ФА",
|
||||
"rateLimit": "Too many attempts. Please wait before trying again."
|
||||
},
|
||||
"title": "Повезани налози",
|
||||
"subtitle": "Повежите друштвени налог да бисте се могли пријавити једним кликом",
|
||||
"connected": "Повезано",
|
||||
"unavailable": "Недоступно",
|
||||
"title": "Povezani nalozi",
|
||||
"subtitle": "Povežite društveni nalog za prijavu jednim klikom",
|
||||
"connected": "Povezano",
|
||||
"unavailable": "Nedostupno",
|
||||
"login": {
|
||||
"title": "Пријавите се",
|
||||
"subtitle": "Добродошли назад — пријавите се да бисте ушли у хотел.",
|
||||
@@ -882,7 +882,9 @@
|
||||
"hidePassword": "Hide",
|
||||
"accountDetails": "Account details",
|
||||
"credentials": "Credentials & security",
|
||||
"newestCitizens": "Newest citizens"
|
||||
"newestCitizens": "Newest citizens",
|
||||
"ageVerified": "Imam 18+ i prihvatam uslov starosti.",
|
||||
"invitedBy": "Pozvao {username}"
|
||||
},
|
||||
"forgot": {
|
||||
"title": "Ресетујте лозинку",
|
||||
@@ -1048,7 +1050,9 @@
|
||||
"cmsErrors": "CMS errors",
|
||||
"themeBuilder": "Theme builder",
|
||||
"openSidebar": "Open menu",
|
||||
"closeSidebar": "Close menu"
|
||||
"closeSidebar": "Close menu",
|
||||
"referrals": "Preporuke",
|
||||
"dailyRewards": "Dnevne nagrade"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Дасхбоард",
|
||||
@@ -1255,7 +1259,7 @@
|
||||
"delete": "Избриши",
|
||||
"noAds": "Још нема огласа",
|
||||
"confirmDelete": "Избрисати овај оглас?",
|
||||
"colId": "ИД",
|
||||
"colId": "ID",
|
||||
"colName": "Име",
|
||||
"colImage": "Слика",
|
||||
"colUrl": "УРЛ",
|
||||
@@ -4336,7 +4340,9 @@
|
||||
"importAudit": "Audit",
|
||||
"themeBuilder": "Theme Builder",
|
||||
"studio": "Studio",
|
||||
"cmsErrors": "CMS errors"
|
||||
"cmsErrors": "CMS errors",
|
||||
"referrals": "Preporuke",
|
||||
"dailyRewards": "Dnevne nagrade"
|
||||
},
|
||||
"events": "Events",
|
||||
"eventsSubtitle": "Hotel events and event types",
|
||||
@@ -5843,6 +5849,64 @@
|
||||
"NoscopescreatedyetAddonebelow": "No scopes created yet. Add one below.",
|
||||
"Rename": "Rename"
|
||||
}
|
||||
},
|
||||
"referrals": {
|
||||
"title": "Preporuke",
|
||||
"subtitle": "Sistem pozivnica",
|
||||
"referralsToday": "Preporuke danas",
|
||||
"referralsTotal": "Ukupno preporuka",
|
||||
"invitedTotal": "Izbrojane pozivnice",
|
||||
"claims": "Nagrade preuzete",
|
||||
"settings": "Podešavanja nagrade",
|
||||
"needed": "Potrebne preporuke",
|
||||
"rewardAmount": "Iznos nagrade",
|
||||
"rewardCurrency": "Valuta nagrade",
|
||||
"blockSameIp": "Odbij preporuke koje dele trenutnu IP pozivaoca",
|
||||
"save": "Sačuvaj podešavanja",
|
||||
"saving": "Čuvanje…",
|
||||
"saved": "Podešavanja preporuka sačuvana.",
|
||||
"saveError": "Podešavanja preporuka nisu se mogla sačuvati.",
|
||||
"recent": "Nedavne preporuke",
|
||||
"unavailable": "Podaci o preporukama su privremeno nedostupni.",
|
||||
"empty": "Još nema preporuka.",
|
||||
"inviter": "Pozivalac",
|
||||
"invitee": "Pozvani korisnik",
|
||||
"ip": "IP",
|
||||
"date": "Datum"
|
||||
},
|
||||
"dailyRewards": {
|
||||
"title": "Dnevne nagrade za prijavu",
|
||||
"subtitle": "Raspored dnevnih nagrada za prijavu",
|
||||
"enabled": "Status funkcije",
|
||||
"yes": "Omogućeno",
|
||||
"no": "Onemogućeno",
|
||||
"scheduleDays": "Dani rasporeda",
|
||||
"claimsToday": "Preuzimanja danas",
|
||||
"claimsTotal": "Ukupno preuzimanja",
|
||||
"status": "Status funkcije",
|
||||
"statusHint": "Kada je onemogućeno, kartica nagrade se skriva i nova preuzimanja se odbijaju.",
|
||||
"disable": "Onemogući",
|
||||
"enable": "Omogući",
|
||||
"schedule": "Raspored nagrada",
|
||||
"day": "Dan {day}",
|
||||
"reward": "Nagrada",
|
||||
"amount": "Iznos",
|
||||
"actions": "Radnje",
|
||||
"addDay": "Dan",
|
||||
"add": "Dodaj dan",
|
||||
"save": "Sačuvaj",
|
||||
"saving": "Čuvanje…",
|
||||
"saved": "Raspored nagrada sačuvan.",
|
||||
"cancel": "Otkaži",
|
||||
"edit": "Uredi",
|
||||
"delete": "Obriši",
|
||||
"created": "Dan nagrade dodat.",
|
||||
"updated": "Dan nagrade ažuriran.",
|
||||
"deleted": "Dan nagrade uklonjen.",
|
||||
"saveError": "Dan nagrade nije se mogao sačuvati.",
|
||||
"deleteError": "Dan nagrade nije se mogao ukloniti.",
|
||||
"confirmDeleteTitle": "Ukloni dan nagrade",
|
||||
"confirmDeleteBody": "Ovaj dan nagrade više se neće dodeljivati. Prošla preuzimanja ostaju zabeležena."
|
||||
}
|
||||
},
|
||||
"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ša dnevna nagrada je spremna za preuzimanje"
|
||||
},
|
||||
"dailyClaimed": "Dnevna nagrada preuzeta — vidimo se sutra!",
|
||||
"dailyErrors": {
|
||||
"already_claimed": "Već ste preuzeli današnju dnevnu nagradu.",
|
||||
"disabled": "Dnevne nagrade su trenutno onemogućene.",
|
||||
"bad_config": "Raspored dnevnih nagrada nije ispravno konfigurisan. Kontaktirajte osoblje.",
|
||||
"ratelimit": "Previše pokušaja. Sačekajte trenutak i pokušajte ponovo.",
|
||||
"error": "Dnevna nagrada nije se mogla preuzeti. Pokušajte ponovo."
|
||||
},
|
||||
"dailyRewardTitle": "Dnevne nagrade",
|
||||
"dailyRewardHint": "Prijavljujte se svaki dan i preuzmite svoju nagradu — nizovi rastu do velikih dana.",
|
||||
"dailyRewardDay": "Dan {day}",
|
||||
"dailyRewardStreak": "{count, plural, one {Niz: # dan} few {Niz: # dana} other {Niz: # dana}}",
|
||||
"dailyRewardNextClaim": "Sledeće preuzimanje: {amount} {currency}",
|
||||
"dailyRewardTomorrow": "Sutra: {amount} {currency}",
|
||||
"dailyRewardClaim": "Preuzmi dnevnu nagradu",
|
||||
"dailyRewardClaimedToday": "Preuzeto danas — vratite se sutra za sledeću nagradu.",
|
||||
"dailyRewardDisabled": "Dnevne nagrade su trenutno onemogućene. Možete istražiti hotel.",
|
||||
"dailyRewardUnavailable": "Raspored dnevnih nagrada nije se mogao učitati. Pokušajte ponovo."
|
||||
},
|
||||
"housekeeping": {
|
||||
"preview": {
|
||||
@@ -6502,6 +6585,110 @@
|
||||
},
|
||||
"admin": {
|
||||
"studio": {
|
||||
"nitroCleanup": {
|
||||
"alreadyRunning": "Skeniranje je već u toku — povezano sa njim.",
|
||||
"ageUnknown": "starost nepoznata",
|
||||
"ageBelow": "< 1d",
|
||||
"scanButton": "Skeniraj nameštaj",
|
||||
"scanningAssets": "Skeniranje sredstava…",
|
||||
"cancelButton": "Otkaži",
|
||||
"deleteSelected": "Obriši odabrano ({count})",
|
||||
"deleting": "Brisanje…",
|
||||
"redownloadBroken": "Ponovo preuzmi oštećene",
|
||||
"redownloading": "Ponovno preuzimanje…",
|
||||
"autoClean": "Automatsko čišćenje starih lažnih",
|
||||
"cleaning": "Čišćenje…",
|
||||
"exportManifest": "Izvezi manifest",
|
||||
"exporting": "Izvoz…",
|
||||
"phaseStems": "Učitavanje stabljika nameštaja…",
|
||||
"phaseReaddir": "Čitanje direktorijuma sredstava…",
|
||||
"phaseValidate": "Provera .nitro paketa…",
|
||||
"phaseScanning": "Skeniranje…",
|
||||
"scanProgressFiles": "{count} datoteka",
|
||||
"repairProgress": "ok {ok}, neuspelo {failed}",
|
||||
"attachedNotice": "Skeniranje nastavlja u pozadini — rezultat će se pojaviti kada se završi.",
|
||||
"sessionCancelled": "Skeniranje otkazano.",
|
||||
"onlyOldLabel": "Prikaži samo datoteke starije od",
|
||||
"onlyOldAgeLabel": "Minimalne starosti u danima za prikaz",
|
||||
"onlyOldToggle": "Sakrij nedavne datoteke",
|
||||
"daysLabel": "dana",
|
||||
"autoAgeLabel": "Minimalne starosti u danima za automatsko čišćenje",
|
||||
"loadingResult": "Učitavanje rezultata skeniranja…",
|
||||
"scannedStat": "datoteka sredstava skenirano",
|
||||
"cachedNotice": "(u privremenoj memoriji — direktorijumi se nisu promenili)",
|
||||
"fakeStat": "Lažni nitro (nema odgovarajuće stavke)",
|
||||
"brokenStat": "Oštećeni nitro (nečitljivi)",
|
||||
"groupEmpty": "Ništa nije pronađeno",
|
||||
"selectedCount": "odabrano {count}",
|
||||
"copiesBadge": "{count} kopija",
|
||||
"groupFakeLabel": "Lažni nitro",
|
||||
"groupFakeDescription": "Ove datoteke ne odgovaraju nijednoj stavci u items_base — ostaci izbrisanih ili preimenovanih komada nameštaja.",
|
||||
"groupBrokenLabel": "Oštećeni nitro",
|
||||
"groupBrokenDescription": "Ove datoteke pripadaju stavci, ali se ne mogu pročitati kao važeći Nitro paket.",
|
||||
"groupSwfLabel": "SWF-ovi bez roditelja",
|
||||
"groupSwfDescription": ".swf datoteke koje ne odgovaraju nijednoj stavci u items_base.",
|
||||
"groupIconLabel": "Ikone bez roditelja",
|
||||
"groupIconDescription": "Datoteka ikona koje ne odgovaraju nijednoj stavci u items_base.",
|
||||
"warningText": "Brisanje oštećenog .nitro ostavlja stavku u bazi bez paketa — radije ga ponovo preuzmite ili neka provera kataloga nabavi kasnije. Redovi baze se nikada ne brišu ovim alatom.",
|
||||
"onlyAssetsTouched": "Diraju se samo datoteke sredstava — FurnitureData.json i redovi baze ostaju netaknuti.",
|
||||
"emptyHint": "Skenirajte svaki direktorijum nameštaja da biste pronašli lažne i oštećene nitro pakete, kao i SWF-ove i ikone bez roditelja. Obrišite ih, ponovo preuzmite oštećene ili automatski očistite stare ostatke.",
|
||||
"noResult": "Još nema rezultata skeniranja — prvo pokrenite skeniranje nameštaja.",
|
||||
"scanFailed": "Skeniranje nije uspelo.",
|
||||
"confirmDeleteTitle": "Obrisati {count} datoteku(e)?",
|
||||
"confirmDeleteDescription": "Datoteke će biti uklonjene iz svakog direktorijuma (public + odrazna gamedata). Redovi baze se nikada ne diraju.",
|
||||
"confirmDeleteLabel": "Obriši",
|
||||
"confirmRepairTitle": "Ponovo preuzeti {count} oštećen(i) .nitro paket(a)?",
|
||||
"confirmRepairDescription": "Paketi će biti ponovo preuzeti iz podešenih nitro izvora i zapisani preko svakog direktorijuma (public + odrazna gamedata).",
|
||||
"confirmRepairLabel": "Ponovo preuzmi",
|
||||
"confirmAutoCleanTitle": "Automatski očistiti lažne nitro starije od {days} dan(a)?",
|
||||
"confirmAutoCleanDescription": "Uklanjaju se samo lažne .nitro datoteke (nema odgovarajuće stavke) starije od praga. Oštećeni paketi i nedavne datoteke se nikada ne diraju.",
|
||||
"confirmAutoCleanLabel": "Automatski očisti",
|
||||
"toastDeletePartial": "Obrisano {copies} kopija, ali se neke datoteke nisu mogle ukloniti",
|
||||
"toastDeleteDone": "Obrisano {copies} kopija datoteka ({deleted} datoteka)",
|
||||
"toastRepairDone": "Popravljeno {count} .nitro paketa",
|
||||
"toastRepairFailed": "Nije bilo moguće nabaviti nijedan paket ({failed} neuspelo)",
|
||||
"toastRepairCancelled": "Popravka otkazana",
|
||||
"toastAutoCleanDone": "Očišćeno {deleted} starih lažnih .nitro datoteka ({copies} kopija). Preskočeno {recent} nedavnih + {broken} oštećenih.",
|
||||
"toastAutoCleanNothing": "Ništa dovoljno staro za uklanjanje (preskočeno {recent} nedavnih, {broken} oštećenih)",
|
||||
"toastManifestDownload": "Manifest skeniranja preuzet",
|
||||
"gamedataTitle": "Čišćenje podataka igre",
|
||||
"gamedataHint": "Prvo pregled: ovo prepisuje FurnitureData.json, FigureMap.json i FigureData.json. Za razliku od gornjih alata za sredstva, uklanja redove koji ništa ne referenciraju — proverite brojeve pre pokretanja.",
|
||||
"gamedataScan": "Pregled podataka igre",
|
||||
"gamedataScanning": "Skeniranje…",
|
||||
"gamedataRun": "Pokreni odabrano",
|
||||
"gamedataRunning": "Čišćenje…",
|
||||
"gamedataNoResult": "Još nema pregleda — prvo skenirajte JSON datoteke podataka igre.",
|
||||
"gamedataCount_duplicates": "Duplikati FurnitureData",
|
||||
"gamedataCount_orphans": "FurnitureData bez roditelja",
|
||||
"gamedataCount_figureMap": "Problemi sa FigureMap",
|
||||
"gamedataCount_figureData": "Neiskorišćeni FigureData",
|
||||
"gamedataPass_dedupeFurnitureData": "Deduplikuj FurnitureData",
|
||||
"gamedataPassDesc_dedupeFurnitureData": "Uklanja ponovljene classnames unutar jednog odeljka, zadržavajući unos sa najvišom revizijom.",
|
||||
"gamedataPass_cleanFurnitureData": "Očisti FurnitureData",
|
||||
"gamedataPassDesc_cleanFurnitureData": "Uklanja unose čiji .nitro paket nije prisutan u nijednom direktorijumu.",
|
||||
"gamedataPass_cleanFigureMap": "Očisti FigureMap",
|
||||
"gamedataPassDesc_cleanFigureMap": "Uklanja delove koji upućuju na skup koji nedostaje u FigureData, plus tačne duplikate.",
|
||||
"gamedataPass_cleanFigureData": "Očisti FigureData",
|
||||
"gamedataPassDesc_cleanFigureData": "Uklanja skupove na koje nijedan FigureMap deo ne upućuje, zatim palete koje nijedan tip skupa ne koristi. Mora se pokrenuti nakon Očisti FigureMap.",
|
||||
"gamedataNothingSelected": "Odaberite bar jedan korak čišćenja",
|
||||
"gamedataConfirmTitle": "Prepisati JSON datoteke podataka igre?",
|
||||
"gamedataConfirmDescription": "{passes} korak(a) izvršiće se na {duplicates} duplih grupa, {orphans} redova bez roditelja, {figureMap} problema sa FigureMap i {figureData} neiskorišćenih unosa FigureData. Redovi se uklanjaju bez rezervne kopije — ovo se ne može poništiti.",
|
||||
"gamedataConfirmLabel": "Prepiši datoteke",
|
||||
"gamedataDifferingWarning": "Bar jedan duplikat nije tačna kopija unosa koji se zadržava, pa je obrisani red sadržao podatke koje preživeli nema.",
|
||||
"gamedataCrossSectionNote": "{count} classname(a) postoji i u roomitemtypes i u wallitemtypes. Oni se samo prijavljuju — uklanjanje jednog promenilo bi tip stavke.",
|
||||
"gamedataToastDone": "Čišćenje podataka igre uklonilo je {removed} redova",
|
||||
"gamedataToastNothing": "Podaci igre su već bili čisti",
|
||||
"gamedataMaxRemovalsLabel": "Maks. redova po koraku",
|
||||
"gamedataMaxRemovalsHint": "0 koristi podrazumevanu vrednost 500. Korak koji bi uklonio više zaustavlja se i pitaje umesto da piše.",
|
||||
"gamedataLimitTitle": "{pass} bi uklonio {wouldRemove} redova, iznad limita od {maxRemovals}.",
|
||||
"gamedataLimitDescription": "Taj korak nije ništa zapisao, pa su datoteke nepromenjene. Prvo proverite putanje sredstava — pogrešan direktorijum čini svaki red bez roditelja. Podizanje limita je zasebna, namerna izvršenja.",
|
||||
"gamedataLimitOverride": "Svejedno ukloni {wouldRemove} redova",
|
||||
"historyTitle": "Istorija automatskog čišćenja",
|
||||
"historyScheduled": "planirano",
|
||||
"historyManual": "ručno",
|
||||
"historyEntry": "Uklonjeno {deleted} ({copies} kopija); preskočeno {recent} nedavnih i {broken} oštećenih",
|
||||
"historyErrors": "{count} grešaka"
|
||||
},
|
||||
"importDiagnostics": {
|
||||
"attempts": "Дијагностика датотека",
|
||||
"preliminary": "Прелиминарна провера адреса; садржај се проверава при увозу.",
|
||||
|
||||
Reference in new issue
Block a user