@theia/core 1.28.0-next.2 → 1.28.0-next.7
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 +6 -6
- package/lib/browser/preloader.d.ts.map +1 -1
- package/lib/browser/preloader.js +11 -1
- package/lib/browser/preloader.js.map +1 -1
- package/lib/common/types.d.ts +16 -0
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/types.js +35 -0
- package/lib/common/types.js.map +1 -1
- package/lib/node/i18n/localization-provider.d.ts +2 -1
- package/lib/node/i18n/localization-provider.d.ts.map +1 -1
- package/lib/node/i18n/localization-provider.js +28 -24
- package/lib/node/i18n/localization-provider.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/preloader.ts +11 -1
- package/src/common/types.ts +34 -0
- package/src/node/i18n/localization-provider.ts +25 -21
package/README.md
CHANGED
|
@@ -86,12 +86,12 @@ 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.28.0-next.
|
|
90
|
-
- `@theia/application-package/lib/api` (from [`@theia/application-package@1.28.0-next.
|
|
91
|
-
- `@theia/application-package/lib/environment` (from [`@theia/application-package@1.28.0-next.
|
|
92
|
-
- `@theia/request` (from [`@theia/request@1.28.0-next.
|
|
93
|
-
- `@theia/request/lib/proxy` (from [`@theia/request@1.28.0-next.
|
|
94
|
-
- `@theia/request/lib/node-request-service` (from [`@theia/request@1.28.0-next.
|
|
89
|
+
- `@theia/application-package` (from [`@theia/application-package@1.28.0-next.7+3b689e0b4f3`](https://www.npmjs.com/package/@theia/application-package/v/1.28.0-next.7))
|
|
90
|
+
- `@theia/application-package/lib/api` (from [`@theia/application-package@1.28.0-next.7+3b689e0b4f3`](https://www.npmjs.com/package/@theia/application-package/v/1.28.0-next.7))
|
|
91
|
+
- `@theia/application-package/lib/environment` (from [`@theia/application-package@1.28.0-next.7+3b689e0b4f3`](https://www.npmjs.com/package/@theia/application-package/v/1.28.0-next.7))
|
|
92
|
+
- `@theia/request` (from [`@theia/request@1.28.0-next.7+3b689e0b4f3`](https://www.npmjs.com/package/@theia/request/v/1.28.0-next.7))
|
|
93
|
+
- `@theia/request/lib/proxy` (from [`@theia/request@1.28.0-next.7+3b689e0b4f3`](https://www.npmjs.com/package/@theia/request/v/1.28.0-next.7))
|
|
94
|
+
- `@theia/request/lib/node-request-service` (from [`@theia/request@1.28.0-next.7+3b689e0b4f3`](https://www.npmjs.com/package/@theia/request/v/1.28.0-next.7))
|
|
95
95
|
- `fs-extra` (from [`fs-extra@^4.0.2`](https://www.npmjs.com/package/fs-extra))
|
|
96
96
|
- `fuzzy` (from [`fuzzy@^0.1.3`](https://www.npmjs.com/package/fuzzy))
|
|
97
97
|
- `inversify` (from [`inversify@^5.1.1`](https://www.npmjs.com/package/inversify))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preloader.d.ts","sourceRoot":"","sources":["../../src/browser/preloader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preloader.d.ts","sourceRoot":"","sources":["../../src/browser/preloader.ts"],"names":[],"mappings":"AAiEA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAM7C"}
|
package/lib/browser/preloader.js
CHANGED
|
@@ -33,7 +33,17 @@ async function loadTranslations() {
|
|
|
33
33
|
}
|
|
34
34
|
if (nls_1.nls.locale) {
|
|
35
35
|
const response = await fetchFrom(`/i18n/${nls_1.nls.locale}`);
|
|
36
|
-
|
|
36
|
+
const localization = await response.json();
|
|
37
|
+
if (localization.languagePack) {
|
|
38
|
+
nls_1.nls.localization = localization;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// In case the localization that we've loaded doesn't localize Theia completely (languagePack is false)
|
|
42
|
+
// We simply reset the locale to the default again
|
|
43
|
+
Object.assign(nls_1.nls, {
|
|
44
|
+
locale: defaultLocale || undefined
|
|
45
|
+
});
|
|
46
|
+
}
|
|
37
47
|
}
|
|
38
48
|
}
|
|
39
49
|
async function loadBackendOS() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preloader.js","sourceRoot":"","sources":["../../src/browser/preloader.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,2EAA2E;AAC3E,gFAAgF;;;AAEhF,uCAAoC;AACpC,yCAAsC;AACtC,qCAAkC;AAClC,iGAAiI;
|
|
1
|
+
{"version":3,"file":"preloader.js","sourceRoot":"","sources":["../../src/browser/preloader.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,2EAA2E;AAC3E,gFAAgF;;;AAEhF,uCAAoC;AACpC,yCAAsC;AACtC,qCAAkC;AAClC,iGAAiI;AAGjI,SAAS,SAAS,CAAC,IAAY;IAC3B,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IAChE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC3B,MAAM,aAAa,GAAG,wEAAiC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;IAC5E,IAAI,aAAa,IAAI,CAAC,SAAG,CAAC,MAAM,EAAE;QAC9B,MAAM,CAAC,MAAM,CAAC,SAAG,EAAE;YACf,MAAM,EAAE,aAAa;SACxB,CAAC,CAAC;KACN;IACD,IAAI,SAAG,CAAC,MAAM,EAAE;QACZ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,SAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAkB,CAAC;QAC3D,IAAI,YAAY,CAAC,YAAY,EAAE;YAC3B,SAAG,CAAC,YAAY,GAAG,YAAY,CAAC;SACnC;aAAM;YACH,uGAAuG;YACvG,kDAAkD;YAClD,MAAM,CAAC,MAAM,CAAC,SAAG,EAAE;gBACf,MAAM,EAAE,aAAa,IAAI,SAAS;aACrC,CAAC,CAAC;SACN;KACJ;AACL,CAAC;AAED,KAAK,UAAU,aAAa;IACxB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAa,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,KAAK,KAAK,CAAC;IAC/B,OAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,OAAE,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IACjC,OAAE,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AACnC,CAAC;AAED,SAAS,cAAc;IACnB,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,2EAAoC,CAAC,IAAI,SAAS,CAAC;IAC7F,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;IACjD,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AAEM,KAAK,UAAU,OAAO;IACzB,MAAM,OAAO,CAAC,UAAU,CAAC;QACrB,gBAAgB,EAAE;QAClB,aAAa,EAAE;QACf,cAAc,EAAE;KACnB,CAAC,CAAC;AACP,CAAC;AAND,0BAMC"}
|
package/lib/common/types.d.ts
CHANGED
|
@@ -60,6 +60,22 @@ export declare namespace ArrayUtils {
|
|
|
60
60
|
RightBeforeLeft = 1,
|
|
61
61
|
Equal = 0
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Performs a binary search algorithm over a sorted collection. Useful for cases
|
|
65
|
+
* when we need to perform a binary search over something that isn't actually an
|
|
66
|
+
* array, and converting data to an array would defeat the use of binary search
|
|
67
|
+
* in the first place.
|
|
68
|
+
*
|
|
69
|
+
* @param length The collection length.
|
|
70
|
+
* @param compareToKey A function that takes an index of an element in the
|
|
71
|
+
* collection and returns zero if the value at this index is equal to the
|
|
72
|
+
* search key, a negative number if the value precedes the search key in the
|
|
73
|
+
* sorting order, or a positive number if the search key precedes the value.
|
|
74
|
+
* @return A non-negative index of an element, if found. If not found, the
|
|
75
|
+
* result is -(n+1) (or ~n, using bitwise notation), where n is the index
|
|
76
|
+
* where the key should be inserted to maintain the sorting order.
|
|
77
|
+
*/
|
|
78
|
+
function binarySearch2(length: number, compareToKey: (index: number) => number): number;
|
|
63
79
|
}
|
|
64
80
|
/**
|
|
65
81
|
* Throws when called and statically makes sure that all variants of a type were consumed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"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"}
|
package/lib/common/types.js
CHANGED
|
@@ -96,6 +96,41 @@ var ArrayUtils;
|
|
|
96
96
|
Sort[Sort["RightBeforeLeft"] = 1] = "RightBeforeLeft";
|
|
97
97
|
Sort[Sort["Equal"] = 0] = "Equal";
|
|
98
98
|
})(Sort = ArrayUtils.Sort || (ArrayUtils.Sort = {}));
|
|
99
|
+
// Copied from https://github.com/microsoft/vscode/blob/9c29becfad5f68270b9b23efeafb147722c5feba/src/vs/base/common/arrays.ts
|
|
100
|
+
/**
|
|
101
|
+
* Performs a binary search algorithm over a sorted collection. Useful for cases
|
|
102
|
+
* when we need to perform a binary search over something that isn't actually an
|
|
103
|
+
* array, and converting data to an array would defeat the use of binary search
|
|
104
|
+
* in the first place.
|
|
105
|
+
*
|
|
106
|
+
* @param length The collection length.
|
|
107
|
+
* @param compareToKey A function that takes an index of an element in the
|
|
108
|
+
* collection and returns zero if the value at this index is equal to the
|
|
109
|
+
* search key, a negative number if the value precedes the search key in the
|
|
110
|
+
* sorting order, or a positive number if the search key precedes the value.
|
|
111
|
+
* @return A non-negative index of an element, if found. If not found, the
|
|
112
|
+
* result is -(n+1) (or ~n, using bitwise notation), where n is the index
|
|
113
|
+
* where the key should be inserted to maintain the sorting order.
|
|
114
|
+
*/
|
|
115
|
+
function binarySearch2(length, compareToKey) {
|
|
116
|
+
let low = 0;
|
|
117
|
+
let high = length - 1;
|
|
118
|
+
while (low <= high) {
|
|
119
|
+
const mid = ((low + high) / 2) | 0;
|
|
120
|
+
const comp = compareToKey(mid);
|
|
121
|
+
if (comp < 0) {
|
|
122
|
+
low = mid + 1;
|
|
123
|
+
}
|
|
124
|
+
else if (comp > 0) {
|
|
125
|
+
high = mid - 1;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return mid;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return -(low + 1);
|
|
132
|
+
}
|
|
133
|
+
ArrayUtils.binarySearch2 = binarySearch2;
|
|
99
134
|
})(ArrayUtils = exports.ArrayUtils || (exports.ArrayUtils = {}));
|
|
100
135
|
/**
|
|
101
136
|
* Throws when called and statically makes sure that all variants of a type were consumed.
|
package/lib/common/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.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,2EAA2E;AAC3E,gFAAgF;;;AAMhF;;GAEG;AACH,SAAgB,eAAe,CAAI,QAAsB;IACrD,MAAM,WAAW,GAAG,kBAAK,QAAQ,CAAuB,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;QACxB,2CAA2C;QAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;YAC/E,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;SAChC;KACJ;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AATD,0CASC;AAiBD,IAAiB,cAAc,CAmC9B;AAnCD,WAAiB,cAAc;IAKpB,KAAK,UAAU,gBAAgB,CAAI,QAAqC,EAAE,WAA2B;QACxG,IAAI,QAAQ,YAAY,KAAK,EAAE;YAC3B,OAAO,OAAO,CAAC,GAAG,CACd,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CACtD,CAAC;SACL;QACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IATqB,+BAAgB,mBASrC,CAAA;IACD,SAAgB,oBAAoB,CAAI,QAAa,EAAE,WAA+B;QAClF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC,CAAC;IACR,CAAC;IALe,mCAAoB,uBAKnC,CAAA;IACD,SAAgB,iBAAiB,CAAI,MAAW,EAAE,WAA+B;QAC7E,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACjE,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAHe,gCAAiB,oBAGhC,CAAA;IACM,KAAK,UAAU,aAAa,CAAI,MAAyB,EAAE,WAA2B;QACzF,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnE,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAHqB,4BAAa,gBAGlC,CAAA;IACD,SAAgB,OAAO,CAAI,CAAoB;QAC3C,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,CAAC;IAFe,sBAAO,UAEtB,CAAA;IACD,SAAgB,OAAO,CAAI,CAAoB,EAAE,EAAqB;QAClE,OAAO,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACpC,CAAC;IAFe,sBAAO,UAEtB,CAAA;AACL,CAAC,EAnCgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAmC9B;AAED,IAAiB,UAAU,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { LanguageInfo, Localization } from '../../common/i18n/localization';
|
|
2
2
|
export declare class LocalizationProvider {
|
|
3
|
-
protected localizations:
|
|
3
|
+
protected localizations: Localization[];
|
|
4
4
|
protected currentLanguage: string;
|
|
5
5
|
addLocalizations(...localizations: Localization[]): void;
|
|
6
|
+
removeLocalizations(...localizations: Localization[]): void;
|
|
6
7
|
setCurrentLanguage(languageId: string): void;
|
|
7
8
|
getCurrentLanguage(): string;
|
|
8
9
|
getAvailableLanguages(all?: boolean): LanguageInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-provider.d.ts","sourceRoot":"","sources":["../../../src/node/i18n/localization-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE5E,qBACa,oBAAoB;IAE7B,SAAS,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"localization-provider.d.ts","sourceRoot":"","sources":["../../../src/node/i18n/localization-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE5E,qBACa,oBAAoB;IAE7B,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAM;IAC7C,SAAS,CAAC,eAAe,SAAQ;IAEjC,gBAAgB,CAAC,GAAG,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI;IAIxD,mBAAmB,CAAC,GAAG,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI;IAS3D,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C,kBAAkB,IAAI,MAAM;IAI5B,qBAAqB,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,YAAY,EAAE;IAgBpD,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;CAcrD"}
|
|
@@ -25,22 +25,18 @@ exports.LocalizationProvider = void 0;
|
|
|
25
25
|
const inversify_1 = require("inversify");
|
|
26
26
|
let LocalizationProvider = class LocalizationProvider {
|
|
27
27
|
constructor() {
|
|
28
|
-
this.localizations =
|
|
28
|
+
this.localizations = [];
|
|
29
29
|
this.currentLanguage = 'en';
|
|
30
30
|
}
|
|
31
31
|
addLocalizations(...localizations) {
|
|
32
|
+
this.localizations.push(...localizations);
|
|
33
|
+
}
|
|
34
|
+
removeLocalizations(...localizations) {
|
|
32
35
|
for (const localization of localizations) {
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
this.localizations.
|
|
36
|
-
languageId: localization.languageId,
|
|
37
|
-
translations: {}
|
|
38
|
-
});
|
|
36
|
+
const index = this.localizations.indexOf(localization);
|
|
37
|
+
if (index >= 0) {
|
|
38
|
+
this.localizations.splice(index, 1);
|
|
39
39
|
}
|
|
40
|
-
merged.languageName = merged.languageName || localization.languageName;
|
|
41
|
-
merged.localizedLanguageName = merged.localizedLanguageName || localization.localizedLanguageName;
|
|
42
|
-
merged.languagePack = merged.languagePack || localization.languagePack;
|
|
43
|
-
Object.assign(merged.translations, localization.translations);
|
|
44
40
|
}
|
|
45
41
|
}
|
|
46
42
|
setCurrentLanguage(languageId) {
|
|
@@ -50,25 +46,33 @@ let LocalizationProvider = class LocalizationProvider {
|
|
|
50
46
|
return this.currentLanguage;
|
|
51
47
|
}
|
|
52
48
|
getAvailableLanguages(all) {
|
|
53
|
-
|
|
49
|
+
var _a;
|
|
50
|
+
const languageInfos = new Map();
|
|
54
51
|
for (const localization of this.localizations.values()) {
|
|
55
52
|
if (all || localization.languagePack) {
|
|
56
|
-
|
|
57
|
-
languageId: localization.languageId
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
const languageInfo = (_a = languageInfos.get(localization.languageId)) !== null && _a !== void 0 ? _a : {
|
|
54
|
+
languageId: localization.languageId
|
|
55
|
+
};
|
|
56
|
+
languageInfo.languageName || (languageInfo.languageName = localization.languageName);
|
|
57
|
+
languageInfo.localizedLanguageName || (languageInfo.localizedLanguageName = localization.localizedLanguageName);
|
|
58
|
+
languageInfo.languagePack || (languageInfo.languagePack = localization.languagePack);
|
|
59
|
+
languageInfos.set(localization.languageId, languageInfo);
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
|
-
return
|
|
62
|
+
return Array.from(languageInfos.values()).sort((a, b) => a.languageId.localeCompare(b.languageId));
|
|
65
63
|
}
|
|
66
64
|
loadLocalization(languageId) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
const merged = {
|
|
66
|
+
languageId,
|
|
67
|
+
translations: {}
|
|
68
|
+
};
|
|
69
|
+
for (const localization of this.localizations.filter(e => e.languageId === languageId)) {
|
|
70
|
+
merged.languageName || (merged.languageName = localization.languageName);
|
|
71
|
+
merged.localizedLanguageName || (merged.localizedLanguageName = localization.localizedLanguageName);
|
|
72
|
+
merged.languagePack || (merged.languagePack = localization.languagePack);
|
|
73
|
+
Object.assign(merged.translations, localization.translations);
|
|
74
|
+
}
|
|
75
|
+
return merged;
|
|
72
76
|
}
|
|
73
77
|
};
|
|
74
78
|
LocalizationProvider = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization-provider.js","sourceRoot":"","sources":["../../../src/node/i18n/localization-provider.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,2EAA2E;AAC3E,gFAAgF;;;;;;;;;AAEhF,yCAAuC;AAIvC,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAAjC;QAEc,kBAAa,
|
|
1
|
+
{"version":3,"file":"localization-provider.js","sourceRoot":"","sources":["../../../src/node/i18n/localization-provider.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.28.0-next.
|
|
3
|
+
"version": "1.28.0-next.7+3b689e0b4f3",
|
|
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",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"@phosphor/signaling": "1",
|
|
17
17
|
"@phosphor/virtualdom": "1",
|
|
18
18
|
"@phosphor/widgets": "1",
|
|
19
|
-
"@theia/application-package": "1.28.0-next.
|
|
20
|
-
"@theia/request": "1.28.0-next.
|
|
19
|
+
"@theia/application-package": "1.28.0-next.7+3b689e0b4f3",
|
|
20
|
+
"@theia/request": "1.28.0-next.7+3b689e0b4f3",
|
|
21
21
|
"@types/body-parser": "^1.16.4",
|
|
22
22
|
"@types/cookie": "^0.3.3",
|
|
23
23
|
"@types/dompurify": "^2.2.2",
|
|
@@ -200,5 +200,5 @@
|
|
|
200
200
|
"nyc": {
|
|
201
201
|
"extends": "../../configs/nyc.json"
|
|
202
202
|
},
|
|
203
|
-
"gitHead": "
|
|
203
|
+
"gitHead": "3b689e0b4f37844f674b26fc9b2c4d735b0115fd"
|
|
204
204
|
}
|
package/src/browser/preloader.ts
CHANGED
|
@@ -18,6 +18,7 @@ import { nls } from '../common/nls';
|
|
|
18
18
|
import { Endpoint } from './endpoint';
|
|
19
19
|
import { OS } from '../common/os';
|
|
20
20
|
import { DEFAULT_BACKGROUND_COLOR_STORAGE_KEY, FrontendApplicationConfigProvider } from './frontend-application-config-provider';
|
|
21
|
+
import { Localization } from '../common/i18n/localization';
|
|
21
22
|
|
|
22
23
|
function fetchFrom(path: string): Promise<Response> {
|
|
23
24
|
const endpoint = new Endpoint({ path }).getRestUrl().toString();
|
|
@@ -33,7 +34,16 @@ async function loadTranslations(): Promise<void> {
|
|
|
33
34
|
}
|
|
34
35
|
if (nls.locale) {
|
|
35
36
|
const response = await fetchFrom(`/i18n/${nls.locale}`);
|
|
36
|
-
|
|
37
|
+
const localization = await response.json() as Localization;
|
|
38
|
+
if (localization.languagePack) {
|
|
39
|
+
nls.localization = localization;
|
|
40
|
+
} else {
|
|
41
|
+
// In case the localization that we've loaded doesn't localize Theia completely (languagePack is false)
|
|
42
|
+
// We simply reset the locale to the default again
|
|
43
|
+
Object.assign(nls, {
|
|
44
|
+
locale: defaultLocale || undefined
|
|
45
|
+
});
|
|
46
|
+
}
|
|
37
47
|
}
|
|
38
48
|
}
|
|
39
49
|
|
package/src/common/types.ts
CHANGED
|
@@ -128,6 +128,40 @@ export namespace ArrayUtils {
|
|
|
128
128
|
RightBeforeLeft = 1,
|
|
129
129
|
Equal = 0,
|
|
130
130
|
}
|
|
131
|
+
|
|
132
|
+
// Copied from https://github.com/microsoft/vscode/blob/9c29becfad5f68270b9b23efeafb147722c5feba/src/vs/base/common/arrays.ts
|
|
133
|
+
/**
|
|
134
|
+
* Performs a binary search algorithm over a sorted collection. Useful for cases
|
|
135
|
+
* when we need to perform a binary search over something that isn't actually an
|
|
136
|
+
* array, and converting data to an array would defeat the use of binary search
|
|
137
|
+
* in the first place.
|
|
138
|
+
*
|
|
139
|
+
* @param length The collection length.
|
|
140
|
+
* @param compareToKey A function that takes an index of an element in the
|
|
141
|
+
* collection and returns zero if the value at this index is equal to the
|
|
142
|
+
* search key, a negative number if the value precedes the search key in the
|
|
143
|
+
* sorting order, or a positive number if the search key precedes the value.
|
|
144
|
+
* @return A non-negative index of an element, if found. If not found, the
|
|
145
|
+
* result is -(n+1) (or ~n, using bitwise notation), where n is the index
|
|
146
|
+
* where the key should be inserted to maintain the sorting order.
|
|
147
|
+
*/
|
|
148
|
+
export function binarySearch2(length: number, compareToKey: (index: number) => number): number {
|
|
149
|
+
let low = 0;
|
|
150
|
+
let high = length - 1;
|
|
151
|
+
|
|
152
|
+
while (low <= high) {
|
|
153
|
+
const mid = ((low + high) / 2) | 0;
|
|
154
|
+
const comp = compareToKey(mid);
|
|
155
|
+
if (comp < 0) {
|
|
156
|
+
low = mid + 1;
|
|
157
|
+
} else if (comp > 0) {
|
|
158
|
+
high = mid - 1;
|
|
159
|
+
} else {
|
|
160
|
+
return mid;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return -(low + 1);
|
|
164
|
+
}
|
|
131
165
|
}
|
|
132
166
|
|
|
133
167
|
/**
|
|
@@ -20,22 +20,19 @@ import { LanguageInfo, Localization } from '../../common/i18n/localization';
|
|
|
20
20
|
@injectable()
|
|
21
21
|
export class LocalizationProvider {
|
|
22
22
|
|
|
23
|
-
protected localizations =
|
|
23
|
+
protected localizations: Localization[] = [];
|
|
24
24
|
protected currentLanguage = 'en';
|
|
25
25
|
|
|
26
26
|
addLocalizations(...localizations: Localization[]): void {
|
|
27
|
+
this.localizations.push(...localizations);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
removeLocalizations(...localizations: Localization[]): void {
|
|
27
31
|
for (const localization of localizations) {
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
this.localizations.
|
|
31
|
-
languageId: localization.languageId,
|
|
32
|
-
translations: {}
|
|
33
|
-
});
|
|
32
|
+
const index = this.localizations.indexOf(localization);
|
|
33
|
+
if (index >= 0) {
|
|
34
|
+
this.localizations.splice(index, 1);
|
|
34
35
|
}
|
|
35
|
-
merged.languageName = merged.languageName || localization.languageName;
|
|
36
|
-
merged.localizedLanguageName = merged.localizedLanguageName || localization.localizedLanguageName;
|
|
37
|
-
merged.languagePack = merged.languagePack || localization.languagePack;
|
|
38
|
-
Object.assign(merged.translations, localization.translations);
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
38
|
|
|
@@ -48,26 +45,33 @@ export class LocalizationProvider {
|
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
getAvailableLanguages(all?: boolean): LanguageInfo[] {
|
|
51
|
-
const
|
|
48
|
+
const languageInfos = new Map<string, LanguageInfo>();
|
|
52
49
|
for (const localization of this.localizations.values()) {
|
|
53
50
|
if (all || localization.languagePack) {
|
|
54
|
-
|
|
55
|
-
languageId: localization.languageId
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
const languageInfo = languageInfos.get(localization.languageId) ?? {
|
|
52
|
+
languageId: localization.languageId
|
|
53
|
+
};
|
|
54
|
+
languageInfo.languageName ||= localization.languageName;
|
|
55
|
+
languageInfo.localizedLanguageName ||= localization.localizedLanguageName;
|
|
56
|
+
languageInfo.languagePack ||= localization.languagePack;
|
|
57
|
+
languageInfos.set(localization.languageId, languageInfo);
|
|
60
58
|
}
|
|
61
59
|
}
|
|
62
|
-
return
|
|
60
|
+
return Array.from(languageInfos.values()).sort((a, b) => a.languageId.localeCompare(b.languageId));
|
|
63
61
|
}
|
|
64
62
|
|
|
65
63
|
loadLocalization(languageId: string): Localization {
|
|
66
|
-
|
|
67
|
-
{
|
|
64
|
+
const merged: Localization = {
|
|
68
65
|
languageId,
|
|
69
66
|
translations: {}
|
|
70
67
|
};
|
|
68
|
+
for (const localization of this.localizations.filter(e => e.languageId === languageId)) {
|
|
69
|
+
merged.languageName ||= localization.languageName;
|
|
70
|
+
merged.localizedLanguageName ||= localization.localizedLanguageName;
|
|
71
|
+
merged.languagePack ||= localization.languagePack;
|
|
72
|
+
Object.assign(merged.translations, localization.translations);
|
|
73
|
+
}
|
|
74
|
+
return merged;
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
}
|