]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | import { Component, Input, OnInit } from '@angular/core';\r |
2 | \r | |
81eedcae TL |
3 | import { defineLocale } from 'ngx-bootstrap/chronos';\r |
4 | import { BsLocaleService } from 'ngx-bootstrap/datepicker';\r | |
5 | \r | |
11fdf7f2 | 6 | import { LocaleHelper } from '../../../locale.helper';\r |
81eedcae | 7 | import { languageBootstrapMapping, SupportedLanguages } from './supported-languages.enum';\r |
11fdf7f2 TL |
8 | \r |
9 | @Component({\r | |
10 | selector: 'cd-language-selector',\r | |
11 | templateUrl: './language-selector.component.html',\r | |
12 | styleUrls: ['./language-selector.component.scss']\r | |
13 | })\r | |
14 | export class LanguageSelectorComponent implements OnInit {\r | |
15 | @Input()\r | |
16 | isDropdown = true;\r | |
17 | \r | |
18 | supportedLanguages = SupportedLanguages;\r | |
19 | selectedLanguage: string;\r | |
20 | \r | |
81eedcae TL |
21 | constructor(private localeService: BsLocaleService) {}\r |
22 | \r | |
11fdf7f2 TL |
23 | ngOnInit() {\r |
24 | this.selectedLanguage = LocaleHelper.getLocale();\r | |
81eedcae TL |
25 | this.defineUsedLanguage();\r |
26 | }\r | |
27 | \r | |
28 | /**\r | |
29 | * Sets ngx-bootstrap local based on the current language selection\r | |
30 | *\r | |
31 | * ngx-bootstrap locals documentation:\r | |
32 | * https://valor-software.com/ngx-bootstrap/#/datepicker#locales\r | |
33 | */\r | |
34 | private defineUsedLanguage() {\r | |
35 | const lang = this.selectedLanguage.slice(0, 2);\r | |
36 | if (lang in languageBootstrapMapping) {\r | |
37 | defineLocale(lang, languageBootstrapMapping[lang]);\r | |
38 | this.localeService.use(lang);\r | |
39 | }\r | |
11fdf7f2 TL |
40 | }\r |
41 | \r | |
42 | changeLanguage(lang: string) {\r | |
43 | LocaleHelper.setLocale(lang);\r | |
11fdf7f2 TL |
44 | window.location.reload();\r |
45 | }\r | |
46 | }\r |