|
|
|
@ -1,11 +1,12 @@ |
|
|
|
import { Injectable, NgZone, Optional, SkipSelf } from '@angular/core'; |
|
|
|
import { ActivatedRouteSnapshot, Router } from '@angular/router'; |
|
|
|
import { Store, Actions, ofActionSuccessful } from '@ngxs/store'; |
|
|
|
import { Actions, ofActionSuccessful, Store } from '@ngxs/store'; |
|
|
|
import { noop, Observable } from 'rxjs'; |
|
|
|
import { SetLanguage } from '../actions/session.actions'; |
|
|
|
import { ApplicationConfiguration } from '../models/application-configuration'; |
|
|
|
import { Config } from '../models/config'; |
|
|
|
import { ConfigState } from '../states/config.state'; |
|
|
|
import { registerLocale } from '../utils/initial-utils'; |
|
|
|
import { Config } from '../models/config'; |
|
|
|
import { SetLanguage } from '../actions/session.actions'; |
|
|
|
|
|
|
|
type ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean; |
|
|
|
|
|
|
|
@ -75,4 +76,31 @@ export class LocalizationService { |
|
|
|
instant(key: string | Config.LocalizationWithDefault, ...interpolateParams: string[]): string { |
|
|
|
return this.store.selectSnapshot(ConfigState.getLocalization(key, ...interpolateParams)); |
|
|
|
} |
|
|
|
|
|
|
|
isLocalized(key, sourceName) { |
|
|
|
if (sourceName === '_') { |
|
|
|
//A convention to suppress the localization
|
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
const localization = this.store.selectSnapshot( |
|
|
|
ConfigState.getOne('localization'), |
|
|
|
) as ApplicationConfiguration.Localization; |
|
|
|
sourceName = sourceName || localization.defaultResourceName; |
|
|
|
if (!sourceName) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
const source = localization.values[sourceName]; |
|
|
|
if (!source) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
const value = source[key]; |
|
|
|
if (value === undefined) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|