parent
d7cd62183d
commit
34a9849414
|
|
@ -1,61 +1,62 @@
|
||||||
import { Component, OnDestroy } from '@angular/core';
|
import { Component, HostListener, OnDestroy } from '@angular/core';
|
||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
import { TranslateService, TranslateModule} from "@ngx-translate/core";
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
||||||
import { Subscription } from 'rxjs';
|
import { Subscription } from 'rxjs';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [ RouterOutlet, TranslateModule, ],
|
imports: [RouterOutlet, TranslateModule],
|
||||||
templateUrl: './app.component.html',
|
templateUrl: './app.component.html',
|
||||||
styleUrl: './app.component.css'
|
styleUrls: ['./app.component.css'], // Fixed typo
|
||||||
})
|
})
|
||||||
export class AppComponent implements OnDestroy {
|
export class AppComponent implements OnDestroy {
|
||||||
|
private langChangeSub!: Subscription;
|
||||||
|
title = 'Strona';
|
||||||
|
|
||||||
private langChangeSub: Subscription;
|
constructor(public translate: TranslateService) {
|
||||||
|
this.initializeLanguage();
|
||||||
|
}
|
||||||
|
|
||||||
constructor( public translate: TranslateService ){
|
private initializeLanguage(): void {
|
||||||
|
const savedLang = localStorage.getItem('lang');
|
||||||
this.translate.addLangs(['pl', 'en']);
|
const supportedLangs = ['pl', 'en'];
|
||||||
|
|
||||||
// Pobierz język przeglądarki i obetnij kod regionu // np. 'en' z 'en-US'
|
this.translate.addLangs(supportedLangs);
|
||||||
const browserLang = navigator.language .slice(0, 2);
|
|
||||||
// Wyświetl w konsoli dla weryfikacji
|
|
||||||
console.log('Język przeglądarki krótki:', browserLang);
|
|
||||||
|
|
||||||
if( browserLang == 'en' || browserLang =='pl' ){
|
if (savedLang && supportedLangs.includes(savedLang)) {
|
||||||
this.translate.setDefaultLang( browserLang );
|
this.translate.use(savedLang);
|
||||||
}else{
|
} else {
|
||||||
this.translate.setDefaultLang('pl');
|
const browserLang = navigator.language.slice(0, 2);
|
||||||
|
const defaultLang = supportedLangs.includes(browserLang) ? browserLang : 'pl';
|
||||||
|
this.translate.setDefaultLang(defaultLang);
|
||||||
}
|
}
|
||||||
// Ustaw język pobrany z przeglądarki, jeśli jest obsługiwany
|
|
||||||
// this.translate.use(browserLang.match(/en|pl/) ? browserLang : 'pl');
|
|
||||||
|
|
||||||
this.langChangeSub = this.translate.onLangChange.subscribe((event) => {
|
this.langChangeSub = this.translate.onLangChange.subscribe((event) => {
|
||||||
console.log('Język ustawiany:', event.lang);
|
console.log('Language set to:', event.lang);
|
||||||
// localStorage.setItem('lang', selectedLang);
|
localStorage.setItem('lang', event.lang);
|
||||||
//this.loadAboutDescription();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
ngOnDestroy() {
|
|
||||||
// Unsubscribing from the event when the component is destroyed to avoid memory leaks
|
ngOnDestroy(): void {
|
||||||
if( this.langChangeSub ) {
|
if (this.langChangeSub) {
|
||||||
console.log('unsubscribe');
|
console.log('Unsubscribing from language change events');
|
||||||
this.langChangeSub.unsubscribe();
|
this.langChangeSub.unsubscribe();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// app.component.ts
|
|
||||||
switchLanguage(language: string) {
|
switchLanguage(language: string): void {
|
||||||
this.translate.use(language);
|
if (language !== this.translate.currentLang) {
|
||||||
|
this.translate.use(language);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@HostListener('keydown', ['$event'])
|
||||||
handleKeyDown(event: KeyboardEvent): void {
|
handleKeyDown(event: KeyboardEvent): void {
|
||||||
if (event.key === 'Enter' || event.key === ' ') {
|
if (event.key === 'Enter' || event.key === ' ') {
|
||||||
this.switchLanguage( this.translate.currentLang === 'pl' ? 'en' : 'pl');
|
const newLang = this.translate.currentLang === 'pl' ? 'en' : 'pl';
|
||||||
|
this.switchLanguage(newLang);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
title = 'Strona';
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue