angular-l10n
Version:
An Angular library to translate messages, dates and numbers
111 lines • 3.87 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { NgModule } from '@angular/core';
import { L10nLoader, LocaleLoader, TranslationLoader } from '../services/l10n-loader';
import { LocaleService } from '../services/locale.service';
import { LocaleStorage, L10nStorage } from '../services/locale-storage';
import { TranslationService } from '../services/translation.service';
import { TranslationProvider, L10nTranslationProvider } from '../services/translation-provider';
import { TranslationHandler, L10nTranslationHandler } from '../services/translation-handler';
import { InjectorRef } from '../models/injector-ref';
import { Logger } from '../models/logger';
import { Caching } from '../models/caching';
import { L10N_CONFIG, l10nConfigFactory } from '../models/l10n-config';
import { TranslatePipe } from '../pipes/translate.pipe';
import { TranslateDirective } from '../directives/translate.directive';
/**
* @param {?} l10nConfig
* @param {?} token
* @return {?}
*/
export function provideRoot(l10nConfig, token) {
return [
InjectorRef,
Logger,
Caching,
{ provide: L10N_CONFIG, useValue: l10nConfigFactory(l10nConfig) },
LocaleService,
{ provide: LocaleStorage, useClass: token.localeStorage || L10nStorage },
TranslationService,
{ provide: TranslationProvider, useClass: token.translationProvider || L10nTranslationProvider },
{ provide: TranslationHandler, useClass: token.translationHandler || L10nTranslationHandler },
{ provide: L10nLoader, useClass: LocaleLoader }
];
}
/**
* @param {?} l10nConfig
* @param {?} token
* @return {?}
*/
export function provideChild(l10nConfig, token) {
return [
{ provide: L10N_CONFIG, useValue: l10nConfigFactory(l10nConfig) },
TranslationService,
{ provide: TranslationProvider, useClass: token.translationProvider || L10nTranslationProvider },
{ provide: TranslationHandler, useClass: token.translationHandler || L10nTranslationHandler },
{ provide: L10nLoader, useClass: TranslationLoader }
];
}
/**
* Provides dependencies, pipes & directives for translating messages.
*/
export class TranslationModule {
/**
* @param {?} injector
* @param {?} logger
*/
constructor(injector, logger) {
this.injector = injector;
this.logger = logger;
}
/**
* Use in AppModule: new instances of LocaleService & TranslationService.
* @param {?} l10nConfig
* @param {?=} token
* @return {?}
*/
static forRoot(l10nConfig, token = {}) {
return {
ngModule: TranslationModule,
providers: provideRoot(l10nConfig, token)
};
}
/**
* Use in feature modules with lazy loading: new instance of TranslationService.
* @param {?} l10nConfig
* @param {?=} token
* @return {?}
*/
static forChild(l10nConfig, token = {}) {
return {
ngModule: TranslationModule,
providers: provideChild(l10nConfig, token)
};
}
}
TranslationModule.decorators = [
{ type: NgModule, args: [{
declarations: [
TranslatePipe,
TranslateDirective
],
exports: [
TranslatePipe,
TranslateDirective
]
},] }
];
/** @nocollapse */
TranslationModule.ctorParameters = () => [
{ type: InjectorRef },
{ type: Logger }
];
if (false) {
/** @type {?} */
TranslationModule.prototype.injector;
/** @type {?} */
TranslationModule.prototype.logger;
}
//# sourceMappingURL=translation.module.js.map