From 74b7c6d48e9ca377fe938c8134ed74b612e62ba0 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 6 Jun 2018 17:37:13 +0200 Subject: Little i18n refractoring --- shared/models/i18n/i18n.ts | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) (limited to 'shared') diff --git a/shared/models/i18n/i18n.ts b/shared/models/i18n/i18n.ts index 4d50bc36e..be1420150 100644 --- a/shared/models/i18n/i18n.ts +++ b/shared/models/i18n/i18n.ts @@ -1,34 +1,45 @@ +export const LOCALE_FILES = [ 'player', 'server' ] + export const I18N_LOCALES = { 'en-US': 'English (US)', fr: 'French' } +const I18N_LOCALE_ALIAS = { + 'en': 'en-US' +} + +export const POSSIBLE_LOCALES = Object.keys(I18N_LOCALES) + .concat(Object.keys(I18N_LOCALE_ALIAS)) + +const possiblePaths = POSSIBLE_LOCALES.map(l => '/' + l) + export function getDefaultLocale () { return 'en-US' } export function isDefaultLocale (locale: string) { - return locale === getDefaultLocale() + return getCompleteLocale(locale) === getCompleteLocale(getDefaultLocale()) } -const possiblePaths = Object.keys(I18N_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 } -// 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('-', '_') } -- cgit v1.2.3