UNPKG

7.36 kBTypeScriptView Raw
1import { EventEmitter, InjectionToken } from "@angular/core";
2import { Observable } from "rxjs/Observable";
3import "rxjs/add/observable/of";
4import "rxjs/add/operator/concat";
5import "rxjs/add/operator/share";
6import "rxjs/add/operator/map";
7import "rxjs/add/operator/merge";
8import "rxjs/add/operator/switchMap";
9import "rxjs/add/operator/toArray";
10import "rxjs/add/operator/take";
11import { TranslateStore } from "./translate.store";
12import { TranslateLoader } from "./translate.loader";
13import { TranslateCompiler } from "./translate.compiler";
14import { MissingTranslationHandler } from "./missing-translation-handler";
15import { TranslateParser } from "./translate.parser";
16export declare const USE_STORE: InjectionToken<string>;
17export declare const USE_DEFAULT_LANG: InjectionToken<string>;
18export interface TranslationChangeEvent {
19 translations: any;
20 lang: string;
21}
22export interface LangChangeEvent {
23 lang: string;
24 translations: any;
25}
26export interface DefaultLangChangeEvent {
27 lang: string;
28 translations: any;
29}
30export declare class TranslateService {
31 store: TranslateStore;
32 currentLoader: TranslateLoader;
33 compiler: TranslateCompiler;
34 parser: TranslateParser;
35 missingTranslationHandler: MissingTranslationHandler;
36 private useDefaultLang;
37 private isolate;
38 private loadingTranslations;
39 private pending;
40 private _onTranslationChange;
41 private _onLangChange;
42 private _onDefaultLangChange;
43 private _defaultLang;
44 private _currentLang;
45 private _langs;
46 private _translations;
47 private _translationRequests;
48 /**
49 * An EventEmitter to listen to translation change events
50 * onTranslationChange.subscribe((params: TranslationChangeEvent) => {
51 * // do something
52 * });
53 * @type {EventEmitter<TranslationChangeEvent>}
54 */
55 readonly onTranslationChange: EventEmitter<TranslationChangeEvent>;
56 /**
57 * An EventEmitter to listen to lang change events
58 * onLangChange.subscribe((params: LangChangeEvent) => {
59 * // do something
60 * });
61 * @type {EventEmitter<LangChangeEvent>}
62 */
63 readonly onLangChange: EventEmitter<LangChangeEvent>;
64 /**
65 * An EventEmitter to listen to default lang change events
66 * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {
67 * // do something
68 * });
69 * @type {EventEmitter<DefaultLangChangeEvent>}
70 */
71 readonly onDefaultLangChange: EventEmitter<DefaultLangChangeEvent>;
72 /**
73 * The default lang to fallback when translations are missing on the current lang
74 */
75 defaultLang: string;
76 /**
77 * The lang currently used
78 * @type {string}
79 */
80 currentLang: string;
81 /**
82 * an array of langs
83 * @type {Array}
84 */
85 langs: string[];
86 /**
87 * a list of translations per lang
88 * @type {{}}
89 */
90 translations: any;
91 /**
92 *
93 * @param store an instance of the store (that is supposed to be unique)
94 * @param currentLoader An instance of the loader currently used
95 * @param compiler An instance of the compiler currently used
96 * @param parser An instance of the parser currently used
97 * @param missingTranslationHandler A handler for missing translations.
98 * @param isolate whether this service should use the store or not
99 * @param useDefaultLang whether we should use default language translation when current language translation is missing.
100 */
101 constructor(store: TranslateStore, currentLoader: TranslateLoader, compiler: TranslateCompiler, parser: TranslateParser, missingTranslationHandler: MissingTranslationHandler, useDefaultLang?: boolean, isolate?: boolean);
102 /**
103 * Sets the default language to use as a fallback
104 * @param lang
105 */
106 setDefaultLang(lang: string): void;
107 /**
108 * Gets the default language used
109 * @returns string
110 */
111 getDefaultLang(): string;
112 /**
113 * Changes the lang currently used
114 * @param lang
115 * @returns {Observable<*>}
116 */
117 use(lang: string): Observable<any>;
118 /**
119 * Retrieves the given translations
120 * @param lang
121 * @returns {Observable<*>}
122 */
123 private retrieveTranslations(lang);
124 /**
125 * Gets an object of translations for a given language with the current loader
126 * and passes it through the compiler
127 * @param lang
128 * @returns {Observable<*>}
129 */
130 getTranslation(lang: string): Observable<any>;
131 /**
132 * Manually sets an object of translations for a given language
133 * after passing it through the compiler
134 * @param lang
135 * @param translations
136 * @param shouldMerge
137 */
138 setTranslation(lang: string, translations: Object, shouldMerge?: boolean): void;
139 /**
140 * Returns an array of currently available langs
141 * @returns {any}
142 */
143 getLangs(): Array<string>;
144 /**
145 * @param langs
146 * Add available langs
147 */
148 addLangs(langs: Array<string>): void;
149 /**
150 * Update the list of available langs
151 */
152 private updateLangs();
153 /**
154 * Returns the parsed result of the translations
155 * @param translations
156 * @param key
157 * @param interpolateParams
158 * @returns {any}
159 */
160 getParsedResult(translations: any, key: any, interpolateParams?: Object): any;
161 /**
162 * Gets the translated value of a key (or an array of keys)
163 * @param key
164 * @param interpolateParams
165 * @returns {any} the translated key, or an object of translated keys
166 */
167 get(key: string | Array<string>, interpolateParams?: Object): Observable<string | any>;
168 /**
169 * Returns a stream of translated values of a key (or an array of keys) which updates
170 * whenever the language changes.
171 * @param key
172 * @param interpolateParams
173 * @returns {any} A stream of the translated key, or an object of translated keys
174 */
175 stream(key: string | Array<string>, interpolateParams?: Object): Observable<string | any>;
176 /**
177 * Returns a translation instantly from the internal state of loaded translation.
178 * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.
179 * @param key
180 * @param interpolateParams
181 * @returns {string}
182 */
183 instant(key: string | Array<string>, interpolateParams?: Object): string | any;
184 /**
185 * Sets the translated value of a key, after compiling it
186 * @param key
187 * @param value
188 * @param lang
189 */
190 set(key: string, value: string, lang?: string): void;
191 /**
192 * Changes the current lang
193 * @param lang
194 */
195 private changeLang(lang);
196 /**
197 * Changes the default lang
198 * @param lang
199 */
200 private changeDefaultLang(lang);
201 /**
202 * Allows to reload the lang file from the file
203 * @param lang
204 * @returns {Observable<any>}
205 */
206 reloadLang(lang: string): Observable<any>;
207 /**
208 * Deletes inner translation
209 * @param lang
210 */
211 resetLang(lang: string): void;
212 /**
213 * Returns the language code name from the browser, e.g. "de"
214 *
215 * @returns string
216 */
217 getBrowserLang(): string;
218 /**
219 * Returns the culture language code name from the browser, e.g. "de-DE"
220 *
221 * @returns string
222 */
223 getBrowserCultureLang(): string;
224}