mirror of https://github.com/abpframework/abp.git
committed by
GitHub
5 changed files with 33 additions and 1 deletions
@ -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