Skip to content

Commit 6c0d720

Browse files
committed
Resolves microsoft#28336
1 parent 0bdc776 commit 6c0d720

6 files changed

Lines changed: 340 additions & 115 deletions

File tree

build/lib/i18n.js

Lines changed: 5 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
"use strict";
12
/*---------------------------------------------------------------------------------------------
23
* Copyright (c) Microsoft Corporation. All rights reserved.
34
* Licensed under the MIT License. See License.txt in the project root for license information.
45
*--------------------------------------------------------------------------------------------*/
5-
"use strict";
66
Object.defineProperty(exports, "__esModule", { value: true });
77
var path = require("path");
88
var fs = require("fs");
@@ -501,60 +501,6 @@ function prepareXlfFiles(projectName, extensionName) {
501501
}
502502
exports.prepareXlfFiles = prepareXlfFiles;
503503
var editorProject = 'vscode-editor', workbenchProject = 'vscode-workbench', extensionsProject = 'vscode-extensions', setupProject = 'vscode-setup';
504-
/**
505-
* Ensure to update those arrays when new resources are pushed to Transifex.
506-
* Used because Transifex does not have API method to pull all project resources.
507-
*/
508-
var editorResources = [
509-
{ name: 'vs/platform', project: editorProject },
510-
{ name: 'vs/editor/contrib', project: editorProject },
511-
{ name: 'vs/editor', project: editorProject },
512-
{ name: 'vs/base', project: editorProject }
513-
];
514-
var workbenchResources = [
515-
{ name: 'vs/code', project: workbenchProject },
516-
{ name: 'vs/workbench', project: workbenchProject },
517-
{ name: 'vs/workbench/parts/cli', project: workbenchProject },
518-
{ name: 'vs/workbench/parts/codeEditor', project: workbenchProject },
519-
{ name: 'vs/workbench/parts/debug', project: workbenchProject },
520-
{ name: 'vs/workbench/parts/emmet', project: workbenchProject },
521-
{ name: 'vs/workbench/parts/execution', project: workbenchProject },
522-
{ name: 'vs/workbench/parts/explorers', project: workbenchProject },
523-
{ name: 'vs/workbench/parts/extensions', project: workbenchProject },
524-
{ name: 'vs/workbench/parts/feedback', project: workbenchProject },
525-
{ name: 'vs/workbench/parts/files', project: workbenchProject },
526-
{ name: 'vs/workbench/parts/html', project: workbenchProject },
527-
{ name: 'vs/workbench/parts/markers', project: workbenchProject },
528-
{ name: 'vs/workbench/parts/nps', project: workbenchProject },
529-
{ name: 'vs/workbench/parts/output', project: workbenchProject },
530-
{ name: 'vs/workbench/parts/performance', project: workbenchProject },
531-
{ name: 'vs/workbench/parts/preferences', project: workbenchProject },
532-
{ name: 'vs/workbench/parts/quickopen', project: workbenchProject },
533-
{ name: 'vs/workbench/parts/relauncher', project: workbenchProject },
534-
{ name: 'vs/workbench/parts/scm', project: workbenchProject },
535-
{ name: 'vs/workbench/parts/search', project: workbenchProject },
536-
{ name: 'vs/workbench/parts/snippets', project: workbenchProject },
537-
{ name: 'vs/workbench/parts/surveys', project: workbenchProject },
538-
{ name: 'vs/workbench/parts/tasks', project: workbenchProject },
539-
{ name: 'vs/workbench/parts/terminal', project: workbenchProject },
540-
{ name: 'vs/workbench/parts/themes', project: workbenchProject },
541-
{ name: 'vs/workbench/parts/trust', project: workbenchProject },
542-
{ name: 'vs/workbench/parts/update', project: workbenchProject },
543-
{ name: 'vs/workbench/parts/views', project: workbenchProject },
544-
{ name: 'vs/workbench/parts/watermark', project: workbenchProject },
545-
{ name: 'vs/workbench/parts/welcome', project: workbenchProject },
546-
{ name: 'vs/workbench/services/configuration', project: workbenchProject },
547-
{ name: 'vs/workbench/services/crashReporter', project: workbenchProject },
548-
{ name: 'vs/workbench/services/editor', project: workbenchProject },
549-
{ name: 'vs/workbench/services/files', project: workbenchProject },
550-
{ name: 'vs/workbench/services/keybinding', project: workbenchProject },
551-
{ name: 'vs/workbench/services/message', project: workbenchProject },
552-
{ name: 'vs/workbench/services/mode', project: workbenchProject },
553-
{ name: 'vs/workbench/services/progress', project: workbenchProject },
554-
{ name: 'vs/workbench/services/textfile', project: workbenchProject },
555-
{ name: 'vs/workbench/services/themes', project: workbenchProject },
556-
{ name: 'setup_messages', project: workbenchProject }
557-
];
558504
function getResource(sourceFile) {
559505
var resource;
560506
if (/^vs\/platform/.test(sourceFile)) {
@@ -825,10 +771,12 @@ function updateResource(project, slug, xlfFile, apiHostname, credentials) {
825771
function obtainProjectResources(projectName) {
826772
var resources = [];
827773
if (projectName === editorProject) {
828-
resources = editorResources;
774+
var json = fs.readFileSync('./build/lib/i18n.resources.json', 'utf8');
775+
resources = JSON.parse(json).editor;
829776
}
830777
else if (projectName === workbenchProject) {
831-
resources = workbenchResources;
778+
var json = fs.readFileSync('./build/lib/i18n.resources.json', 'utf8');
779+
resources = JSON.parse(json).workbench;
832780
}
833781
else if (projectName === extensionsProject) {
834782
var extensionsToLocalize = glob.sync('./extensions/**/*.nls.json').map(function (extension) { return extension.split('/')[2]; });

build/lib/i18n.resources.json

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
{
2+
"editor": [
3+
{
4+
"name": "vs/platform",
5+
"project": "vscode-editor"
6+
},
7+
{
8+
"name": "vs/editor/contrib",
9+
"project": "vscode-editor"
10+
},
11+
{
12+
"name": "vs/editor",
13+
"project": "vscode-editor"
14+
},
15+
{
16+
"name": "vs/base",
17+
"project": "vscode-editor"
18+
}
19+
],
20+
"workbench": [
21+
{
22+
"name": "vs/code",
23+
"project": "vscode-workbench"
24+
},
25+
{
26+
"name": "vs/workbench",
27+
"project": "vscode-workbench"
28+
},
29+
{
30+
"name": "vs/workbench/parts/cli",
31+
"project": "vscode-workbench"
32+
},
33+
{
34+
"name": "vs/workbench/parts/codeEditor",
35+
"project": "vscode-workbench"
36+
},
37+
{
38+
"name": "vs/workbench/parts/debug",
39+
"project": "vscode-workbench"
40+
},
41+
{
42+
"name": "vs/workbench/parts/emmet",
43+
"project": "vscode-workbench"
44+
},
45+
{
46+
"name": "vs/workbench/parts/execution",
47+
"project": "vscode-workbench"
48+
},
49+
{
50+
"name": "vs/workbench/parts/explorers",
51+
"project": "vscode-workbench"
52+
},
53+
{
54+
"name": "vs/workbench/parts/extensions",
55+
"project": "vscode-workbench"
56+
},
57+
{
58+
"name": "vs/workbench/parts/feedback",
59+
"project": "vscode-workbench"
60+
},
61+
{
62+
"name": "vs/workbench/parts/files",
63+
"project": "vscode-workbench"
64+
},
65+
{
66+
"name": "vs/workbench/parts/html",
67+
"project": "vscode-workbench"
68+
},
69+
{
70+
"name": "vs/workbench/parts/markers",
71+
"project": "vscode-workbench"
72+
},
73+
{
74+
"name": "vs/workbench/parts/nps",
75+
"project": "vscode-workbench"
76+
},
77+
{
78+
"name": "vs/workbench/parts/output",
79+
"project": "vscode-workbench"
80+
},
81+
{
82+
"name": "vs/workbench/parts/performance",
83+
"project": "vscode-workbench"
84+
},
85+
{
86+
"name": "vs/workbench/parts/preferences",
87+
"project": "vscode-workbench"
88+
},
89+
{
90+
"name": "vs/workbench/parts/quickopen",
91+
"project": "vscode-workbench"
92+
},
93+
{
94+
"name": "vs/workbench/parts/relauncher",
95+
"project": "vscode-workbench"
96+
},
97+
{
98+
"name": "vs/workbench/parts/scm",
99+
"project": "vscode-workbench"
100+
},
101+
{
102+
"name": "vs/workbench/parts/search",
103+
"project": "vscode-workbench"
104+
},
105+
{
106+
"name": "vs/workbench/parts/snippets",
107+
"project": "vscode-workbench"
108+
},
109+
{
110+
"name": "vs/workbench/parts/surveys",
111+
"project": "vscode-workbench"
112+
},
113+
{
114+
"name": "vs/workbench/parts/tasks",
115+
"project": "vscode-workbench"
116+
},
117+
{
118+
"name": "vs/workbench/parts/terminal",
119+
"project": "vscode-workbench"
120+
},
121+
{
122+
"name": "vs/workbench/parts/themes",
123+
"project": "vscode-workbench"
124+
},
125+
{
126+
"name": "vs/workbench/parts/trust",
127+
"project": "vscode-workbench"
128+
},
129+
{
130+
"name": "vs/workbench/parts/update",
131+
"project": "vscode-workbench"
132+
},
133+
{
134+
"name": "vs/workbench/parts/views",
135+
"project": "vscode-workbench"
136+
},
137+
{
138+
"name": "vs/workbench/parts/watermark",
139+
"project": "vscode-workbench"
140+
},
141+
{
142+
"name": "vs/workbench/parts/welcome",
143+
"project": "vscode-workbench"
144+
},
145+
{
146+
"name": "vs/workbench/services/configuration",
147+
"project": "vscode-workbench"
148+
},
149+
{
150+
"name": "vs/workbench/services/crashReporter",
151+
"project": "vscode-workbench"
152+
},
153+
{
154+
"name": "vs/workbench/services/editor",
155+
"project": "vscode-workbench"
156+
},
157+
{
158+
"name": "vs/workbench/services/files",
159+
"project": "vscode-workbench"
160+
},
161+
{
162+
"name": "vs/workbench/services/keybinding",
163+
"project": "vscode-workbench"
164+
},
165+
{
166+
"name": "vs/workbench/services/message",
167+
"project": "vscode-workbench"
168+
},
169+
{
170+
"name": "vs/workbench/services/mode",
171+
"project": "vscode-workbench"
172+
},
173+
{
174+
"name": "vs/workbench/services/progress",
175+
"project": "vscode-workbench"
176+
},
177+
{
178+
"name": "vs/workbench/services/textfile",
179+
"project": "vscode-workbench"
180+
},
181+
{
182+
"name": "vs/workbench/services/themes",
183+
"project": "vscode-workbench"
184+
},
185+
{
186+
"name": "setup_messages",
187+
"project": "vscode-workbench"
188+
}
189+
]
190+
}

build/lib/i18n.ts

Lines changed: 4 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -578,61 +578,6 @@ const editorProject: string = 'vscode-editor',
578578
extensionsProject: string = 'vscode-extensions',
579579
setupProject: string = 'vscode-setup';
580580

581-
/**
582-
* Ensure to update those arrays when new resources are pushed to Transifex.
583-
* Used because Transifex does not have API method to pull all project resources.
584-
*/
585-
const editorResources: Resource[] = [
586-
{ name: 'vs/platform', project: editorProject },
587-
{ name: 'vs/editor/contrib', project: editorProject },
588-
{ name: 'vs/editor', project: editorProject },
589-
{ name: 'vs/base', project: editorProject }
590-
];
591-
const workbenchResources: Resource[] = [
592-
{ name: 'vs/code', project: workbenchProject },
593-
{ name: 'vs/workbench', project: workbenchProject },
594-
{ name: 'vs/workbench/parts/cli', project: workbenchProject },
595-
{ name: 'vs/workbench/parts/codeEditor', project: workbenchProject },
596-
{ name: 'vs/workbench/parts/debug', project: workbenchProject },
597-
{ name: 'vs/workbench/parts/emmet', project: workbenchProject },
598-
{ name: 'vs/workbench/parts/execution', project: workbenchProject },
599-
{ name: 'vs/workbench/parts/explorers', project: workbenchProject },
600-
{ name: 'vs/workbench/parts/extensions', project: workbenchProject },
601-
{ name: 'vs/workbench/parts/feedback', project: workbenchProject },
602-
{ name: 'vs/workbench/parts/files', project: workbenchProject },
603-
{ name: 'vs/workbench/parts/html', project: workbenchProject },
604-
{ name: 'vs/workbench/parts/markers', project: workbenchProject },
605-
{ name: 'vs/workbench/parts/nps', project: workbenchProject },
606-
{ name: 'vs/workbench/parts/output', project: workbenchProject },
607-
{ name: 'vs/workbench/parts/performance', project: workbenchProject },
608-
{ name: 'vs/workbench/parts/preferences', project: workbenchProject },
609-
{ name: 'vs/workbench/parts/quickopen', project: workbenchProject },
610-
{ name: 'vs/workbench/parts/relauncher', project: workbenchProject },
611-
{ name: 'vs/workbench/parts/scm', project: workbenchProject },
612-
{ name: 'vs/workbench/parts/search', project: workbenchProject },
613-
{ name: 'vs/workbench/parts/snippets', project: workbenchProject },
614-
{ name: 'vs/workbench/parts/surveys', project: workbenchProject },
615-
{ name: 'vs/workbench/parts/tasks', project: workbenchProject },
616-
{ name: 'vs/workbench/parts/terminal', project: workbenchProject },
617-
{ name: 'vs/workbench/parts/themes', project: workbenchProject },
618-
{ name: 'vs/workbench/parts/trust', project: workbenchProject },
619-
{ name: 'vs/workbench/parts/update', project: workbenchProject },
620-
{ name: 'vs/workbench/parts/views', project: workbenchProject },
621-
{ name: 'vs/workbench/parts/watermark', project: workbenchProject },
622-
{ name: 'vs/workbench/parts/welcome', project: workbenchProject },
623-
{ name: 'vs/workbench/services/configuration', project: workbenchProject },
624-
{ name: 'vs/workbench/services/crashReporter', project: workbenchProject },
625-
{ name: 'vs/workbench/services/editor', project: workbenchProject },
626-
{ name: 'vs/workbench/services/files', project: workbenchProject },
627-
{ name: 'vs/workbench/services/keybinding', project: workbenchProject },
628-
{ name: 'vs/workbench/services/message', project: workbenchProject },
629-
{ name: 'vs/workbench/services/mode', project: workbenchProject },
630-
{ name: 'vs/workbench/services/progress', project: workbenchProject },
631-
{ name: 'vs/workbench/services/textfile', project: workbenchProject },
632-
{ name: 'vs/workbench/services/themes', project: workbenchProject },
633-
{ name: 'setup_messages', project: workbenchProject }
634-
];
635-
636581
export function getResource(sourceFile: string): Resource {
637582
let resource: string;
638583

@@ -923,9 +868,11 @@ function obtainProjectResources(projectName: string): Resource[] {
923868
let resources: Resource[] = [];
924869

925870
if (projectName === editorProject) {
926-
resources = editorResources;
871+
const json = fs.readFileSync('./build/lib/i18n.resources.json', 'utf8');
872+
resources = JSON.parse(json).editor;
927873
} else if (projectName === workbenchProject) {
928-
resources = workbenchResources;
874+
const json = fs.readFileSync('./build/lib/i18n.resources.json', 'utf8');
875+
resources = JSON.parse(json).workbench;
929876
} else if (projectName === extensionsProject) {
930877
let extensionsToLocalize: string[] = glob.sync('./extensions/**/*.nls.json').map(extension => extension.split('/')[2]);
931878
let resourcesToPull: string[] = [];

0 commit comments

Comments
 (0)