diff --git a/lang-ignore.json b/lang-ignore.json index 56042b8d..8a01beb9 100644 --- a/lang-ignore.json +++ b/lang-ignore.json @@ -1,4 +1,5 @@ { + "cs-CZ": ["label.reset", "metrics.device.tablet"], "de-DE": [ "label.administrator", "label.name", diff --git a/lang/cs-CZ.json b/lang/cs-CZ.json new file mode 100644 index 00000000..57493e98 --- /dev/null +++ b/lang/cs-CZ.json @@ -0,0 +1,99 @@ +{ + "label.accounts": "Účty", + "label.add-account": "Přidat účet", + "label.add-website": "Přidat web", + "label.administrator": "Administrátor", + "label.all": "Vše", + "label.all-websites": "Všechny weby", + "label.back": "Zpět", + "label.cancel": "Zrušit", + "label.change-password": "Změnit heslo", + "label.confirm-password": "Potvrdit heslo", + "label.copy-to-clipboard": "Kopírovat do schránky", + "label.current-password": "Aktuální heslo", + "label.custom-range": "Vlastní rozsah", + "label.dashboard": "Přehled", + "label.date-range": "Období", + "label.default-date-range": "Výchozí období", + "label.delete": "Smazat", + "label.delete-account": "Smazat účet", + "label.delete-website": "Smazat web", + "label.dismiss": "Odejít", + "label.domain": "Doména", + "label.edit": "Upravit", + "label.edit-account": "Upravit účet", + "label.edit-website": "Upravit web", + "label.enable-share-url": "Povolit sdílení URL", + "label.invalid": "Neplatný", + "label.invalid-domain": "Neplatná doména", + "label.last-days": "Posledních {x} dnů", + "label.last-hours": "Posledních {x} hodin", + "label.logged-in-as": "Přihlášený jako {username}", + "label.login": "Přihlásit", + "label.logout": "Odhlásit", + "label.more": "Více", + "label.name": "Jméno", + "label.new-password": "Nové heslo", + "label.password": "Heslo", + "label.passwords-dont-match": "Hesla se neschodují", + "label.profile": "Profil", + "label.realtime": "Aktuálně", + "label.realtime-logs": "Aktuální záznamy", + "label.refresh": "Obnovit", + "label.required": "Vyžadováno", + "label.reset": "Reset", + "label.save": "Uložit", + "label.settings": "Nastavení", + "label.share-url": "Sdílet URL", + "label.single-day": "Jeden den", + "label.this-month": "Tento měsíc", + "label.this-week": "Tento týden", + "label.this-year": "Tento rok", + "label.timezone": "Časová zóna", + "label.today": "Dnes", + "label.tracking-code": "Sledovací kód", + "label.unknown": "Neznámý", + "label.username": "Uživatelské jméno", + "label.view-details": "Zobrazit detaily", + "label.websites": "Weby", + "message.active-users": "{x} aktuálně {x, plural, one {návštěvník} other {návštěvníci}}", + "message.confirm-delete": "Opravdu smazat {target}?", + "message.copied": "Zkopírováno!", + "message.delete-warning": "Všechna související data budou také smazána.", + "message.failure": "Něco se pokazilo.", + "message.get-share-url": "Získat sdílené URL", + "message.get-tracking-code": "Získat měřící kód", + "message.go-to-settings": "Jít do nastavení", + "message.incorrect-username-password": "Nesprávné jméno/heslo.", + "message.log.visitor": "Návštěvník z {country} s prohlížečem {browser} na {os} {device}", + "message.new-version-available": "Nová verze umami {version} je k dispozici!", + "message.no-data-available": "Žádná data.", + "message.no-websites-configured": "Nemáte nastavený žádný web.", + "message.page-not-found": "Stránka nenalezena.", + "message.powered-by": "Běží na {name}", + "message.save-success": "Úspěšně uloženo.", + "message.share-url": "Toto je sdílené URL pro {target}.", + "message.track-stats": "Pro sledování návštěv na {target}, přidejte následující kód do {head} části vašeho webu.", + "message.type-delete": "Napište {delete} pro potvrzení.", + "metrics.actions": "Akce", + "metrics.average-visit-time": "Průměrný čas návštěvy", + "metrics.bounce-rate": "Okamžité opuštění", + "metrics.browsers": "Prohlížeč", + "metrics.countries": "Země", + "metrics.device.desktop": "Stolní počítač", + "metrics.device.laptop": "Přenosný počítač", + "metrics.device.mobile": "Mobilní telefon", + "metrics.device.tablet": "Tablet", + "metrics.devices": "Zařízení", + "metrics.events": "Události", + "metrics.filter.combined": "Kombinace", + "metrics.filter.domain-only": "Domény", + "metrics.filter.raw": "Nezpracované", + "metrics.operating-systems": "Operační systém", + "metrics.page-views": "Zobrazení stránek", + "metrics.pages": "Stránky", + "metrics.referrers": "Odkazy", + "metrics.unique-visitors": "Jedinečné návštěvy", + "metrics.views": "Zobrazení", + "metrics.visitors": "Návštěvy" +} diff --git a/lib/lang.js b/lib/lang.js index 25fcb5d7..07df1837 100644 --- a/lib/lang.js +++ b/lib/lang.js @@ -1,24 +1,25 @@ import { format } from 'date-fns'; import { - enUS, - nl, - zhCN, - zhTW, - tr, - ru, - de, - ja, - es, - fr, + cs, da, - sv, + de, el, + enUS, + es, + fi, + fr, + id, + ja, + nb, + nl, pt, ro, - nb, - id, + ru, + sv, + tr, uk, - fi, + zhCN, + zhTW, } from 'date-fns/locale'; import enMessages from 'lang-compiled/en-US.json'; import nlMessages from 'lang-compiled/nl-NL.json'; @@ -41,6 +42,7 @@ import nbNOMessages from 'lang-compiled/nb-NO.json'; import idMessages from 'lang-compiled/id-ID.json'; import ukMessages from 'lang-compiled/uk-UA.json'; import fiMessages from 'lang-compiled/fi-FI.json'; +import csMessages from 'lang-compiled/cs-CZ.json'; export const messages = { 'en-US': enMessages, @@ -64,6 +66,7 @@ export const messages = { 'id-ID': idMessages, 'uk-UA': ukMessages, 'fi-FI': fiMessages, + 'cs-CZ': csMessages, }; export const dateLocales = { @@ -88,11 +91,13 @@ export const dateLocales = { 'id-ID': id, 'uk-UA': uk, 'fi-FI': fi, + 'cs-CZ': cs, }; export const menuOptions = [ { label: '中文', value: 'zh-CN', display: 'cn' }, { label: '中文(繁體)', value: 'zh-TW', display: 'tw' }, + { label: 'Čeština', value: 'cs-CZ', display: 'cs' }, { label: 'Dansk', value: 'da-DK', display: 'da' }, { label: 'Deutsch', value: 'de-DE', display: 'de' }, { label: 'English', value: 'en-US', display: 'en' }, diff --git a/package.json b/package.json index b6dea4b1..889afc1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "umami", - "version": "1.0.0", + "version": "1.1.0", "description": "A simple, fast, website analytics alternative to Google Analytics. ", "author": "Mike Cao ", "license": "MIT", diff --git a/scripts/check-lang.js b/scripts/check-lang.js index b843efeb..823d7115 100644 --- a/scripts/check-lang.js +++ b/scripts/check-lang.js @@ -7,12 +7,17 @@ const ignore = require('../lang-ignore.json'); const dir = path.resolve(__dirname, '../lang'); const files = fs.readdirSync(dir); const keys = Object.keys(messages).sort(); +const filter = process.argv?.[2]; files.forEach(file => { if (file !== 'en-US.json') { const lang = require(`../lang/${file}`); const id = file.replace('.json', ''); + if (filter && filter !== id) { + return; + } + console.log(chalk.yellowBright(`\n## ${file.replace('.json', '')}`)); let count = 0; keys.forEach(key => {