Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 1x 1x 1x 17x 17x 16x 1x 1x | /**
* Copyright (c) Siemens 2016 - 2026
* SPDX-License-Identifier: MIT
*/
import { EnvironmentProviders, inject, Injector, Provider } from '@angular/core';
import { MissingTranslationHandler } from '@ngx-translate/core';
import { SiTranslateServiceBuilder } from '@siemens/element-translate-ng/translate';
import { SiMissingTranslateService } from './si-missing-translate.service';
import { SiTranslateNgxTServiceBuilder } from './si-translate-ngxt.service-builder';
/**
* This provider configures Element to use ngx-translate for translating {@link TranslatableString}
* It should only be imported once in an application's configuration (typically `app.config.ts`)
*/
export const provideNgxTranslateForElement = (): (EnvironmentProviders | Provider)[] => {
return [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }];
};
/**
* This provider configures default translations for ngx-translate, applying Element's built-in translations.
*
* @example
* ```ts
* providers: [
* provideTranslateService({
* ...,
* missingTranslationHandler: provideMissingTranslationHandlerForElement(),
* }),
* provideNgxTranslateForElement(),
* ...
* ]
* ```
*/
export const provideMissingTranslationHandlerForElement = (
missingTranslationHandlerProvider?: Provider
): Provider => {
return {
provide: MissingTranslationHandler,
useFactory: () => {
if (!missingTranslationHandlerProvider) {
return new SiMissingTranslateService();
}
const injector = Injector.create({
providers: [missingTranslationHandlerProvider],
parent: inject(Injector)
});
return new SiMissingTranslateService(injector.get(MissingTranslationHandler));
}
};
};
|