1 |
89c98d12
|
Václav Jirák
|
import {Injectable} from '@angular/core';
|
2 |
|
|
import {TranslateService} from '@ngx-translate/core';
|
3 |
|
|
import {registerLocaleData} from '@angular/common';
|
4 |
18dbad83
|
Václav Jirák
|
import localeEn from '@angular/common/locales/en';
|
5 |
|
|
import localeCs from '@angular/common/locales/cs';
|
6 |
89c98d12
|
Václav Jirák
|
import {Subject} from 'rxjs';
|
7 |
|
|
import {Languages} from "../enums/common.enum";
|
8 |
18dbad83
|
Václav Jirák
|
|
9 |
|
|
@Injectable({
|
10 |
|
|
providedIn: 'root'
|
11 |
|
|
})
|
12 |
|
|
export class LocalizationService {
|
13 |
|
|
readonly defaultLanguage = 'en';
|
14 |
|
|
|
15 |
89c98d12
|
Václav Jirák
|
currentLanguageSubject: Subject<string>;
|
16 |
|
|
|
17 |
|
|
private currentLanguage = this.defaultLanguage;
|
18 |
18dbad83
|
Václav Jirák
|
|
19 |
|
|
constructor(private translate: TranslateService) {
|
20 |
89c98d12
|
Václav Jirák
|
this.currentLanguageSubject = new Subject<string>();
|
21 |
18dbad83
|
Václav Jirák
|
|
22 |
|
|
registerLocaleData(localeEn);
|
23 |
|
|
registerLocaleData(localeCs);
|
24 |
|
|
|
25 |
|
|
translate.setDefaultLang(this.defaultLanguage);
|
26 |
|
|
}
|
27 |
|
|
|
28 |
|
|
switchLanguage(lang: string) {
|
29 |
|
|
this.translate.use(lang);
|
30 |
89c98d12
|
Václav Jirák
|
this.currentLanguageSubject.next(lang);
|
31 |
|
|
this.currentLanguage = lang;
|
32 |
|
|
}
|
33 |
|
|
|
34 |
|
|
getCurrentLanguage(): Languages {
|
35 |
|
|
switch (this.currentLanguage) {
|
36 |
|
|
case 'cs':
|
37 |
|
|
return Languages.CZECH;
|
38 |
|
|
case 'en':
|
39 |
|
|
default:
|
40 |
|
|
return Languages.ENGLISH;
|
41 |
|
|
}
|
42 |
18dbad83
|
Václav Jirák
|
}
|
43 |
|
|
}
|