From 95c4be653669523b2fb01533db4f621d807cdb25 Mon Sep 17 00:00:00 2001 From: _Bastler <_Bastler@bstly.de> Date: Sun, 20 Mar 2022 14:00:25 +0100 Subject: [PATCH] fix i18n iframe --- src/app/services/i18n.service.ts | 11 ++++++----- src/app/ui/main/main.component.ts | 7 +++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/app/services/i18n.service.ts b/src/app/services/i18n.service.ts index 4044f87..fe5d08a 100644 --- a/src/app/services/i18n.service.ts +++ b/src/app/services/i18n.service.ts @@ -3,6 +3,7 @@ import { HttpClient } from '@angular/common/http'; import { environment } from '../../environments/environment'; import { MatPaginatorIntl } from '@angular/material/paginator'; import { Subject, firstValueFrom } from 'rxjs'; +import { ActivatedRoute } from '@angular/router'; @Injectable({ providedIn: 'root', @@ -13,9 +14,8 @@ export class I18nService { locales: any = [ "de-informal" ]; i18n: any; - constructor(private http: HttpClient) { - - } + constructor(private http: HttpClient, + private route: ActivatedRoute) { } getLocales() { return this.locales; @@ -41,7 +41,9 @@ export class I18nService { let locale = browserLocale || this.locales[ 0 ]; try { locale = localStorage.getItem("bstly.locale") || locale; - } catch { } + } catch { + locale = window.location.search.split("locale=")[ 1 ]; + } if (locale == 'de') { locale = 'de-informal'; @@ -59,7 +61,6 @@ export class I18nService { } this.setLocale(locale); - } get(key, args: string[]): string { diff --git a/src/app/ui/main/main.component.ts b/src/app/ui/main/main.component.ts index e166456..dde245f 100644 --- a/src/app/ui/main/main.component.ts +++ b/src/app/ui/main/main.component.ts @@ -8,7 +8,7 @@ import { fromEvent } from 'rxjs'; import { AuthService } from '../../services/auth.service'; import { I18nService } from '../../services/i18n.service'; import { ProfileService } from '../../services/profile.service'; -import { MatSidenav } from '@angular/material/sidenav'; +import { Location } from '@angular/common'; @Component({ selector: 'app-main', @@ -36,6 +36,7 @@ export class MainComponent { private router: Router, private iconRegistry: MatIconRegistry, private sanitizer: DomSanitizer, + private location: Location, private _adapter: DateAdapter) { iconRegistry.addSvgIcon('logo', sanitizer.bypassSecurityTrustResourceUrl('assets/icons/logo.svg')); } @@ -71,7 +72,9 @@ export class MainComponent { setLocale(locale) { try { localStorage.setItem("bstly.locale", locale); - } catch { } + } catch { + this.location.replaceState(window.location.pathname, 'locale=' + locale); + } if (this.auth && this.auth.authenticated) { this.profileService.getField("locale").subscribe({