@theia/localization-manager 1.72.0-next.30 → 1.72.0-next.42
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/lib/localization-extractor.d.ts.map +1 -1
- package/lib/localization-extractor.js +30 -32
- package/lib/localization-extractor.js.map +1 -1
- package/lib/localization-extractor.spec.js +31 -4
- package/lib/localization-extractor.spec.js.map +1 -1
- package/lib/localization-manager.d.ts +3 -1
- package/lib/localization-manager.d.ts.map +1 -1
- package/lib/localization-manager.js +18 -6
- package/lib/localization-manager.js.map +1 -1
- package/lib/localization-manager.spec.js +27 -0
- package/lib/localization-manager.spec.js.map +1 -1
- package/package.json +2 -2
- package/src/localization-extractor.spec.ts +34 -4
- package/src/localization-extractor.ts +33 -32
- package/src/localization-manager.spec.ts +30 -0
- package/src/localization-manager.ts +19 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-extractor.d.ts","sourceRoot":"","sources":["../src/localization-extractor.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,YAAY,EAAoB,MAAM,UAAU,CAAC;AAI1D,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;
|
|
1
|
+
{"version":3,"file":"localization-extractor.d.ts","sourceRoot":"","sources":["../src/localization-extractor.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,YAAY,EAAoB,MAAM,UAAU,CAAC;AAI1D,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AA+CD,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BvE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiC1I"}
|
|
@@ -49,8 +49,9 @@ class SingleFileServiceHost {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
class TypeScriptError extends Error {
|
|
52
|
-
constructor(message, node) {
|
|
52
|
+
constructor(message, node, crossFileReference = false) {
|
|
53
53
|
super(buildErrorMessage(message, node));
|
|
54
|
+
this.crossFileReference = crossFileReference;
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
function buildErrorMessage(message, node) {
|
|
@@ -103,11 +104,7 @@ async function extractFromFile(file, content, errors, options) {
|
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
catch (err) {
|
|
106
|
-
|
|
107
|
-
errors?.push(tsError.message);
|
|
108
|
-
if (!options?.quiet) {
|
|
109
|
-
console.log(tsError.message);
|
|
110
|
-
}
|
|
107
|
+
reportError(err, errors, options);
|
|
111
108
|
}
|
|
112
109
|
}
|
|
113
110
|
const localizedCommands = collect(sourceFile, node => isCommandLocalizeUtility(node));
|
|
@@ -124,15 +121,18 @@ async function extractFromFile(file, content, errors, options) {
|
|
|
124
121
|
}
|
|
125
122
|
}
|
|
126
123
|
catch (err) {
|
|
127
|
-
|
|
128
|
-
errors?.push(tsError.message);
|
|
129
|
-
if (!options?.quiet) {
|
|
130
|
-
console.log(tsError.message);
|
|
131
|
-
}
|
|
124
|
+
reportError(err, errors, options);
|
|
132
125
|
}
|
|
133
126
|
}
|
|
134
127
|
return localization;
|
|
135
128
|
}
|
|
129
|
+
function reportError(err, errors, options) {
|
|
130
|
+
const tsError = err;
|
|
131
|
+
errors?.push(tsError.message);
|
|
132
|
+
if (!options?.quiet && !tsError.crossFileReference) {
|
|
133
|
+
console.log(tsError.message);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
136
|
function isExcluded(options, key) {
|
|
137
137
|
return !!options?.exclude && key.startsWith(options.exclude);
|
|
138
138
|
}
|
|
@@ -234,11 +234,7 @@ function extractFromLocalizedCommandCall(node, errors, options) {
|
|
|
234
234
|
propertyMap.set(name, value);
|
|
235
235
|
}
|
|
236
236
|
catch (err) {
|
|
237
|
-
|
|
238
|
-
errors?.push(tsError.message);
|
|
239
|
-
if (!options?.quiet) {
|
|
240
|
-
console.log(tsError.message);
|
|
241
|
-
}
|
|
237
|
+
reportError(err, errors, options);
|
|
242
238
|
}
|
|
243
239
|
}
|
|
244
240
|
let labelKey = propertyMap.get('id');
|
|
@@ -254,11 +250,7 @@ function extractFromLocalizedCommandCall(node, errors, options) {
|
|
|
254
250
|
}
|
|
255
251
|
}
|
|
256
252
|
catch (err) {
|
|
257
|
-
|
|
258
|
-
errors?.push(tsError.message);
|
|
259
|
-
if (!options?.quiet) {
|
|
260
|
-
console.log(tsError.message);
|
|
261
|
-
}
|
|
253
|
+
reportError(err, errors, options);
|
|
262
254
|
}
|
|
263
255
|
}
|
|
264
256
|
// We have an explicit category translation key
|
|
@@ -268,11 +260,7 @@ function extractFromLocalizedCommandCall(node, errors, options) {
|
|
|
268
260
|
categoryNode = args[2];
|
|
269
261
|
}
|
|
270
262
|
catch (err) {
|
|
271
|
-
|
|
272
|
-
errors?.push(tsError.message);
|
|
273
|
-
if (!options?.quiet) {
|
|
274
|
-
console.log(tsError.message);
|
|
275
|
-
}
|
|
263
|
+
reportError(err, errors, options);
|
|
276
264
|
}
|
|
277
265
|
}
|
|
278
266
|
if (!labelKey) {
|
|
@@ -301,7 +289,7 @@ function extractString(node) {
|
|
|
301
289
|
if (ts.isIdentifier(node)) {
|
|
302
290
|
const reference = followReference(node);
|
|
303
291
|
if (!reference) {
|
|
304
|
-
throw new TypeScriptError(`
|
|
292
|
+
throw new TypeScriptError(`Skipping '${node.text}': could not resolve reference (may be imported from another file)`, node, true);
|
|
305
293
|
}
|
|
306
294
|
node = reference;
|
|
307
295
|
}
|
|
@@ -320,6 +308,9 @@ function extractString(node) {
|
|
|
320
308
|
if (ts.isBinaryExpression(node) && node.operatorToken.kind === ts.SyntaxKind.PlusToken) {
|
|
321
309
|
return extractString(node.left) + extractString(node.right);
|
|
322
310
|
}
|
|
311
|
+
if (ts.isPropertyAccessExpression(node) || ts.isCallExpression(node)) {
|
|
312
|
+
throw new TypeScriptError(`Skipping '${node.getText()}': expression cannot be statically resolved`, node, true);
|
|
313
|
+
}
|
|
323
314
|
if (!ts.isStringLiteralLike(node)) {
|
|
324
315
|
throw new TypeScriptError(`'${node.getText()}' is not a string constant`, node);
|
|
325
316
|
}
|
|
@@ -333,11 +324,9 @@ function followReference(node) {
|
|
|
333
324
|
}
|
|
334
325
|
return next;
|
|
335
326
|
}
|
|
336
|
-
function
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
if (locals) {
|
|
340
|
-
for (const [key, value] of locals.entries()) {
|
|
327
|
+
function collectSymbols(symbols, map) {
|
|
328
|
+
if (symbols) {
|
|
329
|
+
for (const [key, value] of symbols.entries()) {
|
|
341
330
|
if (!map.has(key)) {
|
|
342
331
|
const declaration = value.valueDeclaration;
|
|
343
332
|
if (declaration && ts.isVariableDeclaration(declaration) && declaration.initializer) {
|
|
@@ -346,6 +335,15 @@ function collectScope(node, map = new Map()) {
|
|
|
346
335
|
}
|
|
347
336
|
}
|
|
348
337
|
}
|
|
338
|
+
}
|
|
339
|
+
function collectScope(node, map = new Map()) {
|
|
340
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
341
|
+
const locals = node['locals'];
|
|
342
|
+
collectSymbols(locals, map);
|
|
343
|
+
// Exported declarations (e.g. `export const`) are stored in `symbol.exports` rather than `locals`
|
|
344
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
345
|
+
const exports = node['symbol']?.exports;
|
|
346
|
+
collectSymbols(exports, map);
|
|
349
347
|
if (node.parent) {
|
|
350
348
|
collectScope(node.parent, map);
|
|
351
349
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-extractor.js","sourceRoot":"","sources":["../src/localization-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"localization-extractor.js","sourceRoot":"","sources":["../src/localization-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,15 +88,23 @@ describe('correctly extracts from file content', () => {
|
|
|
88
88
|
const errors = [];
|
|
89
89
|
assert.deepStrictEqual(await (0, localization_extractor_1.extractFromFile)(TEST_FILE, content, errors, quiet), {});
|
|
90
90
|
assert.deepStrictEqual(errors, [
|
|
91
|
-
"test.ts(1,14):
|
|
91
|
+
"test.ts(1,14): Skipping 'a': could not resolve reference (may be imported from another file)"
|
|
92
92
|
]);
|
|
93
93
|
});
|
|
94
|
-
it('should return an error when resolving from
|
|
94
|
+
it('should return an error when resolving from a property access expression', async () => {
|
|
95
95
|
const content = "nls.localize(test.value, 'value');";
|
|
96
96
|
const errors = [];
|
|
97
97
|
assert.deepStrictEqual(await (0, localization_extractor_1.extractFromFile)(TEST_FILE, content, errors, quiet), {});
|
|
98
98
|
assert.deepStrictEqual(errors, [
|
|
99
|
-
"test.ts(1,14): 'test.value'
|
|
99
|
+
"test.ts(1,14): Skipping 'test.value': expression cannot be statically resolved"
|
|
100
|
+
]);
|
|
101
|
+
});
|
|
102
|
+
it('should silently skip call expressions used as arguments', async () => {
|
|
103
|
+
const content = "nls.localize('key', someFunction());";
|
|
104
|
+
const errors = [];
|
|
105
|
+
assert.deepStrictEqual(await (0, localization_extractor_1.extractFromFile)(TEST_FILE, content, errors, quiet), {});
|
|
106
|
+
assert.deepStrictEqual(errors, [
|
|
107
|
+
"test.ts(1,20): Skipping 'someFunction()': expression cannot be statically resolved"
|
|
100
108
|
]);
|
|
101
109
|
});
|
|
102
110
|
it('should show error when trying to merge an object and a string', async () => {
|
|
@@ -174,12 +182,31 @@ describe('correctly extracts from file content', () => {
|
|
|
174
182
|
'key': 'part one part two part three'
|
|
175
183
|
});
|
|
176
184
|
});
|
|
185
|
+
it('should resolve exported const references', async () => {
|
|
186
|
+
const content = `
|
|
187
|
+
export const MY_MESSAGE = 'Hello World';
|
|
188
|
+
nls.localize('key', MY_MESSAGE);
|
|
189
|
+
`;
|
|
190
|
+
assert.deepStrictEqual(await (0, localization_extractor_1.extractFromFile)(TEST_FILE, content), {
|
|
191
|
+
'key': 'Hello World'
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
it('should resolve exported const with string concatenation', async () => {
|
|
195
|
+
const content = `
|
|
196
|
+
export const MY_MESSAGE = 'Hello '
|
|
197
|
+
+ 'World';
|
|
198
|
+
nls.localize('key', MY_MESSAGE);
|
|
199
|
+
`;
|
|
200
|
+
assert.deepStrictEqual(await (0, localization_extractor_1.extractFromFile)(TEST_FILE, content), {
|
|
201
|
+
'key': 'Hello World'
|
|
202
|
+
});
|
|
203
|
+
});
|
|
177
204
|
it('should return an error when concatenation includes a non-string expression', async () => {
|
|
178
205
|
const content = 'nls.localize("key", "hello " + someFunction())';
|
|
179
206
|
const errors = [];
|
|
180
207
|
assert.deepStrictEqual(await (0, localization_extractor_1.extractFromFile)(TEST_FILE, content, errors, quiet), {});
|
|
181
208
|
assert.deepStrictEqual(errors, [
|
|
182
|
-
"test.ts(1,31): 'someFunction()'
|
|
209
|
+
"test.ts(1,31): Skipping 'someFunction()': expression cannot be statically resolved"
|
|
183
210
|
]);
|
|
184
211
|
});
|
|
185
212
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-extractor.spec.js","sourceRoot":"","sources":["../src/localization-extractor.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,iCAAiC;AACjC,qEAA8E;AAE9E,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,KAAK,GAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAEjD,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAElD,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,OAAO,GAAG,8BAA8B,CAAC;QAC/C,MAAM,CAAC,eAAe,CAAC,MAAM,IAAA,wCAAe,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC9D,KAAK,EAAE,OAAO;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,OAAO,GAAG,qCAAqC,CAAC;QACtD,MAAM,CAAC,eAAe,CAAC,MAAM,IAAA,wCAAe,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC9D,QAAQ,EAAE;gBACN,KAAK,EAAE,OAAO;aACjB;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,OAAO,GAAG;;;;;;;;;SASf,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,MAAM,IAAA,wCAAe,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC9D,aAAa,EAAE,gBAAgB;YAC/B,aAAa,EAAE,gBAAgB;SAClC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,OAAO,GAAG;;;;;uCAKe,CAAC;QAChC,MAAM,CAAC,eAAe,CAAC,MAAM,IAAA,wCAAe,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC9D,IAAI,EAAE,OAAO;YACb,cAAc,EAAE,UAAU;SAC7B,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,OAAO,GAAG;;;SAGf,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,MAAM,IAAA,wCAAe,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC9D,QAAQ,EAAE;gBACN,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ;aACnB;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,OAAO,GAAG;;;SAGf,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,MAAM,IAAA,wCAAe,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC9D,KAAK,EAAE,OAAO;SACjB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,OAAO,GAAG,0BAA0B,CAAC;QAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,CAAC,eAAe,CAAC,MAAM,IAAA,wCAAe,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE;YAC3B,
|
|
1
|
+
{"version":3,"file":"localization-extractor.spec.js","sourceRoot":"","sources":["../src/localization-extractor.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export interface LocalizationOptions {
|
|
|
6
6
|
sourceFile: string;
|
|
7
7
|
sourceLanguage?: string;
|
|
8
8
|
targetLanguages: string[];
|
|
9
|
+
forceKeys?: Set<string>;
|
|
9
10
|
}
|
|
10
11
|
export type LocalizationFunction = (parameters: DeeplParameters) => Promise<DeeplResponse>;
|
|
11
12
|
export declare class LocalizationManager {
|
|
@@ -16,10 +17,11 @@ export declare class LocalizationManager {
|
|
|
16
17
|
translateLanguage(source: Localization, target: Localization, targetLanguage: string, options: LocalizationOptions): Promise<boolean>;
|
|
17
18
|
protected addIgnoreTags(text: string): string;
|
|
18
19
|
protected removeIgnoreTags(text: string): string;
|
|
19
|
-
protected buildLocalizationMap(source: Localization, target: Localization): LocalizationMap;
|
|
20
|
+
protected buildLocalizationMap(source: Localization, target: Localization, forceKeys?: Set<string>): LocalizationMap;
|
|
20
21
|
}
|
|
21
22
|
export interface LocalizationMap {
|
|
22
23
|
text: string[];
|
|
24
|
+
keys: string[];
|
|
23
25
|
localize: (index: number, value: string) => void;
|
|
24
26
|
}
|
|
25
27
|
//# sourceMappingURL=localization-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-manager.d.ts","sourceRoot":"","sources":["../src/localization-manager.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAoB,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAiB,eAAe,EAAE,aAAa,EAAyC,MAAM,aAAa,CAAC;AAE1H,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"localization-manager.d.ts","sourceRoot":"","sources":["../src/localization-manager.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAoB,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAiB,eAAe,EAAE,aAAa,EAAyC,MAAM,aAAa,CAAC;AAE1H,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,eAAe,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAE3F,qBAAa,mBAAmB;IAEhB,OAAO,CAAC,cAAc;gBAAd,cAAc,eAAQ;IAEpC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmD9D,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMnE,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC3I,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO7C,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMhD,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,eAAe;CA4CvH;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnD"}
|
|
@@ -84,7 +84,7 @@ class LocalizationManager {
|
|
|
84
84
|
return path.join(directory, `${fileName}.${language.toLowerCase()}.json`);
|
|
85
85
|
}
|
|
86
86
|
async translateLanguage(source, target, targetLanguage, options) {
|
|
87
|
-
const map = this.buildLocalizationMap(source, target);
|
|
87
|
+
const map = this.buildLocalizationMap(source, target, options.forceKeys);
|
|
88
88
|
if (map.text.length > 0) {
|
|
89
89
|
try {
|
|
90
90
|
const translationResponse = await this.localizationFn({
|
|
@@ -101,7 +101,10 @@ class LocalizationManager {
|
|
|
101
101
|
translationResponse.translations.forEach(({ text }, i) => {
|
|
102
102
|
map.localize(i, this.removeIgnoreTags(text));
|
|
103
103
|
});
|
|
104
|
-
console.log(chalk.green(`Successfully translated ${map.text.length} value${map.text.length > 1 ? 's' : ''} for language "${targetLanguage}"
|
|
104
|
+
console.log(chalk.green(`Successfully translated ${map.text.length} value${map.text.length > 1 ? 's' : ''} for language "${targetLanguage}":`));
|
|
105
|
+
for (const key of map.keys) {
|
|
106
|
+
console.log(chalk.green(` - ${key}`));
|
|
107
|
+
}
|
|
105
108
|
return true;
|
|
106
109
|
}
|
|
107
110
|
catch (e) {
|
|
@@ -125,10 +128,11 @@ class LocalizationManager {
|
|
|
125
128
|
// Restore escaped angle brackets
|
|
126
129
|
return result.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
|
|
127
130
|
}
|
|
128
|
-
buildLocalizationMap(source, target) {
|
|
131
|
+
buildLocalizationMap(source, target, forceKeys) {
|
|
129
132
|
const functionMap = new Map();
|
|
130
133
|
const text = [];
|
|
131
|
-
const
|
|
134
|
+
const keys = [];
|
|
135
|
+
const process = (s, t, prefix = '') => {
|
|
132
136
|
// Delete all extra keys in the target translation first
|
|
133
137
|
for (const key of Object.keys(t)) {
|
|
134
138
|
if (!(key in s)) {
|
|
@@ -136,28 +140,36 @@ class LocalizationManager {
|
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
for (const [key, value] of Object.entries(s)) {
|
|
143
|
+
const currentPath = prefix ? `${prefix}/${key}` : key;
|
|
139
144
|
if (!(key in t)) {
|
|
140
145
|
if (typeof value === 'string') {
|
|
141
146
|
functionMap.set(text.length, translation => t[key] = translation);
|
|
142
147
|
text.push(value);
|
|
148
|
+
keys.push(currentPath);
|
|
143
149
|
}
|
|
144
150
|
else {
|
|
145
151
|
const newLocalization = {};
|
|
146
152
|
t[key] = newLocalization;
|
|
147
|
-
process(value, newLocalization);
|
|
153
|
+
process(value, newLocalization, currentPath);
|
|
148
154
|
}
|
|
149
155
|
}
|
|
156
|
+
else if (typeof value === 'string' && forceKeys?.has(currentPath)) {
|
|
157
|
+
functionMap.set(text.length, translation => t[key] = translation);
|
|
158
|
+
text.push(value);
|
|
159
|
+
keys.push(currentPath);
|
|
160
|
+
}
|
|
150
161
|
else if (typeof value === 'object') {
|
|
151
162
|
if (typeof t[key] === 'string') {
|
|
152
163
|
t[key] = {};
|
|
153
164
|
}
|
|
154
|
-
process(value, t[key]);
|
|
165
|
+
process(value, t[key], currentPath);
|
|
155
166
|
}
|
|
156
167
|
}
|
|
157
168
|
};
|
|
158
169
|
process(source, target);
|
|
159
170
|
return {
|
|
160
171
|
text,
|
|
172
|
+
keys,
|
|
161
173
|
localize: (index, value) => functionMap.get(index)(value)
|
|
162
174
|
};
|
|
163
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-manager.js","sourceRoot":"","sources":["../src/localization-manager.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,+BAA+B;AAC/B,+BAA+B;AAC/B,6BAA6B;AAC7B,qCAA0D;AAC1D,2CAA0H;
|
|
1
|
+
{"version":3,"file":"localization-manager.js","sourceRoot":"","sources":["../src/localization-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,33 @@ describe('localization-manager#translateLanguage', () => {
|
|
|
121
121
|
key: '[empty {} braces]'
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
|
+
it('should re-translate forced keys even if they exist in target', async () => {
|
|
125
|
+
const input = { a: 'new-a' };
|
|
126
|
+
const target = { a: 'old-translation' };
|
|
127
|
+
await manager.translateLanguage(input, target, 'EN', {
|
|
128
|
+
...defaultOptions,
|
|
129
|
+
forceKeys: new Set(['a'])
|
|
130
|
+
});
|
|
131
|
+
assert.deepStrictEqual(target, { a: '[new-a]' });
|
|
132
|
+
});
|
|
133
|
+
it('should re-translate nested forced keys', async () => {
|
|
134
|
+
const input = { a: { b: 'new-b' } };
|
|
135
|
+
const target = { a: { b: 'old-translation' } };
|
|
136
|
+
await manager.translateLanguage(input, target, 'EN', {
|
|
137
|
+
...defaultOptions,
|
|
138
|
+
forceKeys: new Set(['a/b'])
|
|
139
|
+
});
|
|
140
|
+
assert.deepStrictEqual(target, { a: { b: '[new-b]' } });
|
|
141
|
+
});
|
|
142
|
+
it('should not re-translate keys not in force set', async () => {
|
|
143
|
+
const input = { a: 'new-a', b: 'new-b' };
|
|
144
|
+
const target = { a: 'old-a', b: 'old-b' };
|
|
145
|
+
await manager.translateLanguage(input, target, 'EN', {
|
|
146
|
+
...defaultOptions,
|
|
147
|
+
forceKeys: new Set(['a'])
|
|
148
|
+
});
|
|
149
|
+
assert.deepStrictEqual(target, { a: '[new-a]', b: 'old-b' });
|
|
150
|
+
});
|
|
124
151
|
it('should pass context to the localization function', async () => {
|
|
125
152
|
let receivedContext;
|
|
126
153
|
const contextCapture = new localization_manager_1.LocalizationManager(async (parameters) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-manager.spec.js","sourceRoot":"","sources":["../src/localization-manager.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"localization-manager.spec.js","sourceRoot":"","sources":["../src/localization-manager.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/localization-manager",
|
|
3
|
-
"version": "1.72.0-next.
|
|
3
|
+
"version": "1.72.0-next.42+0bd5c7b25",
|
|
4
4
|
"description": "Theia localization manager API.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"nyc": {
|
|
47
47
|
"extends": "../../configs/nyc.json"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "0bd5c7b25cf6f444078681d4a24e263320b29907"
|
|
50
50
|
}
|
|
@@ -96,16 +96,25 @@ describe('correctly extracts from file content', () => {
|
|
|
96
96
|
const errors: string[] = [];
|
|
97
97
|
assert.deepStrictEqual(await extractFromFile(TEST_FILE, content, errors, quiet), {});
|
|
98
98
|
assert.deepStrictEqual(errors, [
|
|
99
|
-
"test.ts(1,14):
|
|
99
|
+
"test.ts(1,14): Skipping 'a': could not resolve reference (may be imported from another file)"
|
|
100
100
|
]);
|
|
101
101
|
});
|
|
102
102
|
|
|
103
|
-
it('should return an error when resolving from
|
|
103
|
+
it('should return an error when resolving from a property access expression', async () => {
|
|
104
104
|
const content = "nls.localize(test.value, 'value');";
|
|
105
105
|
const errors: string[] = [];
|
|
106
106
|
assert.deepStrictEqual(await extractFromFile(TEST_FILE, content, errors, quiet), {});
|
|
107
107
|
assert.deepStrictEqual(errors, [
|
|
108
|
-
"test.ts(1,14): 'test.value'
|
|
108
|
+
"test.ts(1,14): Skipping 'test.value': expression cannot be statically resolved"
|
|
109
|
+
]);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('should silently skip call expressions used as arguments', async () => {
|
|
113
|
+
const content = "nls.localize('key', someFunction());";
|
|
114
|
+
const errors: string[] = [];
|
|
115
|
+
assert.deepStrictEqual(await extractFromFile(TEST_FILE, content, errors, quiet), {});
|
|
116
|
+
assert.deepStrictEqual(errors, [
|
|
117
|
+
"test.ts(1,20): Skipping 'someFunction()': expression cannot be statically resolved"
|
|
109
118
|
]);
|
|
110
119
|
});
|
|
111
120
|
|
|
@@ -192,12 +201,33 @@ describe('correctly extracts from file content', () => {
|
|
|
192
201
|
});
|
|
193
202
|
});
|
|
194
203
|
|
|
204
|
+
it('should resolve exported const references', async () => {
|
|
205
|
+
const content = `
|
|
206
|
+
export const MY_MESSAGE = 'Hello World';
|
|
207
|
+
nls.localize('key', MY_MESSAGE);
|
|
208
|
+
`;
|
|
209
|
+
assert.deepStrictEqual(await extractFromFile(TEST_FILE, content), {
|
|
210
|
+
'key': 'Hello World'
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it('should resolve exported const with string concatenation', async () => {
|
|
215
|
+
const content = `
|
|
216
|
+
export const MY_MESSAGE = 'Hello '
|
|
217
|
+
+ 'World';
|
|
218
|
+
nls.localize('key', MY_MESSAGE);
|
|
219
|
+
`;
|
|
220
|
+
assert.deepStrictEqual(await extractFromFile(TEST_FILE, content), {
|
|
221
|
+
'key': 'Hello World'
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
|
|
195
225
|
it('should return an error when concatenation includes a non-string expression', async () => {
|
|
196
226
|
const content = 'nls.localize("key", "hello " + someFunction())';
|
|
197
227
|
const errors: string[] = [];
|
|
198
228
|
assert.deepStrictEqual(await extractFromFile(TEST_FILE, content, errors, quiet), {});
|
|
199
229
|
assert.deepStrictEqual(errors, [
|
|
200
|
-
"test.ts(1,31): 'someFunction()'
|
|
230
|
+
"test.ts(1,31): Skipping 'someFunction()': expression cannot be statically resolved"
|
|
201
231
|
]);
|
|
202
232
|
});
|
|
203
233
|
|
|
@@ -63,8 +63,10 @@ class SingleFileServiceHost implements ts.LanguageServiceHost {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
class TypeScriptError extends Error {
|
|
66
|
-
|
|
66
|
+
readonly crossFileReference: boolean;
|
|
67
|
+
constructor(message: string, node: ts.Node, crossFileReference = false) {
|
|
67
68
|
super(buildErrorMessage(message, node));
|
|
69
|
+
this.crossFileReference = crossFileReference;
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
|
|
@@ -122,11 +124,7 @@ export async function extractFromFile(file: string, content: string, errors?: st
|
|
|
122
124
|
insert(localization, extracted);
|
|
123
125
|
}
|
|
124
126
|
} catch (err) {
|
|
125
|
-
|
|
126
|
-
errors?.push(tsError.message);
|
|
127
|
-
if (!options?.quiet) {
|
|
128
|
-
console.log(tsError.message);
|
|
129
|
-
}
|
|
127
|
+
reportError(err, errors, options);
|
|
130
128
|
}
|
|
131
129
|
}
|
|
132
130
|
const localizedCommands = collect(sourceFile, node => isCommandLocalizeUtility(node));
|
|
@@ -142,16 +140,20 @@ export async function extractFromFile(file: string, content: string, errors?: st
|
|
|
142
140
|
insert(localization, category);
|
|
143
141
|
}
|
|
144
142
|
} catch (err) {
|
|
145
|
-
|
|
146
|
-
errors?.push(tsError.message);
|
|
147
|
-
if (!options?.quiet) {
|
|
148
|
-
console.log(tsError.message);
|
|
149
|
-
}
|
|
143
|
+
reportError(err, errors, options);
|
|
150
144
|
}
|
|
151
145
|
}
|
|
152
146
|
return localization;
|
|
153
147
|
}
|
|
154
148
|
|
|
149
|
+
function reportError(err: unknown, errors?: string[], options?: ExtractionOptions): void {
|
|
150
|
+
const tsError = err as TypeScriptError;
|
|
151
|
+
errors?.push(tsError.message);
|
|
152
|
+
if (!options?.quiet && !tsError.crossFileReference) {
|
|
153
|
+
console.log(tsError.message);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
155
157
|
function isExcluded(options: ExtractionOptions | undefined, key: string): boolean {
|
|
156
158
|
return !!options?.exclude && key.startsWith(options.exclude);
|
|
157
159
|
}
|
|
@@ -273,11 +275,7 @@ function extractFromLocalizedCommandCall(node: ts.Node, errors?: string[], optio
|
|
|
273
275
|
const value = extractString(property.initializer);
|
|
274
276
|
propertyMap.set(name, value);
|
|
275
277
|
} catch (err) {
|
|
276
|
-
|
|
277
|
-
errors?.push(tsError.message);
|
|
278
|
-
if (!options?.quiet) {
|
|
279
|
-
console.log(tsError.message);
|
|
280
|
-
}
|
|
278
|
+
reportError(err, errors, options);
|
|
281
279
|
}
|
|
282
280
|
}
|
|
283
281
|
|
|
@@ -294,11 +292,7 @@ function extractFromLocalizedCommandCall(node: ts.Node, errors?: string[], optio
|
|
|
294
292
|
labelNode = args[1];
|
|
295
293
|
}
|
|
296
294
|
} catch (err) {
|
|
297
|
-
|
|
298
|
-
errors?.push(tsError.message);
|
|
299
|
-
if (!options?.quiet) {
|
|
300
|
-
console.log(tsError.message);
|
|
301
|
-
}
|
|
295
|
+
reportError(err, errors, options);
|
|
302
296
|
}
|
|
303
297
|
}
|
|
304
298
|
|
|
@@ -308,11 +302,7 @@ function extractFromLocalizedCommandCall(node: ts.Node, errors?: string[], optio
|
|
|
308
302
|
categoryKey = extractStringOrUndefined(args[2]);
|
|
309
303
|
categoryNode = args[2];
|
|
310
304
|
} catch (err) {
|
|
311
|
-
|
|
312
|
-
errors?.push(tsError.message);
|
|
313
|
-
if (!options?.quiet) {
|
|
314
|
-
console.log(tsError.message);
|
|
315
|
-
}
|
|
305
|
+
reportError(err, errors, options);
|
|
316
306
|
}
|
|
317
307
|
}
|
|
318
308
|
|
|
@@ -347,7 +337,7 @@ function extractString(node: ts.Expression): string {
|
|
|
347
337
|
if (ts.isIdentifier(node)) {
|
|
348
338
|
const reference = followReference(node);
|
|
349
339
|
if (!reference) {
|
|
350
|
-
throw new TypeScriptError(`
|
|
340
|
+
throw new TypeScriptError(`Skipping '${node.text}': could not resolve reference (may be imported from another file)`, node, true);
|
|
351
341
|
}
|
|
352
342
|
node = reference;
|
|
353
343
|
}
|
|
@@ -369,6 +359,9 @@ function extractString(node: ts.Expression): string {
|
|
|
369
359
|
if (ts.isBinaryExpression(node) && node.operatorToken.kind === ts.SyntaxKind.PlusToken) {
|
|
370
360
|
return extractString(node.left) + extractString(node.right);
|
|
371
361
|
}
|
|
362
|
+
if (ts.isPropertyAccessExpression(node) || ts.isCallExpression(node)) {
|
|
363
|
+
throw new TypeScriptError(`Skipping '${node.getText()}': expression cannot be statically resolved`, node, true);
|
|
364
|
+
}
|
|
372
365
|
if (!ts.isStringLiteralLike(node)) {
|
|
373
366
|
throw new TypeScriptError(`'${node.getText()}' is not a string constant`, node);
|
|
374
367
|
}
|
|
@@ -385,11 +378,9 @@ function followReference(node: ts.Identifier): ts.Expression | undefined {
|
|
|
385
378
|
return next;
|
|
386
379
|
}
|
|
387
380
|
|
|
388
|
-
function
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
if (locals) {
|
|
392
|
-
for (const [key, value] of locals.entries()) {
|
|
381
|
+
function collectSymbols(symbols: Map<string, ts.Symbol> | undefined, map: Map<string, ts.Expression>): void {
|
|
382
|
+
if (symbols) {
|
|
383
|
+
for (const [key, value] of symbols.entries()) {
|
|
393
384
|
if (!map.has(key)) {
|
|
394
385
|
const declaration = value.valueDeclaration;
|
|
395
386
|
if (declaration && ts.isVariableDeclaration(declaration) && declaration.initializer) {
|
|
@@ -398,6 +389,16 @@ function collectScope(node: ts.Node, map: Map<string, ts.Expression> = new Map()
|
|
|
398
389
|
}
|
|
399
390
|
}
|
|
400
391
|
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
function collectScope(node: ts.Node, map: Map<string, ts.Expression> = new Map()): Map<string, ts.Expression> {
|
|
395
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
396
|
+
const locals = (node as any)['locals'] as Map<string, ts.Symbol>;
|
|
397
|
+
collectSymbols(locals, map);
|
|
398
|
+
// Exported declarations (e.g. `export const`) are stored in `symbol.exports` rather than `locals`
|
|
399
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
400
|
+
const exports = (node as any)['symbol']?.exports as Map<string, ts.Symbol> | undefined;
|
|
401
|
+
collectSymbols(exports, map);
|
|
401
402
|
if (node.parent) {
|
|
402
403
|
collectScope(node.parent, map);
|
|
403
404
|
}
|
|
@@ -133,6 +133,36 @@ describe('localization-manager#translateLanguage', () => {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
|
|
136
|
+
it('should re-translate forced keys even if they exist in target', async () => {
|
|
137
|
+
const input = { a: 'new-a' };
|
|
138
|
+
const target = { a: 'old-translation' };
|
|
139
|
+
await manager.translateLanguage(input, target, 'EN', {
|
|
140
|
+
...defaultOptions,
|
|
141
|
+
forceKeys: new Set(['a'])
|
|
142
|
+
});
|
|
143
|
+
assert.deepStrictEqual(target, { a: '[new-a]' });
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
it('should re-translate nested forced keys', async () => {
|
|
147
|
+
const input = { a: { b: 'new-b' } };
|
|
148
|
+
const target = { a: { b: 'old-translation' } };
|
|
149
|
+
await manager.translateLanguage(input, target, 'EN', {
|
|
150
|
+
...defaultOptions,
|
|
151
|
+
forceKeys: new Set(['a/b'])
|
|
152
|
+
});
|
|
153
|
+
assert.deepStrictEqual(target, { a: { b: '[new-b]' } });
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
it('should not re-translate keys not in force set', async () => {
|
|
157
|
+
const input = { a: 'new-a', b: 'new-b' };
|
|
158
|
+
const target = { a: 'old-a', b: 'old-b' };
|
|
159
|
+
await manager.translateLanguage(input, target, 'EN', {
|
|
160
|
+
...defaultOptions,
|
|
161
|
+
forceKeys: new Set(['a'])
|
|
162
|
+
});
|
|
163
|
+
assert.deepStrictEqual(target, { a: '[new-a]', b: 'old-b' });
|
|
164
|
+
});
|
|
165
|
+
|
|
136
166
|
it('should pass context to the localization function', async () => {
|
|
137
167
|
let receivedContext: string | undefined;
|
|
138
168
|
const contextCapture = new LocalizationManager(async (parameters: DeeplParameters) => {
|
|
@@ -26,6 +26,7 @@ export interface LocalizationOptions {
|
|
|
26
26
|
sourceFile: string
|
|
27
27
|
sourceLanguage?: string
|
|
28
28
|
targetLanguages: string[]
|
|
29
|
+
forceKeys?: Set<string>
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export type LocalizationFunction = (parameters: DeeplParameters) => Promise<DeeplResponse>;
|
|
@@ -92,7 +93,7 @@ export class LocalizationManager {
|
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
async translateLanguage(source: Localization, target: Localization, targetLanguage: string, options: LocalizationOptions): Promise<boolean> {
|
|
95
|
-
const map = this.buildLocalizationMap(source, target);
|
|
96
|
+
const map = this.buildLocalizationMap(source, target, options.forceKeys);
|
|
96
97
|
if (map.text.length > 0) {
|
|
97
98
|
try {
|
|
98
99
|
const translationResponse = await this.localizationFn({
|
|
@@ -109,7 +110,10 @@ export class LocalizationManager {
|
|
|
109
110
|
translationResponse.translations.forEach(({ text }, i) => {
|
|
110
111
|
map.localize(i, this.removeIgnoreTags(text));
|
|
111
112
|
});
|
|
112
|
-
console.log(chalk.green(`Successfully translated ${map.text.length} value${map.text.length > 1 ? 's' : ''} for language "${targetLanguage}"
|
|
113
|
+
console.log(chalk.green(`Successfully translated ${map.text.length} value${map.text.length > 1 ? 's' : ''} for language "${targetLanguage}":`));
|
|
114
|
+
for (const key of map.keys) {
|
|
115
|
+
console.log(chalk.green(` - ${key}`));
|
|
116
|
+
}
|
|
113
117
|
return true;
|
|
114
118
|
} catch (e) {
|
|
115
119
|
console.log(chalk.red(`Could not translate into language "${targetLanguage}"`), e);
|
|
@@ -134,10 +138,11 @@ export class LocalizationManager {
|
|
|
134
138
|
return result.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
|
|
135
139
|
}
|
|
136
140
|
|
|
137
|
-
protected buildLocalizationMap(source: Localization, target: Localization): LocalizationMap {
|
|
141
|
+
protected buildLocalizationMap(source: Localization, target: Localization, forceKeys?: Set<string>): LocalizationMap {
|
|
138
142
|
const functionMap = new Map<number, (value: string) => void>();
|
|
139
143
|
const text: string[] = [];
|
|
140
|
-
const
|
|
144
|
+
const keys: string[] = [];
|
|
145
|
+
const process = (s: Localization, t: Localization, prefix = '') => {
|
|
141
146
|
// Delete all extra keys in the target translation first
|
|
142
147
|
for (const key of Object.keys(t)) {
|
|
143
148
|
if (!(key in s)) {
|
|
@@ -145,20 +150,26 @@ export class LocalizationManager {
|
|
|
145
150
|
}
|
|
146
151
|
}
|
|
147
152
|
for (const [key, value] of Object.entries(s)) {
|
|
153
|
+
const currentPath = prefix ? `${prefix}/${key}` : key;
|
|
148
154
|
if (!(key in t)) {
|
|
149
155
|
if (typeof value === 'string') {
|
|
150
156
|
functionMap.set(text.length, translation => t[key] = translation);
|
|
151
157
|
text.push(value);
|
|
158
|
+
keys.push(currentPath);
|
|
152
159
|
} else {
|
|
153
160
|
const newLocalization: Localization = {};
|
|
154
161
|
t[key] = newLocalization;
|
|
155
|
-
process(value, newLocalization);
|
|
162
|
+
process(value, newLocalization, currentPath);
|
|
156
163
|
}
|
|
164
|
+
} else if (typeof value === 'string' && forceKeys?.has(currentPath)) {
|
|
165
|
+
functionMap.set(text.length, translation => t[key] = translation);
|
|
166
|
+
text.push(value);
|
|
167
|
+
keys.push(currentPath);
|
|
157
168
|
} else if (typeof value === 'object') {
|
|
158
169
|
if (typeof t[key] === 'string') {
|
|
159
170
|
t[key] = {};
|
|
160
171
|
}
|
|
161
|
-
process(value, t[key] as Localization);
|
|
172
|
+
process(value, t[key] as Localization, currentPath);
|
|
162
173
|
}
|
|
163
174
|
}
|
|
164
175
|
};
|
|
@@ -167,6 +178,7 @@ export class LocalizationManager {
|
|
|
167
178
|
|
|
168
179
|
return {
|
|
169
180
|
text,
|
|
181
|
+
keys,
|
|
170
182
|
localize: (index, value) => functionMap.get(index)!(value)
|
|
171
183
|
};
|
|
172
184
|
}
|
|
@@ -174,5 +186,6 @@ export class LocalizationManager {
|
|
|
174
186
|
|
|
175
187
|
export interface LocalizationMap {
|
|
176
188
|
text: string[]
|
|
189
|
+
keys: string[]
|
|
177
190
|
localize: (index: number, value: string) => void
|
|
178
191
|
}
|