@edugouvfr/ngx-dsfr
Version:
NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).
41 lines • 4.95 kB
JavaScript
import { Injectable } from '@angular/core';
import { jsonPath2Value } from '../utils';
import * as i0 from "@angular/core";
import * as i1 from "./logger.service";
import * as i2 from "./lang.service";
/**
* La méthode i18n.t() de ce service retourne une traduction en fonction de la langue courante.
* La traduction est recherchée dans la propriété `messages`.
*/
export class BaseI18nService {
constructor(logger, langService) {
this.logger = logger;
this.langService = langService;
/**
* Messages (JSON) de la langue courante.
*/
this.messages = {};
langService.subject.subscribe((code) => this.onLangChange(code));
}
/**
* Retourne la valeur de traduction dans `messages` partir d'un path json.
* @param jsonPath le chemin dans le fichier de messages json de la langue courante
* @return le message et si non trouvé le path json
*/
t(jsonPath) {
let message = jsonPath2Value(this.messages, jsonPath);
if (!message) {
this.logger.warn(`Aucune traduction '${this.langService.lang}' pour '${jsonPath}'`);
message = jsonPath;
}
return message;
}
onLangChange(code) { }
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseI18nService, deps: [{ token: i1.LoggerService }, { token: i2.LangService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseI18nService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseI18nService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.LangService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pMThuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Jhc2UtaTE4bi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUkxQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQU0xQixZQUNZLE1BQXFCLEVBQ3ZCLFdBQXdCO1FBRHRCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFQbEM7O1dBRUc7UUFDSCxhQUFRLEdBQU8sRUFBRSxDQUFDO1FBTWhCLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxDQUFDLENBQUMsUUFBZ0I7UUFDaEIsSUFBSSxPQUFPLEdBQVcsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ3BGLE9BQU8sR0FBRyxRQUFRLENBQUM7U0FDcEI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsWUFBWSxDQUFDLElBQVksSUFBRyxDQUFDOytHQTNCNUIsZUFBZTttSEFBZixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsganNvblBhdGgyVmFsdWUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBMYW5nU2VydmljZSB9IGZyb20gJy4vbGFuZy5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBMYSBtw6l0aG9kZSBpMThuLnQoKSBkZSBjZSBzZXJ2aWNlIHJldG91cm5lIHVuZSB0cmFkdWN0aW9uIGVuIGZvbmN0aW9uIGRlIGxhIGxhbmd1ZSBjb3VyYW50ZS5cbiAqIExhIHRyYWR1Y3Rpb24gZXN0IHJlY2hlcmNow6llIGRhbnMgbGEgcHJvcHJpw6l0w6kgYG1lc3NhZ2VzYC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBCYXNlSTE4blNlcnZpY2Uge1xuICAvKipcbiAgICogTWVzc2FnZXMgKEpTT04pIGRlIGxhIGxhbmd1ZSBjb3VyYW50ZS5cbiAgICovXG4gIG1lc3NhZ2VzOiB7fSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2UsXG4gICkge1xuICAgIGxhbmdTZXJ2aWNlLnN1YmplY3Quc3Vic2NyaWJlKChjb2RlKSA9PiB0aGlzLm9uTGFuZ0NoYW5nZShjb2RlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3VybmUgbGEgdmFsZXVyIGRlIHRyYWR1Y3Rpb24gZGFucyBgbWVzc2FnZXNgIHBhcnRpciBkJ3VuIHBhdGgganNvbi5cbiAgICogQHBhcmFtIGpzb25QYXRoIGxlIGNoZW1pbiBkYW5zIGxlIGZpY2hpZXIgZGUgbWVzc2FnZXMganNvbiBkZSBsYSBsYW5ndWUgY291cmFudGVcbiAgICogQHJldHVybiBsZSBtZXNzYWdlIGV0IHNpIG5vbiB0cm91dsOpIGxlIHBhdGgganNvblxuICAgKi9cbiAgdChqc29uUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0ganNvblBhdGgyVmFsdWUodGhpcy5tZXNzYWdlcywganNvblBhdGgpO1xuICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgQXVjdW5lIHRyYWR1Y3Rpb24gJyR7dGhpcy5sYW5nU2VydmljZS5sYW5nfScgcG91ciAnJHtqc29uUGF0aH0nYCk7XG4gICAgICBtZXNzYWdlID0ganNvblBhdGg7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTGFuZ0NoYW5nZShjb2RlOiBzdHJpbmcpIHt9XG59XG4iXX0=