Browse Source

Merge pull request #20856 from maskalek/issue-20805

Set selected language to html at application initializing
pull/20863/head
Masum ULU 2 years ago
committed by GitHub
parent
commit
6dc30fda26
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 21
      npm/ng-packs/packages/core/src/lib/services/session-state.service.ts

21
npm/ng-packs/packages/core/src/lib/services/session-state.service.ts

@ -1,4 +1,5 @@
import { Injectable } from '@angular/core'; import { Injectable, inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import compare from 'just-compare'; import compare from 'just-compare';
import { filter, take } from 'rxjs/operators'; import { filter, take } from 'rxjs/operators';
import { Session } from '../models/session'; import { Session } from '../models/session';
@ -12,6 +13,7 @@ import { AbpLocalStorageService } from './local-storage.service';
}) })
export class SessionStateService { export class SessionStateService {
private readonly store = new InternalStore({} as Session.State); private readonly store = new InternalStore({} as Session.State);
protected readonly document = inject(DOCUMENT);
private updateLocalStorage = () => { private updateLocalStorage = () => {
this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state)); this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));
@ -47,9 +49,8 @@ export class SessionStateService {
if (lang.includes(';')) { if (lang.includes(';')) {
lang = lang.split(';')[0]; lang = lang.split(';')[0];
} }
if (appLanguage !== lang) {
this.setLanguage(lang); this.setLanguage(lang);
}
}); });
} }
@ -84,9 +85,15 @@ export class SessionStateService {
} }
setLanguage(language: string) { setLanguage(language: string) {
if (language === this.store.state.language) return; const currentLanguage = this.store.state.language;
if (language !== currentLanguage) {
this.store.patch({ language });
}
this.store.patch({ language }); const currentAttribute = this.document.documentElement.getAttribute('lang');
document.documentElement.setAttribute('lang', language); if (language !== currentAttribute) {
this.document.documentElement.setAttribute('lang', language);
}
} }
} }

Loading…
Cancel
Save