UNPKG

@ngx-translate/core

Version:

Translation library (i18n) for Angular

205 lines (204 loc) 8.41 kB
import { EventEmitter, InjectionToken } from "@angular/core"; import { Observable } from "rxjs"; import { MissingTranslationHandler } from "./missing-translation-handler"; import { TranslateCompiler } from "./translate.compiler"; import { TranslateLoader } from "./translate.loader"; import { InterpolateFunction, TranslateParser } from "./translate.parser"; import { TranslateStore } from "./translate.store"; import * as i0 from "@angular/core"; export declare const ISOLATE_TRANSLATE_SERVICE: InjectionToken<string>; export declare const USE_DEFAULT_LANG: InjectionToken<string>; export declare const DEFAULT_LANGUAGE: InjectionToken<string>; export declare const USE_EXTEND: InjectionToken<string>; export type InterpolationParameters = Record<string, any>; export type Translation = string | Translation[] | TranslationObject | any; export interface TranslationObject { [key: string]: Translation; } export type InterpolatableTranslation = string | InterpolatableTranslation[] | InterpolateFunction | InterpolatableTranslationObject | any; export interface InterpolatableTranslationObject { [key: string]: InterpolatableTranslation; } export type Language = string; export interface TranslationChangeEvent { translations: InterpolatableTranslationObject; lang: string; } export interface LangChangeEvent { lang: string; translations: InterpolatableTranslationObject; } export interface DefaultLangChangeEvent { lang: string; translations: InterpolatableTranslationObject; } export declare class TranslateService { store: TranslateStore; currentLoader: TranslateLoader; compiler: TranslateCompiler; parser: TranslateParser; missingTranslationHandler: MissingTranslationHandler; private useDefaultLang; private extend; private loadingTranslations; private pending; private _translationRequests; private lastUseLanguage; /** * An EventEmitter to listen to translation change events * onTranslationChange.subscribe((params: TranslationChangeEvent) => { * // do something * }); */ get onTranslationChange(): EventEmitter<TranslationChangeEvent>; /** * An EventEmitter to listen to lang change events * onLangChange.subscribe((params: LangChangeEvent) => { * // do something * }); */ get onLangChange(): EventEmitter<LangChangeEvent>; /** * An EventEmitter to listen to default lang change events * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => { * // do something * }); */ get onDefaultLangChange(): EventEmitter<DefaultLangChangeEvent>; /** * The default lang to fallback when translations are missing on the current lang */ get defaultLang(): string; set defaultLang(defaultLang: string); /** * The lang currently used */ get currentLang(): string; set currentLang(currentLang: string); /** * an array of langs */ get langs(): string[]; set langs(langs: string[]); /** * a list of translations per lang */ get translations(): Record<string, InterpolatableTranslationObject>; set translations(translations: Record<string, InterpolatableTranslationObject>); /** * * @param store an instance of the store (that is supposed to be unique) * @param currentLoader An instance of the loader currently used * @param compiler An instance of the compiler currently used * @param parser An instance of the parser currently used * @param missingTranslationHandler A handler for missing translations. * @param useDefaultLang whether we should use default language translation when current language translation is missing. * @param isolate whether this service should use the store or not * @param extend To make a child module extend (and use) translations from parent modules. * @param defaultLanguage Set the default language using configuration */ constructor(store: TranslateStore, currentLoader: TranslateLoader, compiler: TranslateCompiler, parser: TranslateParser, missingTranslationHandler: MissingTranslationHandler, useDefaultLang: boolean | undefined, isolate: boolean | undefined, extend: boolean | undefined, defaultLanguage: string); /** * Sets the default language to use as a fallback */ setDefaultLang(lang: string): void; /** * Gets the default language used */ getDefaultLang(): string; /** * Changes the lang currently used */ use(lang: string): Observable<InterpolatableTranslationObject>; /** * Changes the current lang */ private changeLang; /** * Retrieves the given translations */ private retrieveTranslations; /** * Gets an object of translations for a given language with the current loader * and passes it through the compiler * * @deprecated This function is meant for internal use. There should * be no reason to use outside this service. You can plug into this * functionality by using a customer TranslateLoader or TranslateCompiler. * To load a new language use setDefaultLang() and/or use() */ getTranslation(lang: string): Observable<InterpolatableTranslationObject>; private loadAndCompileTranslations; /** * Manually sets an object of translations for a given language * after passing it through the compiler */ setTranslation(lang: string, translations: InterpolatableTranslationObject, shouldMerge?: boolean): void; /** * Returns an array of currently available langs */ getLangs(): string[]; /** * Add available languages */ addLangs(langs: string[]): void; /** * Update the list of available languages */ private updateLangs; private getParsedResultForKey; private runInterpolation; /** * Returns the parsed result of the translations */ getParsedResult(translations: InterpolatableTranslation, key: string | string[], interpolateParams?: InterpolationParameters): Translation | TranslationObject | Observable<Translation | TranslationObject>; /** * Gets the translated value of a key (or an array of keys) * @returns the translated key, or an object of translated keys */ get(key: string | string[], interpolateParams?: InterpolationParameters): Observable<Translation | TranslationObject>; /** * Returns a stream of translated values of a key (or an array of keys) which updates * whenever the translation changes. * @returns A stream of the translated key, or an object of translated keys */ getStreamOnTranslationChange(key: string | string[], interpolateParams?: InterpolationParameters): Observable<Translation | TranslationObject>; /** * Returns a stream of translated values of a key (or an array of keys) which updates * whenever the language changes. * @returns A stream of the translated key, or an object of translated keys */ stream(key: string | string[], interpolateParams?: InterpolationParameters): Observable<Translation | TranslationObject>; /** * Returns a translation instantly from the internal state of loaded translation. * All rules regarding the current language, the preferred language of even fallback languages * will be used except any promise handling. */ instant(key: string | string[], interpolateParams?: InterpolationParameters): Translation | TranslationObject; /** * Sets the translated value of a key, after compiling it */ set(key: string, translation: Translation, lang?: string): void; /** * Changes the default lang */ private changeDefaultLang; /** * Allows to reload the lang file from the file */ reloadLang(lang: string): Observable<InterpolatableTranslationObject>; /** * Deletes inner translation */ resetLang(lang: string): void; /** * Returns the language code name from the browser, e.g. "de" */ getBrowserLang(): string | undefined; /** * Returns the culture language code name from the browser, e.g. "de-DE" */ getBrowserCultureLang(): string | undefined; static ɵfac: i0.ɵɵFactoryDeclaration<TranslateService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<TranslateService>; }