]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/components/language-selector/language-selector.component.ts
import ceph nautilus 14.2.2
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / components / language-selector / language-selector.component.ts
CommitLineData
11fdf7f2
TL
1import { Component, Input, OnInit } from '@angular/core';\r
2\r
81eedcae
TL
3import { defineLocale } from 'ngx-bootstrap/chronos';\r
4import { BsLocaleService } from 'ngx-bootstrap/datepicker';\r
5\r
11fdf7f2 6import { LocaleHelper } from '../../../locale.helper';\r
81eedcae 7import { 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
14export 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