Skip to content

Commit

Permalink
Pull in web strings into Language Pack (#158053)
Browse files Browse the repository at this point in the history
remove old tasks and include web strings in export
  • Loading branch information
TylerLeonhardt authored Aug 15, 2022
1 parent 5864b1f commit 1089169
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 39 deletions.
49 changes: 12 additions & 37 deletions build/gulpfile.vscode.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
'use strict';

const gulp = require('gulp');
const merge = require('gulp-merge-json');
const fs = require('fs');
const os = require('os');
const cp = require('child_process');
Expand Down Expand Up @@ -393,6 +394,8 @@ BUILD_TARGETS.forEach(buildTarget => {
}
});

// #region nls

const innoSetupConfig = {
'zh-cn': { codePage: 'CP936', defaultInfo: { name: 'Simplified Chinese', id: '$0804', } },
'zh-tw': { codePage: 'CP950', defaultInfo: { name: 'Traditional Chinese', id: '$0404' } },
Expand All @@ -408,60 +411,30 @@ const innoSetupConfig = {
'tr': { codePage: 'CP1254' }
};

// Transifex Localizations

const apiHostname = process.env.TRANSIFEX_API_URL;
const apiName = process.env.TRANSIFEX_API_NAME;
const apiToken = process.env.TRANSIFEX_API_TOKEN;

gulp.task(task.define(
'vscode-translations-push',
task.series(
compileBuildTask,
compileExtensionsBuildTask,
optimizeVSCodeTask,
function () {
const pathToMetadata = './out-vscode/nls.metadata.json';
const pathToExtensions = '.build/extensions/*';
const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}';

return es.merge(
gulp.src(pathToMetadata).pipe(i18n.createXlfFilesForCoreBundle()),
gulp.src(pathToSetup).pipe(i18n.createXlfFilesForIsl()),
gulp.src(pathToExtensions).pipe(i18n.createXlfFilesForExtensions())
).pipe(i18n.findObsoleteResources(apiHostname, apiName, apiToken)
).pipe(i18n.pushXlfFiles(apiHostname, apiName, apiToken));
}
)
));

gulp.task(task.define(
'vscode-translations-export',
task.series(
compileBuildTask,
core,
compileExtensionsBuildTask,
optimizeVSCodeTask,
function () {
const pathToMetadata = './out-vscode/nls.metadata.json';
const pathToRehWebMetadata = './out-vscode-reh-web/nls.metadata.json';
const pathToExtensions = '.build/extensions/*';
const pathToSetup = 'build/win32/i18n/messages.en.isl';

return es.merge(
gulp.src(pathToMetadata).pipe(i18n.createXlfFilesForCoreBundle()),
gulp.src([pathToRehWebMetadata]).pipe(merge({
fileName: 'nls.metadata.json',
jsonSpace: '',
concatArrays: true
})).pipe(i18n.createXlfFilesForCoreBundle()),
gulp.src(pathToSetup).pipe(i18n.createXlfFilesForIsl()),
gulp.src(pathToExtensions).pipe(i18n.createXlfFilesForExtensions())
).pipe(vfs.dest('../vscode-translations-export'));
}
)
));

gulp.task('vscode-translations-pull', function () {
return es.merge([...i18n.defaultLanguages, ...i18n.extraLanguages].map(language => {
const includeDefault = !!innoSetupConfig[language.id].defaultInfo;
return i18n.pullSetupXlfFiles(apiHostname, apiName, apiToken, language, includeDefault).pipe(vfs.dest(`../vscode-translations-import/${language.id}/setup`));
}));
});

gulp.task('vscode-translations-import', function () {
const options = minimist(process.argv.slice(2), {
string: 'location',
Expand All @@ -476,3 +449,5 @@ gulp.task('vscode-translations-import', function () {
.pipe(vfs.dest(`./build/win32/i18n`));
}));
});

// #endregion
5 changes: 4 additions & 1 deletion build/lib/i18n.js
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@ function processNlsFiles(opts) {
});
}
exports.processNlsFiles = processNlsFiles;
const editorProject = 'vscode-editor', workbenchProject = 'vscode-workbench', extensionsProject = 'vscode-extensions', setupProject = 'vscode-setup';
const editorProject = 'vscode-editor', workbenchProject = 'vscode-workbench', extensionsProject = 'vscode-extensions', setupProject = 'vscode-setup', serverProject = 'vscode-server';
function getResource(sourceFile) {
let resource;
if (/^vs\/platform/.test(sourceFile)) {
Expand All @@ -509,6 +509,9 @@ function getResource(sourceFile) {
else if (/^vs\/code/.test(sourceFile)) {
return { name: 'vs/code', project: workbenchProject };
}
else if (/^vs\/server/.test(sourceFile)) {
return { name: 'vs/server', project: serverProject };
}
else if (/^vs\/workbench\/contrib/.test(sourceFile)) {
resource = sourceFile.split('/', 4).join('/');
return { name: resource, project: workbenchProject };
Expand Down
5 changes: 4 additions & 1 deletion build/lib/i18n.ts
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,8 @@ export function processNlsFiles(opts: { fileHeader: string; languages: Language[
const editorProject: string = 'vscode-editor',
workbenchProject: string = 'vscode-workbench',
extensionsProject: string = 'vscode-extensions',
setupProject: string = 'vscode-setup';
setupProject: string = 'vscode-setup',
serverProject: string = 'vscode-server';

export function getResource(sourceFile: string): Resource {
let resource: string;
Expand All @@ -626,6 +627,8 @@ export function getResource(sourceFile: string): Resource {
return { name: 'vs/base', project: editorProject };
} else if (/^vs\/code/.test(sourceFile)) {
return { name: 'vs/code', project: workbenchProject };
} else if (/^vs\/server/.test(sourceFile)) {
return { name: 'vs/server', project: serverProject };
} else if (/^vs\/workbench\/contrib/.test(sourceFile)) {
resource = sourceFile.split('/', 4).join('/');
return { name: resource, project: workbenchProject };
Expand Down

0 comments on commit 1089169

Please sign in to comment.