store current language in the cookie

pull/10091/head
muhammedaltug 4 years ago
parent 889d266961
commit 8311a79ffb

@ -32,6 +32,7 @@ import { TENANT_KEY } from './tokens/tenant-key.token';
import { noop } from './utils/common-utils';
import './utils/date-extensions';
import { getInitialData, localeInitializer } from './utils/initial-utils';
import { CookieLanguageProvider } from './providers/cookie-language.provider';
export function storageFactory(): OAuthStorage {
return oAuthStorage;
@ -131,6 +132,7 @@ export class CoreModule {
ngModule: RootCoreModule,
providers: [
LocaleProvider,
CookieLanguageProvider,
{
provide: 'CORE_OPTIONS',
useValue: options,

@ -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…
Cancel
Save