mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-23 23:46:35 +00:00
f00c354d0d
BudgetPanel titled its add button with budget.addCategory (since April) and the trip form labelled its cover remove button with common.remove (since August). Neither key was ever in en, and t() returns an unknown key unchanged, so both rendered as the raw key in every language. Both are added to all 27 locales. Locale parity compares the locales with en, never en with the code, so nothing could catch this. client/scripts/i18n-keys.mjs (npm run lint:i18n-keys) now resolves every literal key src/ names against en: the first argument of t(), tHtml() and tr() (both sides of a conditional included), <TransHtml html>, the fallback of translateApiError and any *Key property or prop. A template key, a prefix with the rest appended and the help registry's key builders pass when their fixed parts match an en key; the one template with no fixed part is on an allow-list that names the keys it resolves to, and an entry nothing uses fails. With --unused it lists the en keys nothing reaches, as information only. en is read with shared/scripts/i18n-catalog.mjs, a reader for the locale tables as text that the parity tooling will share. It refuses a value that is not one string literal instead of skipping the key.
82 lines
3.3 KiB
TypeScript
82 lines
3.3 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const common: TranslationStrings = {
|
|
'common.save': 'Uložit',
|
|
'common.showMore': 'Zobrazit více',
|
|
'common.showLess': 'Zobrazit méně',
|
|
'common.cancel': 'Zrušit',
|
|
'common.clear': 'Vymazat',
|
|
'common.delete': 'Smazat',
|
|
'common.remove': 'Odstranit',
|
|
'common.preview': 'Náhled',
|
|
'common.edit': 'Upravit',
|
|
'common.add': 'Přidat',
|
|
'common.loading': 'Načítání...',
|
|
'common.import': 'Importovat',
|
|
'common.select': 'Vybrat',
|
|
'common.selectAll': 'Vybrat vše',
|
|
'common.deselectAll': 'Zrušit výběr všeho',
|
|
'common.error': 'Chyba',
|
|
'common.success': 'Úspěch',
|
|
'common.unknownError': 'Neznámá chyba',
|
|
'common.tooManyAttempts': 'Příliš mnoho pokusů. Zkuste to prosím znovu.',
|
|
'common.back': 'Zpět',
|
|
'common.all': 'Vše',
|
|
'common.close': 'Zavřít',
|
|
'common.open': 'Otevřít',
|
|
'common.upload': 'Nahrát',
|
|
'common.search': 'Hledat',
|
|
'common.confirm': 'Potvrdit',
|
|
'common.ok': 'OK',
|
|
'common.yes': 'Ano',
|
|
'common.no': 'Ne',
|
|
'common.or': 'nebo',
|
|
'common.none': 'Žádné',
|
|
'common.date': 'Datum',
|
|
'common.rename': 'Přejmenovat',
|
|
'common.discardChanges': 'Zahodit změny',
|
|
'common.discard': 'Zahodit',
|
|
'common.unsavedTitle': 'Zahodit změny?',
|
|
'common.unsavedMessage': 'To, co jste zde zadali, ještě není uložené.',
|
|
'common.keepEditing': 'Pokračovat v úpravách',
|
|
'common.name': 'Jméno',
|
|
'common.email': 'E-mail',
|
|
'common.password': 'Heslo',
|
|
'common.saving': 'Ukládání...',
|
|
'common.expand': 'Rozbalit',
|
|
'common.collapse': 'Sbalit',
|
|
'common.saved': 'Uloženo',
|
|
'common.update': 'Aktualizovat',
|
|
'common.change': 'Změnit',
|
|
'common.uploading': 'Nahrávání…',
|
|
'common.backToPlanning': 'Zpět k plánování',
|
|
'common.reset': 'Resetovat',
|
|
'common.copy': 'Kopírovat',
|
|
'common.copied': 'Zkopírováno',
|
|
'common.justNow': 'právě teď',
|
|
'common.hoursAgo': 'před {count} h',
|
|
'common.daysAgo': 'před {count} d',
|
|
'common.datepicker.prevMonth': 'Previous month', // en-fallback
|
|
'common.datepicker.nextMonth': 'Next month', // en-fallback
|
|
'common.datepicker.prevYear': 'Previous year', // en-fallback
|
|
'common.datepicker.nextYear': 'Next year', // en-fallback
|
|
'common.datepicker.prevYears': 'Previous years', // en-fallback
|
|
'common.datepicker.nextYears': 'Next years', // en-fallback
|
|
'common.datepicker.selectMonth': 'Select month', // en-fallback
|
|
'common.datepicker.selectYear': 'Select year', // en-fallback
|
|
'common.datepicker.enterManually': 'Enter date manually', // en-fallback
|
|
'common.datepicker.typeDate': 'Type a date', // en-fallback
|
|
'common.datepicker.dialog': 'Date picker', // en-fallback
|
|
'common.datepicker.clearDate': 'Clear date', // en-fallback
|
|
'common.errorTitle': 'Něco se pokazilo',
|
|
'common.errorBody': 'Tato část aplikace přestala fungovat. Vaše data jsou v bezpečí.',
|
|
'common.errorPanelTitle': 'Tuto sekci se nepodařilo zobrazit',
|
|
'common.errorPanelBody': 'Zbytek stránky funguje dál.',
|
|
'common.errorRetry': 'Zkusit znovu',
|
|
'common.errorReload': 'Načíst stránku znovu',
|
|
'common.errorUpdateTitle': 'Je dostupná nová verze',
|
|
'common.errorUpdateBody': 'TREK byl aktualizován, zatímco byla tato karta otevřená. Načtěte znovu pro novou verzi.',
|
|
'common.errorPluginTitle': 'Tento plugin se nepodařilo zobrazit',
|
|
};
|
|
export default common;
|