Implemented transifex push and pull for translations together with json->xlf->json parsing.

This commit is contained in:
Michel Kaporin
2017-03-02 21:53:02 +01:00
committed by Michel Kaporin
parent 74478d5a0c
commit 2af1e01b44
4 changed files with 1732 additions and 291 deletions

View File

@@ -29,6 +29,7 @@ const packageJson = require('../package.json');
const product = require('../product.json');
const shrinkwrap = require('../npm-shrinkwrap.json');
const crypto = require('crypto');
const i18n = require('./lib/i18n');
const dependencies = Object.keys(shrinkwrap.dependencies)
.concat(Array.isArray(product.extraNodeModules) ? product.extraNodeModules : []); // additional dependencies from our product configuration
@@ -339,6 +340,38 @@ gulp.task('vscode-linux-ia32-min', ['minify-vscode', 'clean-vscode-linux-ia32'],
gulp.task('vscode-linux-x64-min', ['minify-vscode', 'clean-vscode-linux-x64'], packageTask('linux', 'x64', { minified: true }));
gulp.task('vscode-linux-arm-min', ['minify-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm', { minified: true }));
const apiUrl = process.env.TRANSIFEX_API_URL;
const apiName = process.env.TRANSIFEX_API_NAME;
const apiToken = process.env.TRANSIFEX_API_TOKEN;
gulp.task('vscode-translations-update', function() {
const pathToMetadata = './out-vscode/nls.metadata.json';
const pathToExtensions = './extensions/**/*.nls.json';
const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}';
gulp.src(pathToMetadata)
.pipe(i18n.prepareXlfFiles())
.pipe(i18n.pushXlfFiles(apiUrl, apiName, apiToken));
gulp.src(pathToSetup)
.pipe(i18n.prepareXlfFiles())
.pipe(i18n.pushXlfFiles(apiUrl, apiName, apiToken));
return gulp.src(pathToExtensions)
.pipe(i18n.prepareXlfFiles('vscode-extensions'))
.pipe(i18n.pushXlfFiles(apiUrl, apiName, apiToken));
});
gulp.task('vscode-translations-pull', function() {
i18n.pullXlfFiles('vscode-editor-workbench', apiUrl, apiName, apiToken)
.pipe(i18n.prepareJsonFiles())
.pipe(vfs.dest('./i18n'));
return i18n.pullXlfFiles('vscode-extensions', apiUrl, apiName, apiToken)
.pipe(i18n.prepareJsonFiles())
.pipe(vfs.dest('./i18n'));
});
// Sourcemaps
gulp.task('upload-vscode-sourcemaps', ['minify-vscode'], () => {