@theia/localization-manager 1.48.0 → 1.48.1

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
@@ -1,67 +1,67 @@
1
- <div align='center'>
2
-
3
- <br />
4
-
5
- <img src='https://raw.githubusercontent.com/eclipse-theia/theia/master/logo/theia.svg?sanitize=true' alt='theia-ext-logo' width='100px' />
6
-
7
- <h2>ECLIPSE THEIA - LOCALIZATION-MANAGER</h2>
8
-
9
- <hr />
10
-
11
- </div>
12
-
13
- ## Description
14
-
15
- The `@theia/localization-manager` package is used easily create localizations of Theia and Theia extensions for different languages. It has two main use cases.
16
-
17
- First, it allows to extract localization keys and default values from `nls.localize` calls within the codebase using the `nls-extract` Theia-CLI command. Take this code for example:
18
-
19
- ```ts
20
- const hi = nls.localize('greetings/hi', 'Hello');
21
- const bye = nls.localize('greetings/bye', 'Bye');
22
- ```
23
-
24
- It will be converted into this JSON file (`nls.json`):
25
-
26
- ```json
27
- {
28
- "greetings": {
29
- "hi": "Hello",
30
- "bye": "Bye"
31
- }
32
- }
33
- ```
34
-
35
- Afterwards, any manual or automatic translation approach can be used to translate this file into other languages. These JSON files are supposed to be picked up by `LocalizationContribution`s.
36
-
37
- Additionally, Theia provides a simple way to translate the generated JSON files out of the box using the [DeepL API](https://www.deepl.com/docs-api). For this, a [DeepL free or pro account](https://www.deepl.com/pro) is needed. Using the `nls-localize` command of the Theia-CLI, a target file can be translated into different languages. For example, when calling the command using the previous JSON file with the `fr` (french) language, the following `nls.fr.json` file will be created in the same directory as the translation source:
38
-
39
- ```json
40
- {
41
- "greetings": {
42
- "hi": "Bonjour",
43
- "bye": "Au revoir"
44
- }
45
- }
46
- ```
47
-
48
-
49
- Only JSON entries without corresponding translations are translated using DeepL. This ensures that manual changes to the translated files aren't overwritten and only new translation entries are actually sent to DeepL.
50
-
51
- Use `theia nls-localize --help` for more information on how to use the command and supply DeepL API keys.
52
-
53
- For more information, see the [internationalization documentation](https://theia-ide.org/docs/i18n/).
54
-
55
- ## Additional Information
56
-
57
- - [Theia - GitHub](https://github.com/eclipse-theia/theia)
58
- - [Theia - Website](https://theia-ide.org/)
59
-
60
- ## License
61
-
62
- - [Eclipse Public License 2.0](http://www.eclipse.org/legal/epl-2.0/)
63
- - [一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception](https://projects.eclipse.org/license/secondary-gpl-2.0-cp)
64
-
65
- ## Trademark
66
- "Theia" is a trademark of the Eclipse Foundation
67
- https://www.eclipse.org/theia
1
+ <div align='center'>
2
+
3
+ <br />
4
+
5
+ <img src='https://raw.githubusercontent.com/eclipse-theia/theia/master/logo/theia.svg?sanitize=true' alt='theia-ext-logo' width='100px' />
6
+
7
+ <h2>ECLIPSE THEIA - LOCALIZATION-MANAGER</h2>
8
+
9
+ <hr />
10
+
11
+ </div>
12
+
13
+ ## Description
14
+
15
+ The `@theia/localization-manager` package is used easily create localizations of Theia and Theia extensions for different languages. It has two main use cases.
16
+
17
+ First, it allows to extract localization keys and default values from `nls.localize` calls within the codebase using the `nls-extract` Theia-CLI command. Take this code for example:
18
+
19
+ ```ts
20
+ const hi = nls.localize('greetings/hi', 'Hello');
21
+ const bye = nls.localize('greetings/bye', 'Bye');
22
+ ```
23
+
24
+ It will be converted into this JSON file (`nls.json`):
25
+
26
+ ```json
27
+ {
28
+ "greetings": {
29
+ "hi": "Hello",
30
+ "bye": "Bye"
31
+ }
32
+ }
33
+ ```
34
+
35
+ Afterwards, any manual or automatic translation approach can be used to translate this file into other languages. These JSON files are supposed to be picked up by `LocalizationContribution`s.
36
+
37
+ Additionally, Theia provides a simple way to translate the generated JSON files out of the box using the [DeepL API](https://www.deepl.com/docs-api). For this, a [DeepL free or pro account](https://www.deepl.com/pro) is needed. Using the `nls-localize` command of the Theia-CLI, a target file can be translated into different languages. For example, when calling the command using the previous JSON file with the `fr` (french) language, the following `nls.fr.json` file will be created in the same directory as the translation source:
38
+
39
+ ```json
40
+ {
41
+ "greetings": {
42
+ "hi": "Bonjour",
43
+ "bye": "Au revoir"
44
+ }
45
+ }
46
+ ```
47
+
48
+
49
+ Only JSON entries without corresponding translations are translated using DeepL. This ensures that manual changes to the translated files aren't overwritten and only new translation entries are actually sent to DeepL.
50
+
51
+ Use `theia nls-localize --help` for more information on how to use the command and supply DeepL API keys.
52
+
53
+ For more information, see the [internationalization documentation](https://theia-ide.org/docs/i18n/).
54
+
55
+ ## Additional Information
56
+
57
+ - [Theia - GitHub](https://github.com/eclipse-theia/theia)
58
+ - [Theia - Website](https://theia-ide.org/)
59
+
60
+ ## License
61
+
62
+ - [Eclipse Public License 2.0](http://www.eclipse.org/legal/epl-2.0/)
63
+ - [一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception](https://projects.eclipse.org/license/secondary-gpl-2.0-cp)
64
+
65
+ ## Trademark
66
+ "Theia" is a trademark of the Eclipse Foundation
67
+ https://www.eclipse.org/theia
package/lib/common.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export interface Localization {
2
- [key: string]: string | Localization;
3
- }
4
- export declare function sortLocalization(localization: Localization): Localization;
1
+ export interface Localization {
2
+ [key: string]: string | Localization;
3
+ }
4
+ export declare function sortLocalization(localization: Localization): Localization;
5
5
  //# sourceMappingURL=common.d.ts.map
package/lib/common.js CHANGED
@@ -1,27 +1,27 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2021 TypeFox and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.sortLocalization = void 0;
19
- function sortLocalization(localization) {
20
- return Object.keys(localization).sort().reduce((result, key) => {
21
- const value = localization[key];
22
- result[key] = typeof value === 'string' ? value : sortLocalization(value);
23
- return result;
24
- }, {});
25
- }
26
- exports.sortLocalization = sortLocalization;
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2021 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.sortLocalization = void 0;
19
+ function sortLocalization(localization) {
20
+ return Object.keys(localization).sort().reduce((result, key) => {
21
+ const value = localization[key];
22
+ result[key] = typeof value === 'string' ? value : sortLocalization(value);
23
+ return result;
24
+ }, {});
25
+ }
26
+ exports.sortLocalization = sortLocalization;
27
27
  //# sourceMappingURL=common.js.map
@@ -1,27 +1,27 @@
1
- export declare function deepl(parameters: DeeplParameters): Promise<DeeplResponse>;
2
- export declare type DeeplLanguage = 'BG' | 'CS' | 'DA' | 'DE' | 'EL' | 'EN-GB' | 'EN-US' | 'EN' | 'ES' | 'ET' | 'FI' | 'FR' | 'HU' | 'IT' | 'JA' | 'LT' | 'LV' | 'NL' | 'PL' | 'PT-PT' | 'PT-BR' | 'PT' | 'RO' | 'RU' | 'SK' | 'SL' | 'SV' | 'ZH-CN' | 'ZH';
3
- export declare const supportedLanguages: string[];
4
- export declare function isSupportedLanguage(language: string): language is DeeplLanguage;
5
- export interface DeeplParameters {
6
- free_api: Boolean;
7
- auth_key: string;
8
- text: string[];
9
- source_lang?: DeeplLanguage;
10
- target_lang: DeeplLanguage;
11
- split_sentences?: '0' | '1' | 'nonewlines';
12
- preserve_formatting?: '0' | '1';
13
- formality?: 'default' | 'more' | 'less';
14
- tag_handling?: string[];
15
- non_splitting_tags?: string[];
16
- outline_detection?: string;
17
- splitting_tags?: string[];
18
- ignore_tags?: string[];
19
- }
20
- export interface DeeplResponse {
21
- translations: DeeplTranslation[];
22
- }
23
- export interface DeeplTranslation {
24
- detected_source_language: string;
25
- text: string;
26
- }
1
+ export declare function deepl(parameters: DeeplParameters): Promise<DeeplResponse>;
2
+ export declare type DeeplLanguage = 'BG' | 'CS' | 'DA' | 'DE' | 'EL' | 'EN-GB' | 'EN-US' | 'EN' | 'ES' | 'ET' | 'FI' | 'FR' | 'HU' | 'IT' | 'JA' | 'LT' | 'LV' | 'NL' | 'PL' | 'PT-PT' | 'PT-BR' | 'PT' | 'RO' | 'RU' | 'SK' | 'SL' | 'SV' | 'ZH-CN' | 'ZH';
3
+ export declare const supportedLanguages: string[];
4
+ export declare function isSupportedLanguage(language: string): language is DeeplLanguage;
5
+ export interface DeeplParameters {
6
+ free_api: Boolean;
7
+ auth_key: string;
8
+ text: string[];
9
+ source_lang?: DeeplLanguage;
10
+ target_lang: DeeplLanguage;
11
+ split_sentences?: '0' | '1' | 'nonewlines';
12
+ preserve_formatting?: '0' | '1';
13
+ formality?: 'default' | 'more' | 'less';
14
+ tag_handling?: string[];
15
+ non_splitting_tags?: string[];
16
+ outline_detection?: string;
17
+ splitting_tags?: string[];
18
+ ignore_tags?: string[];
19
+ }
20
+ export interface DeeplResponse {
21
+ translations: DeeplTranslation[];
22
+ }
23
+ export interface DeeplTranslation {
24
+ detected_source_language: string;
25
+ text: string;
26
+ }
27
27
  //# sourceMappingURL=deepl-api.d.ts.map
package/lib/deepl-api.js CHANGED
@@ -1,94 +1,94 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2021 TypeFox and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.isSupportedLanguage = exports.supportedLanguages = exports.deepl = void 0;
19
- const bent = require("bent");
20
- const post = bent('POST', 'json', 200);
21
- // 50 is the maximum amount of translations per request
22
- const deeplLimit = 50;
23
- async function deepl(parameters) {
24
- coerceLanguage(parameters);
25
- const sub_domain = parameters.free_api ? 'api-free' : 'api';
26
- const textChunks = [];
27
- const textArray = [...parameters.text];
28
- while (textArray.length > 0) {
29
- textChunks.push(textArray.splice(0, deeplLimit));
30
- }
31
- const responses = await Promise.all(textChunks.map(chunk => {
32
- const parameterCopy = { ...parameters, text: chunk };
33
- return post(`https://${sub_domain}.deepl.com/v2/translate`, Buffer.from(toFormData(parameterCopy)), {
34
- 'Content-Type': 'application/x-www-form-urlencoded',
35
- 'User-Agent': 'Theia-Localization-Manager'
36
- });
37
- }));
38
- const mergedResponse = { translations: [] };
39
- for (const response of responses) {
40
- mergedResponse.translations.push(...response.translations);
41
- }
42
- for (const translation of mergedResponse.translations) {
43
- translation.text = coerceTranslation(translation.text);
44
- }
45
- return mergedResponse;
46
- }
47
- exports.deepl = deepl;
48
- /**
49
- * Coerces the target language into a form expected by Deepl.
50
- *
51
- * Currently only replaces `ZH-CN` with `ZH`
52
- */
53
- function coerceLanguage(parameters) {
54
- if (parameters.target_lang === 'ZH-CN') {
55
- parameters.target_lang = 'ZH';
56
- }
57
- }
58
- /**
59
- * Coerces translated text into a form expected by VSCode/Theia.
60
- *
61
- * Replaces certain full-width characters with their ascii counter-part.
62
- */
63
- function coerceTranslation(text) {
64
- return text
65
- .replace(/\uff08/g, '(')
66
- .replace(/\uff09/g, ')')
67
- .replace(/\uff0c/g, ',')
68
- .replace(/\uff1a/g, ':')
69
- .replace(/\uff1b/g, ';')
70
- .replace(/\uff1f/g, '?');
71
- }
72
- function toFormData(parameters) {
73
- const str = [];
74
- for (const [key, value] of Object.entries(parameters)) {
75
- if (typeof value === 'string') {
76
- str.push(encodeURIComponent(key) + '=' + encodeURIComponent(value.toString()));
77
- }
78
- else if (Array.isArray(value)) {
79
- for (const item of value) {
80
- str.push(encodeURIComponent(key) + '=' + encodeURIComponent(item.toString()));
81
- }
82
- }
83
- }
84
- return str.join('&');
85
- }
86
- exports.supportedLanguages = [
87
- 'BG', 'CS', 'DA', 'DE', 'EL', 'EN-GB', 'EN-US', 'EN', 'ES', 'ET', 'FI', 'FR', 'HU', 'IT',
88
- 'JA', 'LT', 'LV', 'NL', 'PL', 'PT-PT', 'PT-BR', 'PT', 'RO', 'RU', 'SK', 'SL', 'SV', 'ZH-CN'
89
- ];
90
- function isSupportedLanguage(language) {
91
- return exports.supportedLanguages.includes(language.toUpperCase());
92
- }
93
- exports.isSupportedLanguage = isSupportedLanguage;
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2021 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.isSupportedLanguage = exports.supportedLanguages = exports.deepl = void 0;
19
+ const bent = require("bent");
20
+ const post = bent('POST', 'json', 200);
21
+ // 50 is the maximum amount of translations per request
22
+ const deeplLimit = 50;
23
+ async function deepl(parameters) {
24
+ coerceLanguage(parameters);
25
+ const sub_domain = parameters.free_api ? 'api-free' : 'api';
26
+ const textChunks = [];
27
+ const textArray = [...parameters.text];
28
+ while (textArray.length > 0) {
29
+ textChunks.push(textArray.splice(0, deeplLimit));
30
+ }
31
+ const responses = await Promise.all(textChunks.map(chunk => {
32
+ const parameterCopy = { ...parameters, text: chunk };
33
+ return post(`https://${sub_domain}.deepl.com/v2/translate`, Buffer.from(toFormData(parameterCopy)), {
34
+ 'Content-Type': 'application/x-www-form-urlencoded',
35
+ 'User-Agent': 'Theia-Localization-Manager'
36
+ });
37
+ }));
38
+ const mergedResponse = { translations: [] };
39
+ for (const response of responses) {
40
+ mergedResponse.translations.push(...response.translations);
41
+ }
42
+ for (const translation of mergedResponse.translations) {
43
+ translation.text = coerceTranslation(translation.text);
44
+ }
45
+ return mergedResponse;
46
+ }
47
+ exports.deepl = deepl;
48
+ /**
49
+ * Coerces the target language into a form expected by Deepl.
50
+ *
51
+ * Currently only replaces `ZH-CN` with `ZH`
52
+ */
53
+ function coerceLanguage(parameters) {
54
+ if (parameters.target_lang === 'ZH-CN') {
55
+ parameters.target_lang = 'ZH';
56
+ }
57
+ }
58
+ /**
59
+ * Coerces translated text into a form expected by VSCode/Theia.
60
+ *
61
+ * Replaces certain full-width characters with their ascii counter-part.
62
+ */
63
+ function coerceTranslation(text) {
64
+ return text
65
+ .replace(/\uff08/g, '(')
66
+ .replace(/\uff09/g, ')')
67
+ .replace(/\uff0c/g, ',')
68
+ .replace(/\uff1a/g, ':')
69
+ .replace(/\uff1b/g, ';')
70
+ .replace(/\uff1f/g, '?');
71
+ }
72
+ function toFormData(parameters) {
73
+ const str = [];
74
+ for (const [key, value] of Object.entries(parameters)) {
75
+ if (typeof value === 'string') {
76
+ str.push(encodeURIComponent(key) + '=' + encodeURIComponent(value.toString()));
77
+ }
78
+ else if (Array.isArray(value)) {
79
+ for (const item of value) {
80
+ str.push(encodeURIComponent(key) + '=' + encodeURIComponent(item.toString()));
81
+ }
82
+ }
83
+ }
84
+ return str.join('&');
85
+ }
86
+ exports.supportedLanguages = [
87
+ 'BG', 'CS', 'DA', 'DE', 'EL', 'EN-GB', 'EN-US', 'EN', 'ES', 'ET', 'FI', 'FR', 'HU', 'IT',
88
+ 'JA', 'LT', 'LV', 'NL', 'PL', 'PT-PT', 'PT-BR', 'PT', 'RO', 'RU', 'SK', 'SL', 'SV', 'ZH-CN'
89
+ ];
90
+ function isSupportedLanguage(language) {
91
+ return exports.supportedLanguages.includes(language.toUpperCase());
92
+ }
93
+ exports.isSupportedLanguage = isSupportedLanguage;
94
94
  //# sourceMappingURL=deepl-api.js.map
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './common';
2
- export * from './localization-extractor';
3
- export * from './localization-manager';
1
+ export * from './common';
2
+ export * from './localization-extractor';
3
+ export * from './localization-manager';
4
4
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -1,22 +1,22 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2021 TypeFox and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- const tslib_1 = require("tslib");
19
- (0, tslib_1.__exportStar)(require("./common"), exports);
20
- (0, tslib_1.__exportStar)(require("./localization-extractor"), exports);
21
- (0, tslib_1.__exportStar)(require("./localization-manager"), exports);
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2021 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tslib_1 = require("tslib");
19
+ (0, tslib_1.__exportStar)(require("./common"), exports);
20
+ (0, tslib_1.__exportStar)(require("./localization-extractor"), exports);
21
+ (0, tslib_1.__exportStar)(require("./localization-manager"), exports);
22
22
  //# sourceMappingURL=index.js.map
@@ -1,14 +1,14 @@
1
- import { Localization } from './common';
2
- export interface ExtractionOptions {
3
- root?: string;
4
- output?: string;
5
- exclude?: string;
6
- logs?: string;
7
- /** List of globs matching the files to extract from. */
8
- files?: string[];
9
- merge?: boolean;
10
- quiet?: boolean;
11
- }
12
- export declare function extract(options: ExtractionOptions): Promise<void>;
13
- export declare function extractFromFile(file: string, content: string, errors?: string[], options?: ExtractionOptions): Promise<Localization>;
1
+ import { Localization } from './common';
2
+ export interface ExtractionOptions {
3
+ root?: string;
4
+ output?: string;
5
+ exclude?: string;
6
+ logs?: string;
7
+ /** List of globs matching the files to extract from. */
8
+ files?: string[];
9
+ merge?: boolean;
10
+ quiet?: boolean;
11
+ }
12
+ export declare function extract(options: ExtractionOptions): Promise<void>;
13
+ export declare function extractFromFile(file: string, content: string, errors?: string[], options?: ExtractionOptions): Promise<Localization>;
14
14
  //# sourceMappingURL=localization-extractor.d.ts.map