1 import locale_cs from '@angular/common/locales/cs';
2 import locale_de from '@angular/common/locales/de';
3 import locale_en from '@angular/common/locales/en';
4 import locale_es from '@angular/common/locales/es';
5 import locale_fr from '@angular/common/locales/fr';
6 import locale_id from '@angular/common/locales/id';
7 import locale_it from '@angular/common/locales/it';
8 import locale_ja from '@angular/common/locales/ja';
9 import locale_ko from '@angular/common/locales/ko';
10 import locale_pl from '@angular/common/locales/pl';
11 import locale_pt from '@angular/common/locales/pt';
12 import locale_zh_Hans from '@angular/common/locales/zh-Hans';
13 import locale_zh_Hant from '@angular/common/locales/zh-Hant';
14 import { LOCALE_ID, TRANSLATIONS, TRANSLATIONS_FORMAT } from '@angular/core';
16 declare const require;
18 export class LocaleHelper {
19 static getBrowserLang(): string {
20 const lang = navigator.language;
22 if (lang.includes('cs')) {
24 } else if (lang.includes('de')) {
26 } else if (lang.includes('en')) {
28 } else if (lang.includes('es')) {
30 } else if (lang.includes('fr')) {
32 } else if (lang.includes('id')) {
34 } else if (lang.includes('it')) {
36 } else if (lang.includes('ja')) {
38 } else if (lang.includes('ko')) {
40 } else if (lang.includes('pl')) {
42 } else if (lang.includes('pt')) {
44 } else if (lang.includes('zh-TW')) {
46 } else if (lang.includes('zh')) {
53 static getLocale(): string {
54 return window.localStorage.getItem('lang') || this.getBrowserLang() || 'en-US';
57 static setLocale(lang: string) {
58 window.localStorage.setItem('lang', lang);
61 static getLocaleData() {
62 let localeData = locale_en;
63 switch (this.getLocale()) {
65 localeData = locale_cs;
68 localeData = locale_de;
71 localeData = locale_es;
74 localeData = locale_fr;
77 localeData = locale_id;
80 localeData = locale_it;
83 localeData = locale_ja;
86 localeData = locale_ko;
89 localeData = locale_pl;
92 localeData = locale_pt;
95 localeData = locale_zh_Hans;
98 localeData = locale_zh_Hant;
105 const i18nProviders = [
106 { provide: LOCALE_ID, useValue: LocaleHelper.getLocale() },
108 provide: TRANSLATIONS,
109 useFactory: (locale) => {
110 locale = locale || 'en-US';
112 return require(`raw-loader!locale/messages.${locale}.xlf`);
119 { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' }
122 export { i18nProviders };