terminal/src/cascadia/TerminalSettingsModel
Leonard Hecker e34897cd1f
Add a language switcher using PrimaryLanguageOverride (#10309)
## Summary of the Pull Request

This PR adds a global "language" setting, which may be set to any supported BCP 47 tag.
Additionally a ComboBox is added to the settings UI under "Appearance", listing all languages with their localized names.

This PR introduces one new issue: If you change the language while the app is running, the UI will be in a torn state, as not all UI elements refresh automatically if the `PrimaryLanguageOverride` is changed.

## PR Checklist
* [x] Closes #5497
* [x] I work here
* [x] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [x] Schema updated

## Validation Steps Performed

* UI language changes when changing the "language" in settings.json before starting WT / while WT is running. ✔️
* "language" field is removed from settings.json if "Use system default" is selected. ✔️
* "language" field is added or updated in settings.json if any other language is selected. ✔️
* Removes qps- languages if debugFeatures is false. ✔️
* Correctly refreshes all UI elements with the new language. 
2021-06-10 23:24:21 +00:00
..
dll Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
Resources/en-US Add support for focusPane action, focus-pane subcommand (#10142) 2021-05-21 21:55:57 +00:00
ActionAndArgs.cpp Add support for focusPane action, focus-pane subcommand (#10142) 2021-05-21 21:55:57 +00:00
ActionAndArgs.h Introduce serialization for actions (#9926) 2021-05-20 18:44:04 +00:00
ActionArgs.cpp Add support for focusPane action, focus-pane subcommand (#10142) 2021-05-21 21:55:57 +00:00
ActionArgs.h Add support for focusPane action, focus-pane subcommand (#10142) 2021-05-21 21:55:57 +00:00
ActionArgs.idl Add support for focusPane action, focus-pane subcommand (#10142) 2021-05-21 21:55:57 +00:00
ActionMap.cpp Bugfix: serialize iterable commands (#10373) 2021-06-10 18:25:27 +00:00
ActionMap.h Bugfix: serialize iterable commands (#10373) 2021-06-10 18:25:27 +00:00
ActionMap.idl Make Actions page editable (#9949) 2021-05-18 21:37:16 +00:00
ActionMapSerialization.cpp Bugfix: serialize iterable commands (#10373) 2021-06-10 18:25:27 +00:00
AllShortcutActions.h Add support for focusPane action, focus-pane subcommand (#10142) 2021-05-21 21:55:57 +00:00
AppearanceConfig.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
AppearanceConfig.h Add a language switcher using PrimaryLanguageOverride (#10309) 2021-06-10 23:24:21 +00:00
AppearanceConfig.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
AzureCloudShellGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
AzureCloudShellGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
CascadiaSettings.cpp Fix crash on saving the settings twice (#10148) 2021-05-21 16:38:52 +00:00
CascadiaSettings.h Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
CascadiaSettings.idl Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
CascadiaSettingsSerialization.cpp Fix crash on saving the settings twice (#10148) 2021-05-21 16:38:52 +00:00
ColorScheme.cpp Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
ColorScheme.h Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
ColorScheme.idl Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
Command.cpp Bugfix: serialize iterable commands (#10373) 2021-06-10 18:25:27 +00:00
Command.h Introduce serialization for actions (#9926) 2021-05-20 18:44:04 +00:00
Command.idl Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
DefaultProfileUtils.cpp Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
DefaultProfileUtils.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
defaults-universal.json Implement user-specified pixel shaders, redux (#8565) 2020-12-15 20:40:22 +00:00
defaults.json Bind quakeMode to "win+`" by default (#10122) 2021-05-18 22:56:42 +00:00
DefaultTerminal.cpp Prevent crashes in Settings UI launch on OS versions before package management extensions (#10238) 2021-05-27 17:53:00 +00:00
DefaultTerminal.h Prevent crashes in Settings UI launch on OS versions before package management extensions (#10238) 2021-05-27 17:53:00 +00:00
DefaultTerminal.idl Implement UI for choosing default terminal inside Settings page (#9907) 2021-04-28 10:43:30 +00:00
EnumMappings.cpp Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
EnumMappings.h Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
EnumMappings.idl Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
GlobalAppSettings.cpp Add a language switcher using PrimaryLanguageOverride (#10309) 2021-06-10 23:24:21 +00:00
GlobalAppSettings.h Add a language switcher using PrimaryLanguageOverride (#10309) 2021-06-10 23:24:21 +00:00
GlobalAppSettings.idl Add a language switcher using PrimaryLanguageOverride (#10309) 2021-06-10 23:24:21 +00:00
HashUtils.h Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
IAppearanceConfig.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
IconPathConverter.cpp Revert "Add the profile, page icons to the page headers (#10046)" (#10124) 2021-05-18 17:35:50 -05:00
IconPathConverter.h Move IconSourceConverter from TerminalApp to TSM 2020-12-11 13:17:22 -08:00
IconPathConverter.idl Move IconSourceConverter from TerminalApp to TSM 2020-12-11 13:17:22 -08:00
IDynamicProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
IInheritable.h Move TerminalSettings from TermApp to TerminalSettingsModel (#9318) 2021-03-15 23:15:25 +00:00
IInheritable.idl.h Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
init.cpp Hook up the WIL fallback error tracer in Terminal (#7864) 2020-10-09 22:20:12 +00:00
JsonUtils.h Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
KeyChordSerialization.cpp Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
KeyChordSerialization.h Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
KeyChordSerialization.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
LegacyProfileGeneratorNamespaces.h From orbit, nuke the Telnet connection and all supporting infra. (#7840) 2020-10-09 18:59:58 +00:00
Microsoft.Terminal.Settings.ModelLib.vcxproj Upgrade Windows SDK to 19041 (#10118) 2021-05-20 16:04:25 +00:00
Microsoft.Terminal.Settings.ModelLib.vcxproj.filters Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
packages.config Update C++/WinRT to 2.0.210309.3 (#9437) 2021-03-10 16:04:59 -06:00
pch.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
pch.h Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
PowershellCoreProfileGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
PowershellCoreProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
Profile.cpp Disable path validation, add warning (#10045) 2021-05-12 17:36:11 +00:00
Profile.h Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
Profile.idl Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
SettingsTypes.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalSettings.cpp Add a setting to disable URL detection (#10022) 2021-05-17 04:20:09 +00:00
TerminalSettings.h Add a setting to disable URL detection (#10022) 2021-05-17 04:20:09 +00:00
TerminalSettings.idl Enable previewing the color scheme in the command palette (#9794) 2021-04-21 20:35:06 +00:00
TerminalSettingsSerializationHelpers.h Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
TerminalWarnings.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalWarnings.idl Invalidate nested command with no valid subcommands (#9495) 2021-03-15 16:34:06 +00:00
userDefaults.json Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
WslDistroGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
WslDistroGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00