File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -58,6 +58,7 @@ const AUTHORITY = process.env.VSCODE_AUTHORITY || `${HOST}:${PORT}`;
5858
5959const exists = ( path ) => util . promisify ( fs . exists ) ( path ) ;
6060const readFile = ( path ) => util . promisify ( fs . readFile ) ( path ) ;
61+ const CharCode_PC = '%' . charCodeAt ( 0 ) ;
6162
6263async function initialize ( ) {
6364 const extensionFolders = await util . promisify ( fs . readdir ) ( EXTENSIONS_ROOT ) ;
@@ -95,6 +96,26 @@ async function initialize() {
9596 }
9697 }
9798
99+ const packageNlsPath = path . join ( EXTENSIONS_ROOT , extensionFolder , 'package.nls.json' ) ;
100+ if ( await exists ( packageNlsPath ) ) {
101+ const packageNls = JSON . parse ( ( await readFile ( packageNlsPath ) ) . toString ( ) ) ;
102+ const translate = ( obj ) => {
103+ for ( let key in obj ) {
104+ const val = obj [ key ] ;
105+ if ( Array . isArray ( val ) ) {
106+ val . forEach ( translate ) ;
107+ } else if ( val && typeof val === 'object' ) {
108+ translate ( val ) ;
109+ } else if ( typeof val === 'string' && val . charCodeAt ( 0 ) === CharCode_PC && val . charCodeAt ( val . length - 1 ) === CharCode_PC ) {
110+ const translated = packageNls [ val . substr ( 1 , val . length - 2 ) ] ;
111+ if ( translated ) {
112+ obj [ key ] = translated ;
113+ }
114+ }
115+ }
116+ } ;
117+ translate ( packageJSON ) ;
118+ }
98119 packageJSON . extensionKind = [ 'web' ] ; // enable for Web
99120 staticExtensions . push ( {
100121 packageJSON,
You can’t perform that action at this time.
0 commit comments