angular-l10n
Version:
An Angular library to translate messages, dates and numbers
77 lines (76 loc) • 3.14 kB
TypeScript
import { Observable, Subject } from 'rxjs';
import { LocaleService } from './locale.service';
import { TranslationProvider } from './translation-provider';
import { TranslationHandler } from './translation-handler';
import { InjectorRef } from '../models/injector-ref';
import { L10nConfigRef } from "../models/l10n-config";
export interface ITranslationService {
translationError: Subject<any>;
getConfiguration(): L10nConfigRef['translation'];
init(): Promise<any>;
loadTranslation(): Promise<any>;
translationChanged(): Observable<string>;
latestTranslation(): Observable<string>;
translate(keys: string | string[], args?: any, lang?: string): string | any;
translateAsync(keys: string | string[], args?: any, lang?: string): Observable<string | any>;
has(key: string, lang?: string): boolean;
}
/**
* Manages the translation data.
*/
export declare class TranslationService implements ITranslationService {
private configuration;
private locale;
private translationProvider;
private translationHandler;
private injector;
/**
* Fired when the translation data could not been loaded. Returns the error.
*/
translationError: Subject<any>;
private translation;
/**
* The translation data: {language: {key: value}}.
*/
private translationData;
constructor(configuration: L10nConfigRef, locale: LocaleService, translationProvider: TranslationProvider, translationHandler: TranslationHandler, injector: InjectorRef);
getConfiguration(): L10nConfigRef['translation'];
init(): Promise<any>;
/**
* Forces the translation loading for the current language.
*/
loadTranslation(): Promise<any>;
/**
* Fired when the translation data has been loaded. Returns the translation language.
*/
translationChanged(): Observable<string>;
/**
* Fired when the latest 'translationChanged' is emitted. Returns the translation language.
* Used when the reference to the service is not known, as in decorators.
*/
latestTranslation(): Observable<string>;
/**
* Translates a key or an array of keys.
* @param keys The key or an array of keys to be translated
* @param args Optional parameters contained in the key
* @param lang The current language of the service is used by default
* @return The translated value or an object: {key: value}
*/
translate(keys: string | string[], args?: any, lang?: string): string | any;
translateAsync(keys: string | string[], args?: any, lang?: string): Observable<string | any>;
/**
* Checks if a translation exists.
* @param key The key to be tested
* @param lang The current language of the service is used by default
*/
has(key: string, lang?: string): boolean;
private translateKey;
private getValue;
private extractKey;
private translateI18nPlural;
private getTranslation;
private getTranslationAsync;
private addData;
private releaseTranslation;
private handleError;
}