2022-01-12 13:24:20 +09:00
|
|
|
import { DOCUMENT } from '@angular/common';
|
2021-05-12 14:51:55 +04:00
|
|
|
import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';
|
2022-11-28 11:55:23 +09:00
|
|
|
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
2022-09-21 17:23:45 +02:00
|
|
|
import { languages } from '../../app.constants';
|
|
|
|
import { LanguageService } from '../../services/language.service';
|
2021-05-12 14:51:55 +04:00
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'app-language-selector',
|
|
|
|
templateUrl: './language-selector.component.html',
|
|
|
|
styleUrls: ['./language-selector.component.scss'],
|
|
|
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
|
|
})
|
|
|
|
export class LanguageSelectorComponent implements OnInit {
|
2022-11-28 11:55:23 +09:00
|
|
|
languageForm: UntypedFormGroup;
|
2022-01-10 15:50:21 +04:00
|
|
|
languages = languages;
|
2021-05-12 14:51:55 +04:00
|
|
|
|
|
|
|
constructor(
|
2022-01-12 13:24:20 +09:00
|
|
|
@Inject(DOCUMENT) private document: Document,
|
2022-11-28 11:55:23 +09:00
|
|
|
private formBuilder: UntypedFormBuilder,
|
2022-01-10 15:50:21 +04:00
|
|
|
private languageService: LanguageService,
|
2021-05-12 14:51:55 +04:00
|
|
|
) { }
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
this.languageForm = this.formBuilder.group({
|
2022-01-10 15:50:21 +04:00
|
|
|
language: ['en']
|
2021-05-12 14:51:55 +04:00
|
|
|
});
|
2022-01-10 15:50:21 +04:00
|
|
|
this.languageForm.get('language').setValue(this.languageService.getLanguage());
|
2021-05-12 14:51:55 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
changeLanguage() {
|
2022-01-12 13:24:20 +09:00
|
|
|
const newLang = this.languageForm.get('language').value;
|
|
|
|
this.languageService.setLanguage(newLang);
|
|
|
|
const rawUrlPath = this.languageService.stripLanguageFromUrl(null);
|
|
|
|
this.document.location.href = (newLang !== 'en' ? `/${newLang}` : '') + rawUrlPath;
|
2021-05-12 14:51:55 +04:00
|
|
|
}
|
|
|
|
}
|