X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fi18n%2Fi18n.ts;h=9a5ea27dc59c0628f232d91b25ea76257a545dc5;hb=2a39506c7da9ef79671d4c21539313b6d49b1884;hp=d7164b73f7bc11030e97d65cf55b02fc9e209816;hpb=14d1b7b95a096b933ea353a715f4868a89dc5822;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/i18n/i18n.ts b/shared/models/i18n/i18n.ts index d7164b73f..9a5ea27dc 100644 --- a/shared/models/i18n/i18n.ts +++ b/shared/models/i18n/i18n.ts @@ -1,36 +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', 'de-DE': 'Deutsch', - 'it-IT': 'Italiano', + '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', - 'zh-Hant-TW': '繁體中文(台灣)', - 'pt-BR': 'Português (Brasil)', - 'sv-SE': 'svenska', 'pl-PL': 'Polski', + 'pt-BR': 'Português (Brasil)', + 'pt-PT': 'Português (Portugal)', 'ru-RU': 'русский', - 'zh-Hans-CN': '简体中文(中国)' + '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', + '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', - 'pl': 'pl-PL', - 'ru': 'ru-RU' + '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) @@ -45,16 +67,18 @@ export function isDefaultLocale (locale: string) { } 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) { @@ -66,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) }