@jsverse/transloco
Version:
The internationalization (i18n) library for Angular
96 lines • 11.5 kB
JavaScript
import { makeEnvironmentProviders, } from '@angular/core';
import { TRANSLOCO_LOADER } from './transloco.loader';
import { TRANSLOCO_CONFIG, translocoConfig, } from './transloco.config';
import { TRANSLOCO_SCOPE } from './transloco-scope';
import { DefaultTranspiler, TRANSLOCO_TRANSPILER, } from './transloco.transpiler';
import { DefaultMissingHandler, TRANSLOCO_MISSING_HANDLER, } from './transloco-missing-handler';
import { DefaultInterceptor, TRANSLOCO_INTERCEPTOR, } from './transloco.interceptor';
import { DefaultFallbackStrategy, TRANSLOCO_FALLBACK_STRATEGY, } from './transloco-fallback-strategy';
import { TRANSLOCO_LOADING_TEMPLATE } from './transloco-loading-template';
import { TRANSLOCO_LANG } from './transloco-lang';
export function provideTransloco(options) {
const providers = [
provideTranslocoTranspiler(DefaultTranspiler),
provideTranslocoMissingHandler(DefaultMissingHandler),
provideTranslocoInterceptor(DefaultInterceptor),
provideTranslocoFallbackStrategy(DefaultFallbackStrategy),
];
if (options.config) {
providers.push(provideTranslocoConfig(options.config));
}
if (options.loader) {
providers.push(provideTranslocoLoader(options.loader));
}
return providers;
}
export function provideTranslocoConfig(config) {
return makeEnvironmentProviders([
{
provide: TRANSLOCO_CONFIG,
useValue: translocoConfig(config),
},
]);
}
export function provideTranslocoLoader(loader) {
return makeEnvironmentProviders([
{ provide: TRANSLOCO_LOADER, useClass: loader },
]);
}
/**
* See {@link ./SCOPE_MULTI_PROVIDER_INVESTIGATION.md} for the history and
* planned changes around the `multi: true` behavior on TRANSLOCO_SCOPE.
*/
export function provideTranslocoScope(...scopes) {
return scopes.map((scope) => ({
provide: TRANSLOCO_SCOPE,
useValue: scope,
multi: true,
}));
}
export function provideTranslocoLoadingTpl(content) {
return {
provide: TRANSLOCO_LOADING_TEMPLATE,
useValue: content,
};
}
export function provideTranslocoTranspiler(transpiler) {
return makeEnvironmentProviders([
{
provide: TRANSLOCO_TRANSPILER,
useClass: transpiler,
deps: [TRANSLOCO_CONFIG],
},
]);
}
export function provideTranslocoFallbackStrategy(strategy) {
return makeEnvironmentProviders([
{
provide: TRANSLOCO_FALLBACK_STRATEGY,
useClass: strategy,
deps: [TRANSLOCO_CONFIG],
},
]);
}
export function provideTranslocoMissingHandler(handler) {
return makeEnvironmentProviders([
{
provide: TRANSLOCO_MISSING_HANDLER,
useClass: handler,
},
]);
}
export function provideTranslocoInterceptor(interceptor) {
return makeEnvironmentProviders([
{
provide: TRANSLOCO_INTERCEPTOR,
useClass: interceptor,
},
]);
}
export function provideTranslocoLang(lang) {
return {
provide: TRANSLOCO_LANG,
useValue: lang,
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvL3NyYy9saWIvdHJhbnNsb2NvLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsd0JBQXdCLEdBR3pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixvQkFBb0IsR0FFckIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHlCQUF5QixHQUUxQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIscUJBQXFCLEdBRXRCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwyQkFBMkIsR0FFNUIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPbEQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQXlCO0lBQ3hELE1BQU0sU0FBUyxHQUEyQjtRQUN4QywwQkFBMEIsQ0FBQyxpQkFBaUIsQ0FBQztRQUM3Qyw4QkFBOEIsQ0FBQyxxQkFBcUIsQ0FBQztRQUNyRCwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQztRQUMvQyxnQ0FBZ0MsQ0FBQyx1QkFBdUIsQ0FBQztLQUMxRCxDQUFDO0lBRUYsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkIsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkIsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUE4QjtJQUNuRSxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztTQUNsQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsTUFBNkI7SUFDbEUsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO0tBQ2hELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsR0FBRyxNQUF3QjtJQUMvRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsT0FBTyxFQUFFLGVBQWU7UUFDeEIsUUFBUSxFQUFFLEtBQUs7UUFDZixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxPQUFnQjtJQUN6RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLDBCQUEwQjtRQUNuQyxRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsVUFBcUM7SUFFckMsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QjtZQUNFLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFLFVBQVU7WUFDcEIsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7U0FDekI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxRQUF5QztJQUV6QyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsOEJBQThCLENBQzVDLE9BQXNDO0lBRXRDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUI7WUFDRSxPQUFPLEVBQUUseUJBQXlCO1lBQ2xDLFFBQVEsRUFBRSxPQUFPO1NBQ2xCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsV0FBdUM7SUFFdkMsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QjtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLFdBQVc7U0FDdEI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsT0FBTztRQUNMLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICBQcm92aWRlcixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRSQU5TTE9DT19MT0FERVIsIFRyYW5zbG9jb0xvYWRlciB9IGZyb20gJy4vdHJhbnNsb2NvLmxvYWRlcic7XG5pbXBvcnQge1xuICBQYXJ0aWFsVHJhbnNsb2NvQ29uZmlnLFxuICBUUkFOU0xPQ09fQ09ORklHLFxuICB0cmFuc2xvY29Db25maWcsXG59IGZyb20gJy4vdHJhbnNsb2NvLmNvbmZpZyc7XG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUgfSBmcm9tICcuL3RyYW5zbG9jby1zY29wZSc7XG5pbXBvcnQgeyBUcmFuc2xvY29TY29wZSB9IGZyb20gJy4vdHJhbnNsb2NvLnR5cGVzJztcbmltcG9ydCB7XG4gIERlZmF1bHRUcmFuc3BpbGVyLFxuICBUUkFOU0xPQ09fVFJBTlNQSUxFUixcbiAgVHJhbnNsb2NvVHJhbnNwaWxlcixcbn0gZnJvbSAnLi90cmFuc2xvY28udHJhbnNwaWxlcic7XG5pbXBvcnQge1xuICBEZWZhdWx0TWlzc2luZ0hhbmRsZXIsXG4gIFRSQU5TTE9DT19NSVNTSU5HX0hBTkRMRVIsXG4gIFRyYW5zbG9jb01pc3NpbmdIYW5kbGVyLFxufSBmcm9tICcuL3RyYW5zbG9jby1taXNzaW5nLWhhbmRsZXInO1xuaW1wb3J0IHtcbiAgRGVmYXVsdEludGVyY2VwdG9yLFxuICBUUkFOU0xPQ09fSU5URVJDRVBUT1IsXG4gIFRyYW5zbG9jb0ludGVyY2VwdG9yLFxufSBmcm9tICcuL3RyYW5zbG9jby5pbnRlcmNlcHRvcic7XG5pbXBvcnQge1xuICBEZWZhdWx0RmFsbGJhY2tTdHJhdGVneSxcbiAgVFJBTlNMT0NPX0ZBTExCQUNLX1NUUkFURUdZLFxuICBUcmFuc2xvY29GYWxsYmFja1N0cmF0ZWd5LFxufSBmcm9tICcuL3RyYW5zbG9jby1mYWxsYmFjay1zdHJhdGVneSc7XG5pbXBvcnQgeyBUUkFOU0xPQ09fTE9BRElOR19URU1QTEFURSB9IGZyb20gJy4vdHJhbnNsb2NvLWxvYWRpbmctdGVtcGxhdGUnO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gJy4vdGVtcGxhdGUtaGFuZGxlcic7XG5pbXBvcnQgeyBUUkFOU0xPQ09fTEFORyB9IGZyb20gJy4vdHJhbnNsb2NvLWxhbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbG9jb09wdGlvbnMge1xuICBjb25maWc6IFBhcnRpYWxUcmFuc2xvY29Db25maWc7XG4gIGxvYWRlcj86IFR5cGU8VHJhbnNsb2NvTG9hZGVyPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUcmFuc2xvY28ob3B0aW9uczogVHJhbnNsb2NvT3B0aW9ucykge1xuICBjb25zdCBwcm92aWRlcnM6IEVudmlyb25tZW50UHJvdmlkZXJzW10gPSBbXG4gICAgcHJvdmlkZVRyYW5zbG9jb1RyYW5zcGlsZXIoRGVmYXVsdFRyYW5zcGlsZXIpLFxuICAgIHByb3ZpZGVUcmFuc2xvY29NaXNzaW5nSGFuZGxlcihEZWZhdWx0TWlzc2luZ0hhbmRsZXIpLFxuICAgIHByb3ZpZGVUcmFuc2xvY29JbnRlcmNlcHRvcihEZWZhdWx0SW50ZXJjZXB0b3IpLFxuICAgIHByb3ZpZGVUcmFuc2xvY29GYWxsYmFja1N0cmF0ZWd5KERlZmF1bHRGYWxsYmFja1N0cmF0ZWd5KSxcbiAgXTtcblxuICBpZiAob3B0aW9ucy5jb25maWcpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlVHJhbnNsb2NvQ29uZmlnKG9wdGlvbnMuY29uZmlnKSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5sb2FkZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlVHJhbnNsb2NvTG9hZGVyKG9wdGlvbnMubG9hZGVyKSk7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVRyYW5zbG9jb0NvbmZpZyhjb25maWc6IFBhcnRpYWxUcmFuc2xvY29Db25maWcpIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAge1xuICAgICAgcHJvdmlkZTogVFJBTlNMT0NPX0NPTkZJRyxcbiAgICAgIHVzZVZhbHVlOiB0cmFuc2xvY29Db25maWcoY29uZmlnKSxcbiAgICB9LFxuICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUcmFuc2xvY29Mb2FkZXIobG9hZGVyOiBUeXBlPFRyYW5zbG9jb0xvYWRlcj4pIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgeyBwcm92aWRlOiBUUkFOU0xPQ09fTE9BREVSLCB1c2VDbGFzczogbG9hZGVyIH0sXG4gIF0pO1xufVxuXG4vKipcbiAqIFNlZSB7QGxpbmsgLi9TQ09QRV9NVUxUSV9QUk9WSURFUl9JTlZFU1RJR0FUSU9OLm1kfSBmb3IgdGhlIGhpc3RvcnkgYW5kXG4gKiBwbGFubmVkIGNoYW5nZXMgYXJvdW5kIHRoZSBgbXVsdGk6IHRydWVgIGJlaGF2aW9yIG9uIFRSQU5TTE9DT19TQ09QRS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUcmFuc2xvY29TY29wZSguLi5zY29wZXM6IFRyYW5zbG9jb1Njb3BlW10pIHtcbiAgcmV0dXJuIHNjb3Blcy5tYXAoKHNjb3BlKSA9PiAoe1xuICAgIHByb3ZpZGU6IFRSQU5TTE9DT19TQ09QRSxcbiAgICB1c2VWYWx1ZTogc2NvcGUsXG4gICAgbXVsdGk6IHRydWUsXG4gIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUcmFuc2xvY29Mb2FkaW5nVHBsKGNvbnRlbnQ6IENvbnRlbnQpIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBUUkFOU0xPQ09fTE9BRElOR19URU1QTEFURSxcbiAgICB1c2VWYWx1ZTogY29udGVudCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUcmFuc2xvY29UcmFuc3BpbGVyKFxuICB0cmFuc3BpbGVyOiBUeXBlPFRyYW5zbG9jb1RyYW5zcGlsZXI+LFxuKSB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRSQU5TTE9DT19UUkFOU1BJTEVSLFxuICAgICAgdXNlQ2xhc3M6IHRyYW5zcGlsZXIsXG4gICAgICBkZXBzOiBbVFJBTlNMT0NPX0NPTkZJR10sXG4gICAgfSxcbiAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVHJhbnNsb2NvRmFsbGJhY2tTdHJhdGVneShcbiAgc3RyYXRlZ3k6IFR5cGU8VHJhbnNsb2NvRmFsbGJhY2tTdHJhdGVneT4sXG4pIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAge1xuICAgICAgcHJvdmlkZTogVFJBTlNMT0NPX0ZBTExCQUNLX1NUUkFURUdZLFxuICAgICAgdXNlQ2xhc3M6IHN0cmF0ZWd5LFxuICAgICAgZGVwczogW1RSQU5TTE9DT19DT05GSUddLFxuICAgIH0sXG4gIF0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVRyYW5zbG9jb01pc3NpbmdIYW5kbGVyKFxuICBoYW5kbGVyOiBUeXBlPFRyYW5zbG9jb01pc3NpbmdIYW5kbGVyPixcbikge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUUkFOU0xPQ09fTUlTU0lOR19IQU5ETEVSLFxuICAgICAgdXNlQ2xhc3M6IGhhbmRsZXIsXG4gICAgfSxcbiAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVHJhbnNsb2NvSW50ZXJjZXB0b3IoXG4gIGludGVyY2VwdG9yOiBUeXBlPFRyYW5zbG9jb0ludGVyY2VwdG9yPixcbikge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUUkFOU0xPQ09fSU5URVJDRVBUT1IsXG4gICAgICB1c2VDbGFzczogaW50ZXJjZXB0b3IsXG4gICAgfSxcbiAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVHJhbnNsb2NvTGFuZyhsYW5nOiBzdHJpbmcpOiBQcm92aWRlciB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogVFJBTlNMT0NPX0xBTkcsXG4gICAgdXNlVmFsdWU6IGxhbmcsXG4gIH07XG59XG4iXX0=