1 import { Component, Input, OnInit } from '@angular/core';
\r
3 import { defineLocale } from 'ngx-bootstrap/chronos';
\r
4 import { BsLocaleService } from 'ngx-bootstrap/datepicker';
\r
6 import { LocaleHelper } from '../../../locale.helper';
\r
7 import { languageBootstrapMapping, SupportedLanguages } from './supported-languages.enum';
\r
10 selector: 'cd-language-selector',
\r
11 templateUrl: './language-selector.component.html',
\r
12 styleUrls: ['./language-selector.component.scss']
\r
14 export class LanguageSelectorComponent implements OnInit {
\r
18 supportedLanguages = SupportedLanguages;
\r
19 selectedLanguage: string;
\r
21 constructor(private localeService: BsLocaleService) {}
\r
24 this.selectedLanguage = LocaleHelper.getLocale();
\r
25 this.defineUsedLanguage();
\r
29 * Sets ngx-bootstrap local based on the current language selection
\r
31 * ngx-bootstrap locals documentation:
\r
32 * https://valor-software.com/ngx-bootstrap/#/datepicker#locales
\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
43 * Jest is being more restricted regarding spying on the reload method.
\r
44 * This will allow us to spyOn this method instead.
\r
47 window.location.reload();
\r
50 changeLanguage(lang: string) {
\r
51 LocaleHelper.setLocale(lang);
\r
52 this.reloadWindow();
\r