X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fi18n%2Fi18n.ts;h=9a5ea27dc59c0628f232d91b25ea76257a545dc5;hb=2a39506c7da9ef79671d4c21539313b6d49b1884;hp=baf3fa0f482c5ae0b398d5f49fe7510221aeb138;hpb=3d52b300ea79bec21f090e2447c4808307078618;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/i18n/i18n.ts b/shared/models/i18n/i18n.ts index baf3fa0f4..9a5ea27dc 100644 --- a/shared/models/i18n/i18n.ts +++ b/shared/models/i18n/i18n.ts @@ -1,27 +1,58 @@ export const LOCALE_FILES = [ 'player', 'server' ] export const I18N_LOCALES = { + // Always first to avoid issues when using express acceptLanguages function when no accept language header is set 'en-US': 'English', - 'fr-FR': 'Français', - 'eu-ES': 'euskara', - 'ca-ES': 'català', - 'cs-CZ': 'čeština', - 'eo': 'Esperanto', + + 'ca-ES': 'Català', + 'cs-CZ': 'Čeština', 'de-DE': 'Deutsch', - 'es-ES': 'español', - 'zh-Hant-TW': '中文 (繁體, 台灣)' - // 'pl-PL': 'polski' + 'el-GR': 'ελληνικά', + 'eo': 'Esperanto', + 'es-ES': 'Español', + 'eu-ES': 'Euskara', + 'fi-FI': 'suomi', + 'fr-FR': 'Français', + 'gd': 'Gàidhlig', + 'hu-HU': 'magyar', + 'it-IT': 'Italiano', + 'ja-JP': '日本語', + 'nl-NL': 'Nederlands', + 'oc': 'Occitan', + 'pl-PL': 'Polski', + 'pt-BR': 'Português (Brasil)', + 'pt-PT': 'Português (Portugal)', + 'ru-RU': 'русский', + 'sv-SE': 'svenska', + 'th-TH': 'ไทย', + 'zh-Hans-CN': '简体中文(中国)', + 'zh-Hant-TW': '繁體中文(台灣)' } const I18N_LOCALE_ALIAS = { - 'en': 'en-US', - 'fr': 'fr-FR', - 'eu': 'eu-ES', 'ca': 'ca-ES', 'cs': 'cs-CZ', 'de': 'de-DE', - 'es': 'es-ES' - // 'pl': 'pl-PL' + 'el': 'el-GR', + 'en': 'en-US', + 'es': 'es-ES', + 'eu': 'eu-ES', + 'fi': 'fi-FI', + 'fr': 'fr-FR', + 'ja': 'ja-JP', + 'it': 'it-IT', + 'hu': 'hu-HU', + 'nl': 'nl-NL', + 'pl': 'pl-PL', + 'pt': 'pt-BR', + 'ru': 'ru-RU', + 'sv': 'sv-SE', + 'th': 'th-TH', + 'zh': 'zh-Hans-CN', + 'zh-Hans': 'zh-Hans-CN', + 'zh-CN': 'zh-Hans-CN', + 'zh-Hant': 'zh-Hant-TW', + 'zh-TW': 'zh-Hant-TW' } export const POSSIBLE_LOCALES = Object.keys(I18N_LOCALES) @@ -35,13 +66,19 @@ export function isDefaultLocale (locale: string) { return getCompleteLocale(locale) === getCompleteLocale(getDefaultLocale()) } +export function peertubeTranslate (str: string, translations?: { [ id: string ]: string }) { + // FIXME: remove disable rule when the client is upgraded to typescript 3.7 + // eslint-disable-next-line + return translations && translations[str] ? translations[str] : str +} + const possiblePaths = POSSIBLE_LOCALES.map(l => '/' + l) export function is18nPath (path: string) { - return possiblePaths.indexOf(path) !== -1 + return possiblePaths.includes(path) } export function is18nLocale (locale: string) { - return POSSIBLE_LOCALES.indexOf(locale) !== -1 + return POSSIBLE_LOCALES.includes(locale) } export function getCompleteLocale (locale: string) { @@ -53,13 +90,11 @@ export function getCompleteLocale (locale: string) { } export function getShortLocale (locale: string) { - if (locale.indexOf('-') === -1) return locale + if (locale.includes('-') === false) return locale return locale.split('-')[0] } export function buildFileLocale (locale: string) { - const completeLocale = getCompleteLocale(locale) - - return completeLocale.replace(/-/g, '_') + return getCompleteLocale(locale) }