import angular from 'angular' import _ from 'lodash' import localizationStrings from '../localization/index.strings.json' export interface TranslateFactory { instant: (KEY: string, options?: Record) => string } angular.module('app').factory('translateFactory', [ '$injector', '$log', function translateFactory( $injector: ng.auto.IInjectorService, $log: ng.ILogService, ) { let $translate: ng.translate.ITranslateService try { $translate = $injector.get('$translate', 'translateFactory') } catch (error) { $log.info('angular-translate is not available') } const defaultText = { JSUI: localizationStrings } function instant(KEY, options?: { [key: string]: string }) { if ($translate) { return $translate.instant(KEY, options) } let text: string = _.get(defaultText, KEY) _.forIn(options, (value, key) => { text = text.replace(`{{ ${key} }}`, value) }) return text } return { instant } }])