X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Fi18n%2Fi18n.ts;h=0c79c431eafa7b3feb0ca438448473783bbbc618;hb=8244e18719e10ab1a376506ee30f941e5725e8ed;hp=2d3a1d3e274fd65a61141a304d3eb92474f87c8d;hpb=989e526abf0c0dd7958deb630df009608561bb67;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/i18n/i18n.ts b/shared/models/i18n/i18n.ts index 2d3a1d3e2..0c79c431e 100644 --- a/shared/models/i18n/i18n.ts +++ b/shared/models/i18n/i18n.ts @@ -1,30 +1,57 @@ +export const LOCALE_FILES = [ 'player', 'server' ] + export const I18N_LOCALES = { - 'en-US': 'English (US)', - fr: 'French' + 'en-US': 'English', + 'fr-FR': 'Français', + 'eu-ES': 'euskara', + 'ca-ES': 'català' + // 'pl-PL': 'polski' +} + +const I18N_LOCALE_ALIAS = { + 'en': 'en-US', + 'fr': 'fr-FR', + 'eu': 'eu-ES', + 'ca': 'ca-ES' + // 'pl': 'pl-PL' } +export const POSSIBLE_LOCALES = Object.keys(I18N_LOCALES) + .concat(Object.keys(I18N_LOCALE_ALIAS)) + export function getDefaultLocale () { return 'en-US' } -const possiblePaths = Object.keys(I18N_LOCALES).map(l => '/' + l) +export function isDefaultLocale (locale: string) { + return getCompleteLocale(locale) === getCompleteLocale(getDefaultLocale()) +} + +const possiblePaths = POSSIBLE_LOCALES.map(l => '/' + l) export function is18nPath (path: string) { return possiblePaths.indexOf(path) !== -1 } -const possibleLanguages = Object.keys(I18N_LOCALES) export function is18nLocale (locale: string) { - return possibleLanguages.indexOf(locale) !== -1 + return POSSIBLE_LOCALES.indexOf(locale) !== -1 +} + +export function getCompleteLocale (locale: string) { + if (!locale) return locale + + if (I18N_LOCALE_ALIAS[locale]) return I18N_LOCALE_ALIAS[locale] + + return locale +} + +export function getShortLocale (locale: string) { + if (locale.indexOf('-') === -1) return locale + + return locale.split('-')[0] } -// Only use in dev mode, so relax -// In production, the locale always match with a I18N_LANGUAGES key export function buildFileLocale (locale: string) { - if (!is18nLocale(locale)) { - // Some working examples for development purpose - if (locale.split('-')[ 0 ] === 'en') return 'en_US' - else if (locale === 'fr') return 'fr' - } + const completeLocale = getCompleteLocale(locale) - return locale.replace('-', '_') + return completeLocale.replace('-', '_') }