@anglr/translate-extensions
Version:
Angular module - external translation loader for ngx-translate
24 lines • 1.16 kB
JavaScript
import { isPresent } from '@jscrpt/common';
/**
* Performs translation of key(s) and calls callback, also listens for language changes
* @param key - Key or array of keys to be translated
* @param translateService - Translation service used for translation
* @param translateCallback - Callback with translated key or keys
* @param interpolateParamsGet - Callback used for obtaining interpolation object or objects (use array if key is array)
*/
export function translateString(key, translateService, translateCallback, interpolateParamsGet) {
function translate(key) {
const interpolateParams = interpolateParamsGet();
if (Array.isArray(key)) {
return key.map((keyValue, index) => translateService.instant(keyValue, (isPresent(interpolateParams) && Array.isArray(interpolateParams)) ? interpolateParams[index] : undefined));
}
else {
return translateService.instant(key, interpolateParams);
}
}
translateCallback(translate(key));
return translateService.onLangChange.subscribe(() => {
translateCallback(translate(key));
});
}
//# sourceMappingURL=utils.js.map