@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
102 lines (101 loc) • 3.35 kB
TypeScript
import { Observable } from 'rxjs';
import { Language } from './language';
/**
* Options to initialize the localization manager
*/
export interface LocalizationManagerOptions {
/**
* The URL path (relative or absolute)
* to the resources folder containing the json files with the localized assets.
* defaults to '/assets/strings' if not specified.
* Ex: '/assets/strings'
*/
resourcesPath?: string;
/**
* The Azure locale to start localization manager with
*/
azureLocale?: string;
}
export interface LocaleSet {
/**
* The locale ID covering all reginal locale.
*/
id: string;
/**
* The neutral ID used for loading string resources.
*/
neutral: string;
}
/**
* Class to retrieve localized resources based on the user locale
* This class lets you load resources from a json file in an
* arbitrary location and determines what locale resources to return
* on the user preference
*/
export declare class LocalizationManager<T> {
private options?;
private static defaultResourcesStringsFolder;
private static resourcesStringsFile;
private static resourcesStringsFileFormat;
private static languageManager;
static localStorageLocaleKey: string;
static localStorageLocaleSetKey: string;
static neutralCultures: Language[];
static regionalCultures: Language[];
private readonly defaultLocaleId;
private resourcesStringFormat;
private resourcesStringDefaultFile;
private http;
private localeIdInternal;
private resourcesPath;
/**
* Initializes a new instance of the LocalizationManager class that reads the localized assets from
* the given locations.
* @param options? The options to initialize the localization manager.
*/
constructor(options?: LocalizationManagerOptions);
/**
* Gets current locale.
* @return string the locale string.
*/
get localeId(): LocaleSet;
/**
* Gets the navigator language
*/
getNavigatorLanguage(): string;
/**
* Creates a LocaleSet from a string
*/
createLocaleSet(id: string, neutral?: string): LocaleSet;
/**
* Sets the current locale in persistent storage
* @param localeId the string representing the locale selected by the user. Ex: 'es' or 'en'
*/
saveLocale(localeSet: LocaleSet): void;
/**
* Updates the lang attribute of the document to reflect the current locale.
*/
updateDocumentLanguage(): any;
/**
* Ensures Resources are Initialized
*/
private initializeResources;
/**
* Gets the current locale.
* Throughout code, locale code is using <lower case>-<upper case> format which is standard on both Microsoft Edge and Google Chrome.
* ex) en-US, de-DE, ja-JP and so on.
* @returns The current locale selected by the user
*/
getLocaleId(): LocaleSet;
/**
* Fetches the localized strings from the server based on the current culture.
* @returns an observable with object the localized strings.
*/
fetchLocalizedStrings(): Observable<T>;
private configureFetchFiles;
checkBothAvailable(localeSet: LocaleSet): boolean;
private checkIdAvailable;
private fetchDefaultStrings;
private fetchLocaleStrings;
private normalizeAzureLocaleId;
}