@stamhoofd/backend-i18n 2.1.3 → 2.10.2

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/dist/I18n.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import { DecodedRequest, Request } from '@simonbackx/simple-endpoints';
2
+ import { Country } from '@stamhoofd/structures';
3
+ export declare class I18n {
4
+ static loadedLocales: Map<string, Map<string, string>>;
5
+ static defaultLanguage: string;
6
+ static defaultCountry: Country;
7
+ static load(): Promise<void>;
8
+ static loadRecursive(messages: any, prefix?: string | null): Map<string, string>;
9
+ static isValidLocale(locale: string): boolean;
10
+ language: string;
11
+ country: string;
12
+ messages: Map<string, string>;
13
+ get locale(): string;
14
+ constructor(language: string, country: string);
15
+ correctLanguageCountryCombination(): void;
16
+ switchToLocale(options: {
17
+ language?: string;
18
+ country?: string;
19
+ }): void;
20
+ static fromRequest(request: Request | DecodedRequest<any, any, any>): I18n;
21
+ t(key: string, replace?: Record<string, string>): string;
22
+ $t(key: string, replace?: Record<string, string>): string;
23
+ escapeRegex(string: any): any;
24
+ replace(text: string, replace?: Record<string, string>): string;
25
+ }
26
+ //# sourceMappingURL=I18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"I18n.d.ts","sourceRoot":"","sources":["../src/I18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIhD,qBAAa,IAAI;IACb,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAY;IAClE,MAAM,CAAC,eAAe,SAAO;IAC7B,MAAM,CAAC,cAAc,UAAkB;WAE1B,IAAI;IAsBjB,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,MAAM,GAAG,IAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAcvF,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM;IAUnC,QAAQ,SAAK;IACb,OAAO,SAAK;IAGZ,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE7B,IAAI,MAAM,WAET;gBAEW,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAa7C,iCAAiC;IA8BjC,cAAc,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACvB;IAaD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IAsDxE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI/C,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhD,WAAW,CAAC,MAAM,KAAA;IAIlB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAYzD"}
package/dist/I18n.js ADDED
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.I18n = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_1 = require("fs");
6
+ const locales_1 = require("@stamhoofd/locales");
7
+ const structures_1 = require("@stamhoofd/structures");
8
+ const path_1 = tslib_1.__importDefault(require("path"));
9
+ const simple_logging_1 = require("@simonbackx/simple-logging");
10
+ class I18n {
11
+ static async load() {
12
+ await simple_logging_1.logger.setContext({
13
+ prefixes: [
14
+ new simple_logging_1.StyledText('[I18n] ').addClass('i18n', 'tag')
15
+ ],
16
+ tags: ['i18n']
17
+ }, async () => {
18
+ console.log("Loading locales...");
19
+ const directory = path_1.default.dirname(require.resolve("@stamhoofd/locales")) + "/" + STAMHOOFD.translationNamespace;
20
+ const files = (await fs_1.promises.readdir(directory, { withFileTypes: true }))
21
+ .filter((dirent) => !dirent.isDirectory());
22
+ for (const file of files) {
23
+ const locale = file.name.substr(0, file.name.length - 5);
24
+ console.log("Loaded:" + locale);
25
+ const messages = await Promise.resolve(`${directory + "/" + file.name}`).then(s => tslib_1.__importStar(require(s)));
26
+ this.loadedLocales.set(locale, this.loadRecursive(messages.default));
27
+ }
28
+ });
29
+ }
30
+ static loadRecursive(messages, prefix = null) {
31
+ const map = new Map();
32
+ for (const key in messages) {
33
+ const element = messages[key];
34
+ if (typeof (element) != "string") {
35
+ const map2 = this.loadRecursive(element, (prefix ? prefix + "." : "") + key);
36
+ map2.forEach((val, key) => map.set(key, val));
37
+ }
38
+ else {
39
+ map.set((prefix ? prefix + "." : "") + key, element);
40
+ }
41
+ }
42
+ return map;
43
+ }
44
+ static isValidLocale(locale) {
45
+ if (locale.length == 5 && locale.substr(2, 1) == "-") {
46
+ const l = locale.substr(0, 2).toLowerCase();
47
+ const c = locale.substr(3, 2).toUpperCase();
48
+ return locales_1.languages.includes(l) && locales_1.countries.includes(c);
49
+ }
50
+ return false;
51
+ }
52
+ get locale() {
53
+ return this.language + "-" + this.country;
54
+ }
55
+ constructor(language, country) {
56
+ this.language = "";
57
+ this.country = "";
58
+ this.language = language;
59
+ this.country = country;
60
+ this.correctLanguageCountryCombination();
61
+ const m = I18n.loadedLocales.get(this.locale);
62
+ if (!m) {
63
+ throw new Error("Locale not loaded when creating I18n for " + language + "-" + country);
64
+ }
65
+ this.messages = m;
66
+ }
67
+ correctLanguageCountryCombination() {
68
+ if (I18n.isValidLocale(this.locale)) {
69
+ return;
70
+ }
71
+ // Check language is valid
72
+ if (!locales_1.languages.includes(this.language)) {
73
+ this.language = I18n.defaultLanguage;
74
+ if (I18n.isValidLocale(this.locale)) {
75
+ return;
76
+ }
77
+ this.country = I18n.defaultCountry;
78
+ return;
79
+ }
80
+ // Loop countries until valid
81
+ this.country = I18n.defaultCountry;
82
+ while (!I18n.isValidLocale(this.locale)) {
83
+ const index = locales_1.countries.indexOf(this.country);
84
+ if (index == locales_1.countries.length - 1) {
85
+ // Last country
86
+ this.language = I18n.defaultLanguage;
87
+ this.country = I18n.defaultCountry;
88
+ return;
89
+ }
90
+ this.country = locales_1.countries[index + 1];
91
+ }
92
+ }
93
+ switchToLocale(options) {
94
+ var _a, _b;
95
+ this.country = (_a = options.country) !== null && _a !== void 0 ? _a : this.country;
96
+ this.language = (_b = options.language) !== null && _b !== void 0 ? _b : this.language;
97
+ this.correctLanguageCountryCombination();
98
+ const m = I18n.loadedLocales.get(this.locale);
99
+ if (!m) {
100
+ throw new Error("Locale not loaded, when switching to locale " + this.language + "-" + this.country);
101
+ }
102
+ this.messages = m;
103
+ }
104
+ static fromRequest(request) {
105
+ if (request._cached_i18n) {
106
+ return request._cached_i18n;
107
+ }
108
+ // Try using custom property
109
+ const localeHeader = request.headers["x-locale"];
110
+ if (localeHeader && typeof localeHeader === "string" && this.isValidLocale(localeHeader)) {
111
+ const l = localeHeader.substr(0, 2).toLowerCase();
112
+ const c = localeHeader.substr(3, 2).toUpperCase();
113
+ const i18n = new I18n(l, c);
114
+ request._cached_i18n = i18n;
115
+ return i18n;
116
+ }
117
+ // Try using accept-language defaults
118
+ const acceptLanguage = request.headers["accept-language"];
119
+ if (acceptLanguage) {
120
+ const splitted = acceptLanguage.split(",");
121
+ // Loop all countries and languages in the header, until we find a valid one
122
+ for (const item of splitted) {
123
+ const trimmed = item.trim();
124
+ const localeSplit = trimmed.split(";");
125
+ const locale = localeSplit[0];
126
+ if (locale.length == 2) {
127
+ // Language
128
+ if (locales_1.languages.includes(locale)) {
129
+ // Use a default country
130
+ // Country can get overriden when matching a organization
131
+ // using .setCountry(country) method
132
+ const i18n = new I18n(locale, structures_1.Country.Belgium);
133
+ request._cached_i18n = i18n;
134
+ return i18n;
135
+ }
136
+ }
137
+ else if (locale.length === 5 && this.isValidLocale(locale)) {
138
+ const l = locale.substr(0, 2).toLowerCase();
139
+ const c = locale.substr(3, 2).toUpperCase();
140
+ // Lang + country
141
+ const i18n = new I18n(l, c);
142
+ request._cached_i18n = i18n;
143
+ return i18n;
144
+ }
145
+ }
146
+ }
147
+ const i18n = new I18n(this.defaultLanguage, this.defaultCountry);
148
+ request._cached_i18n = i18n;
149
+ return i18n;
150
+ }
151
+ t(key, replace) {
152
+ return this.$t(key, replace);
153
+ }
154
+ $t(key, replace) {
155
+ var _a;
156
+ return this.replace((_a = this.messages.get(key)) !== null && _a !== void 0 ? _a : key, replace);
157
+ }
158
+ escapeRegex(string) {
159
+ return string.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
160
+ }
161
+ replace(text, replace) {
162
+ if (!replace) {
163
+ return text;
164
+ }
165
+ for (const key in replace) {
166
+ if (replace.hasOwnProperty(key)) {
167
+ const value = replace[key];
168
+ text = text.replace(new RegExp("{" + this.escapeRegex(key) + "}", "g"), value);
169
+ }
170
+ }
171
+ return text;
172
+ }
173
+ }
174
+ exports.I18n = I18n;
175
+ I18n.loadedLocales = new Map();
176
+ I18n.defaultLanguage = "nl";
177
+ I18n.defaultCountry = structures_1.Country.Belgium;
178
+ //# sourceMappingURL=I18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"I18n.js","sourceRoot":"","sources":["../src/I18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { I18n } from "./I18n";
2
+ export * from "./I18n";
3
+ declare module '@simonbackx/simple-endpoints/dist/src/DecodedRequest' {
4
+ interface DecodedRequest<Params, Query, Body> {
5
+ get i18n(): I18n;
6
+ $t(key: string, replace?: Record<string, string>): string;
7
+ }
8
+ }
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,cAAc,QAAQ,CAAA;AAGtB,OAAO,QAAQ,sDAAsD,CAAC;IAElE,UAAU,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,IAAI,CAAA;QAChB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;KAC5D;CACJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yFAAsF;AACtF,iCAA8B;AAE9B,iDAAsB;AAWtB,MAAM,CAAC,cAAc,CAAC,+BAAc,CAAC,SAAS,EAAE,MAAM,EAAE;IACpD,GAAG;QACC,OAAO,WAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACJ,CAAC,CAAA;AAEF,+BAAc,CAAC,SAAS,CAAC,EAAE,GAAG,UAAyE,GAAW,EAAE,OAAgC;IAChJ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@stamhoofd/backend-i18n",
3
- "version": "2.1.3",
3
+ "version": "2.10.2",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
7
7
  "sideEffects": false,
8
8
  "files": [
9
+ "dist",
9
10
  "src"
10
11
  ],
11
12
  "scripts": {
12
- "build": "tsc -b",
13
- "build:full": "rm -rf ./dist && yarn build"
13
+ "build": "tsc -b"
14
14
  },
15
15
  "peerDependencies": {
16
16
  "@simonbackx/simple-endpoints": "*"
17
17
  },
18
- "gitHead": "b5773c547dceaae52b9c2a098b222417fcd42e4f"
18
+ "gitHead": "07413822cace1cd39c94c24b8ebef2dda9a89ff9"
19
19
  }