@esfaenza/localizations 19.2.12 → 19.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/esfaenza-localizations.mjs +5 -0
- package/esm2020/lib/core/localization.base.mjs +80 -0
- package/esm2020/lib/core/localization.persistor.mjs +103 -0
- package/esm2020/lib/locale-persistor/LocalStorageCachePersistor.mjs +25 -0
- package/esm2020/lib/locale-persistor/LocalePersistor.mjs +8 -0
- package/esm2020/lib/localizations.module.mjs +38 -0
- package/esm2020/lib/localizations.service.mjs +148 -0
- package/esm2020/lib/models/BaseLocalizationTokens.mjs +14 -0
- package/esm2020/lib/models/ItemLocalization.mjs +18 -0
- package/esm2020/lib/models/LocaleDefinitions.mjs +26 -0
- package/esm2020/lib/models/LocaleObject.mjs +20 -0
- package/esm2020/lib/models/LocalizationMissingPolicy.mjs +12 -0
- package/esm2020/lib/models/LocalizationModuleConfig.mjs +6 -0
- package/esm2020/lib/models/SpecializedLocalization.mjs +16 -0
- package/esm2020/lib/pipes/localize.pipe.mjs +42 -0
- package/esm2020/lib/tokens.mjs +8 -0
- package/esm2020/public-api.mjs +12 -0
- package/fesm2015/esfaenza-localizations.mjs +543 -0
- package/fesm2015/esfaenza-localizations.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/esfaenza-localizations.mjs +502 -498
- package/fesm2020/esfaenza-localizations.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/core/localization.base.d.ts +32 -32
- package/lib/core/localization.persistor.d.ts +57 -57
- package/lib/locale-persistor/LocalStorageCachePersistor.d.ts +11 -11
- package/lib/locale-persistor/LocalePersistor.d.ts +18 -18
- package/lib/localizations.module.d.ts +10 -10
- package/lib/localizations.service.d.ts +74 -74
- package/lib/models/BaseLocalizationTokens.d.ts +12 -12
- package/lib/models/ItemLocalization.d.ts +17 -17
- package/lib/models/LocaleDefinitions.d.ts +20 -20
- package/lib/models/LocaleObject.d.ts +18 -18
- package/lib/models/LocalizationMissingPolicy.d.ts +10 -9
- package/lib/models/LocalizationModuleConfig.d.ts +19 -19
- package/lib/models/SpecializedLocalization.d.ts +14 -14
- package/lib/pipes/localize.pipe.d.ts +28 -28
- package/lib/tokens.d.ts +8 -8
- package/package.json +11 -3
- package/public-api.d.ts +8 -8
- package/fesm2022/esfaenza-localizations.mjs.map +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtbG9jYWxpemF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2VzZmFlbnphLWxvY2FsaXphdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import { LocalizationPersistor } from "./localization.persistor";
|
|
3
|
+
import { BaseLocalizationTokens } from "../models/BaseLocalizationTokens";
|
|
4
|
+
import { take } from "rxjs/operators";
|
|
5
|
+
import { ReplaySubject } from "rxjs";
|
|
6
|
+
import { LOC_LOCALE } from "../tokens";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../locale-persistor/LocalePersistor";
|
|
9
|
+
/**
|
|
10
|
+
* Classe singleton che contiene le traduzioni di base (per evitare di ripeterle in oggi classe di traduzione) e le funzioni base per
|
|
11
|
+
* inserire e leggere traduzioni in/da una cache
|
|
12
|
+
*/
|
|
13
|
+
export class BaseLocalization {
|
|
14
|
+
/**
|
|
15
|
+
* Costruttore. Da qui utilizzando il metodo statico **BaseLocalization.set** si va a popolare la cache delle traduzioni **BaseTranslations**
|
|
16
|
+
*/
|
|
17
|
+
constructor(LocalePersistor, defaultLocale) {
|
|
18
|
+
this.LocalePersistor = LocalePersistor;
|
|
19
|
+
/**
|
|
20
|
+
* Cache di tutte le localizzazioni di base
|
|
21
|
+
*/
|
|
22
|
+
this.LocCache = {};
|
|
23
|
+
/**
|
|
24
|
+
* Locale di riferimento per tutte le traduzioni
|
|
25
|
+
*/
|
|
26
|
+
this.Locale = new ReplaySubject(1);
|
|
27
|
+
// Recupero il locale alla partenza del BaseLocalization in modo, spero di dare tempo all'applicazione di tirarlo su
|
|
28
|
+
this.LocalePersistor.recover().pipe(take(1)).subscribe(async (l) => {
|
|
29
|
+
if (!l) {
|
|
30
|
+
l = defaultLocale;
|
|
31
|
+
this.LocalePersistor.persist(defaultLocale);
|
|
32
|
+
}
|
|
33
|
+
this.Locale.next(l);
|
|
34
|
+
});
|
|
35
|
+
this.Persistor = new LocalizationPersistor(this.LocCache);
|
|
36
|
+
this.Persistor.set("it->en", "Sì", ["Yes"]);
|
|
37
|
+
this.Persistor.set("it->en", "No", ["No"]);
|
|
38
|
+
this.Persistor.set("it->en", "Errore", ["Error"]);
|
|
39
|
+
this.Persistor.set("it->en", "Avviso", ["Warning"]);
|
|
40
|
+
this.Persistor.set("it->en", "Informazione", ["Information"]);
|
|
41
|
+
this.Persistor.set("it->en", "Salva", ["Save"]);
|
|
42
|
+
this.Persistor.set("it->en", "Indietro", ["Back"]);
|
|
43
|
+
this.Persistor.set("it->en", "Da", ["From"]);
|
|
44
|
+
this.Persistor.set("it->en", "A", ["To"]);
|
|
45
|
+
this.Persistor.set("it->en", "Note", ["Notes"]);
|
|
46
|
+
this.Persistor.set("it->en", "Modifica Note", ["Edit Notes"]);
|
|
47
|
+
this.Persistor.set("it->en", "Annulla", ["Cancel"]);
|
|
48
|
+
this.Persistor.set("it->en", "Conferma", ["Confirm"]);
|
|
49
|
+
this.Persistor.set("it->en", "Visualizza", ["View"]);
|
|
50
|
+
this.Persistor.set("it->en", "Elimina", ["Delete"]);
|
|
51
|
+
this.Persistor.set("it->en", "Chiudi", ["Close"]);
|
|
52
|
+
this.Persistor.set("it->en", "Seleziona", ["Select"]);
|
|
53
|
+
this.Persistor.set("it->en", "Elettricità", ["Electricity"]);
|
|
54
|
+
this.Persistor.set("it->en", "Gas", ["Gas"]);
|
|
55
|
+
this.Persistor.set("it->en", "Acqua", ["Water"]);
|
|
56
|
+
this.Persistor.set("it->en", "Questa operazione non può essere annullata", ["This operation cannot be reverted"]);
|
|
57
|
+
this.Persistor.set("it->en", "Nascondi", ["Hide"]);
|
|
58
|
+
// Informazioni sulle date
|
|
59
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDateMonthPosition, "0", ["1"]);
|
|
60
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDisplayDateMonthPosition, "1", ["1"]);
|
|
61
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getLocale, "en-US", ["it-IT"]);
|
|
62
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getSmallDateFormat, "MM/DD/YYYY", ["DD/MM/YYYY"]);
|
|
63
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDefaultDateFormat, "MM/DD/YYYY", ["MM/DD/YYYY"]);
|
|
64
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getSmallDateDisplayFormat, "DD/MM/YYYY", ["DD/MM/YYYY"]);
|
|
65
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateFormat, "MM/DD/YYYY HH:mm:ss", ["DD/MM/YYYY HH:mm:ss"]);
|
|
66
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateDisplayFormat, "DD/MM/YYYY HH:mm:ss", ["DD/MM/YYYY HH:mm:ss"]);
|
|
67
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateFormatNoSeconds, "MM/DD/YYYY HH:mm", ["DD/MM/YYYY HH:mm"]);
|
|
68
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateDisplayFormatNoSeconds, "DD/MM/YYYY HH:mm", ["DD/MM/YYYY HH:mm"]);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
BaseLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseLocalization, deps: [{ token: i1.LocalePersistor }, { token: LOC_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
|
+
BaseLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseLocalization, providedIn: 'root' });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseLocalization, decorators: [{
|
|
74
|
+
type: Injectable,
|
|
75
|
+
args: [{ providedIn: 'root' }]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i1.LocalePersistor }, { type: undefined, decorators: [{
|
|
77
|
+
type: Inject,
|
|
78
|
+
args: [LOC_LOCALE]
|
|
79
|
+
}] }]; } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2NhbGl6YXRpb25zL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24uYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFdkM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQWlCekI7O09BRUc7SUFDSCxZQUFtQixlQUFnQyxFQUFzQixhQUFxQjtRQUEzRSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFsQm5EOztXQUVHO1FBQ0ksYUFBUSxHQUF1QyxFQUFFLENBQUM7UUFPekQ7O1dBRUc7UUFDSSxXQUFNLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBT2hFLG9IQUFvSDtRQUNwSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO1lBQzdELElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQ0osQ0FBQyxHQUFHLGFBQWEsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDL0M7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLDRDQUE0QyxFQUFFLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRW5ELDBCQUEwQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLG9CQUFvQixFQUFFLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLHlCQUF5QixFQUFFLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDbEgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQzVILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUNuSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDL0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLGlDQUFpQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzFJLENBQUM7OzZHQW5FUSxnQkFBZ0IsaURBb0JvQyxVQUFVO2lIQXBCOUQsZ0JBQWdCLGNBREgsTUFBTTsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBcUJ3QixNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJdGVtTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9JdGVtTG9jYWxpemF0aW9uXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblBlcnNpc3RvciB9IGZyb20gXCIuL2xvY2FsaXphdGlvbi5wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHsgQmFzZUxvY2FsaXphdGlvblRva2VucyB9IGZyb20gXCIuLi9tb2RlbHMvQmFzZUxvY2FsaXphdGlvblRva2Vuc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGVQZXJzaXN0b3IgfSBmcm9tIFwiLi4vbG9jYWxlLXBlcnNpc3Rvci9Mb2NhbGVQZXJzaXN0b3JcIjtcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTE9DX0xPQ0FMRSB9IGZyb20gXCIuLi90b2tlbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2Ugc2luZ2xldG9uIGNoZSBjb250aWVuZSBsZSB0cmFkdXppb25pIGRpIGJhc2UgKHBlciBldml0YXJlIGRpIHJpcGV0ZXJsZSBpbiBvZ2dpIGNsYXNzZSBkaSB0cmFkdXppb25lKSBlIGxlIGZ1bnppb25pIGJhc2UgcGVyIFxyXG4gKiBpbnNlcmlyZSBlIGxlZ2dlcmUgdHJhZHV6aW9uaSBpbi9kYSB1bmEgY2FjaGVcclxuICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlTG9jYWxpemF0aW9uIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRpIHR1dHRlIGxlIGxvY2FsaXp6YXppb25pIGRpIGJhc2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIExvY0NhY2hlOiB7IFtpZDogc3RyaW5nXTogSXRlbUxvY2FsaXphdGlvbiB9ID0ge307XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJzaXN0b3IgZGVsbGUgbG9jYWxpenphemlvbmkgcmVsYXRpdm8gYSBxdWVzdGEgY2xhc3NlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBQZXJzaXN0b3I6IExvY2FsaXphdGlvblBlcnNpc3RvcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExvY2FsZSBkaSByaWZlcmltZW50byBwZXIgdHV0dGUgbGUgdHJhZHV6aW9uaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgTG9jYWxlOiBSZXBsYXlTdWJqZWN0PHN0cmluZz4gPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29zdHJ1dHRvcmUuIERhIHF1aSB1dGlsaXp6YW5kbyBpbCBtZXRvZG8gc3RhdGljbyAqKkJhc2VMb2NhbGl6YXRpb24uc2V0Kiogc2kgdmEgYSBwb3BvbGFyZSBsYSBjYWNoZSBkZWxsZSB0cmFkdXppb25pICoqQmFzZVRyYW5zbGF0aW9ucyoqXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBMb2NhbGVQZXJzaXN0b3I6IExvY2FsZVBlcnNpc3RvciwgQEluamVjdChMT0NfTE9DQUxFKSBkZWZhdWx0TG9jYWxlOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgLy8gUmVjdXBlcm8gaWwgbG9jYWxlIGFsbGEgcGFydGVuemEgZGVsIEJhc2VMb2NhbGl6YXRpb24gaW4gbW9kbywgc3Blcm8gZGkgZGFyZSB0ZW1wbyBhbGwnYXBwbGljYXppb25lIGRpIHRpcmFybG8gc3VcclxuICAgICAgICB0aGlzLkxvY2FsZVBlcnNpc3Rvci5yZWNvdmVyKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoYXN5bmMgbCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghbCkge1xyXG4gICAgICAgICAgICAgICAgbCA9IGRlZmF1bHRMb2NhbGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxvY2FsZVBlcnNpc3Rvci5wZXJzaXN0KGRlZmF1bHRMb2NhbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuTG9jYWxlLm5leHQobClcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3IgPSBuZXcgTG9jYWxpemF0aW9uUGVyc2lzdG9yKHRoaXMuTG9jQ2FjaGUpOyBcclxuXHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiU8OsXCIsIFtcIlllc1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTm9cIiwgW1wiTm9cIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkVycm9yZVwiLCBbXCJFcnJvclwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQXZ2aXNvXCIsIFtcIldhcm5pbmdcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkluZm9ybWF6aW9uZVwiLCBbXCJJbmZvcm1hdGlvblwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiU2FsdmFcIiwgW1wiU2F2ZVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiSW5kaWV0cm9cIiwgW1wiQmFja1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiRGFcIiwgW1wiRnJvbVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQVwiLCBbXCJUb1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTm90ZVwiLCBbXCJOb3Rlc1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTW9kaWZpY2EgTm90ZVwiLCBbXCJFZGl0IE5vdGVzXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJBbm51bGxhXCIsIFtcIkNhbmNlbFwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQ29uZmVybWFcIiwgW1wiQ29uZmlybVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiVmlzdWFsaXp6YVwiLCBbXCJWaWV3XCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJFbGltaW5hXCIsIFtcIkRlbGV0ZVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQ2hpdWRpXCIsIFtcIkNsb3NlXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJTZWxlemlvbmFcIiwgW1wiU2VsZWN0XCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJFbGV0dHJpY2l0w6BcIiwgW1wiRWxlY3RyaWNpdHlcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkdhc1wiLCBbXCJHYXNcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkFjcXVhXCIsIFtcIldhdGVyXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJRdWVzdGEgb3BlcmF6aW9uZSBub24gcHXDsiBlc3NlcmUgYW5udWxsYXRhXCIsIFtcIlRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSByZXZlcnRlZFwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTmFzY29uZGlcIiwgW1wiSGlkZVwiXSk7XHJcblxyXG4gICAgICAgIC8vIEluZm9ybWF6aW9uaSBzdWxsZSBkYXRlXHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXREYXRlTW9udGhQb3NpdGlvbiwgXCIwXCIsIFtcIjFcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RGlzcGxheURhdGVNb250aFBvc2l0aW9uLCBcIjFcIiwgW1wiMVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXRMb2NhbGUsIFwiZW4tVVNcIiwgW1wiaXQtSVRcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0U21hbGxEYXRlRm9ybWF0LCBcIk1NL0REL1lZWVlcIiwgW1wiREQvTU0vWVlZWVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXREZWZhdWx0RGF0ZUZvcm1hdCwgXCJNTS9ERC9ZWVlZXCIsIFtcIk1NL0REL1lZWVlcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0U21hbGxEYXRlRGlzcGxheUZvcm1hdCwgXCJERC9NTS9ZWVlZXCIsIFtcIkREL01NL1lZWVlcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RnVsbERhdGVGb3JtYXQsIFwiTU0vREQvWVlZWSBISDptbTpzc1wiLCBbXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdCwgXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCIsIFtcIkREL01NL1lZWVkgSEg6bW06c3NcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RnVsbERhdGVGb3JtYXROb1NlY29uZHMsIFwiTU0vREQvWVlZWSBISDptbVwiLCBbXCJERC9NTS9ZWVlZIEhIOm1tXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdE5vU2Vjb25kcywgXCJERC9NTS9ZWVlZIEhIOm1tXCIsIFtcIkREL01NL1lZWVkgSEg6bW1cIl0pO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { ItemLocalization } from "../models/ItemLocalization";
|
|
2
|
+
import { LocaleDefinitions } from "../models/LocaleDefinitions";
|
|
3
|
+
import { SpecializedLocalization } from "../models/SpecializedLocalization";
|
|
4
|
+
export class LocalizationPersistor {
|
|
5
|
+
constructor(LocCache = null) {
|
|
6
|
+
this.LocCache = LocCache;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Imposta la localizzazione di un token all'interno della cache scelta
|
|
10
|
+
*
|
|
11
|
+
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
12
|
+
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
13
|
+
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
14
|
+
* @param {string} token Nome del token
|
|
15
|
+
* @param {string} left Valore del token per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
16
|
+
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
17
|
+
*/
|
|
18
|
+
setToken(direction, token, left, right) {
|
|
19
|
+
let parsingRegex = /([a-zA-Z]+)[\s]*->[\s]*([a-zA-Z,\s]+)+/g;
|
|
20
|
+
var parsingRes = parsingRegex.exec(direction);
|
|
21
|
+
let from = parsingRes[1];
|
|
22
|
+
let to = parsingRes[2].replace(/\s/g, '').split(',');
|
|
23
|
+
let localeFrom = LocaleDefinitions.getByAlias(from);
|
|
24
|
+
this._set(token, localeFrom.id, left, true);
|
|
25
|
+
to.forEach((t, index) => {
|
|
26
|
+
let localeTo = LocaleDefinitions.getByAlias(t);
|
|
27
|
+
this._set(token, localeTo.id, right[index], true);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Imposta la localizzazione di una frase all'interno della cache scelta
|
|
32
|
+
*
|
|
33
|
+
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
34
|
+
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
35
|
+
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
36
|
+
* @param {string} left Valore della frase per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
37
|
+
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
38
|
+
*/
|
|
39
|
+
set(direction, left, right) {
|
|
40
|
+
let parsingRegex = /([a-zA-Z]+)[\s]*->[\s]*([a-zA-Z,\s]+)+/g;
|
|
41
|
+
var parsingRes = parsingRegex.exec(direction);
|
|
42
|
+
let from = parsingRes[1];
|
|
43
|
+
let to = parsingRes[2].replace(/\s/g, '').split(',');
|
|
44
|
+
let localeFrom = LocaleDefinitions.getByAlias(from);
|
|
45
|
+
this._set(left, localeFrom.id, left);
|
|
46
|
+
to.forEach((t, index) => {
|
|
47
|
+
let localeTo = LocaleDefinitions.getByAlias(t);
|
|
48
|
+
this._set(left, localeTo.id, right[index]);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Imposta all'interno della cache specificata un'unica traduzione partendo da un testo di base
|
|
53
|
+
*
|
|
54
|
+
* @param {string} text Testo da tradurre
|
|
55
|
+
* @param {string} culture Lingua per cui inserire la traduzione
|
|
56
|
+
* @param {string} translation Traduzione del **text** nella lingua specificata da **culture**
|
|
57
|
+
* @param {boolean} token Indica se il **text** è un token o è una frase normale
|
|
58
|
+
*/
|
|
59
|
+
_set(text, culture, translation, token) {
|
|
60
|
+
let item = this.get(text, token);
|
|
61
|
+
if (!item) {
|
|
62
|
+
this.LocCache[text] = new ItemLocalization(token, text, [new SpecializedLocalization(culture, translation)]);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
var trs = this.translationByCulture(item, culture);
|
|
66
|
+
if (trs) {
|
|
67
|
+
//console.warn("Localization already loaded for sentence '" + text + "' and culture " + culture);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
item.translations.push(new SpecializedLocalization(culture, translation));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Partendo da una cache di localizzazione, dato un testo che può essere o meno un token, cerca quell'elemento all'interno della cache
|
|
74
|
+
*
|
|
75
|
+
* @param {string} text Testo da cercare nella **LocCache**
|
|
76
|
+
* @param {boolean} allowtokens Indica se l'elemento cercato può essere un token o se dev'essere per forza una frase (per evitare rari
|
|
77
|
+
* casi di collisione in cui magari un token è uguale a una frase tradotta)
|
|
78
|
+
*
|
|
79
|
+
* @returns {ItemLocalization} Informazioni di localizzazione per il **text** cercato
|
|
80
|
+
*/
|
|
81
|
+
get(text, allowtokens) {
|
|
82
|
+
let possibleItem = this.LocCache[text];
|
|
83
|
+
var item = possibleItem && (allowtokens || !possibleItem.token) ? possibleItem : null;
|
|
84
|
+
return item;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Date le informazioni di localizzazione per un testo cerca e restituisce la traduzione per una lingua specifica
|
|
88
|
+
*
|
|
89
|
+
* @param {ItemLocalization} Informazioni di localizzazione
|
|
90
|
+
* @param {string} culture Lingua della traduzione richiesta
|
|
91
|
+
*
|
|
92
|
+
* @returns {SpecializedLocalization} Informazioni di localizzazione specifiche della lingua richiesta
|
|
93
|
+
*/
|
|
94
|
+
translationByCulture(item, culture) {
|
|
95
|
+
for (let i = 0; i < item.translations.length; i++) {
|
|
96
|
+
let trl = item.translations[i];
|
|
97
|
+
if (trl.culture == culture)
|
|
98
|
+
return trl;
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnBlcnNpc3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi5wZXJzaXN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUFvQixXQUErQyxJQUFJO1FBQW5ELGFBQVEsR0FBUixRQUFRLENBQTJDO0lBQUksQ0FBQztJQUU1RTs7Ozs7Ozs7O09BU0c7SUFDSSxRQUFRLENBQUMsU0FBaUIsRUFBRSxLQUFhLEVBQUUsSUFBWSxFQUFFLEtBQWU7UUFDM0UsSUFBSSxZQUFZLEdBQUcseUNBQXlDLENBQUM7UUFDN0QsSUFBSSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxFQUFFLEdBQWEsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU1QyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFF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QyxDQUFDLENBQUM7WUFDL0IsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU87Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO1NBQ2xCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXRlbUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvSXRlbUxvY2FsaXphdGlvblwiO1xyXG5pbXBvcnQgeyBMb2NhbGVEZWZpbml0aW9ucyB9IGZyb20gXCIuLi9tb2RlbHMvTG9jYWxlRGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgU3BlY2lhbGl6ZWRMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL1NwZWNpYWxpemVkTG9jYWxpemF0aW9uXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uUGVyc2lzdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIExvY0NhY2hlOiB7IFtpZDogc3RyaW5nXTogSXRlbUxvY2FsaXphdGlvbiB9ID0gbnVsbCkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBvc3RhIGxhIGxvY2FsaXp6YXppb25lIGRpIHVuIHRva2VuIGFsbCdpbnRlcm5vIGRlbGxhIGNhY2hlIHNjZWx0YVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGlyZWN0aW9uIERpcmV6aW9uZSBkZWxsYSB0cmFkdXppb25lLCByYXBwcmVzZW50YSBsYSBsaW5ndWEgYmFzZSBpbiBjdWkgYXNwZXR0YXJzaSBpbCB0ZXN0byBlIGxlIHZhcmllIGxpbmd1ZSBpbiBjdWkgdmllbmUgdHJhZG90dGEuXHJcbiAgICAgKiBBZCBlc2VtcGlvLCBcImVuLT5pdFwiIGluZGljYSBjaGUgaWwgcGFyYW1ldHJvICoqbGVmdCoqIMOoIHZhbGlkbyBwZXIgbGUgbG9jYWxpenphemlvbmkgaW4gaW5nbGVzZSwgbWVudHJlIG5lbGwnZWxlbWVudG8gMCBkZWwgcGFyYW1ldHJvICoqcmlnaHQqKiBcclxuICAgICAqIMOoIHByZXNlbnRlIGwndW5pY2EgdHJhZHV6aW9uZSBpbiBpdGFsaWFubywgcGVyIGRlZmluaXJlIHBpw7kgdHJhZHV6aW9uaSBzdWwgbGF0byBkZXN0cm8gZGVsbGEgZnJlY2NpYSBiaXNvZ25hIGNvbmNhdGVuYXJsZSBjb24gbGEgdmlyZ29sYSwgYWQgZXNlbXBpbyBcImVuLT5pdCxqcCxlY2NcIlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRva2VuIE5vbWUgZGVsIHRva2VuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGVmdCBWYWxvcmUgZGVsIHRva2VuIHBlciBsYSBsaW5ndWEgc3BlY2lmaWNhdGEgbmVsIGxhdG8gaW1tZWRpYXRhbWVudGUgc2luaXN0cm8gYWxsYSBmcmVjY2lhIGRlbCBwYXJhbWV0cm8gKipkaXJlY3Rpb24qKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHJpZ2h0IEFycmF5IGNvbiBpIHZhbG9yaSBmYWNlbnRpIHJpZmVyaW1lbnRvIGFsbCdOLWVzaW1hIGxpbmd1YSBkZWwgbGF0byBkZXN0cm8gZGVsIHBhcmFtZXRybyAqKmRpcmVjdGlvbioqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRUb2tlbihkaXJlY3Rpb246IHN0cmluZywgdG9rZW46IHN0cmluZywgbGVmdDogc3RyaW5nLCByaWdodDogc3RyaW5nW10pIHtcclxuICAgICAgICBsZXQgcGFyc2luZ1JlZ2V4ID0gLyhbYS16QS1aXSspW1xcc10qLT5bXFxzXSooW2EtekEtWixcXHNdKykrL2c7XHJcbiAgICAgICAgdmFyIHBhcnNpbmdSZXMgPSBwYXJzaW5nUmVnZXguZXhlYyhkaXJlY3Rpb24pO1xyXG5cclxuICAgICAgICBsZXQgZnJvbSA9IHBhcnNpbmdSZXNbMV07XHJcbiAgICAgICAgbGV0IHRvOiBzdHJpbmdbXSA9IHBhcnNpbmdSZXNbMl0ucmVwbGFjZSgvXFxzL2csICcnKS5zcGxpdCgnLCcpO1xyXG4gICAgICAgIGxldCBsb2NhbGVGcm9tID0gTG9jYWxlRGVmaW5pdGlvbnMuZ2V0QnlBbGlhcyhmcm9tKTtcclxuICAgICAgICB0aGlzLl9zZXQodG9rZW4sIGxvY2FsZUZyb20uaWQsIGxlZnQsIHRydWUpO1xyXG5cclxuICAgICAgICB0by5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbG9jYWxlVG8gPSBMb2NhbGVEZWZpbml0aW9ucy5nZXRCeUFsaWFzKHQpO1xyXG4gICAgICAgICAgICB0aGlzLl9zZXQodG9rZW4sIGxvY2FsZVRvLmlkLCByaWdodFtpbmRleF0sIHRydWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBsYSBsb2NhbGl6emF6aW9uZSBkaSB1bmEgZnJhc2UgYWxsJ2ludGVybm8gZGVsbGEgY2FjaGUgc2NlbHRhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb24gRGlyZXppb25lIGRlbGxhIHRyYWR1emlvbmUsIHJhcHByZXNlbnRhIGxhIGxpbmd1YSBiYXNlIGluIGN1aSBhc3BldHRhcnNpIGlsIHRlc3RvIGUgbGUgdmFyaWUgbGluZ3VlIGluIGN1aSB2aWVuZSB0cmFkb3R0YS5cclxuICAgICAqIEFkIGVzZW1waW8sIFwiZW4tPml0XCIgaW5kaWNhIGNoZSBpbCBwYXJhbWV0cm8gKipsZWZ0Kiogw6ggdmFsaWRvIHBlciBsZSBsb2NhbGl6emF6aW9uaSBpbiBpbmdsZXNlLCBtZW50cmUgbmVsbCdlbGVtZW50byAwIGRlbCBwYXJhbWV0cm8gKipyaWdodCoqIFxyXG4gICAgICogw6ggcHJlc2VudGUgbCd1bmljYSB0cmFkdXppb25lIGluIGl0YWxpYW5vLCBwZXIgZGVmaW5pcmUgcGnDuSB0cmFkdXppb25pIHN1bCBsYXRvIGRlc3RybyBkZWxsYSBmcmVjY2lhIGJpc29nbmEgY29uY2F0ZW5hcmxlIGNvbiBsYSB2aXJnb2xhLCBhZCBlc2VtcGlvIFwiZW4tPml0LGpwLGVjY1wiXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGVmdCBWYWxvcmUgZGVsbGEgZnJhc2UgcGVyIGxhIGxpbmd1YSBzcGVjaWZpY2F0YSBuZWwgbGF0byBpbW1lZGlhdGFtZW50ZSBzaW5pc3RybyBhbGxhIGZyZWNjaWEgZGVsIHBhcmFtZXRybyAqKmRpcmVjdGlvbioqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmlnaHQgQXJyYXkgY29uIGkgdmFsb3JpIGZhY2VudGkgcmlmZXJpbWVudG8gYWxsJ04tZXNpbWEgbGluZ3VhIGRlbCBsYXRvIGRlc3RybyBkZWwgcGFyYW1ldHJvICoqZGlyZWN0aW9uKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldChkaXJlY3Rpb246IHN0cmluZywgbGVmdDogc3RyaW5nLCByaWdodDogc3RyaW5nW10pIHtcclxuICAgICAgICBsZXQgcGFyc2luZ1JlZ2V4ID0gLyhbYS16QS1aXSspW1xcc10qLT5bXFxzXSooW2EtekEtWixcXHNdKykrL2c7XHJcbiAgICAgICAgdmFyIHBhcnNpbmdSZXMgPSBwYXJzaW5nUmVnZXguZXhlYyhkaXJlY3Rpb24pO1xyXG5cclxuICAgICAgICBsZXQgZnJvbSA9IHBhcnNpbmdSZXNbMV07XHJcbiAgICAgICAgbGV0IHRvOiBzdHJpbmdbXSA9IHBhcnNpbmdSZXNbMl0ucmVwbGFjZSgvXFxzL2csICcnKS5zcGxpdCgnLCcpO1xyXG4gICAgICAgIGxldCBsb2NhbGVGcm9tID0gTG9jYWxlRGVmaW5pdGlvbnMuZ2V0QnlBbGlhcyhmcm9tKTtcclxuICAgICAgICB0aGlzLl9zZXQobGVmdCwgbG9jYWxlRnJvbS5pZCwgbGVmdCk7XHJcblxyXG4gICAgICAgIHRvLmZvckVhY2goKHQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhbGVUbyA9IExvY2FsZURlZmluaXRpb25zLmdldEJ5QWxpYXModCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldChsZWZ0LCBsb2NhbGVUby5pZCwgcmlnaHRbaW5kZXhdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgYWxsJ2ludGVybm8gZGVsbGEgY2FjaGUgc3BlY2lmaWNhdGEgdW4ndW5pY2EgdHJhZHV6aW9uZSBwYXJ0ZW5kbyBkYSB1biB0ZXN0byBkaSBiYXNlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRlc3RvIGRhIHRyYWR1cnJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3VsdHVyZSBMaW5ndWEgcGVyIGN1aSBpbnNlcmlyZSBsYSB0cmFkdXppb25lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHJhbnNsYXRpb24gVHJhZHV6aW9uZSBkZWwgKip0ZXh0KiogbmVsbGEgbGluZ3VhIHNwZWNpZmljYXRhIGRhICoqY3VsdHVyZSoqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHRva2VuIEluZGljYSBzZSBpbCAqKnRleHQqKiDDqCB1biB0b2tlbiBvIMOoIHVuYSBmcmFzZSBub3JtYWxlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3NldCh0ZXh0OiBzdHJpbmcsIGN1bHR1cmU6IHN0cmluZywgdHJhbnNsYXRpb246IHN0cmluZywgdG9rZW4/OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmdldCh0ZXh0LCB0b2tlbik7XHJcbiAgICAgICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuTG9jQ2FjaGVbdGV4dF0gPSBuZXcgSXRlbUxvY2FsaXphdGlvbih0b2tlbiwgdGV4dCwgW25ldyBTcGVjaWFsaXplZExvY2FsaXphdGlvbihjdWx0dXJlLCB0cmFuc2xhdGlvbildKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIHRycyA9IHRoaXMudHJhbnNsYXRpb25CeUN1bHR1cmUoaXRlbSwgY3VsdHVyZSk7XHJcbiAgICAgICAgaWYgKHRycykge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUud2FybihcIkxvY2FsaXphdGlvbiBhbHJlYWR5IGxvYWRlZCBmb3Igc2VudGVuY2UgJ1wiICsgdGV4dCArIFwiJyBhbmQgY3VsdHVyZSBcIiArIGN1bHR1cmUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpdGVtLnRyYW5zbGF0aW9ucy5wdXNoKG5ldyBTcGVjaWFsaXplZExvY2FsaXphdGlvbihjdWx0dXJlLCB0cmFuc2xhdGlvbikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGFydGVuZG8gZGEgdW5hIGNhY2hlIGRpIGxvY2FsaXp6YXppb25lLCBkYXRvIHVuIHRlc3RvIGNoZSBwdcOyIGVzc2VyZSBvIG1lbm8gdW4gdG9rZW4sIGNlcmNhIHF1ZWxsJ2VsZW1lbnRvIGFsbCdpbnRlcm5vIGRlbGxhIGNhY2hlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRlc3RvIGRhIGNlcmNhcmUgbmVsbGEgKipMb2NDYWNoZSoqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFsbG93dG9rZW5zIEluZGljYSBzZSBsJ2VsZW1lbnRvIGNlcmNhdG8gcHXDsiBlc3NlcmUgdW4gdG9rZW4gbyBzZSBkZXYnZXNzZXJlIHBlciBmb3J6YSB1bmEgZnJhc2UgKHBlciBldml0YXJlIHJhcmkgXHJcbiAgICAgKiBjYXNpIGRpIGNvbGxpc2lvbmUgaW4gY3VpIG1hZ2FyaSB1biB0b2tlbiDDqCB1Z3VhbGUgYSB1bmEgZnJhc2UgdHJhZG90dGEpXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtJdGVtTG9jYWxpemF0aW9ufSBJbmZvcm1hemlvbmkgZGkgbG9jYWxpenphemlvbmUgcGVyIGlsICoqdGV4dCoqIGNlcmNhdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCh0ZXh0OiBzdHJpbmcsIGFsbG93dG9rZW5zOiBib29sZWFuKTogSXRlbUxvY2FsaXphdGlvbiB7XHJcbiAgICAgICAgbGV0IHBvc3NpYmxlSXRlbTogSXRlbUxvY2FsaXphdGlvbiA9IHRoaXMuTG9jQ2FjaGVbdGV4dF07XHJcbiAgICAgICAgdmFyIGl0ZW0gPSBwb3NzaWJsZUl0ZW0gJiYgKGFsbG93dG9rZW5zIHx8ICFwb3NzaWJsZUl0ZW0udG9rZW4pID8gcG9zc2libGVJdGVtIDogbnVsbDtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgbGUgaW5mb3JtYXppb25pIGRpIGxvY2FsaXp6YXppb25lIHBlciB1biB0ZXN0byBjZXJjYSBlIHJlc3RpdHVpc2NlIGxhIHRyYWR1emlvbmUgcGVyIHVuYSBsaW5ndWEgc3BlY2lmaWNhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7SXRlbUxvY2FsaXphdGlvbn0gSW5mb3JtYXppb25pIGRpIGxvY2FsaXp6YXppb25lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3VsdHVyZSBMaW5ndWEgZGVsbGEgdHJhZHV6aW9uZSByaWNoaWVzdGFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge1NwZWNpYWxpemVkTG9jYWxpemF0aW9ufSBJbmZvcm1hemlvbmkgZGkgbG9jYWxpenphemlvbmUgc3BlY2lmaWNoZSBkZWxsYSBsaW5ndWEgcmljaGllc3RhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmFuc2xhdGlvbkJ5Q3VsdHVyZShpdGVtOiBJdGVtTG9jYWxpemF0aW9uLCBjdWx0dXJlOiBzdHJpbmcpOiBTcGVjaWFsaXplZExvY2FsaXphdGlvbiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtLnRyYW5zbGF0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgdHJsID0gaXRlbS50cmFuc2xhdGlvbnNbaV07XHJcbiAgICAgICAgICAgIGlmICh0cmwuY3VsdHVyZSA9PSBjdWx0dXJlKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRybDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
// RXJS
|
|
4
|
+
import { of } from "rxjs";
|
|
5
|
+
import { first } from "rxjs/operators";
|
|
6
|
+
import { LocalePersistor } from "./LocalePersistor";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class LocalStorageLocalePersistor extends LocalePersistor {
|
|
9
|
+
/** @ignore Vedi classe base */
|
|
10
|
+
persist(locale) {
|
|
11
|
+
localStorage.setItem(this.LOCALE, locale);
|
|
12
|
+
return of(true).pipe(first());
|
|
13
|
+
}
|
|
14
|
+
/** @ignore Vedi classe base */
|
|
15
|
+
recover() {
|
|
16
|
+
var ret = localStorage.getItem(this.LOCALE);
|
|
17
|
+
return of(ret).pipe(first());
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
LocalStorageLocalePersistor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalStorageLocalePersistor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
|
+
LocalStorageLocalePersistor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalStorageLocalePersistor });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalStorageLocalePersistor, decorators: [{
|
|
23
|
+
type: Injectable
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2NhbGl6YXRpb25zL3NyYy9saWIvbG9jYWxlLXBlcnNpc3Rvci9Mb2NhbFN0b3JhZ2VDYWNoZVBlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPO0FBQ1AsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUdwRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBZTtJQUU1RCwrQkFBK0I7SUFDeEIsT0FBTyxDQUFDLE1BQWM7UUFDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsT0FBTztRQUNWLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7O3dIQVpRLDJCQUEyQjs0SEFBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gUlhKU1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IExvY2FsZVBlcnNpc3RvciB9IGZyb20gXCIuL0xvY2FsZVBlcnNpc3RvclwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlTG9jYWxlUGVyc2lzdG9yIGV4dGVuZHMgTG9jYWxlUGVyc2lzdG9yIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcGVyc2lzdChsb2NhbGU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTE9DQUxFLCBsb2NhbGUpO1xyXG4gICAgICAgIHJldHVybiBvZih0cnVlKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyByZWNvdmVyKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICAgICAgdmFyIHJldCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuTE9DQUxFKTtcclxuICAgICAgICByZXR1cm4gb2YocmV0KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */
|
|
2
|
+
export class LocalePersistor {
|
|
3
|
+
constructor() {
|
|
4
|
+
/** Chiave su cui salvare il locale */
|
|
5
|
+
this.LOCALE = "LOCALE";
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxlUGVyc2lzdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9jYWxpemF0aW9ucy9zcmMvbGliL2xvY2FsZS1wZXJzaXN0b3IvTG9jYWxlUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLDRGQUE0RjtBQUM1RixNQUFNLE9BQWdCLGVBQWU7SUFBckM7UUFFSSxzQ0FBc0M7UUFDNUIsV0FBTSxHQUFXLFFBQVEsQ0FBQztJQWV4QyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKiBDbGFzc2UgYXN0cmF0dGEgY2hlIHJhcHByZXNlbnRhIGxvIHN0YXRvIGRpIHBlcnNpc3RlbnphIGZyYSBsYSBsaWJyZXJpYSBlIHVubyBzdG9yYWdlICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2NhbGVQZXJzaXN0b3Ige1xyXG5cclxuICAgIC8qKiBDaGlhdmUgc3UgY3VpIHNhbHZhcmUgaWwgbG9jYWxlICovXHJcbiAgICBwcm90ZWN0ZWQgTE9DQUxFOiBzdHJpbmcgPSBcIkxPQ0FMRVwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2FsdmEgaWwgTG9jYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbGUgTG9jYWxlIGRhIHNhbHZhcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHBlcnNpc3QobG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjdXBlcmEgaWwgTG9jYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPHN0cmluZz59IFZhbG9yZSBzYWx2YXRvIHBlciBpbCBsb2NhbGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHJlY292ZXIoKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG59Il19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
// Pipe
|
|
4
|
+
import { LocalizePipe } from './pipes/localize.pipe';
|
|
5
|
+
// Servizi
|
|
6
|
+
import { LocalizationService } from './localizations.service';
|
|
7
|
+
import { BaseLocalization } from './core/localization.base';
|
|
8
|
+
import { LocalePersistor } from './locale-persistor/LocalePersistor';
|
|
9
|
+
import { LocalStorageLocalePersistor } from './locale-persistor/LocalStorageCachePersistor';
|
|
10
|
+
import { LocalizationMissingPolicy } from './models/LocalizationMissingPolicy';
|
|
11
|
+
import { LOC_DEBUG_MODE, LOC_LOCALE, LOC_MISSING_POLICY } from './tokens';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class LocalizationModule {
|
|
14
|
+
static forRoot(config) {
|
|
15
|
+
return {
|
|
16
|
+
ngModule: LocalizationModule,
|
|
17
|
+
providers: [
|
|
18
|
+
LocalizationService,
|
|
19
|
+
BaseLocalization,
|
|
20
|
+
{ provide: LOC_LOCALE, useValue: config?.defaultLocale || 'it-IT' },
|
|
21
|
+
{ provide: LOC_MISSING_POLICY, useValue: config?.localizationMissingPolicy || LocalizationMissingPolicy.PrintEmpty },
|
|
22
|
+
{ provide: LocalePersistor, useClass: config?.localePersistor || LocalStorageLocalePersistor },
|
|
23
|
+
{ provide: LOC_DEBUG_MODE, useValue: config?.debugMode || false },
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
LocalizationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29
|
+
LocalizationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: LocalizationModule, declarations: [LocalizePipe], exports: [LocalizePipe] });
|
|
30
|
+
LocalizationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizationModule });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizationModule, decorators: [{
|
|
32
|
+
type: NgModule,
|
|
33
|
+
args: [{
|
|
34
|
+
declarations: [LocalizePipe],
|
|
35
|
+
exports: [LocalizePipe]
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2NhbGl6YXRpb25zL3NyYy9saWIvbG9jYWxpemF0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU87QUFDUCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsVUFBVTtBQUNWLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUk1RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWlDO1FBQzlDLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVCxtQkFBbUI7Z0JBQ25CLGdCQUFnQjtnQkFDaEIsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsYUFBYSxJQUFJLE9BQU8sRUFBRTtnQkFDbkUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSx5QkFBeUIsSUFBSSx5QkFBeUIsQ0FBQyxVQUFVLEVBQUM7Z0JBQ25ILEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGVBQWUsSUFBSSwyQkFBMkIsRUFBRTtnQkFDOUYsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxJQUFJLEtBQUssRUFBRTthQUNsRTtTQUNGLENBQUM7SUFDSixDQUFDOzsrR0FiVSxrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFIZCxZQUFZLGFBQ2pCLFlBQVk7Z0hBRVgsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gUGlwZVxyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsaXplLnBpcGUnO1xyXG5cclxuLy8gU2Vydml6aVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlTG9jYWxpemF0aW9uIH0gZnJvbSAnLi9jb3JlL2xvY2FsaXphdGlvbi5iYXNlJztcclxuaW1wb3J0IHsgTG9jYWxlUGVyc2lzdG9yIH0gZnJvbSAnLi9sb2NhbGUtcGVyc2lzdG9yL0xvY2FsZVBlcnNpc3Rvcic7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZUxvY2FsZVBlcnNpc3RvciB9IGZyb20gJy4vbG9jYWxlLXBlcnNpc3Rvci9Mb2NhbFN0b3JhZ2VDYWNoZVBlcnNpc3Rvcic7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZUNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL0xvY2FsaXphdGlvbk1vZHVsZUNvbmZpZyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3kgfSBmcm9tICcuL21vZGVscy9Mb2NhbGl6YXRpb25NaXNzaW5nUG9saWN5JztcclxuaW1wb3J0IHsgTE9DX0RFQlVHX01PREUsIExPQ19MT0NBTEUsIExPQ19NSVNTSU5HX1BPTElDWSB9IGZyb20gJy4vdG9rZW5zJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTG9jYWxpemVQaXBlXSxcclxuICBleHBvcnRzOiBbTG9jYWxpemVQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBMb2NhbGl6YXRpb25Nb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExvY2FsaXphdGlvbk1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBCYXNlTG9jYWxpemF0aW9uLFxyXG4gICAgICAgIHsgcHJvdmlkZTogTE9DX0xPQ0FMRSwgdXNlVmFsdWU6IGNvbmZpZz8uZGVmYXVsdExvY2FsZSB8fCAnaXQtSVQnIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBMT0NfTUlTU0lOR19QT0xJQ1ksIHVzZVZhbHVlOiBjb25maWc/LmxvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3kgfHwgTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeS5QcmludEVtcHR5fSxcclxuICAgICAgICB7IHByb3ZpZGU6IExvY2FsZVBlcnNpc3RvciwgdXNlQ2xhc3M6IGNvbmZpZz8ubG9jYWxlUGVyc2lzdG9yIHx8IExvY2FsU3RvcmFnZUxvY2FsZVBlcnNpc3RvciB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogTE9DX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWc/LmRlYnVnTW9kZSB8fCBmYWxzZSB9LFxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Injectable, Injector } from '@angular/core';
|
|
2
|
+
import { BaseLocalization } from './core/localization.base';
|
|
3
|
+
import { LocalizationPersistor } from './core/localization.persistor';
|
|
4
|
+
import { LocalePersistor } from './locale-persistor/LocalePersistor';
|
|
5
|
+
import { LOC_MISSING_POLICY } from './tokens';
|
|
6
|
+
import { LocalizationMissingPolicy } from './models/LocalizationMissingPolicy';
|
|
7
|
+
import { LocaleDefinitions } from './models/LocaleDefinitions';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Classe di localizzazione estendibile che permette di specificare le proprie localizzazioni e comunque rendere disponibili le localizzazioni globali
|
|
11
|
+
*/
|
|
12
|
+
export class LocalizationService {
|
|
13
|
+
/**
|
|
14
|
+
* Costruttore
|
|
15
|
+
*
|
|
16
|
+
* @param {string} Locale Locale da utilizzare nel momento che questo servizio richiede le traduzioni
|
|
17
|
+
* @param {baseLocalization} baseLocalization Classe base di localizzazione già fornita a livello di root dalla libreria stessa.
|
|
18
|
+
* È sufficiente iniettarla nell'eventuale costruttore che estende questa classe e passarla as-is
|
|
19
|
+
*/
|
|
20
|
+
constructor(injector) {
|
|
21
|
+
this.injector = injector;
|
|
22
|
+
/**
|
|
23
|
+
* Cache di tutte le localizzazioni disonibili all'interno di questa classe
|
|
24
|
+
*/
|
|
25
|
+
this.TranslationCache = {};
|
|
26
|
+
this.LocalePersistor = this.injector.get(LocalePersistor);
|
|
27
|
+
this.baseLocalization = this.injector.get(BaseLocalization);
|
|
28
|
+
this.onMissing = this.injector.get(LOC_MISSING_POLICY);
|
|
29
|
+
this.Persistor = new LocalizationPersistor(this.TranslationCache);
|
|
30
|
+
this.baseLocalization.Locale.subscribe(lr => {
|
|
31
|
+
this.Locale = lr;
|
|
32
|
+
this.SmallLocale = LocaleDefinitions.getByAlias(lr).smallVersion;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Genera un nuovo servizio di localizzazione data una classe in modo che le localizzazioni non siano più solo da provide-are a livello di componente, ma possano
|
|
37
|
+
* anche essere create al volo dal componente/servizio/qualsiasicosa che le deve utilizzare
|
|
38
|
+
*
|
|
39
|
+
* @param {Type<LocalizationService>} lcst Classe da usare per crare il nuovo servizio di localizzazione
|
|
40
|
+
*/
|
|
41
|
+
generateFromType(lcst) {
|
|
42
|
+
const injector = Injector.create({
|
|
43
|
+
providers: [
|
|
44
|
+
{ provide: LOC_MISSING_POLICY, useValue: this.onMissing },
|
|
45
|
+
{ provide: BaseLocalization, useValue: this.baseLocalization },
|
|
46
|
+
{ provide: LocalePersistor, useValue: this.LocalePersistor },
|
|
47
|
+
{ provide: LocalizationService, useClass: lcst }
|
|
48
|
+
]
|
|
49
|
+
});
|
|
50
|
+
return injector.get(LocalizationService);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Imposta la localizzazione di un token all'interno della **TranslationCache**
|
|
54
|
+
*
|
|
55
|
+
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
56
|
+
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
57
|
+
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
58
|
+
* @param {string} token Nome del token
|
|
59
|
+
* @param {string} left Valore del token per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
60
|
+
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
61
|
+
*/
|
|
62
|
+
setToken(direction, token, left, right) {
|
|
63
|
+
this.Persistor.setToken(direction, token, left, right);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Imposta la localizzazione di una frase all'interno della **TranslationCache**
|
|
67
|
+
*
|
|
68
|
+
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
69
|
+
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
70
|
+
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
71
|
+
* @param {string} left Valore della frase per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
72
|
+
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
73
|
+
*/
|
|
74
|
+
set(direction, left, right) {
|
|
75
|
+
// Controlla di non reinserire la stessa localizzazione presente nel BaseLocalization
|
|
76
|
+
// i controlli per il non reinserimento della stessa localizzazione all'interno della stessa istanza è fatto lato Persistor
|
|
77
|
+
if (this.baseLocalization.Persistor.get(left, false)) {
|
|
78
|
+
if (this.onMissing != LocalizationMissingPolicy.PrintSourceWithoutWarnings)
|
|
79
|
+
console.warn(`La localizzazione per ${left} è già presente fra le localizzazioni base, ignoro l'operazione`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.Persistor.set(direction, left, right);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Localizza un token
|
|
86
|
+
*
|
|
87
|
+
* @param {string} text Il token da localizzare
|
|
88
|
+
*
|
|
89
|
+
* @returns {string} Token localizzato
|
|
90
|
+
*/
|
|
91
|
+
token(text) {
|
|
92
|
+
return this.loc(text, true);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Localizza una frase
|
|
96
|
+
*
|
|
97
|
+
* @param {string} text Frase da localizzare
|
|
98
|
+
* @param {boolean} allowtokens Indica se la frase **text** potrebbe essere un token o no
|
|
99
|
+
*
|
|
100
|
+
* @returns {string} Frase localizzata
|
|
101
|
+
*/
|
|
102
|
+
loc(text, allowtokens) {
|
|
103
|
+
if (!this.Locale)
|
|
104
|
+
throw "Il sistema di localizzazione non ha ancora caricato il Locale, assicurarsi di caricare l'APP solo al retrieve del locale'";
|
|
105
|
+
if (!text || text == "undefined")
|
|
106
|
+
return "";
|
|
107
|
+
// Prendo la localizzazione o dalla cache attuale o dalla cache del servizio base
|
|
108
|
+
var item = this.Persistor.get(text, allowtokens) || this.baseLocalization.Persistor.get(text, allowtokens);
|
|
109
|
+
if (!item) {
|
|
110
|
+
let message = `Impossibile trovare la localizzazione per '${text}'`;
|
|
111
|
+
switch (this.onMissing) {
|
|
112
|
+
case LocalizationMissingPolicy.PrintEmpty:
|
|
113
|
+
console.error(message);
|
|
114
|
+
return "";
|
|
115
|
+
case LocalizationMissingPolicy.PrintSource:
|
|
116
|
+
console.warn(message);
|
|
117
|
+
return text;
|
|
118
|
+
case LocalizationMissingPolicy.PrintSourceWithoutWarnings:
|
|
119
|
+
return text;
|
|
120
|
+
case LocalizationMissingPolicy.ThrowException:
|
|
121
|
+
throw message;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
var loc = this.Persistor.translationByCulture(item, this.Locale);
|
|
125
|
+
if (!loc) {
|
|
126
|
+
console.error("Impossibile trovare la localizzazione per '" + text + "', culture " + this.Locale);
|
|
127
|
+
return "";
|
|
128
|
+
}
|
|
129
|
+
return loc.translation;
|
|
130
|
+
}
|
|
131
|
+
async changeLocale(newLocale) {
|
|
132
|
+
let locale = await this.LocalePersistor.recover().toPromise();
|
|
133
|
+
if (newLocale == locale) {
|
|
134
|
+
console.info("Il locale richiesto è lo stesso del locale attuale. Ignoro l'operazione");
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
await this.LocalePersistor.persist(newLocale).toPromise();
|
|
139
|
+
location.reload();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
LocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizationService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
144
|
+
LocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizationService });
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizationService, decorators: [{
|
|
146
|
+
type: Injectable
|
|
147
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9jYWxpemF0aW9ucy9zcmMvbGliL2xvY2FsaXphdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUUvRDs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFlNUI7Ozs7OztPQU1HO0lBQ0gsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXBCdEM7O1dBRUc7UUFDSyxxQkFBZ0IsR0FBdUMsRUFBRSxDQUFDO1FBa0I5RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixD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QyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0QixPQUFPLElBQUksQ0FBQztnQkFDaEIsS0FBSyx5QkFBeUIsQ0FBQywwQkFBMEI7b0JBQ3JELE9BQU8sSUFBSSxDQUFDO2dCQUNoQixLQUFLLHlCQUF5QixDQUFDLGNBQWM7b0JBQ3pDLE1BQU0sT0FBTyxDQUFDO2FBQ3JCO1NBQ0o7UUFFRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLEdBQUcsSUFBSSxHQUFHLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEcsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFpQjtRQUN2QyxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUQsSUFBSSxTQUFTLElBQUksTUFBTSxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMseUVBQXlFLENBQUMsQ0FBQztZQUN4RixPQUFPO1NBQ1Y7YUFDSTtZQUNELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUQsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQzs7Z0hBdEpRLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlTG9jYWxpemF0aW9uIH0gZnJvbSAnLi9jb3JlL2xvY2FsaXphdGlvbi5iYXNlJztcclxuaW1wb3J0IHsgSXRlbUxvY2FsaXphdGlvbiB9IGZyb20gJy4vbW9kZWxzL0l0ZW1Mb2NhbGl6YXRpb24nO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QZXJzaXN0b3IgfSBmcm9tICcuL2NvcmUvbG9jYWxpemF0aW9uLnBlcnNpc3Rvcic7XHJcbmltcG9ydCB7IExvY2FsZVBlcnNpc3RvciB9IGZyb20gJy4vbG9jYWxlLXBlcnNpc3Rvci9Mb2NhbGVQZXJzaXN0b3InO1xyXG5pbXBvcnQgeyBMT0NfTUlTU0lOR19QT0xJQ1kgfSBmcm9tICcuL3Rva2Vucyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3kgfSBmcm9tICcuL21vZGVscy9Mb2NhbGl6YXRpb25NaXNzaW5nUG9saWN5JztcclxuaW1wb3J0IHsgTG9jYWxlRGVmaW5pdGlvbnMgfSBmcm9tICcuL21vZGVscy9Mb2NhbGVEZWZpbml0aW9ucyc7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGRpIGxvY2FsaXp6YXppb25lIGVzdGVuZGliaWxlIGNoZSBwZXJtZXR0ZSBkaSBzcGVjaWZpY2FyZSBsZSBwcm9wcmllIGxvY2FsaXp6YXppb25pIGUgY29tdW5xdWUgcmVuZGVyZSBkaXNwb25pYmlsaSBsZSBsb2NhbGl6emF6aW9uaSBnbG9iYWxpXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRpIHR1dHRlIGxlIGxvY2FsaXp6YXppb25pIGRpc29uaWJpbGkgYWxsJ2ludGVybm8gZGkgcXVlc3RhIGNsYXNzZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIFRyYW5zbGF0aW9uQ2FjaGU6IHsgW2lkOiBzdHJpbmddOiBJdGVtTG9jYWxpemF0aW9uIH0gPSB7fTtcclxuXHJcbiAgICBwdWJsaWMgTG9jYWxlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgU21hbGxMb2NhbGU6IHN0cmluZztcclxuXHJcbiAgICBwcml2YXRlIGJhc2VMb2NhbGl6YXRpb246IEJhc2VMb2NhbGl6YXRpb247XHJcbiAgICBwcml2YXRlIG9uTWlzc2luZzogTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeVxyXG4gICAgcHJpdmF0ZSBQZXJzaXN0b3I6IExvY2FsaXphdGlvblBlcnNpc3RvcjtcclxuICAgIHByaXZhdGUgTG9jYWxlUGVyc2lzdG9yOiBMb2NhbGVQZXJzaXN0b3I7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3N0cnV0dG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gTG9jYWxlIExvY2FsZSBkYSB1dGlsaXp6YXJlIG5lbCBtb21lbnRvIGNoZSBxdWVzdG8gc2Vydml6aW8gcmljaGllZGUgbGUgdHJhZHV6aW9uaVxyXG4gICAgICogQHBhcmFtIHtiYXNlTG9jYWxpemF0aW9ufSBiYXNlTG9jYWxpemF0aW9uIENsYXNzZSBiYXNlIGRpIGxvY2FsaXp6YXppb25lIGdpw6AgZm9ybml0YSBhIGxpdmVsbG8gZGkgcm9vdCBkYWxsYSBsaWJyZXJpYSBzdGVzc2EuIFxyXG4gICAgICogw4ggc3VmZmljaWVudGUgaW5pZXR0YXJsYSBuZWxsJ2V2ZW50dWFsZSBjb3N0cnV0dG9yZSBjaGUgZXN0ZW5kZSBxdWVzdGEgY2xhc3NlIGUgcGFzc2FybGEgYXMtaXNcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICB0aGlzLkxvY2FsZVBlcnNpc3RvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KExvY2FsZVBlcnNpc3Rvcik7XHJcbiAgICAgICAgdGhpcy5iYXNlTG9jYWxpemF0aW9uID0gdGhpcy5pbmplY3Rvci5nZXQoQmFzZUxvY2FsaXphdGlvbik7XHJcbiAgICAgICAgdGhpcy5vbk1pc3NpbmcgPSB0aGlzLmluamVjdG9yLmdldChMT0NfTUlTU0lOR19QT0xJQ1kpO1xyXG5cclxuICAgICAgICB0aGlzLlBlcnNpc3RvciA9IG5ldyBMb2NhbGl6YXRpb25QZXJzaXN0b3IodGhpcy5UcmFuc2xhdGlvbkNhY2hlKTtcclxuXHJcbiAgICAgICAgdGhpcy5iYXNlTG9jYWxpemF0aW9uLkxvY2FsZS5zdWJzY3JpYmUobHIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkxvY2FsZSA9IGxyO1xyXG4gICAgICAgICAgICB0aGlzLlNtYWxsTG9jYWxlID0gTG9jYWxlRGVmaW5pdGlvbnMuZ2V0QnlBbGlhcyhscikuc21hbGxWZXJzaW9uO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhIHVuIG51b3ZvIHNlcnZpemlvIGRpIGxvY2FsaXp6YXppb25lIGRhdGEgdW5hIGNsYXNzZSBpbiBtb2RvIGNoZSBsZSBsb2NhbGl6emF6aW9uaSBub24gc2lhbm8gcGnDuSBzb2xvIGRhIHByb3ZpZGUtYXJlIGEgbGl2ZWxsbyBkaSBjb21wb25lbnRlLCBtYSBwb3NzYW5vXHJcbiAgICAgKiBhbmNoZSBlc3NlcmUgY3JlYXRlIGFsIHZvbG8gZGFsIGNvbXBvbmVudGUvc2Vydml6aW8vcXVhbHNpYXNpY29zYSBjaGUgbGUgZGV2ZSB1dGlsaXp6YXJlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7VHlwZTxMb2NhbGl6YXRpb25TZXJ2aWNlPn0gbGNzdCBDbGFzc2UgZGEgdXNhcmUgcGVyIGNyYXJlIGlsIG51b3ZvIHNlcnZpemlvIGRpIGxvY2FsaXp6YXppb25lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZW5lcmF0ZUZyb21UeXBlKGxjc3Q6IFR5cGU8TG9jYWxpemF0aW9uU2VydmljZT4pOiBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBMT0NfTUlTU0lOR19QT0xJQ1ksIHVzZVZhbHVlOiB0aGlzLm9uTWlzc2luZ30sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEJhc2VMb2NhbGl6YXRpb24sIHVzZVZhbHVlOiB0aGlzLmJhc2VMb2NhbGl6YXRpb259LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBMb2NhbGVQZXJzaXN0b3IsIHVzZVZhbHVlOiB0aGlzLkxvY2FsZVBlcnNpc3Rvcn0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBsY3N0IH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBvc3RhIGxhIGxvY2FsaXp6YXppb25lIGRpIHVuIHRva2VuIGFsbCdpbnRlcm5vIGRlbGxhICoqVHJhbnNsYXRpb25DYWNoZSoqXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb24gRGlyZXppb25lIGRlbGxhIHRyYWR1emlvbmUsIHJhcHByZXNlbnRhIGxhIGxpbmd1YSBiYXNlIGluIGN1aSBhc3BldHRhcnNpIGlsIHRlc3RvIGUgbGUgdmFyaWUgbGluZ3VlIGluIGN1aSB2aWVuZSB0cmFkb3R0YS5cclxuICAgICAqIEFkIGVzZW1waW8sIFwiZW4tPml0XCIgaW5kaWNhIGNoZSBpbCBwYXJhbWV0cm8gKipsZWZ0Kiogw6ggdmFsaWRvIHBlciBsZSBsb2NhbGl6emF6aW9uaSBpbiBpbmdsZXNlLCBtZW50cmUgbmVsbCdlbGVtZW50byAwIGRlbCBwYXJhbWV0cm8gKipyaWdodCoqIFxyXG4gICAgICogw6ggcHJlc2VudGUgbCd1bmljYSB0cmFkdXppb25lIGluIGl0YWxpYW5vLCBwZXIgZGVmaW5pcmUgcGnDuSB0cmFkdXppb25pIHN1bCBsYXRvIGRlc3RybyBkZWxsYSBmcmVjY2lhIGJpc29nbmEgY29uY2F0ZW5hcmxlIGNvbiBsYSB2aXJnb2xhLCBhZCBlc2VtcGlvIFwiZW4tPml0LGpwLGVjY1wiXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdG9rZW4gTm9tZSBkZWwgdG9rZW5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZWZ0IFZhbG9yZSBkZWwgdG9rZW4gcGVyIGxhIGxpbmd1YSBzcGVjaWZpY2F0YSBuZWwgbGF0byBpbW1lZGlhdGFtZW50ZSBzaW5pc3RybyBhbGxhIGZyZWNjaWEgZGVsIHBhcmFtZXRybyAqKmRpcmVjdGlvbioqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmlnaHQgQXJyYXkgY29uIGkgdmFsb3JpIGZhY2VudGkgcmlmZXJpbWVudG8gYWxsJ04tZXNpbWEgbGluZ3VhIGRlbCBsYXRvIGRlc3RybyBkZWwgcGFyYW1ldHJvICoqZGlyZWN0aW9uKipcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldFRva2VuKGRpcmVjdGlvbjogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKGRpcmVjdGlvbiwgdG9rZW4sIGxlZnQsIHJpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGEgbG9jYWxpenphemlvbmUgZGkgdW5hIGZyYXNlIGFsbCdpbnRlcm5vIGRlbGxhICoqVHJhbnNsYXRpb25DYWNoZSoqXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb24gRGlyZXppb25lIGRlbGxhIHRyYWR1emlvbmUsIHJhcHByZXNlbnRhIGxhIGxpbmd1YSBiYXNlIGluIGN1aSBhc3BldHRhcnNpIGlsIHRlc3RvIGUgbGUgdmFyaWUgbGluZ3VlIGluIGN1aSB2aWVuZSB0cmFkb3R0YS5cclxuICAgICAqIEFkIGVzZW1waW8sIFwiZW4tPml0XCIgaW5kaWNhIGNoZSBpbCBwYXJhbWV0cm8gKipsZWZ0Kiogw6ggdmFsaWRvIHBlciBsZSBsb2NhbGl6emF6aW9uaSBpbiBpbmdsZXNlLCBtZW50cmUgbmVsbCdlbGVtZW50byAwIGRlbCBwYXJhbWV0cm8gKipyaWdodCoqIFxyXG4gICAgICogw6ggcHJlc2VudGUgbCd1bmljYSB0cmFkdXppb25lIGluIGl0YWxpYW5vLCBwZXIgZGVmaW5pcmUgcGnDuSB0cmFkdXppb25pIHN1bCBsYXRvIGRlc3RybyBkZWxsYSBmcmVjY2lhIGJpc29nbmEgY29uY2F0ZW5hcmxlIGNvbiBsYSB2aXJnb2xhLCBhZCBlc2VtcGlvIFwiZW4tPml0LGpwLGVjY1wiXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGVmdCBWYWxvcmUgZGVsbGEgZnJhc2UgcGVyIGxhIGxpbmd1YSBzcGVjaWZpY2F0YSBuZWwgbGF0byBpbW1lZGlhdGFtZW50ZSBzaW5pc3RybyBhbGxhIGZyZWNjaWEgZGVsIHBhcmFtZXRybyAqKmRpcmVjdGlvbioqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmlnaHQgQXJyYXkgY29uIGkgdmFsb3JpIGZhY2VudGkgcmlmZXJpbWVudG8gYWxsJ04tZXNpbWEgbGluZ3VhIGRlbCBsYXRvIGRlc3RybyBkZWwgcGFyYW1ldHJvICoqZGlyZWN0aW9uKipcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldChkaXJlY3Rpb246IHN0cmluZywgbGVmdDogc3RyaW5nLCByaWdodDogc3RyaW5nW10pIHtcclxuICAgICAgICAvLyBDb250cm9sbGEgZGkgbm9uIHJlaW5zZXJpcmUgbGEgc3Rlc3NhIGxvY2FsaXp6YXppb25lIHByZXNlbnRlIG5lbCBCYXNlTG9jYWxpemF0aW9uXHJcbiAgICAgICAgLy8gaSBjb250cm9sbGkgcGVyIGlsIG5vbiByZWluc2VyaW1lbnRvIGRlbGxhIHN0ZXNzYSBsb2NhbGl6emF6aW9uZSBhbGwnaW50ZXJubyBkZWxsYSBzdGVzc2EgaXN0YW56YSDDqCBmYXR0byBsYXRvIFBlcnNpc3RvclxyXG4gICAgICAgIGlmICh0aGlzLmJhc2VMb2NhbGl6YXRpb24uUGVyc2lzdG9yLmdldChsZWZ0LCBmYWxzZSkpIHtcclxuICAgICAgICAgICAgaWYodGhpcy5vbk1pc3NpbmcgIT0gIExvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3kuUHJpbnRTb3VyY2VXaXRob3V0V2FybmluZ3MpXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYExhIGxvY2FsaXp6YXppb25lIHBlciAke2xlZnR9IMOoIGdpw6AgcHJlc2VudGUgZnJhIGxlIGxvY2FsaXp6YXppb25pIGJhc2UsIGlnbm9ybyBsJ29wZXJhemlvbmVgKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoZGlyZWN0aW9uLCBsZWZ0LCByaWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2NhbGl6emEgdW4gdG9rZW5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgSWwgdG9rZW4gZGEgbG9jYWxpenphcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVG9rZW4gbG9jYWxpenphdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRva2VuKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jKHRleHQsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9jYWxpenphIHVuYSBmcmFzZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCBGcmFzZSBkYSBsb2NhbGl6emFyZVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBhbGxvd3Rva2VucyBJbmRpY2Egc2UgbGEgZnJhc2UgKip0ZXh0KiogcG90cmViYmUgZXNzZXJlIHVuIHRva2VuIG8gbm9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gRnJhc2UgbG9jYWxpenphdGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxvYyh0ZXh0OiBzdHJpbmcsIGFsbG93dG9rZW5zPzogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLkxvY2FsZSlcclxuICAgICAgICAgICAgdGhyb3cgXCJJbCBzaXN0ZW1hIGRpIGxvY2FsaXp6YXppb25lIG5vbiBoYSBhbmNvcmEgY2FyaWNhdG8gaWwgTG9jYWxlLCBhc3NpY3VyYXJzaSBkaSBjYXJpY2FyZSBsJ0FQUCBzb2xvIGFsIHJldHJpZXZlIGRlbCBsb2NhbGUnXCI7XHJcblxyXG4gICAgICAgIGlmICghdGV4dCB8fCB0ZXh0ID09IFwidW5kZWZpbmVkXCIpXHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG5cclxuICAgICAgICAvLyBQcmVuZG8gbGEgbG9jYWxpenphemlvbmUgbyBkYWxsYSBjYWNoZSBhdHR1YWxlIG8gZGFsbGEgY2FjaGUgZGVsIHNlcnZpemlvIGJhc2VcclxuICAgICAgICB2YXIgaXRlbSA9IHRoaXMuUGVyc2lzdG9yLmdldCh0ZXh0LCBhbGxvd3Rva2VucykgfHwgdGhpcy5iYXNlTG9jYWxpemF0aW9uLlBlcnNpc3Rvci5nZXQodGV4dCwgYWxsb3d0b2tlbnMpO1xyXG4gICAgICAgIGlmICghaXRlbSkge1xyXG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9IGBJbXBvc3NpYmlsZSB0cm92YXJlIGxhIGxvY2FsaXp6YXppb25lIHBlciAnJHt0ZXh0fSdgO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub25NaXNzaW5nKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIExvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3kuUHJpbnRFbXB0eTpcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMb2NhbGl6YXRpb25NaXNzaW5nUG9saWN5LlByaW50U291cmNlOlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dDtcclxuICAgICAgICAgICAgICAgIGNhc2UgTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeS5QcmludFNvdXJjZVdpdGhvdXRXYXJuaW5nczpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dDtcclxuICAgICAgICAgICAgICAgIGNhc2UgTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeS5UaHJvd0V4Y2VwdGlvbjpcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBtZXNzYWdlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgbG9jID0gdGhpcy5QZXJzaXN0b3IudHJhbnNsYXRpb25CeUN1bHR1cmUoaXRlbSwgdGhpcy5Mb2NhbGUpO1xyXG4gICAgICAgIGlmICghbG9jKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbXBvc3NpYmlsZSB0cm92YXJlIGxhIGxvY2FsaXp6YXppb25lIHBlciAnXCIgKyB0ZXh0ICsgXCInLCBjdWx0dXJlIFwiICsgdGhpcy5Mb2NhbGUpO1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsb2MudHJhbnNsYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGNoYW5nZUxvY2FsZShuZXdMb2NhbGU6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBsb2NhbGUgPSBhd2FpdCB0aGlzLkxvY2FsZVBlcnNpc3Rvci5yZWNvdmVyKCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKG5ld0xvY2FsZSA9PSBsb2NhbGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5pbmZvKFwiSWwgbG9jYWxlIHJpY2hpZXN0byDDqCBsbyBzdGVzc28gZGVsIGxvY2FsZSBhdHR1YWxlLiBJZ25vcm8gbCdvcGVyYXppb25lXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLkxvY2FsZVBlcnNpc3Rvci5wZXJzaXN0KG5ld0xvY2FsZSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export var BaseLocalizationTokens;
|
|
2
|
+
(function (BaseLocalizationTokens) {
|
|
3
|
+
BaseLocalizationTokens["getDateMonthPosition"] = "getDateMonthPosition";
|
|
4
|
+
BaseLocalizationTokens["getDisplayDateMonthPosition"] = "getDisplayDateMonthPosition";
|
|
5
|
+
BaseLocalizationTokens["getLocale"] = "getLocale";
|
|
6
|
+
BaseLocalizationTokens["getSmallDateFormat"] = "getSmallDateFormat";
|
|
7
|
+
BaseLocalizationTokens["getDefaultDateFormat"] = "getDefaultDateFormat";
|
|
8
|
+
BaseLocalizationTokens["getSmallDateDisplayFormat"] = "getSmallDateDisplayFormat";
|
|
9
|
+
BaseLocalizationTokens["getFullDateFormat"] = "getFullDateFormat";
|
|
10
|
+
BaseLocalizationTokens["getFullDateDisplayFormat"] = "getFullDateDisplayFormat";
|
|
11
|
+
BaseLocalizationTokens["getFullDateFormatNoSeconds"] = "getFullDateFormatNoSeconds";
|
|
12
|
+
BaseLocalizationTokens["getFullDateDisplayFormatNoSeconds"] = "getFullDateDisplayFormatNoSeconds";
|
|
13
|
+
})(BaseLocalizationTokens || (BaseLocalizationTokens = {}));
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUxvY2FsaXphdGlvblRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2xpYi9tb2RlbHMvQmFzZUxvY2FsaXphdGlvblRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxzQkFXWDtBQVhELFdBQVksc0JBQXNCO0lBQzlCLHVFQUE2QyxDQUFBO0lBQzdDLHFGQUEyRCxDQUFBO0lBQzNELGlEQUF1QixDQUFBO0lBQ3ZCLG1FQUF5QyxDQUFBO0lBQ3pDLHVFQUE2QyxDQUFBO0lBQzdDLGlGQUF1RCxDQUFBO0lBQ3ZELGlFQUF1QyxDQUFBO0lBQ3ZDLCtFQUFxRCxDQUFBO0lBQ3JELG1GQUF5RCxDQUFBO0lBQ3pELGlHQUF1RSxDQUFBO0FBQzNFLENBQUMsRUFYVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBV2pDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBlbnVtIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMge1xyXG4gICAgZ2V0RGF0ZU1vbnRoUG9zaXRpb24gPSBcImdldERhdGVNb250aFBvc2l0aW9uXCIsXHJcbiAgICBnZXREaXNwbGF5RGF0ZU1vbnRoUG9zaXRpb24gPSBcImdldERpc3BsYXlEYXRlTW9udGhQb3NpdGlvblwiLFxyXG4gICAgZ2V0TG9jYWxlID0gXCJnZXRMb2NhbGVcIixcclxuICAgIGdldFNtYWxsRGF0ZUZvcm1hdCA9IFwiZ2V0U21hbGxEYXRlRm9ybWF0XCIsXHJcbiAgICBnZXREZWZhdWx0RGF0ZUZvcm1hdCA9IFwiZ2V0RGVmYXVsdERhdGVGb3JtYXRcIixcclxuICAgIGdldFNtYWxsRGF0ZURpc3BsYXlGb3JtYXQgPSBcImdldFNtYWxsRGF0ZURpc3BsYXlGb3JtYXRcIixcclxuICAgIGdldEZ1bGxEYXRlRm9ybWF0ID0gXCJnZXRGdWxsRGF0ZUZvcm1hdFwiLFxyXG4gICAgZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0ID0gXCJnZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXRcIixcclxuICAgIGdldEZ1bGxEYXRlRm9ybWF0Tm9TZWNvbmRzID0gXCJnZXRGdWxsRGF0ZUZvcm1hdE5vU2Vjb25kc1wiLFxyXG4gICAgZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0Tm9TZWNvbmRzID0gXCJnZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXROb1NlY29uZHNcIlxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contenitore delle localizzazioni collegate ad un testo "base", una per ogni linguaggio supportato
|
|
3
|
+
*/
|
|
4
|
+
export class ItemLocalization {
|
|
5
|
+
/**
|
|
6
|
+
* Costruttore
|
|
7
|
+
*
|
|
8
|
+
* @param {boolean} token Indica se è un token o se è un testo
|
|
9
|
+
* @param {string} baseText Testo base che verrà richiesto quando verrà cercata la localizzazione
|
|
10
|
+
* @param {SpecializedLocalization[]} translations Lista di traduzioni in base al testo base
|
|
11
|
+
*/
|
|
12
|
+
constructor(token, baseText, translations) {
|
|
13
|
+
this.token = token;
|
|
14
|
+
this.baseText = baseText;
|
|
15
|
+
this.translations = translations;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbUxvY2FsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2xpYi9tb2RlbHMvSXRlbUxvY2FsaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0I7Ozs7OztPQU1HO0lBQ0gsWUFBbUIsS0FBYyxFQUFTLFFBQWdCLEVBQVMsWUFBdUM7UUFBdkYsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxpQkFBWSxHQUFaLFlBQVksQ0FBMkI7SUFBRyxDQUFDO0NBQy9HIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BlY2lhbGl6ZWRMb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9TcGVjaWFsaXplZExvY2FsaXphdGlvblwiO1xyXG5cclxuLyoqXHJcbiAqIENvbnRlbml0b3JlIGRlbGxlIGxvY2FsaXp6YXppb25pIGNvbGxlZ2F0ZSBhZCB1biB0ZXN0byBcImJhc2VcIiwgdW5hIHBlciBvZ25pIGxpbmd1YWdnaW8gc3VwcG9ydGF0b1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEl0ZW1Mb2NhbGl6YXRpb24ge1xyXG5cclxuICAvKipcclxuICAgKiBDb3N0cnV0dG9yZVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gdG9rZW4gSW5kaWNhIHNlIMOoIHVuIHRva2VuIG8gc2Ugw6ggdW4gdGVzdG9cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVRleHQgVGVzdG8gYmFzZSBjaGUgdmVycsOgIHJpY2hpZXN0byBxdWFuZG8gdmVycsOgIGNlcmNhdGEgbGEgbG9jYWxpenphemlvbmVcclxuICAgKiBAcGFyYW0ge1NwZWNpYWxpemVkTG9jYWxpemF0aW9uW119IHRyYW5zbGF0aW9ucyBMaXN0YSBkaSB0cmFkdXppb25pIGluIGJhc2UgYWwgdGVzdG8gYmFzZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0b2tlbjogYm9vbGVhbiwgcHVibGljIGJhc2VUZXh0OiBzdHJpbmcsIHB1YmxpYyB0cmFuc2xhdGlvbnM6IFNwZWNpYWxpemVkTG9jYWxpemF0aW9uW10peyB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LocaleObject } from "./LocaleObject";
|
|
2
|
+
/** Classe che gestisce le definizioni dei locali disponibili */
|
|
3
|
+
export class LocaleDefinitions {
|
|
4
|
+
/** @ignore Costruttore */
|
|
5
|
+
constructor() { }
|
|
6
|
+
/**
|
|
7
|
+
* In base a un alias restituisce il locale rappresentato
|
|
8
|
+
*
|
|
9
|
+
* @param {string} alias Alias in base al quale raccogliere il Locale
|
|
10
|
+
*
|
|
11
|
+
* @returns {LocaleObject} Locale richiesto dall'alias
|
|
12
|
+
*/
|
|
13
|
+
static getByAlias(alias) {
|
|
14
|
+
if (!this.LocaleCache[alias])
|
|
15
|
+
this.LocaleCache[alias] = this.AvailableLocales.find(t => !!t.aliases.find(a => a == alias));
|
|
16
|
+
return this.LocaleCache[alias];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Cache per ottimizzare la chiamata **getByAlias** */
|
|
20
|
+
LocaleDefinitions.LocaleCache = {};
|
|
21
|
+
/** Lista dei locali disponibili, definiti anche con i vari alias */
|
|
22
|
+
LocaleDefinitions.AvailableLocales = [
|
|
23
|
+
new LocaleObject('it-IT', 'Italiano', ['it', 'it-IT'], "it"),
|
|
24
|
+
new LocaleObject('en-US', 'English', ['en', 'en-US'], "en")
|
|
25
|
+
];
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxlRGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2NhbGl6YXRpb25zL3NyYy9saWIvbW9kZWxzL0xvY2FsZURlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxnRUFBZ0U7QUFDaEUsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQiwwQkFBMEI7SUFDMUIsZ0JBQWdCLENBQUM7SUFRakI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVqRyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7QUF4QkQsdURBQXVEO0FBQ3pDLDZCQUFXLEdBQXNDLEVBQUUsQ0FBQztBQUtsRSxvRUFBb0U7QUFDdEQsa0NBQWdCLEdBQW1CO0lBQzdDLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQzVELElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDO0NBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGVPYmplY3QgfSBmcm9tIFwiLi9Mb2NhbGVPYmplY3RcIjtcclxuXHJcbi8qKiBDbGFzc2UgY2hlIGdlc3Rpc2NlIGxlIGRlZmluaXppb25pIGRlaSBsb2NhbGkgZGlzcG9uaWJpbGkgKi9cclxuZXhwb3J0IGNsYXNzIExvY2FsZURlZmluaXRpb25zIHtcclxuXHJcbiAgICAvKiogQ2FjaGUgcGVyIG90dGltaXp6YXJlIGxhIGNoaWFtYXRhICoqZ2V0QnlBbGlhcyoqICovXHJcbiAgICBwdWJsaWMgc3RhdGljIExvY2FsZUNhY2hlOiB7IFthbGlhczogc3RyaW5nXTogTG9jYWxlT2JqZWN0IH0gPSB7fTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICAvKiogTGlzdGEgZGVpIGxvY2FsaSBkaXNwb25pYmlsaSwgZGVmaW5pdGkgYW5jaGUgY29uIGkgdmFyaSBhbGlhcyAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBBdmFpbGFibGVMb2NhbGVzOiBMb2NhbGVPYmplY3RbXSA9IFtcclxuICAgICAgICBuZXcgTG9jYWxlT2JqZWN0KCdpdC1JVCcsICdJdGFsaWFubycsIFsnaXQnLCAnaXQtSVQnXSwgXCJpdFwiKSxcclxuICAgICAgICBuZXcgTG9jYWxlT2JqZWN0KCdlbi1VUycsICdFbmdsaXNoJywgWydlbicsICdlbi1VUyddLCBcImVuXCIpXHJcbiAgICBdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW4gYmFzZSBhIHVuIGFsaWFzIHJlc3RpdHVpc2NlIGlsIGxvY2FsZSByYXBwcmVzZW50YXRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBhbGlhcyBBbGlhcyBpbiBiYXNlIGFsIHF1YWxlIHJhY2NvZ2xpZXJlIGlsIExvY2FsZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7TG9jYWxlT2JqZWN0fSBMb2NhbGUgcmljaGllc3RvIGRhbGwnYWxpYXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBnZXRCeUFsaWFzKGFsaWFzOiBzdHJpbmcpOiBMb2NhbGVPYmplY3Qge1xyXG4gICAgICAgIGlmICghdGhpcy5Mb2NhbGVDYWNoZVthbGlhc10pXHJcbiAgICAgICAgICAgIHRoaXMuTG9jYWxlQ2FjaGVbYWxpYXNdID0gdGhpcy5BdmFpbGFibGVMb2NhbGVzLmZpbmQodCA9PiAhIXQuYWxpYXNlcy5maW5kKGEgPT4gYSA9PSBhbGlhcykpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5Mb2NhbGVDYWNoZVthbGlhc107XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classe che rappresenta un locale (Es. 'Italiano') con i propri alias (Es. 'it' oppure 'it-IT')
|
|
3
|
+
*/
|
|
4
|
+
export class LocaleObject {
|
|
5
|
+
/**
|
|
6
|
+
* Costruttore
|
|
7
|
+
*
|
|
8
|
+
* @param {string} id Codice locale
|
|
9
|
+
* @param {string} description Descrizione locale
|
|
10
|
+
* @param {string[]} aliases Alias con cui quel locale è conosciuto
|
|
11
|
+
* @param {string} smallVersion Versione standard "small" del locale. Es. "it-IT" -> "it"
|
|
12
|
+
*/
|
|
13
|
+
constructor(id, description, aliases, smallVersion) {
|
|
14
|
+
this.id = id;
|
|
15
|
+
this.description = description;
|
|
16
|
+
this.aliases = aliases;
|
|
17
|
+
this.smallVersion = smallVersion;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxlT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9jYWxpemF0aW9ucy9zcmMvbGliL21vZGVscy9Mb2NhbGVPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUVyQjs7Ozs7OztPQU9HO0lBQ0gsWUFBbUIsRUFBVSxFQUFTLFdBQW1CLEVBQVMsT0FBaUIsRUFBUyxZQUFvQjtRQUE3RixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQVMsaUJBQVksR0FBWixZQUFZLENBQVE7SUFBSSxDQUFDO0NBQ3hIIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiBDbGFzc2UgY2hlIHJhcHByZXNlbnRhIHVuIGxvY2FsZSAoRXMuICdJdGFsaWFubycpIGNvbiBpIHByb3ByaSBhbGlhcyAoRXMuICdpdCcgb3BwdXJlICdpdC1JVCcpXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTG9jYWxlT2JqZWN0IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBDb2RpY2UgbG9jYWxlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb24gRGVzY3JpemlvbmUgbG9jYWxlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhbGlhc2VzIEFsaWFzIGNvbiBjdWkgcXVlbCBsb2NhbGUgw6ggY29ub3NjaXV0b1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNtYWxsVmVyc2lvbiBWZXJzaW9uZSBzdGFuZGFyZCBcInNtYWxsXCIgZGVsIGxvY2FsZS4gRXMuIFwiaXQtSVRcIiAtPiBcIml0XCJcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nLCBwdWJsaWMgYWxpYXNlczogc3RyaW5nW10sIHB1YmxpYyBzbWFsbFZlcnNpb246IHN0cmluZykgeyB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum che rappresenta le policy di comportamento qualore il sistema di localizzazione non trovi la localizzazione cercata,
|
|
3
|
+
* usare **ThrowException** solo se ci si sente infallibili o si vuole debuggare in maniera approfondita l'applicazione
|
|
4
|
+
*/
|
|
5
|
+
export var LocalizationMissingPolicy;
|
|
6
|
+
(function (LocalizationMissingPolicy) {
|
|
7
|
+
LocalizationMissingPolicy[LocalizationMissingPolicy["PrintEmpty"] = 0] = "PrintEmpty";
|
|
8
|
+
LocalizationMissingPolicy[LocalizationMissingPolicy["PrintSource"] = 1] = "PrintSource";
|
|
9
|
+
LocalizationMissingPolicy[LocalizationMissingPolicy["PrintSourceWithoutWarnings"] = 2] = "PrintSourceWithoutWarnings";
|
|
10
|
+
LocalizationMissingPolicy[LocalizationMissingPolicy["ThrowException"] = 3] = "ThrowException";
|
|
11
|
+
})(LocalizationMissingPolicy || (LocalizationMissingPolicy = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2xpYi9tb2RlbHMvTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLHFGQUFVLENBQUE7SUFDVix1RkFBVyxDQUFBO0lBQ1gscUhBQTBCLENBQUE7SUFDMUIsNkZBQWMsQ0FBQTtBQUNoQixDQUFDLEVBTFcseUJBQXlCLEtBQXpCLHlCQUF5QixRQUtwQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vKiogXHJcbiAqIEVudW0gY2hlIHJhcHByZXNlbnRhIGxlIHBvbGljeSBkaSBjb21wb3J0YW1lbnRvIHF1YWxvcmUgaWwgc2lzdGVtYSBkaSBsb2NhbGl6emF6aW9uZSBub24gdHJvdmkgbGEgbG9jYWxpenphemlvbmUgY2VyY2F0YSwgXHJcbiAqIHVzYXJlICoqVGhyb3dFeGNlcHRpb24qKiBzb2xvIHNlIGNpIHNpIHNlbnRlIGluZmFsbGliaWxpIG8gc2kgdnVvbGUgZGVidWdnYXJlIGluIG1hbmllcmEgYXBwcm9mb25kaXRhIGwnYXBwbGljYXppb25lIFxyXG4gKi9cclxuZXhwb3J0IGVudW0gTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeSB7XHJcbiAgUHJpbnRFbXB0eSxcclxuICBQcmludFNvdXJjZSxcclxuICBQcmludFNvdXJjZVdpdGhvdXRXYXJuaW5ncyxcclxuICBUaHJvd0V4Y2VwdGlvblxyXG59XHJcbiJdfQ==
|