common-ui/src/lib/translations/iqser-translate.module.ts

37 lines
1.3 KiB
TypeScript

import { ModuleWithProviders, NgModule } from '@angular/core';
import { TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
import { pruningTranslationLoaderFactory } from './http-loader-factory';
import { IqserTranslateModuleOptions } from './iqser-translate-module-options';
const translateLoaderToken = 'translateLoader';
@NgModule({
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useExisting: translateLoaderToken,
},
compiler: {
provide: TranslateCompiler,
useClass: TranslateMessageFormatCompiler,
},
}),
],
exports: [TranslateModule],
})
export class IqserTranslateModule {
static forRoot(options?: IqserTranslateModuleOptions): ModuleWithProviders<IqserTranslateModule> {
return {
ngModule: IqserTranslateModule,
providers: [
{
provide: translateLoaderToken,
useFactory: () => pruningTranslationLoaderFactory(options?.pathPrefix ?? '/assets/i18n/'),
},
],
};
}
}