1+ /* eslint-disable no-undef */
2+ /* eslint-disable @typescript-eslint/no-var-requires */
13/*---------------------------------------------------------------------------------------------
24 * Copyright (c) Microsoft Corporation. All rights reserved.
35 * Licensed under the MIT License. See License.txt in the project root for license information.
46 *--------------------------------------------------------------------------------------------*/
57
68const gulp = require ( 'gulp' ) ;
7- const path = require ( 'path' ) ;
8-
9+ const filter = require ( 'gulp-filter' ) ;
910const ts = require ( 'gulp-typescript' ) ;
1011const typescript = require ( 'typescript' ) ;
1112const sourcemaps = require ( 'gulp-sourcemaps' ) ;
12- const del = require ( 'del' ) ;
13- const runSequence = require ( 'run-sequence' ) ;
14- const es = require ( 'event-stream' ) ;
15- const vsce = require ( 'vsce' ) ;
1613const nls = require ( 'vscode-nls-dev' ) ;
17-
18- const tsProject = ts . createProject ( './tsconfig.json' , { typescript } ) ;
19-
20- const inlineMap = true ;
21- const inlineSource = false ;
22- const outDest = 'out' ;
23-
24- // If all VS Code langaues are support you can use nls.coreLanguages
25- const languages = [ { folderName : 'chs' , id : 'zh-cn' } ] ;
26-
27- const cleanTask = function ( ) {
28- return del ( [ 'out/**' , 'package.nls.*.json' , 'i18n-sample*.vsix' ] ) ;
29- } ;
30-
31- const internalCompileTask = function ( ) {
32- return doCompile ( false ) ;
33- } ;
34-
35- const internalNlsCompileTask = function ( ) {
36- return doCompile ( true ) ;
14+ const del = require ( 'del' ) ;
15+ const cleanTask = function ( ) {
16+ return del ( [ 'out/**' , 'dist/**' , 'package.nls.*.json' , 'masm-tasm*.vsix' ] ) ;
3717} ;
38-
39- const addI18nTask = function ( ) {
18+ const tsProject = ts . createProject ( './tsconfig.json' , { typescript } ) ;
19+ const languages = [
20+ { id : "zh-cn" , folderName : "chs" , transifexId : "zh-hans" } ] ;
21+ //-----------------
22+ const generateAdditionalLocFiles = ( ) => {
4023 return gulp . src ( [ 'package.nls.json' ] )
4124 . pipe ( nls . createAdditionalLanguageFiles ( languages , 'i18n' ) )
4225 . pipe ( gulp . dest ( '.' ) ) ;
4326} ;
44-
45- const buildTask = gulp . series ( cleanTask , internalNlsCompileTask , addI18nTask ) ;
46-
47- const doCompile = function ( buildNls ) {
48- var r = tsProject . src ( )
27+ // Generates ./dist/nls.bundle.<language_id>.json from files in ./i18n/** *//<src_path>/<filename>.i18n.json
28+ // Localized strings are read from these files at runtime.
29+ const generateSrcLocBundle = ( ) => {
30+ // Transpile the TS to JS, and let vscode-nls-dev scan the files for calls to localize.
31+ return tsProject . src ( )
4932 . pipe ( sourcemaps . init ( ) )
5033 . pipe ( tsProject ( ) ) . js
51- . pipe ( buildNls ? nls . rewriteLocalizeCalls ( ) : es . through ( ) )
52- . pipe ( buildNls ? nls . createAdditionalLanguageFiles ( languages , 'i18n' , 'out' ) : es . through ( ) ) ;
53-
54- if ( inlineMap && inlineSource ) {
55- r = r . pipe ( sourcemaps . write ( ) ) ;
56- } else {
57- r = r . pipe ( sourcemaps . write ( "../out" , {
58- // no inlined source
59- includeContent : inlineSource ,
60- // Return relative source map root directories per file.
61- sourceRoot : "../src"
62- } ) ) ;
63- }
64-
65- return r . pipe ( gulp . dest ( outDest ) ) ;
66- } ;
67-
68- const vscePublishTask = function ( ) {
69- return vsce . publish ( ) ;
70- } ;
71-
72- const vscePackageTask = function ( ) {
73- return vsce . createVSIX ( ) ;
34+ . pipe ( nls . createMetaDataFiles ( ) )
35+ . pipe ( nls . createAdditionalLanguageFiles ( languages , "i18n" ) )
36+ . pipe ( nls . bundleMetaDataFiles ( 'xsro.masm-tasm' , 'dist' ) )
37+ . pipe ( nls . bundleLanguageFiles ( ) )
38+ . pipe ( filter ( [ '**/nls.bundle.*.json' , '**/nls.metadata.header.json' , '**/nls.metadata.json' ] ) )
39+ . pipe ( gulp . dest ( 'dist' ) ) ;
7440} ;
75-
76- gulp . task ( 'default' , buildTask ) ;
77-
7841gulp . task ( 'clean' , cleanTask ) ;
79-
80- gulp . task ( 'compile' , gulp . series ( cleanTask , internalCompileTask ) ) ;
81-
82- gulp . task ( 'build' , buildTask ) ;
83-
84- gulp . task ( 'publish' , gulp . series ( buildTask , vscePublishTask ) ) ;
85-
86- gulp . task ( 'package' , gulp . series ( buildTask , vscePackageTask ) ) ;
42+ gulp . task ( 'translations-generate' , gulp . series ( generateSrcLocBundle , generateAdditionalLocFiles ) ) ;
0 commit comments