mirror of https://github.com/abpframework/abp
parent
889d266961
commit
8311a79ffb
@ -0,0 +1,23 @@
|
||||
import { APP_INITIALIZER, Injector, Provider } from '@angular/core';
|
||||
import { DOCUMENT } from '@angular/common';
|
||||
import { SessionStateService } from '../services/session-state.service';
|
||||
import { COOKIE_LANGUAGE_KEY } from '../tokens/cookie-language-key.token';
|
||||
|
||||
export function setLanguageToCookie(injector: Injector) {
|
||||
return () => {
|
||||
const sessionState = injector.get(SessionStateService);
|
||||
const document = injector.get(DOCUMENT);
|
||||
const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);
|
||||
sessionState.getLanguage$().subscribe(language => {
|
||||
const cookieValue = encodeURIComponent(`c=${language}|uic=${language}`);
|
||||
document.cookie = `${cookieLanguageKey}=${cookieValue}`;
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export const CookieLanguageProvider: Provider = {
|
||||
provide: APP_INITIALIZER,
|
||||
useFactory: setLanguageToCookie,
|
||||
deps: [Injector],
|
||||
multi: true,
|
||||
};
|
@ -1 +1,2 @@
|
||||
export * from './cookie-language.provider';
|
||||
export * from './locale.provider';
|
||||
|
@ -0,0 +1,5 @@
|
||||
import { InjectionToken } from '@angular/core';
|
||||
|
||||
export const COOKIE_LANGUAGE_KEY = new InjectionToken<string>('COOKIE_LANGUAGE_KEY', {
|
||||
factory: () => '.AspNetCore.Culture',
|
||||
});
|
@ -1,6 +1,7 @@
|
||||
export * from './app-config.token';
|
||||
export * from './cookie-language-key.token';
|
||||
export * from './list.token';
|
||||
export * from './lodaer-delay.token';
|
||||
export * from './manage-profile.token';
|
||||
export * from './options.token';
|
||||
export * from './app-config.token';
|
||||
export * from './tenant-key.token';
|
||||
|
Loading…
Reference in new issue