1
+ /* eslint-disable no-undef */
2
+ /* eslint-disable @typescript-eslint/no-var-requires */
1
3
/*---------------------------------------------------------------------------------------------
2
4
* Copyright (c) Microsoft Corporation. All rights reserved.
3
5
* Licensed under the MIT License. See License.txt in the project root for license information.
4
6
*--------------------------------------------------------------------------------------------*/
5
7
6
8
const gulp = require ( 'gulp' ) ;
7
- const path = require ( 'path' ) ;
8
-
9
+ const filter = require ( 'gulp-filter' ) ;
9
10
const ts = require ( 'gulp-typescript' ) ;
10
11
const typescript = require ( 'typescript' ) ;
11
12
const 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' ) ;
16
13
const 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' ] ) ;
37
17
} ;
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 = ( ) => {
40
23
return gulp . src ( [ 'package.nls.json' ] )
41
24
. pipe ( nls . createAdditionalLanguageFiles ( languages , 'i18n' ) )
42
25
. pipe ( gulp . dest ( '.' ) ) ;
43
26
} ;
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 ( )
49
32
. pipe ( sourcemaps . init ( ) )
50
33
. 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' ) ) ;
74
40
} ;
75
-
76
- gulp . task ( 'default' , buildTask ) ;
77
-
78
41
gulp . 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