1
|
import {Injectable} from '@angular/core';
|
2
|
import {TranslateService} from '@ngx-translate/core';
|
3
|
import {registerLocaleData} from '@angular/common';
|
4
|
import localeEn from '@angular/common/locales/en';
|
5
|
import localeCs from '@angular/common/locales/cs';
|
6
|
import {Subject} from 'rxjs';
|
7
|
import {Languages} from "../enums/common.enum";
|
8
|
|
9
|
@Injectable({
|
10
|
providedIn: 'root'
|
11
|
})
|
12
|
export class LocalizationService {
|
13
|
readonly defaultLanguage = 'en';
|
14
|
|
15
|
currentLanguageSubject: Subject<string>;
|
16
|
|
17
|
private currentLanguage = this.defaultLanguage;
|
18
|
|
19
|
constructor(private translate: TranslateService) {
|
20
|
this.currentLanguageSubject = new Subject<string>();
|
21
|
|
22
|
registerLocaleData(localeEn);
|
23
|
registerLocaleData(localeCs);
|
24
|
|
25
|
translate.setDefaultLang(this.defaultLanguage);
|
26
|
}
|
27
|
|
28
|
switchLanguage(lang: string) {
|
29
|
this.translate.use(lang);
|
30
|
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
|
}
|
43
|
|
44
|
getCurrentLocale(): string {
|
45
|
return this.currentLanguage;
|
46
|
}
|
47
|
}
|