@theia/core 1.25.0-next.21 → 1.25.0-next.22

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/README.md CHANGED
@@ -86,9 +86,9 @@ export class SomeClass {
86
86
  - `@phosphor/signaling` (from [`@phosphor/signaling@1`](https://www.npmjs.com/package/@phosphor/signaling))
87
87
  - `@phosphor/virtualdom` (from [`@phosphor/virtualdom@1`](https://www.npmjs.com/package/@phosphor/virtualdom))
88
88
  - `@phosphor/widgets` (from [`@phosphor/widgets@1`](https://www.npmjs.com/package/@phosphor/widgets))
89
- - `@theia/application-package` (from [`@theia/application-package@1.25.0-next.21+b5a3cd4c797`](https://www.npmjs.com/package/@theia/application-package/v/1.25.0-next.21))
90
- - `@theia/application-package/lib/api` (from [`@theia/application-package@1.25.0-next.21+b5a3cd4c797`](https://www.npmjs.com/package/@theia/application-package/v/1.25.0-next.21))
91
- - `@theia/application-package/lib/environment` (from [`@theia/application-package@1.25.0-next.21+b5a3cd4c797`](https://www.npmjs.com/package/@theia/application-package/v/1.25.0-next.21))
89
+ - `@theia/application-package` (from [`@theia/application-package@1.25.0-next.22+c70312ffecc`](https://www.npmjs.com/package/@theia/application-package/v/1.25.0-next.22))
90
+ - `@theia/application-package/lib/api` (from [`@theia/application-package@1.25.0-next.22+c70312ffecc`](https://www.npmjs.com/package/@theia/application-package/v/1.25.0-next.22))
91
+ - `@theia/application-package/lib/environment` (from [`@theia/application-package@1.25.0-next.22+c70312ffecc`](https://www.npmjs.com/package/@theia/application-package/v/1.25.0-next.22))
92
92
  - `fs-extra` (from [`fs-extra@^4.0.2`](https://www.npmjs.com/package/fs-extra))
93
93
  - `fuzzy` (from [`fuzzy@^0.1.3`](https://www.npmjs.com/package/fuzzy))
94
94
  - `inversify` (from [`inversify@^5.1.1`](https://www.npmjs.com/package/inversify))
package/lib/common/nls.js CHANGED
@@ -59,7 +59,8 @@ class LocalizationKeyProvider {
59
59
  this.data = this.buildData();
60
60
  }
61
61
  get(defaultValue) {
62
- return this.data.get(localization_1.Localization.normalize(defaultValue.toLowerCase()));
62
+ const normalized = localization_1.Localization.normalize(defaultValue);
63
+ return this.data.get(normalized) || this.data.get(normalized.toUpperCase());
63
64
  }
64
65
  /**
65
66
  * Transforms the data coming from the `nls.metadata.json` file into a map.
@@ -73,16 +74,35 @@ class LocalizationKeyProvider {
73
74
  const keys = bundles.keys;
74
75
  const messages = bundles.messages;
75
76
  const data = new Map();
77
+ const keysAndMessages = this.buildKeyMessageTuples(keys, messages);
78
+ for (const { key, message } of keysAndMessages) {
79
+ data.set(message, key);
80
+ }
81
+ // Second pass adds each message again in upper case, if the message doesn't already exist in upper case
82
+ // The second pass is needed to not accidentally override any translations which actually use the upper case message
83
+ for (const { key, message } of keysAndMessages) {
84
+ const upperMessage = message.toUpperCase();
85
+ if (!data.has(upperMessage)) {
86
+ data.set(upperMessage, key);
87
+ }
88
+ }
89
+ return data;
90
+ }
91
+ buildKeyMessageTuples(keys, messages) {
92
+ const list = [];
76
93
  for (const [fileKey, messageBundle] of Object.entries(messages)) {
77
94
  const keyBundle = keys[fileKey];
78
95
  for (let i = 0; i < messageBundle.length; i++) {
79
- const message = localization_1.Localization.normalize(messageBundle[i]).toLowerCase();
96
+ const message = localization_1.Localization.normalize(messageBundle[i]);
80
97
  const key = keyBundle[i];
81
98
  const localizationKey = this.buildKey(typeof key === 'string' ? key : key.key, fileKey);
82
- data.set(message, localizationKey);
99
+ list.push({
100
+ key: localizationKey,
101
+ message
102
+ });
83
103
  }
84
104
  }
85
- return data;
105
+ return list;
86
106
  }
87
107
  buildKey(key, filepath) {
88
108
  return `vscode/${localization_1.Localization.transformKey(filepath)}/${key}`;
@@ -1 +1 @@
1
- {"version":3,"file":"nls.js","sourceRoot":"","sources":["../../src/common/nls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nls.js","sourceRoot":"","sources":["../../src/common/nls.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.25.0-next.21+b5a3cd4c797",
3
+ "version": "1.25.0-next.22+c70312ffecc",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -17,7 +17,7 @@
17
17
  "@phosphor/virtualdom": "1",
18
18
  "@phosphor/widgets": "1",
19
19
  "@primer/octicons-react": "^9.0.0",
20
- "@theia/application-package": "1.25.0-next.21+b5a3cd4c797",
20
+ "@theia/application-package": "1.25.0-next.22+c70312ffecc",
21
21
  "@types/body-parser": "^1.16.4",
22
22
  "@types/cookie": "^0.3.3",
23
23
  "@types/dompurify": "^2.2.2",
@@ -190,5 +190,5 @@
190
190
  "nyc": {
191
191
  "extends": "../../configs/nyc.json"
192
192
  },
193
- "gitHead": "b5a3cd4c797c2d3f10ea8d1c8514af893686bc3d"
193
+ "gitHead": "c70312ffeccfde795d2a9beb60872712e1fd5f3d"
194
194
  }
package/src/common/nls.ts CHANGED
@@ -71,7 +71,8 @@ class LocalizationKeyProvider {
71
71
  private data = this.buildData();
72
72
 
73
73
  get(defaultValue: string): string | undefined {
74
- return this.data.get(Localization.normalize(defaultValue.toLowerCase()));
74
+ const normalized = Localization.normalize(defaultValue);
75
+ return this.data.get(normalized) || this.data.get(normalized.toUpperCase());
75
76
  }
76
77
 
77
78
  /**
@@ -86,16 +87,36 @@ class LocalizationKeyProvider {
86
87
  const keys: NlsKeys = bundles.keys;
87
88
  const messages: Record<string, string[]> = bundles.messages;
88
89
  const data = new Map<string, string>();
90
+ const keysAndMessages = this.buildKeyMessageTuples(keys, messages);
91
+ for (const { key, message } of keysAndMessages) {
92
+ data.set(message, key);
93
+ }
94
+ // Second pass adds each message again in upper case, if the message doesn't already exist in upper case
95
+ // The second pass is needed to not accidentally override any translations which actually use the upper case message
96
+ for (const { key, message } of keysAndMessages) {
97
+ const upperMessage = message.toUpperCase();
98
+ if (!data.has(upperMessage)) {
99
+ data.set(upperMessage, key);
100
+ }
101
+ }
102
+ return data;
103
+ }
104
+
105
+ private buildKeyMessageTuples(keys: NlsKeys, messages: Record<string, string[]>): { key: string, message: string }[] {
106
+ const list: { key: string, message: string }[] = [];
89
107
  for (const [fileKey, messageBundle] of Object.entries(messages)) {
90
108
  const keyBundle = keys[fileKey];
91
109
  for (let i = 0; i < messageBundle.length; i++) {
92
- const message = Localization.normalize(messageBundle[i]).toLowerCase();
110
+ const message = Localization.normalize(messageBundle[i]);
93
111
  const key = keyBundle[i];
94
112
  const localizationKey = this.buildKey(typeof key === 'string' ? key : key.key, fileKey);
95
- data.set(message, localizationKey);
113
+ list.push({
114
+ key: localizationKey,
115
+ message
116
+ });
96
117
  }
97
118
  }
98
- return data;
119
+ return list;
99
120
  }
100
121
 
101
122
  private buildKey(key: string, filepath: string): string {