diff options
Diffstat (limited to 'shared/models/i18n')
-rw-r--r-- | shared/models/i18n/i18n.ts | 30 | ||||
-rw-r--r-- | shared/models/i18n/index.ts | 1 |
2 files changed, 31 insertions, 0 deletions
diff --git a/shared/models/i18n/i18n.ts b/shared/models/i18n/i18n.ts new file mode 100644 index 000000000..2d3a1d3e2 --- /dev/null +++ b/shared/models/i18n/i18n.ts | |||
@@ -0,0 +1,30 @@ | |||
1 | export const I18N_LOCALES = { | ||
2 | 'en-US': 'English (US)', | ||
3 | fr: 'French' | ||
4 | } | ||
5 | |||
6 | export function getDefaultLocale () { | ||
7 | return 'en-US' | ||
8 | } | ||
9 | |||
10 | const possiblePaths = Object.keys(I18N_LOCALES).map(l => '/' + l) | ||
11 | export function is18nPath (path: string) { | ||
12 | return possiblePaths.indexOf(path) !== -1 | ||
13 | } | ||
14 | |||
15 | const possibleLanguages = Object.keys(I18N_LOCALES) | ||
16 | export function is18nLocale (locale: string) { | ||
17 | return possibleLanguages.indexOf(locale) !== -1 | ||
18 | } | ||
19 | |||
20 | // Only use in dev mode, so relax | ||
21 | // In production, the locale always match with a I18N_LANGUAGES key | ||
22 | export function buildFileLocale (locale: string) { | ||
23 | if (!is18nLocale(locale)) { | ||
24 | // Some working examples for development purpose | ||
25 | if (locale.split('-')[ 0 ] === 'en') return 'en_US' | ||
26 | else if (locale === 'fr') return 'fr' | ||
27 | } | ||
28 | |||
29 | return locale.replace('-', '_') | ||
30 | } | ||
diff --git a/shared/models/i18n/index.ts b/shared/models/i18n/index.ts new file mode 100644 index 000000000..8f7cbe2c7 --- /dev/null +++ b/shared/models/i18n/index.ts | |||
@@ -0,0 +1 @@ | |||
export * from './i18n' | |||