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_pl from '@angular/common/locales/pl';
8 import locale_pt_PT from '@angular/common/locales/pt-PT';
9 import locale_zh_Hans from '@angular/common/locales/zh-Hans';
10 import { LOCALE_ID, TRANSLATIONS, TRANSLATIONS_FORMAT } from '@angular/core';
12 declare const require;
14 export class LocaleHelper {
15 static getBrowserLang(): string {
16 const lang = navigator.language;
18 if (lang.includes('cs')) {
20 } else if (lang.includes('de')) {
22 } else if (lang.includes('en')) {
24 } else if (lang.includes('es')) {
26 } else if (lang.includes('fr')) {
28 } else if (lang.includes('id')) {
30 } else if (lang.includes('pl')) {
32 } else if (lang.includes('pt')) {
34 } else if (lang.includes('zh')) {
41 static getLocale(): string {
42 return window.localStorage.getItem('lang') || this.getBrowserLang() || 'en-US';
45 static setLocale(lang: string) {
46 window.localStorage.setItem('lang', lang);
49 static getLocaleData() {
50 let localeData = locale_en;
51 switch (this.getLocale()) {
53 localeData = locale_cs;
56 localeData = locale_de;
59 localeData = locale_es;
62 localeData = locale_fr;
65 localeData = locale_id;
68 localeData = locale_pt_PT;
71 localeData = locale_pl;
74 localeData = locale_zh_Hans;
81 const i18nProviders = [
82 { provide: LOCALE_ID, useValue: LocaleHelper.getLocale() },
84 provide: TRANSLATIONS,
85 useFactory: (locale) => {
86 locale = locale || 'en-US';
88 return require(`raw-loader!locale/messages.${locale}.xlf`);
95 { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' }
98 export { i18nProviders };