@@ -14,14 +14,15 @@ import { IConfigurationRegistry, Extensions as ConfigurationExtensions } from 'v
1414import { IWorkbenchActionRegistry , Extensions } from 'vs/workbench/common/actions' ;
1515import { KeyMod , KeyChord , KeyCode } from 'vs/base/common/keyCodes' ;
1616import { isWindows , isLinux , isMacintosh } from 'vs/base/common/platform' ;
17- import { CloseEditorAction , KeybindingsReferenceAction , OpenDocumentationUrlAction , OpenIntroductoryVideosUrlAction , OpenTipsAndTricksUrlAction , ReportIssueAction , ReportPerformanceIssueAction , ZoomResetAction , ZoomOutAction , ZoomInAction , ToggleFullScreenAction , ToggleMenuBarAction , CloseWorkspaceAction , CloseCurrentWindowAction , SwitchWindow , NewWindowAction , CloseMessagesAction , NavigateUpAction , NavigateDownAction , NavigateLeftAction , NavigateRightAction , IncreaseViewSizeAction , DecreaseViewSizeAction , ShowStartupPerformance , ToggleSharedProcessAction , QuickSwitchWindow , QuickOpenRecentAction , inRecentFilesPickerContextKey } from 'vs/workbench/electron-browser/actions' ;
17+ import { CloseEditorAction , KeybindingsReferenceAction , OpenDocumentationUrlAction , OpenIntroductoryVideosUrlAction , OpenTipsAndTricksUrlAction , ReportIssueAction , ReportPerformanceIssueAction , ZoomResetAction , ZoomOutAction , ZoomInAction , ToggleFullScreenAction , ToggleMenuBarAction , CloseWorkspaceAction , CloseCurrentWindowAction , SwitchWindow , NewWindowAction , CloseMessagesAction , NavigateUpAction , NavigateDownAction , NavigateLeftAction , NavigateRightAction , IncreaseViewSizeAction , DecreaseViewSizeAction , ShowStartupPerformance , ToggleSharedProcessAction , QuickSwitchWindow , QuickOpenRecentAction , inRecentFilesPickerContextKey , ConfigureLocaleAction } from 'vs/workbench/electron-browser/actions' ;
1818import { MessagesVisibleContext } from 'vs/workbench/electron-browser/workbench' ;
1919import { IJSONSchema } from 'vs/base/common/jsonSchema' ;
2020import { registerCommands } from 'vs/workbench/electron-browser/commands' ;
2121import { AddRootFolderAction , GlobalRemoveRootFolderAction , OpenWorkspaceAction , SaveWorkspaceAsAction , OpenWorkspaceConfigFileAction , OpenFolderAsWorkspaceInNewWindowAction , OpenFileFolderAction , OpenFileAction , OpenFolderAction } from 'vs/workbench/browser/actions/workspaceActions' ;
2222import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey' ;
2323import { inQuickOpenContext , getQuickNavigateHandler } from 'vs/workbench/browser/parts/quickopen/quickopen' ;
2424import { KeybindingsRegistry } from 'vs/platform/keybinding/common/keybindingsRegistry' ;
25+ import { IJSONContributionRegistry , Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry' ;
2526
2627// Contribute Commands
2728registerCommands ( ) ;
@@ -449,3 +450,36 @@ configurationRegistry.registerConfiguration({
449450 }
450451 }
451452} ) ;
453+
454+ // Register action to configure locale and related settings
455+
456+ const registry = Registry . as < IWorkbenchActionRegistry > ( Extensions . WorkbenchActions ) ;
457+ registry . registerWorkbenchAction ( new SyncActionDescriptor ( ConfigureLocaleAction , ConfigureLocaleAction . ID , ConfigureLocaleAction . LABEL ) , 'Configure Language' ) ;
458+
459+ let enumValues : string [ ] = [ 'de' , 'en' , 'en-US' , 'es' , 'fr' , 'it' , 'ja' , 'ko' , 'ru' , 'zh-CN' , 'zh-TW' ] ;
460+ if ( product . quality !== 'stable' ) {
461+ enumValues . push ( 'hu' ) ;
462+ }
463+
464+ const schemaId = 'vscode://schemas/locale' ;
465+ // Keep en-US since we generated files with that content.
466+ const schema : IJSONSchema =
467+ {
468+ id : schemaId ,
469+ description : 'Locale Definition file' ,
470+ type : 'object' ,
471+ default : {
472+ 'locale' : 'en'
473+ } ,
474+ required : [ 'locale' ] ,
475+ properties : {
476+ locale : {
477+ type : 'string' ,
478+ enum : enumValues ,
479+ description : nls . localize ( 'JsonSchema.locale' , 'The UI Language to use.' )
480+ }
481+ }
482+ } ;
483+
484+ const jsonRegistry = Registry . as < IJSONContributionRegistry > ( JSONExtensions . JSONContribution ) ;
485+ jsonRegistry . registerSchema ( schemaId , schema ) ;
0 commit comments