1 | import { EventEmitter, InjectionToken } from "@angular/core";
|
2 | import { Observable } from "rxjs/Observable";
|
3 | import "rxjs/add/observable/of";
|
4 | import "rxjs/add/operator/concat";
|
5 | import "rxjs/add/operator/share";
|
6 | import "rxjs/add/operator/map";
|
7 | import "rxjs/add/operator/merge";
|
8 | import "rxjs/add/operator/switchMap";
|
9 | import "rxjs/add/operator/toArray";
|
10 | import "rxjs/add/operator/take";
|
11 | import { TranslateStore } from "./translate.store";
|
12 | import { TranslateLoader } from "./translate.loader";
|
13 | import { TranslateCompiler } from "./translate.compiler";
|
14 | import { MissingTranslationHandler } from "./missing-translation-handler";
|
15 | import { TranslateParser } from "./translate.parser";
|
16 | export declare const USE_STORE: InjectionToken<string>;
|
17 | export declare const USE_DEFAULT_LANG: InjectionToken<string>;
|
18 | export interface TranslationChangeEvent {
|
19 | translations: any;
|
20 | lang: string;
|
21 | }
|
22 | export interface LangChangeEvent {
|
23 | lang: string;
|
24 | translations: any;
|
25 | }
|
26 | export interface DefaultLangChangeEvent {
|
27 | lang: string;
|
28 | translations: any;
|
29 | }
|
30 | export 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 | }
|