From 02a7c025483748287b8f564808bd927cbdde839d Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Mon, 8 Jul 2024 13:26:07 -0500 Subject: [PATCH 1/7] Add a snippets pane (#17330) This adds a snippets pane, which can be a static pane with all your snippets (`sendInput` actions) in it. (See #17329) This pane has a treeview with these actions in it, that we can filter with a textbox at the top. Play buttons next to entries make it quick to run the command you found. Bound in the default actions with ```json { "command": { "action": "splitPane", "type": "snippets" }, "id": "Terminal.OpenSnippetsPane", "name": { "key": "SnippetsPaneCommandName" } }, ``` re: #1595 ---- TODO, from 06-04 bug bash * [x] Snippets pane doesn't display some "no snippets found" text if there aren't any yet * [x] open snippets pane; find a "send input"; click the play button on it; input is sent to active pane; begin typing * [x] I can open an infinite amount of suggestions panes * ~I'm closing this as by-design for now at least. Nothing stopping anyone from opening infinite of any kind of pane.~ * ~This would require kind of a lot of refactoring in this PR to mark a kind of pane as being a singleton or singleton-per-tab~ * Okay everyone hates infinite suggestions panes, so I got rid of that * [x] Ctrl+Shift+W should still work in the snippets pane even if focus isn't in textbox * [ ] open snippets pane; click on text box; press TAB key; * [ ] If you press TAB again, I have no idea where focus went * [x] some previews don't work. Like `^c` (`"input": "\u0003"`) * [x] nested items just give you a bit of extra space for no reason and it looks a little awkward * [x] UI Suggestion: add padding on the right side * [ ] [Accessibility] Narrator says "Clear buffer; Suggestions found 132" when you open the snippets pane - Note: this is probably Narrator reading out the command palette (since that's where I opened it from) - We should probably expect something like "Snippets", then (assuming focus is thrown into text box) "Type to filter snippets" or something like that --- src/cascadia/TerminalApp/FilteredCommand.cpp | 19 +- src/cascadia/TerminalApp/FilteredCommand.h | 5 +- src/cascadia/TerminalApp/FilteredCommand.idl | 2 +- src/cascadia/TerminalApp/Pane.cpp | 3 +- .../Resources/en-US/Resources.resw | 22 ++ .../TerminalApp/SnippetsPaneContent.cpp | 199 +++++++++++++ .../TerminalApp/SnippetsPaneContent.h | 154 +++++++++++ .../TerminalApp/SnippetsPaneContent.xaml | 261 ++++++++++++++++++ .../TerminalApp/TerminalAppLib.vcxproj | 14 +- src/cascadia/TerminalApp/TerminalPage.cpp | 50 +++- .../TerminalApp/TerminalPaneContent.idl | 19 ++ src/cascadia/TerminalApp/TerminalTab.cpp | 16 +- .../Resources/en-US/Resources.resw | 4 + .../TerminalSettingsModel/defaults.json | 2 + src/cascadia/inc/cppwinrt_utils.h | 4 +- 15 files changed, 756 insertions(+), 18 deletions(-) create mode 100644 src/cascadia/TerminalApp/SnippetsPaneContent.cpp create mode 100644 src/cascadia/TerminalApp/SnippetsPaneContent.h create mode 100644 src/cascadia/TerminalApp/SnippetsPaneContent.xaml diff --git a/src/cascadia/TerminalApp/FilteredCommand.cpp b/src/cascadia/TerminalApp/FilteredCommand.cpp index 98a7b53de4b..d6c6c38a284 100644 --- a/src/cascadia/TerminalApp/FilteredCommand.cpp +++ b/src/cascadia/TerminalApp/FilteredCommand.cpp @@ -21,11 +21,22 @@ namespace winrt::TerminalApp::implementation { // This class is a wrapper of PaletteItem, that is used as an item of a filterable list in CommandPalette. // It manages a highlighted text that is computed by matching search filter characters to item name - FilteredCommand::FilteredCommand(const winrt::TerminalApp::PaletteItem& item) : - _Item(item), - _Filter(L""), - _Weight(0) + FilteredCommand::FilteredCommand(const winrt::TerminalApp::PaletteItem& item) { + // Actually implement the ctor in _constructFilteredCommand + _constructFilteredCommand(item); + } + + // We need to actually implement the ctor in a separate helper. This is + // because we have a FilteredTask class which derives from FilteredCommand. + // HOWEVER, for cppwinrt ~ r e a s o n s ~, it doesn't actually derive from + // FilteredCommand directly, so we can't just use the FilteredCommand ctor + // directly in the base class. + void FilteredCommand::_constructFilteredCommand(const winrt::TerminalApp::PaletteItem& item) + { + _Item = item; + _Filter = L""; + _Weight = 0; _HighlightedName = _computeHighlightedName(); // Recompute the highlighted name if the item name changes diff --git a/src/cascadia/TerminalApp/FilteredCommand.h b/src/cascadia/TerminalApp/FilteredCommand.h index e5df7bb018a..f304ad032a3 100644 --- a/src/cascadia/TerminalApp/FilteredCommand.h +++ b/src/cascadia/TerminalApp/FilteredCommand.h @@ -19,7 +19,7 @@ namespace winrt::TerminalApp::implementation FilteredCommand() = default; FilteredCommand(const winrt::TerminalApp::PaletteItem& item); - void UpdateFilter(const winrt::hstring& filter); + virtual void UpdateFilter(const winrt::hstring& filter); static int Compare(const winrt::TerminalApp::FilteredCommand& first, const winrt::TerminalApp::FilteredCommand& second); @@ -29,6 +29,9 @@ namespace winrt::TerminalApp::implementation WINRT_OBSERVABLE_PROPERTY(winrt::TerminalApp::HighlightedText, HighlightedName, PropertyChanged.raise); WINRT_OBSERVABLE_PROPERTY(int, Weight, PropertyChanged.raise); + protected: + void _constructFilteredCommand(const winrt::TerminalApp::PaletteItem& item); + private: winrt::TerminalApp::HighlightedText _computeHighlightedName(); int _computeWeight(); diff --git a/src/cascadia/TerminalApp/FilteredCommand.idl b/src/cascadia/TerminalApp/FilteredCommand.idl index ce2b04b92c1..a63e6e81100 100644 --- a/src/cascadia/TerminalApp/FilteredCommand.idl +++ b/src/cascadia/TerminalApp/FilteredCommand.idl @@ -6,7 +6,7 @@ import "HighlightedTextControl.idl"; namespace TerminalApp { - [default_interface] runtimeclass FilteredCommand : Windows.UI.Xaml.Data.INotifyPropertyChanged + [default_interface] unsealed runtimeclass FilteredCommand : Windows.UI.Xaml.Data.INotifyPropertyChanged { FilteredCommand(); FilteredCommand(PaletteItem item); diff --git a/src/cascadia/TerminalApp/Pane.cpp b/src/cascadia/TerminalApp/Pane.cpp index eb153ce1ed8..96667a60fa1 100644 --- a/src/cascadia/TerminalApp/Pane.cpp +++ b/src/cascadia/TerminalApp/Pane.cpp @@ -2944,7 +2944,8 @@ void Pane::FinalizeConfigurationGivenDefault() // - Returns true if the pane or one of its descendants is read-only bool Pane::ContainsReadOnly() const { - return _IsLeaf() ? _content.ReadOnly() : (_firstChild->ContainsReadOnly() || _secondChild->ContainsReadOnly()); + return _IsLeaf() ? (_content == nullptr ? false : _content.ReadOnly()) : + (_firstChild->ContainsReadOnly() || _secondChild->ContainsReadOnly()); } // Method Description: diff --git a/src/cascadia/TerminalApp/Resources/en-US/Resources.resw b/src/cascadia/TerminalApp/Resources/en-US/Resources.resw index efe3e1278e2..95babb6e4a6 100644 --- a/src/cascadia/TerminalApp/Resources/en-US/Resources.resw +++ b/src/cascadia/TerminalApp/Resources/en-US/Resources.resw @@ -907,6 +907,28 @@ Restart the active pane connection + + Snippets + Header for a page that includes small "snippets" of text for the user to enter + + + Filter snippets... + Placeholder text for a text box to filter snippets (on the same page as the 'SnippetPaneTitle') + + + Input this command + + + Input this command + + + No snippets found in your settings. + Text shown to user when no snippets are found in their settings + + + Add some "Send input" actions in your settings to have them show up here. + Additional information presented to the user to let them know they can add a "Send input" action in their setting to populate the snippets pane + Action saved diff --git a/src/cascadia/TerminalApp/SnippetsPaneContent.cpp b/src/cascadia/TerminalApp/SnippetsPaneContent.cpp new file mode 100644 index 00000000000..7e8c1695543 --- /dev/null +++ b/src/cascadia/TerminalApp/SnippetsPaneContent.cpp @@ -0,0 +1,199 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +#include "pch.h" +#include "SnippetsPaneContent.h" +#include "SnippetsPaneContent.g.cpp" +#include "FilteredTask.g.cpp" +#include "Utils.h" + +using namespace winrt::Windows::Foundation; +using namespace winrt::Windows::System; +using namespace winrt::Microsoft::Terminal::Settings; +using namespace winrt::Microsoft::Terminal::Settings::Model; + +namespace winrt +{ + namespace WUX = Windows::UI::Xaml; + namespace MUX = Microsoft::UI::Xaml; + using IInspectable = Windows::Foundation::IInspectable; +} + +namespace winrt::TerminalApp::implementation +{ + SnippetsPaneContent::SnippetsPaneContent() + { + InitializeComponent(); + + WUX::Automation::AutomationProperties::SetName(*this, RS_(L"SnippetPaneTitle/Text")); + } + + void SnippetsPaneContent::_updateFilteredCommands() + { + const auto& queryString = _filterBox().Text(); + + // DON'T replace the itemSource here. If you do, it'll un-expand all the + // nested items the user has expanded. Instead, just update the filter. + // That'll also trigger a PropertyChanged for the Visibility property. + for (const auto& t : _allTasks) + { + auto impl = winrt::get_self(t); + impl->UpdateFilter(queryString); + } + } + + void SnippetsPaneContent::UpdateSettings(const CascadiaSettings& settings) + { + _settings = settings; + + // You'd think that `FilterToSendInput(queryString)` would work. It + // doesn't! That uses the queryString as the current command the user + // has typed, then relies on the suggestions UI to _also_ filter with that + // string. + + const auto tasks = _settings.GlobalSettings().ActionMap().FilterToSendInput(winrt::hstring{}); // IVector + _allTasks = winrt::single_threaded_observable_vector(); + for (const auto& t : tasks) + { + const auto& filtered{ winrt::make(t) }; + _allTasks.Append(filtered); + } + _treeView().ItemsSource(_allTasks); + + _updateFilteredCommands(); + + PropertyChanged.raise(*this, Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"HasSnippets" }); + } + + bool SnippetsPaneContent::HasSnippets() const + { + return _allTasks.Size() != 0; + } + + void SnippetsPaneContent::_filterTextChanged(const IInspectable& /*sender*/, + const Windows::UI::Xaml::RoutedEventArgs& /*args*/) + { + _updateFilteredCommands(); + } + + winrt::Windows::UI::Xaml::FrameworkElement SnippetsPaneContent::GetRoot() + { + return *this; + } + winrt::Windows::Foundation::Size SnippetsPaneContent::MinimumSize() + { + return { 200, 200 }; + } + void SnippetsPaneContent::Focus(winrt::Windows::UI::Xaml::FocusState reason) + { + _filterBox().Focus(reason); + } + void SnippetsPaneContent::Close() + { + CloseRequested.raise(*this, nullptr); + } + + INewContentArgs SnippetsPaneContent::GetNewTerminalArgs(BuildStartupKind /*kind*/) const + { + return BaseContentArgs(L"snippets"); + } + + winrt::hstring SnippetsPaneContent::Icon() const + { + static constexpr std::wstring_view glyph{ L"\xe70b" }; // QuickNote + return winrt::hstring{ glyph }; + } + + winrt::WUX::Media::Brush SnippetsPaneContent::BackgroundBrush() + { + static const auto key = winrt::box_value(L"UnfocusedBorderBrush"); + return ThemeLookup(WUX::Application::Current().Resources(), + _settings.GlobalSettings().CurrentTheme().RequestedTheme(), + key) + .try_as(); + } + + void SnippetsPaneContent::SetLastActiveControl(const Microsoft::Terminal::Control::TermControl& control) + { + _control = control; + } + + void SnippetsPaneContent::_runCommand(const Microsoft::Terminal::Settings::Model::Command& command) + { + if (const auto& strongControl{ _control.get() }) + { + // By using the last active control as the sender here, the + // action dispatch will send this to the active control, + // thinking that it is the control that requested this event. + strongControl.Focus(winrt::WUX::FocusState::Programmatic); + DispatchCommandRequested.raise(strongControl, command); + } + } + + void SnippetsPaneContent::_runCommandButtonClicked(const Windows::Foundation::IInspectable& sender, + const Windows::UI::Xaml::RoutedEventArgs&) + { + if (const auto& taskVM{ sender.try_as().DataContext().try_as() }) + { + _runCommand(taskVM->Command()); + } + } + + // Called when one of the items in the list is tapped, or enter/space is + // pressed on it while focused. Notably, this isn't the Tapped event - it + // isn't called when the user clicks the dropdown arrow (that does usually + // also trigger a Tapped). + // + // We'll use this to toggle the expanded state of nested items, since the + // tree view arrow is so little + void SnippetsPaneContent::_treeItemInvokedHandler(const IInspectable& /*sender*/, + const MUX::Controls::TreeViewItemInvokedEventArgs& e) + { + // The InvokedItem here is the item in the data collection that was + // bound itself. + if (const auto& taskVM{ e.InvokedItem().try_as() }) + { + if (taskVM->HasChildren()) + { + // We then need to find the actual TreeViewItem for that + // FilteredTask. + if (const auto& item{ _treeView().ContainerFromItem(*taskVM).try_as() }) + { + item.IsExpanded(!item.IsExpanded()); + } + } + } + } + + // Raised on individual TreeViewItems. We'll use this event to send the + // input on an Enter/Space keypress, when a leaf item is selected. + void SnippetsPaneContent::_treeItemKeyUpHandler(const IInspectable& sender, + const Windows::UI::Xaml::Input::KeyRoutedEventArgs& e) + { + const auto& item{ sender.try_as() }; + if (!item) + { + return; + } + const auto& taskVM{ item.DataContext().try_as() }; + if (!taskVM || taskVM->HasChildren()) + { + return; + } + + const auto& key = e.OriginalKey(); + if (key == VirtualKey::Enter || key == VirtualKey::Space) + { + if (const auto& button = e.OriginalSource().try_as()) + { + // Let the button handle the Enter key so an eventually attached click handler will be called + e.Handled(false); + return; + } + + _runCommand(taskVM->Command()); + e.Handled(true); + } + } + +} diff --git a/src/cascadia/TerminalApp/SnippetsPaneContent.h b/src/cascadia/TerminalApp/SnippetsPaneContent.h new file mode 100644 index 00000000000..493121c9150 --- /dev/null +++ b/src/cascadia/TerminalApp/SnippetsPaneContent.h @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +#pragma once +#include "SnippetsPaneContent.g.h" +#include "FilteredTask.g.h" +#include "FilteredCommand.h" +#include "ActionPaletteItem.h" +#include + +namespace winrt::TerminalApp::implementation +{ + struct SnippetsPaneContent : SnippetsPaneContentT + { + SnippetsPaneContent(); + + winrt::Windows::UI::Xaml::FrameworkElement GetRoot(); + + void UpdateSettings(const winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings& settings); + + winrt::Windows::Foundation::Size MinimumSize(); + void Focus(winrt::Windows::UI::Xaml::FocusState reason = winrt::Windows::UI::Xaml::FocusState::Programmatic); + void Close(); + winrt::Microsoft::Terminal::Settings::Model::INewContentArgs GetNewTerminalArgs(BuildStartupKind kind) const; + + winrt::hstring Title() { return RS_(L"SnippetPaneTitle/Text"); } + uint64_t TaskbarState() { return 0; } + uint64_t TaskbarProgress() { return 0; } + bool ReadOnly() { return false; } + winrt::hstring Icon() const; + Windows::Foundation::IReference TabColor() const noexcept { return nullptr; } + winrt::Windows::UI::Xaml::Media::Brush BackgroundBrush(); + + void SetLastActiveControl(const Microsoft::Terminal::Control::TermControl& control); + bool HasSnippets() const; + + til::typed_event<> ConnectionStateChanged; + til::typed_event CloseRequested; + til::typed_event BellRequested; + til::typed_event TitleChanged; + til::typed_event TabColorChanged; + til::typed_event TaskbarProgressChanged; + til::typed_event ReadOnlyChanged; + til::typed_event FocusRequested; + + til::typed_event DispatchCommandRequested; + + til::property_changed_event PropertyChanged; + + private: + friend struct SnippetsPaneContentT; // for Xaml to bind events + + winrt::weak_ref _control{ nullptr }; + winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings _settings{ nullptr }; + winrt::Windows::Foundation::Collections::IObservableVector _allTasks{ nullptr }; + + void _runCommandButtonClicked(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs&); + void _filterTextChanged(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args); + + void _updateFilteredCommands(); + void _treeItemInvokedHandler(const Windows::Foundation::IInspectable& sender, const Microsoft::UI::Xaml::Controls::TreeViewItemInvokedEventArgs& e); + void _treeItemKeyUpHandler(const IInspectable& sender, const Windows::UI::Xaml::Input::KeyRoutedEventArgs& e); + void _runCommand(const Microsoft::Terminal::Settings::Model::Command& command); + }; + + struct FilteredTask : FilteredTaskT + { + FilteredTask() = default; + + FilteredTask(const winrt::Microsoft::Terminal::Settings::Model::Command& command) + { + _filteredCommand = winrt::make_self(winrt::make(command, winrt::hstring{})); + _command = command; + + // The Children() method must always return a non-null vector + _children = winrt::single_threaded_observable_vector(); + if (_command.HasNestedCommands()) + { + for (const auto& [_, child] : _command.NestedCommands()) + { + auto vm{ winrt::make(child) }; + _children.Append(vm); + } + } + } + + void UpdateFilter(const winrt::hstring& filter) + { + _filteredCommand->UpdateFilter(filter); + for (const auto& c : _children) + { + auto impl = winrt::get_self(c); + impl->UpdateFilter(filter); + } + + PropertyChanged.raise(*this, Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"Visibility" }); + } + + winrt::hstring Input() + { + if (const auto& actionItem{ _filteredCommand->Item().try_as() }) + { + if (const auto& command{ actionItem.Command() }) + { + if (const auto& sendInput{ command.ActionAndArgs().Args().try_as() }) + { + return winrt::hstring{ til::visualize_nonspace_control_codes(sendInput.Input().c_str()) }; + } + } + } + return winrt::hstring{}; + }; + + winrt::Windows::Foundation::Collections::IObservableVector Children() { return _children; } + bool HasChildren() { return _children.Size() > 0; } + winrt::Microsoft::Terminal::Settings::Model::Command Command() { return _command; } + winrt::TerminalApp::FilteredCommand FilteredCommand() { return *_filteredCommand; } + + int32_t Row() { return HasChildren() ? 2 : 1; } // See the BODGY comment in the .XAML for explanation + + // Used to control if this item is visible in the TreeView. Turns out, + // TreeView is in fact sane enough to remove items entirely if they're + // Collapsed. + winrt::Windows::UI::Xaml::Visibility Visibility() + { + // Is there no filter, or do we match it? + if (_filteredCommand->Filter().empty() || _filteredCommand->Weight() > 0) + { + return winrt::Windows::UI::Xaml::Visibility::Visible; + } + // If we don't match, maybe one of our children does + auto totalWeight = _filteredCommand->Weight(); + for (const auto& c : _children) + { + auto impl = winrt::get_self(c); + totalWeight += impl->_filteredCommand->Weight(); + } + + return totalWeight > 0 ? winrt::Windows::UI::Xaml::Visibility::Visible : winrt::Windows::UI::Xaml::Visibility::Collapsed; + }; + + til::property_changed_event PropertyChanged; + + private: + winrt::Microsoft::Terminal::Settings::Model::Command _command{ nullptr }; + winrt::com_ptr _filteredCommand{ nullptr }; + winrt::Windows::Foundation::Collections::IObservableVector _children{ nullptr }; + }; +} + +namespace winrt::TerminalApp::factory_implementation +{ + BASIC_FACTORY(SnippetsPaneContent); +} diff --git a/src/cascadia/TerminalApp/SnippetsPaneContent.xaml b/src/cascadia/TerminalApp/SnippetsPaneContent.xaml new file mode 100644 index 00000000000..a887b72b757 --- /dev/null +++ b/src/cascadia/TerminalApp/SnippetsPaneContent.xaml @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #282828 + #90ef90 + #8888 + + + #F9F9F9 + #257f01 + #88222222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj index 238fecf9afc..8549c32cd40 100644 --- a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj +++ b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj @@ -71,6 +71,9 @@ Designer + + Designer + @@ -161,6 +164,9 @@ TerminalPaneContent.idl + + SnippetsPaneContent.xaml + TerminalPaneContent.idl @@ -274,6 +280,9 @@ TerminalPaneContent.idl + + SnippetsPaneContent.xaml + TerminalPaneContent.idl @@ -352,7 +361,10 @@ - + + TaskPaneContent.xaml + Code + diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index aa0bf06cf23..0e3dd5256bc 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -16,6 +16,7 @@ #include "DebugTapConnection.h" #include "SettingsPaneContent.h" #include "ScratchpadContent.h" +#include "SnippetsPaneContent.h" #include "TabRowControl.h" #include "TerminalPage.g.cpp" @@ -451,10 +452,10 @@ namespace winrt::TerminalApp::implementation // - command - command to dispatch // Return Value: // - - void TerminalPage::_OnDispatchCommandRequested(const IInspectable& /*sender*/, const Microsoft::Terminal::Settings::Model::Command& command) + void TerminalPage::_OnDispatchCommandRequested(const IInspectable& sender, const Microsoft::Terminal::Settings::Model::Command& command) { const auto& actionAndArgs = command.ActionAndArgs(); - _actionDispatch->DoAction(actionAndArgs); + _actionDispatch->DoAction(sender, actionAndArgs); } // Method Description: @@ -620,9 +621,12 @@ namespace winrt::TerminalApp::implementation // GH#6586: now that we're done processing all startup commands, // focus the active control. This will work as expected for both // commandline invocations and for `wt` action invocations. - if (const auto control = _GetActiveControl()) + if (const auto& terminalTab{ _GetFocusedTabImpl() }) { - control.Focus(FocusState::Programmatic); + if (const auto& content{ terminalTab->GetActiveContent() }) + { + content.Focus(FocusState::Programmatic); + } } } if (initial) @@ -2466,16 +2470,16 @@ namespace winrt::TerminalApp::implementation } _UnZoomIfNeeded(); - auto [original, _] = activeTab->SplitPane(*realSplitType, splitSize, newPane); + auto [original, newGuy] = activeTab->SplitPane(*realSplitType, splitSize, newPane); // After GH#6586, the control will no longer focus itself // automatically when it's finished being laid out. Manually focus // the control here instead. if (_startupState == StartupState::Initialized) { - if (const auto control = _GetActiveControl()) + if (const auto& content{ newGuy->GetContent() }) { - control.Focus(FocusState::Programmatic); + content.Focus(FocusState::Programmatic); } } } @@ -3270,6 +3274,8 @@ namespace winrt::TerminalApp::implementation return resultPane; } + // NOTE: callers of _MakePane should be able to accept nullptr as a return + // value gracefully. std::shared_ptr TerminalPage::_MakePane(const INewContentArgs& contentArgs, const winrt::TerminalApp::TabBase& sourceTab, TerminalConnection::ITerminalConnection existingConnection) @@ -3300,6 +3306,36 @@ namespace winrt::TerminalApp::implementation { content = _makeSettingsContent(); } + else if (paneType == L"snippets") + { + // Prevent the user from opening a bunch of snippets panes. + // + // Look at the focused tab, and if it already has one, then just focus it. + const bool found = _GetFocusedTab().try_as()->GetRootPane()->WalkTree([](const auto& p) -> bool { + if (const auto& snippets{ p->GetContent().try_as() }) + { + snippets->Focus(FocusState::Programmatic); + return true; + } + return false; + }); + // Bail out if we already found one. + if (found) + { + return nullptr; + } + + const auto& tasksContent{ winrt::make_self() }; + tasksContent->UpdateSettings(_settings); + tasksContent->GetRoot().KeyDown({ this, &TerminalPage::_KeyDownHandler }); + tasksContent->DispatchCommandRequested({ this, &TerminalPage::_OnDispatchCommandRequested }); + if (const auto& termControl{ _GetActiveControl() }) + { + tasksContent->SetLastActiveControl(termControl); + } + + content = *tasksContent; + } assert(content); diff --git a/src/cascadia/TerminalApp/TerminalPaneContent.idl b/src/cascadia/TerminalApp/TerminalPaneContent.idl index 0e4738fff42..255ddef547b 100644 --- a/src/cascadia/TerminalApp/TerminalPaneContent.idl +++ b/src/cascadia/TerminalApp/TerminalPaneContent.idl @@ -3,6 +3,7 @@ import "IPaneContent.idl"; import "TerminalSettingsCache.idl"; +import "FilteredCommand.idl"; namespace TerminalApp { @@ -16,4 +17,22 @@ namespace TerminalApp event Windows.Foundation.TypedEventHandler RestartTerminalRequested; } + + [default_interface] runtimeclass FilteredTask : Windows.UI.Xaml.Data.INotifyPropertyChanged + { + String Input{ get; }; + Windows.Foundation.Collections.IObservableVector Children { get; }; + Boolean HasChildren { get; }; + Int32 Row { get; }; + Windows.UI.Xaml.Visibility Visibility { get; }; + TerminalApp.FilteredCommand FilteredCommand{ get; }; + } + + [default_interface] runtimeclass SnippetsPaneContent : Windows.UI.Xaml.Controls.UserControl, IPaneContent, Windows.UI.Xaml.Data.INotifyPropertyChanged + { + SnippetsPaneContent(); + void SetLastActiveControl(Microsoft.Terminal.Control.TermControl control); + Boolean HasSnippets { get; }; + event Windows.Foundation.TypedEventHandler DispatchCommandRequested; + } } diff --git a/src/cascadia/TerminalApp/TerminalTab.cpp b/src/cascadia/TerminalApp/TerminalTab.cpp index 72995e29bac..961df655dd8 100644 --- a/src/cascadia/TerminalApp/TerminalTab.cpp +++ b/src/cascadia/TerminalApp/TerminalTab.cpp @@ -525,7 +525,7 @@ namespace winrt::TerminalApp::implementation // - pane: The new pane to add to the tree of panes; note that this pane // could itself be a parent pane/the root node of a tree of panes // Return Value: - // - + // - a pair of (the Pane that now holds the original content, the new Pane in the tree) std::pair, std::shared_ptr> TerminalTab::SplitPane(SplitDirection splitType, const float splitSize, std::shared_ptr pane) @@ -1223,6 +1223,20 @@ namespace winrt::TerminalApp::implementation // Raise our own ActivePaneChanged event. ActivePaneChanged.raise(*this, nullptr); + + // If the new active pane is a terminal, tell other interested panes + // what the new active pane is. + const auto content{ pane->GetContent() }; + if (const auto termContent{ content.try_as() }) + { + const auto& termControl{ termContent.GetTermControl() }; + _rootPane->WalkTree([termControl](const auto& p) { + if (const auto& taskPane{ p->GetContent().try_as() }) + { + taskPane.SetLastActiveControl(termControl); + } + }); + } } // Method Description: diff --git a/src/cascadia/TerminalSettingsModel/Resources/en-US/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/en-US/Resources.resw index b65b7eabcd4..f4b39abc297 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/en-US/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/en-US/Resources.resw @@ -126,6 +126,10 @@ Split pane + + Open snippets pane + This will open a pane with a list of the users's saved commands ("snippets") in it + Terminal (Portable) This display name is used when the Terminal application is running in a "portable" mode, where settings are not stored in a shared location. diff --git a/src/cascadia/TerminalSettingsModel/defaults.json b/src/cascadia/TerminalSettingsModel/defaults.json index 1a3e7c6c111..f6713e265b0 100644 --- a/src/cascadia/TerminalSettingsModel/defaults.json +++ b/src/cascadia/TerminalSettingsModel/defaults.json @@ -446,6 +446,7 @@ { "command": "quit", "id": "Terminal.Quit" }, { "command": "restoreLastClosed", "id": "Terminal.RestoreLastClosed" }, { "command": "openAbout", "id": "Terminal.OpenAboutDialog" }, + { "command": "experimental.openTasks", "id": "Terminal.OpenTasks" }, // Tab Management // "command": "closeTab" is unbound by default. @@ -528,6 +529,7 @@ { "command": { "action": "movePane", "index": 8 }, "id": "Terminal.MovePaneToTab8" }, { "command": { "action": "movePane", "window": "new" }, "id": "Terminal.MovePaneToNewWindow" }, { "command": "restartConnection", "id": "Terminal.RestartConnection" }, + { "command": { "action": "splitPane", "type": "snippets" }, "id": "Terminal.OpenSnippetsPane", "name": { "key": "SnippetsPaneCommandName" } }, // Clipboard Integration { "command": { "action": "copy", "singleLine": false }, "id": "Terminal.CopyToClipboard" }, diff --git a/src/cascadia/inc/cppwinrt_utils.h b/src/cascadia/inc/cppwinrt_utils.h index 17c720614b1..fa1575d32ae 100644 --- a/src/cascadia/inc/cppwinrt_utils.h +++ b/src/cascadia/inc/cppwinrt_utils.h @@ -133,7 +133,7 @@ public: \ _##name = value; \ } \ \ -private: \ +protected: \ type _##name{ __VA_ARGS__ }; // Use this macro to quickly implement both the getter and setter for an @@ -158,7 +158,7 @@ public: } \ }; \ \ -private: \ +protected: \ type _##name{ __VA_ARGS__ }; \ void _set##name(const type& value) \ { \ From bc20225b089815db77e5c5f6a4de62881eea30aa Mon Sep 17 00:00:00 2001 From: "Dustin L. Howett" Date: Mon, 8 Jul 2024 13:37:50 -0700 Subject: [PATCH 2/7] onebranch: allow publish/package to run in :latest container (#17514) We have to run in an older OneBranch Windows container image due to compiler bugs. This change prevents us from having to wait for the container image to download for build legs that _aren't_ using the compiler. --- .../templates-v2/pipeline-onebranch-full-release-build.yml | 5 +++++ .../pipelines/templates-v2/variables-onebranch-config.yml | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/build/pipelines/templates-v2/pipeline-onebranch-full-release-build.yml b/build/pipelines/templates-v2/pipeline-onebranch-full-release-build.yml index 41a2dc0002a..be5cbaca787 100644 --- a/build/pipelines/templates-v2/pipeline-onebranch-full-release-build.yml +++ b/build/pipelines/templates-v2/pipeline-onebranch-full-release-build.yml @@ -106,6 +106,11 @@ extends: - stage: Build displayName: Build dependsOn: [] + variables: + # This was set by the parent build, but we need to override it to select a specific compiler version + - template: ./build/pipelines/templates-v2/variables-onebranch-config.yml@self + parameters: + containerVersion: 1.0.02566.28 jobs: - template: ./build/pipelines/templates-v2/job-build-project.yml@self parameters: diff --git a/build/pipelines/templates-v2/variables-onebranch-config.yml b/build/pipelines/templates-v2/variables-onebranch-config.yml index 7639033c038..d187e701e32 100644 --- a/build/pipelines/templates-v2/variables-onebranch-config.yml +++ b/build/pipelines/templates-v2/variables-onebranch-config.yml @@ -1,2 +1,7 @@ +parameters: + - name: containerVersion + type: string + default: latest + variables: - WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2022/vse2022:1.0.02566.28' + WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2022/vse2022:${{ parameters.containerVersion }}' From 5bbd905ded4b49d06f178a3b9c70cba06955d9c7 Mon Sep 17 00:00:00 2001 From: Leonard Hecker Date: Tue, 9 Jul 2024 00:26:16 +0200 Subject: [PATCH 3/7] Fix qps-ploc generation for store translations (#17526) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Modified `Generate-PseudoLocalizations.ps1` to find the .xml files. (As opposed to .resw for the other translations.) * Added support for the new format by adding new XPath expressions, and stripping comments/attributes as needed. * Fixed `PreserveWhitespace` during XML loading. * Fixed compliance with PowerShell's strict mode. ## Validation Steps Performed Ran it locally and compared the results. ✅ --- .../scripts/Generate-PseudoLocalizations.ps1 | 4 +- tools/ConvertTo-PseudoLocalization.ps1 | 98 +++++++++++++------ 2 files changed, 70 insertions(+), 32 deletions(-) diff --git a/build/scripts/Generate-PseudoLocalizations.ps1 b/build/scripts/Generate-PseudoLocalizations.ps1 index 8e6b5b51ef9..7f7ffab396e 100644 --- a/build/scripts/Generate-PseudoLocalizations.ps1 +++ b/build/scripts/Generate-PseudoLocalizations.ps1 @@ -1,5 +1,5 @@ -Get-ChildItem -Recurse -Filter *.resw - | Where-Object { $_.Directory.Name.StartsWith("qps-ploc") } +Get-ChildItem -Recurse -Directory -Filter qps-ploc* + | Get-ChildItem -Include *.resw,*.xml | ForEach-Object { $source = Join-Path $_.Directory "../en-US/$($_.Name)" $target = $_ diff --git a/tools/ConvertTo-PseudoLocalization.ps1 b/tools/ConvertTo-PseudoLocalization.ps1 index 93e292a6a86..4eb810174dc 100644 --- a/tools/ConvertTo-PseudoLocalization.ps1 +++ b/tools/ConvertTo-PseudoLocalization.ps1 @@ -1,5 +1,5 @@ param( - [Parameter(Mandatory=$True)] + [Parameter(Mandatory = $True)] [string]$Path ) @@ -55,20 +55,25 @@ $mapping['Y'[0]] = '¥ÝŶΎΥΫỲЎ' $mapping['z'[0]] = 'źżž' $mapping['Z'[0]] = 'ŹŻΖŽ' -[xml]$content = Get-Content $Path +$content = [System.Xml.XmlDocument]::new() +$content.PreserveWhitespace = $true +$content.Load($Path) -foreach ($entry in $content.root.data) { - $value = $entry.value - $comment = $entry.comment ?? '' - $placeholders = @{} +function GetPseudoLocalization([string]$key, [string]$value, [string]$comment) { + $locked = $null + if ($comment -match '.*\{Locked=?([^}]*)\}.*') { + $locked = $Matches[1] + } - if ($comment.StartsWith('{Locked')) { - # Skip {Locked} and {Locked=qps-ploc} entries - if ($comment -match '\{Locked(\}|=[^}]*qps-ploc).*') { - continue - } + # Skip {Locked} and {Locked=qps-ploc} entries + if ($locked -and (($locked -eq '') -or $locked.Contains('qps-ploc'))) { + continue + } + + $placeholders = @{} - $lockedList = ($comment -replace '\{Locked=(.*?)\}.*','$1') -split ',' + if ($locked) { + $lockedList = $locked -split ',' $placeholderChar = 0xE000 # Replaced all locked words with placeholders from the Unicode Private Use Area @@ -86,34 +91,67 @@ foreach ($entry in $content.root.data) { } } - # We can't rely on $entry.name.GetHashCode() to be consistent across different runs, + # We can't rely on $key.GetHashCode() to be consistent across different runs, # because in the future PowerShell may enable UseRandomizedStringHashAlgorithm. - $hash = [System.Text.Encoding]::UTF8.GetBytes($entry.name) + $hash = [System.Text.Encoding]::UTF8.GetBytes($key) $hash = [System.Security.Cryptography.SHA1]::Create().ComputeHash($hash) $hash = [System.BitConverter]::ToInt32($hash) - - # Replace all characters with pseudo-localized characters $rng = [System.Random]::new($hash) - $newValue = '' - foreach ($char in $value.ToCharArray()) { - if ($m = $mapping[$char]) { - $newValue += $m[$rng.Next(0, $mapping[$char].Length)] - } else { - $newValue += $char + + $lines = $value.Split("`n") + $lines = $lines | ForEach-Object { + # Replace all characters with pseudo-localized characters + $newValue = '' + foreach ($char in $_.ToCharArray()) { + if ($m = $mapping[$char]) { + $newValue += $m[$rng.Next(0, $mapping[$char].Length)] + } + else { + $newValue += $char + } } + + # Replace all placeholders with their original values + foreach ($kv in $placeholders.GetEnumerator()) { + $newValue = $newValue.Replace($kv.Key, $kv.Value) + } + + # Add 40% padding to the end of the string + $paddingLength = [System.Math]::Round(0.4 * $_.Length) + $padding = ' !!!' * ($paddingLength / 4 + 1) + $newValue + $padding.Substring(0, $paddingLength) + } + return $lines -join "`n" +} + +if ($path.EndsWith(".resw")) { + foreach ($entry in $content.SelectNodes('/root/data')) { + $comment = $entry.SelectSingleNode('comment')?.'#text' ?? '' + $entry.value = GetPseudoLocalization $entry.name $entry.value $comment } +} +elseif ($path.EndsWith(".xml")) { + foreach ($parent in $content.DocumentElement.SelectNodes('//*[@_locID]')) { + $locID = $parent.GetAttribute('_locID') + $comment = $parent.SelectSingleNode('comment()[contains(., "_locComment_text")]')?.'#text' ?? '' - # Replace all placeholders with their original values - foreach ($kv in $placeholders.GetEnumerator()) { - $newValue = $newValue.Replace($kv.Key, $kv.Value) + foreach ($entry in $parent.SelectNodes('text()')) { + $value = $entry.Value + if ($value.Trim().Length -ne 0) { + $entry.Value = GetPseudoLocalization $locID $value $comment + } + } } - # Add 40% padding to the end of the string - $paddingLength = [System.Math]::Round(0.4 * $newValue.Length) - $padding = ' !!!' * ($paddingLength / 4 + 1) - $newValue += $padding.Substring(0, $paddingLength) + # Remove all _locComment_text comments + foreach ($entry in $content.DocumentElement.SelectNodes('//comment()[contains(., "_locComment_text")]')) { + $null = $entry.ParentNode.RemoveChild($entry) + } - $entry.value = $newValue + # Remove all _locID attributes + foreach ($entry in $content.DocumentElement.SelectNodes('//*[@_locID]')) { + $entry.RemoveAttribute('_locID') + } } return $content From a2d71214894fadd705caa1083e82befdf138d117 Mon Sep 17 00:00:00 2001 From: Leonard Hecker Date: Tue, 9 Jul 2024 01:33:54 +0200 Subject: [PATCH 4/7] Fix more PDP ploc related issues (#17530) This fixes some more issues not properly covered by #17526: * Fixed `_locComment_text` comments being effectively ignored. * Fixed line splitting of comments (CRLF vs LF). * Fixed BOM suppression. * Fixed support for having multiple `{Locked=...}` comments. --- ...-ContextMenuResourcesToCascadiaPackage.ps1 | 1 + .../scripts/Generate-PseudoLocalizations.ps1 | 1 + tools/ConvertTo-PseudoLocalization.ps1 | 31 +++++++++---------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/build/scripts/Copy-ContextMenuResourcesToCascadiaPackage.ps1 b/build/scripts/Copy-ContextMenuResourcesToCascadiaPackage.ps1 index bbccdaf57d1..33af3387b42 100644 --- a/build/scripts/Copy-ContextMenuResourcesToCascadiaPackage.ps1 +++ b/build/scripts/Copy-ContextMenuResourcesToCascadiaPackage.ps1 @@ -41,6 +41,7 @@ ForEach ($pair in $Languages.GetEnumerator()) { $writerSettings = [System.Xml.XmlWriterSettings]::new() $writerSettings.NewLineChars = "`r`n" $writerSettings.Indent = $true + $writerSettings.Encoding = [System.Text.UTF8Encoding]::new($false) # suppress the BOM $writer = [System.Xml.XmlWriter]::Create($ResPath, $writerSettings) $XmlDocument.Save($writer) $writer.Flush() diff --git a/build/scripts/Generate-PseudoLocalizations.ps1 b/build/scripts/Generate-PseudoLocalizations.ps1 index 7f7ffab396e..e6fe713bef6 100644 --- a/build/scripts/Generate-PseudoLocalizations.ps1 +++ b/build/scripts/Generate-PseudoLocalizations.ps1 @@ -9,6 +9,7 @@ Get-ChildItem -Recurse -Directory -Filter qps-ploc* $writerSettings = [System.Xml.XmlWriterSettings]::new() $writerSettings.NewLineChars = "`r`n" $writerSettings.Indent = $true + $writerSettings.Encoding = [System.Text.UTF8Encoding]::new($false) # suppress the BOM $writer = [System.Xml.XmlWriter]::Create($target, $writerSettings) $ploc.Save($writer) $writer.Flush() diff --git a/tools/ConvertTo-PseudoLocalization.ps1 b/tools/ConvertTo-PseudoLocalization.ps1 index 4eb810174dc..c06b0bbd799 100644 --- a/tools/ConvertTo-PseudoLocalization.ps1 +++ b/tools/ConvertTo-PseudoLocalization.ps1 @@ -60,23 +60,21 @@ $content.PreserveWhitespace = $true $content.Load($Path) function GetPseudoLocalization([string]$key, [string]$value, [string]$comment) { - $locked = $null - if ($comment -match '.*\{Locked=?([^}]*)\}.*') { - $locked = $Matches[1] - } + $placeholders = @{} + $placeholderChar = 0xE000 - # Skip {Locked} and {Locked=qps-ploc} entries - if ($locked -and (($locked -eq '') -or $locked.Contains('qps-ploc'))) { - continue - } + # Iterate through all {Locked=...} comments and replace locked + # words with placeholders from the Unicode Private Use Area. + foreach ($m in [regex]::Matches($comment, '\{Locked=?([^}]*)\}')) { + $locked = $m.Groups[1].Value - $placeholders = @{} + # Skip {Locked} and {Locked=qps-ploc} entries + if (($locked -eq '') -or $locked.Contains('qps-ploc')) { + return $value + } - if ($locked) { $lockedList = $locked -split ',' - $placeholderChar = 0xE000 - # Replaced all locked words with placeholders from the Unicode Private Use Area foreach ($locked in $lockedList) { if ($locked.StartsWith('"') -and $locked.EndsWith('"')) { $locked = $locked.Substring(1, $locked.Length - 2) @@ -98,7 +96,7 @@ function GetPseudoLocalization([string]$key, [string]$value, [string]$comment) { $hash = [System.BitConverter]::ToInt32($hash) $rng = [System.Random]::new($hash) - $lines = $value.Split("`n") + $lines = $value -split '\r?\n' $lines = $lines | ForEach-Object { # Replace all characters with pseudo-localized characters $newValue = '' @@ -117,11 +115,12 @@ function GetPseudoLocalization([string]$key, [string]$value, [string]$comment) { } # Add 40% padding to the end of the string - $paddingLength = [System.Math]::Round(0.4 * $_.Length) + $paddingLength = [System.Math]::Round(0.4 * $newValue.Length) $padding = ' !!!' * ($paddingLength / 4 + 1) $newValue + $padding.Substring(0, $paddingLength) } - return $lines -join "`n" + $lines = $lines -join "`r`n" + return $lines } if ($path.EndsWith(".resw")) { @@ -133,7 +132,7 @@ if ($path.EndsWith(".resw")) { elseif ($path.EndsWith(".xml")) { foreach ($parent in $content.DocumentElement.SelectNodes('//*[@_locID]')) { $locID = $parent.GetAttribute('_locID') - $comment = $parent.SelectSingleNode('comment()[contains(., "_locComment_text")]')?.'#text' ?? '' + $comment = $parent.SelectSingleNode('comment()[contains(., "_locComment_text")]')?.Value ?? '' foreach ($entry in $parent.SelectNodes('text()')) { $value = $entry.Value From 53841f7dd531fc40e6331c15501367af68cf435d Mon Sep 17 00:00:00 2001 From: Windows Console Service Bot <14666831+consvc@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:45:04 -0500 Subject: [PATCH 5/7] Localization Updates - main - 07/08/2024 20:47:05 (#17511) --- .../Preview/PDPs/de-DE/PDP.xml | 2 +- .../Preview/PDPs/it-IT/PDP.xml | 4 +- .../Preview/PDPs/ja-JP/PDP.xml | 2 +- .../Preview/PDPs/ko-KR/PDP.xml | 4 +- .../Preview/PDPs/pt-BR/PDP.xml | 4 +- .../Preview/PDPs/qps-ploc/PDP.xml | 42 ++++++------ .../Preview/PDPs/qps-ploca/PDP.xml | 42 ++++++------ .../Preview/PDPs/qps-plocm/PDP.xml | 42 ++++++------ .../Preview/PDPs/ru-RU/PDP.xml | 2 +- .../Preview/PDPs/zh-TW/PDP.xml | 2 +- .../StoreSubmission/Stable/PDPs/de-DE/PDP.xml | 4 +- .../StoreSubmission/Stable/PDPs/fr-FR/PDP.xml | 4 +- .../StoreSubmission/Stable/PDPs/it-IT/PDP.xml | 4 +- .../StoreSubmission/Stable/PDPs/ja-JP/PDP.xml | 2 +- .../StoreSubmission/Stable/PDPs/ko-KR/PDP.xml | 4 +- .../StoreSubmission/Stable/PDPs/pt-BR/PDP.xml | 4 +- .../Stable/PDPs/qps-ploc/PDP.xml | 42 ++++++------ .../Stable/PDPs/qps-ploca/PDP.xml | 42 ++++++------ .../Stable/PDPs/qps-plocm/PDP.xml | 42 ++++++------ .../StoreSubmission/Stable/PDPs/ru-RU/PDP.xml | 2 +- .../Package/Resources/qps-ploc/Resources.resw | 4 +- .../Resources/qps-ploca/Resources.resw | 4 +- .../Resources/qps-plocm/Resources.resw | 4 +- .../Resources/qps-ploc/Resources.resw | 4 +- .../Resources/qps-ploca/Resources.resw | 4 +- .../Resources/qps-plocm/Resources.resw | 4 +- .../Resources/af-ZA/Resources.resw | 2 +- .../Resources/am-ET/Resources.resw | 2 +- .../Resources/ar-SA/Resources.resw | 2 +- .../Resources/as-IN/Resources.resw | 2 +- .../Resources/az-Latn-AZ/Resources.resw | 2 +- .../Resources/bg-BG/Resources.resw | 2 +- .../Resources/bn-IN/Resources.resw | 2 +- .../Resources/bs-Latn-BA/Resources.resw | 2 +- .../Resources/ca-ES/Resources.resw | 2 +- .../Resources/ca-Es-VALENCIA/Resources.resw | 2 +- .../Resources/cs-CZ/Resources.resw | 2 +- .../Resources/cy-GB/Resources.resw | 2 +- .../Resources/da-DK/Resources.resw | 2 +- .../Resources/de-DE/Resources.resw | 2 +- .../Resources/el-GR/Resources.resw | 2 +- .../Resources/en-GB/Resources.resw | 2 +- .../Resources/en-US/Resources.resw | 2 +- .../Resources/es-ES/Resources.resw | 2 +- .../Resources/es-MX/Resources.resw | 2 +- .../Resources/et-EE/Resources.resw | 2 +- .../Resources/eu-ES/Resources.resw | 2 +- .../Resources/fa-IR/Resources.resw | 2 +- .../Resources/fi-FI/Resources.resw | 2 +- .../Resources/fil-PH/Resources.resw | 2 +- .../Resources/fr-CA/Resources.resw | 2 +- .../Resources/fr-FR/Resources.resw | 2 +- .../Resources/ga-IE/Resources.resw | 2 +- .../Resources/gd-gb/Resources.resw | 2 +- .../Resources/gl-ES/Resources.resw | 2 +- .../Resources/gu-IN/Resources.resw | 2 +- .../Resources/he-IL/Resources.resw | 2 +- .../Resources/hi-IN/Resources.resw | 2 +- .../Resources/hr-HR/Resources.resw | 2 +- .../Resources/hu-HU/Resources.resw | 2 +- .../Resources/hy-AM/Resources.resw | 2 +- .../Resources/id-ID/Resources.resw | 2 +- .../Resources/is-IS/Resources.resw | 2 +- .../Resources/it-IT/Resources.resw | 2 +- .../Resources/ja-JP/Resources.resw | 2 +- .../Resources/ka-GE/Resources.resw | 2 +- .../Resources/kk-KZ/Resources.resw | 2 +- .../Resources/km-KH/Resources.resw | 2 +- .../Resources/kn-IN/Resources.resw | 2 +- .../Resources/ko-KR/Resources.resw | 2 +- .../Resources/kok-IN/Resources.resw | 2 +- .../Resources/lb-LU/Resources.resw | 2 +- .../Resources/lo-LA/Resources.resw | 2 +- .../Resources/lt-LT/Resources.resw | 2 +- .../Resources/lv-LV/Resources.resw | 2 +- .../Resources/mi-NZ/Resources.resw | 2 +- .../Resources/mk-MK/Resources.resw | 2 +- .../Resources/ml-IN/Resources.resw | 2 +- .../Resources/mr-IN/Resources.resw | 2 +- .../Resources/ms-MY/Resources.resw | 2 +- .../Resources/mt-MT/Resources.resw | 2 +- .../Resources/nb-NO/Resources.resw | 2 +- .../Resources/ne-NP/Resources.resw | 2 +- .../Resources/nl-NL/Resources.resw | 2 +- .../Resources/nn-NO/Resources.resw | 2 +- .../Resources/or-IN/Resources.resw | 2 +- .../Resources/pa-IN/Resources.resw | 2 +- .../Resources/pl-PL/Resources.resw | 2 +- .../Resources/pt-BR/Resources.resw | 2 +- .../Resources/pt-PT/Resources.resw | 2 +- .../Resources/qps-ploc/Resources.resw | 2 +- .../Resources/qps-ploca/Resources.resw | 2 +- .../Resources/qps-plocm/Resources.resw | 2 +- .../Resources/quz-PE/Resources.resw | 2 +- .../Resources/ro-RO/Resources.resw | 2 +- .../Resources/ru-RU/Resources.resw | 2 +- .../Resources/sk-SK/Resources.resw | 2 +- .../Resources/sl-SI/Resources.resw | 2 +- .../Resources/sq-AL/Resources.resw | 2 +- .../Resources/sr-Cyrl-BA/Resources.resw | 2 +- .../Resources/sr-Cyrl-RS/Resources.resw | 2 +- .../Resources/sr-Latn-RS/Resources.resw | 2 +- .../Resources/sv-SE/Resources.resw | 2 +- .../Resources/ta-IN/Resources.resw | 2 +- .../Resources/te-IN/Resources.resw | 2 +- .../Resources/th-TH/Resources.resw | 2 +- .../Resources/tr-TR/Resources.resw | 2 +- .../Resources/tt-RU/Resources.resw | 2 +- .../Resources/ug-CN/Resources.resw | 2 +- .../Resources/uk-UA/Resources.resw | 2 +- .../Resources/ur-PK/Resources.resw | 2 +- .../Resources/uz-Latn-UZ/Resources.resw | 2 +- .../Resources/vi-VN/Resources.resw | 2 +- .../Resources/zh-CN/Resources.resw | 2 +- .../Resources/zh-TW/Resources.resw | 2 +- .../Resources/qps-ploc/Resources.resw | 4 +- .../Resources/qps-ploca/Resources.resw | 4 +- .../Resources/qps-plocm/Resources.resw | 4 +- .../Resources/de-DE/Resources.resw | 23 +++++++ .../Resources/es-ES/Resources.resw | 23 +++++++ .../Resources/fr-FR/Resources.resw | 23 +++++++ .../Resources/it-IT/Resources.resw | 23 +++++++ .../Resources/ja-JP/Resources.resw | 37 +++++++++++ .../Resources/ko-KR/Resources.resw | 23 +++++++ .../Resources/pt-BR/Resources.resw | 23 +++++++ .../Resources/qps-ploc/ContextMenu.resw | 4 +- .../Resources/qps-ploc/Resources.resw | 43 +++++++++++- .../Resources/qps-ploca/ContextMenu.resw | 4 +- .../Resources/qps-ploca/Resources.resw | 43 +++++++++++- .../Resources/qps-plocm/ContextMenu.resw | 4 +- .../Resources/qps-plocm/Resources.resw | 43 +++++++++++- .../Resources/ru-RU/Resources.resw | 23 +++++++ .../Resources/zh-CN/Resources.resw | 19 ++++++ .../Resources/zh-TW/Resources.resw | 23 +++++++ .../Resources/qps-ploc/Resources.resw | 4 +- .../Resources/qps-ploca/Resources.resw | 4 +- .../Resources/qps-plocm/Resources.resw | 4 +- .../Resources/qps-ploc/Resources.resw | 8 +-- .../Resources/qps-ploca/Resources.resw | 8 +-- .../Resources/qps-plocm/Resources.resw | 8 +-- .../Resources/qps-ploc/Resources.resw | 18 ++--- .../Resources/qps-ploca/Resources.resw | 18 ++--- .../Resources/qps-plocm/Resources.resw | 18 ++--- .../Resources/de-DE/Resources.resw | 61 +++++++++-------- .../Resources/es-ES/Resources.resw | 57 ++++++++-------- .../Resources/fr-FR/Resources.resw | 57 ++++++++-------- .../Resources/it-IT/Resources.resw | 57 ++++++++-------- .../Resources/ja-JP/Resources.resw | 61 +++++++++-------- .../Resources/ko-KR/Resources.resw | 57 ++++++++-------- .../Resources/pt-BR/Resources.resw | 57 ++++++++-------- .../Resources/qps-ploc/Resources.resw | 65 ++++++++++--------- .../Resources/qps-ploca/Resources.resw | 65 ++++++++++--------- .../Resources/qps-plocm/Resources.resw | 65 ++++++++++--------- .../Resources/ru-RU/Resources.resw | 57 ++++++++-------- .../Resources/zh-CN/Resources.resw | 57 ++++++++-------- .../Resources/zh-TW/Resources.resw | 57 ++++++++-------- 156 files changed, 1082 insertions(+), 672 deletions(-) diff --git a/build/StoreSubmission/Preview/PDPs/de-DE/PDP.xml b/build/StoreSubmission/Preview/PDPs/de-DE/PDP.xml index d9579724b4e..48c1ae3b946 100644 --- a/build/StoreSubmission/Preview/PDPs/de-DE/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/de-DE/PDP.xml @@ -30,7 +30,7 @@ - Dies ist die Vorschauversion des Windows-Terminals, die die neuesten Funktionen enthält, sobald sie entwickelt werden. Das Windows-Terminal ist eine moderne, schnelle, effiziente, leistungsstarke und produktive Terminalanwendung für Benutzer von Befehlszeilentools und Shells wie Eingabeaufforderung, PowerShell und WSL. Die wichtigsten Funktionen des Windows-Terminals umfassen mehrere Registerkarten, Bereiche, Unicode- und UTF-8-Zeichenunterstützung, GPU-beschleunigtes Textrendering-Modul sowie benutzerdefinierte Designs, Formatvorlagen und Konfigurationen. + Dies ist die Vorschauversion des Windows-Terminals, die die neuesten Funktionen enthält, sobald sie entwickelt werden. Das Windows-Terminal ist eine moderne, schnelle, effiziente, leistungsstarke und produktive Terminalanwendung für Benutzer von Befehlszeilentools und Shells wie Eingabeaufforderung, PowerShell und WSL. Die wichtigsten Features umfassen mehrere Registerkarten, Bereiche, Unicode- und UTF-8-Zeichenunterstützung, GPU-beschleunigtes Textrenderingmodul sowie benutzerdefinierte Designs, Formatvorlagen und Konfigurationen. Dies ist ein Open Source-Projekt, und wir freuen uns über die Teilnahme der Community. Um teilzunehmen, besuchen Sie bitte die Website https://github.com/microsoft/terminal diff --git a/build/StoreSubmission/Preview/PDPs/it-IT/PDP.xml b/build/StoreSubmission/Preview/PDPs/it-IT/PDP.xml index e86a4cb419b..1ee088dd2a0 100644 --- a/build/StoreSubmission/Preview/PDPs/it-IT/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/it-IT/PDP.xml @@ -30,9 +30,9 @@ - Questa è una versione di anteprima del Terminale Windows, che contiene le funzionalità più recenti man mano che vengono sviluppate. Terminale Windows è un'applicazione terminale moderna, veloce, efficiente, utile e produttiva per gli utenti che utilizzano shell e strumenti da riga di comando come il prompt dei comandi, PowerShell e WSL. Le sue funzionalità principali includono più schede, riquadri, supporto dei caratteri Unicode e UTF-8, un motore di rendering del testo con accelerazione GPU, oltre a configurazioni, stili e temi personalizzati. + Questa è una versione di anteprima del Terminale Windows, che contiene le funzionalità più recenti man mano che vengono sviluppate. Terminale Windows è un'applicazione terminale moderna, veloce, efficiente, utile e produttiva per gli utenti che utilizzano shell e strumenti da riga di comando come il prompt dei comandi, PowerShell e WSL. Le funzionalità principali includono più schede, riquadri, supporto di caratteri Unicode e UTF-8, un motore di rendering del testo con accelerazione GPU e temi, stili e configurazioni personalizzati. -Si tratta di un progetto open source in cui la partecipazione della community è ben gradita. Per partecipare, visita la pagina https://github.com/microsoft/terminale +Si tratta di un progetto open source e la partecipazione della community è molto gradita. Per partecipare, visita la pagina https://github.com/microsoft/terminale diff --git a/build/StoreSubmission/Preview/PDPs/ja-JP/PDP.xml b/build/StoreSubmission/Preview/PDPs/ja-JP/PDP.xml index d86553f68ca..5045d6ac000 100644 --- a/build/StoreSubmission/Preview/PDPs/ja-JP/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/ja-JP/PDP.xml @@ -30,7 +30,7 @@ - これは Windows ターミナルのプレビュー ビルドで、開発中の最新の機能が含まれています。Windows ターミナルは、コマンド プロンプト、PowerShell、WSL などのコマンドライン ツールおよびシェルのユーザーのための、高速、効率的、強力な、生産性を向上させる最新のターミナル アプリケーションです。主な機能には、複数のタブやウィンドウ、Unicode および UTF-8 文字のサポート、GPU アクセラレータによるテキスト レンダリング エンジン、カスタム テーマ、スタイル、構成が含まれます。 + これは Windows ターミナルのプレビュー ビルドで、開発中の最新の機能が含まれています。Windows ターミナルは、コマンド プロンプト、PowerShell、WSL などのコマンドライン ツールおよびシェルのユーザーのための、高速、効率的、強力な、生産性を向上させる最新のターミナル アプリケーションです。主な機能には、複数のタブやウィンドウ、Unicode および UTF-8 文字のサポート、GPU アクセラレータによるテキスト レンダリング エンジン、カスタマイズできるテーマ、スタイル、構成が含まれます。 これはオープン ソース プロジェクトです。コミュニティへの参加をお待ちしております。参加する場合は、https://github.com/microsoft/terminal にアクセスしてください diff --git a/build/StoreSubmission/Preview/PDPs/ko-KR/PDP.xml b/build/StoreSubmission/Preview/PDPs/ko-KR/PDP.xml index 1c0a2936a73..6604e904d46 100644 --- a/build/StoreSubmission/Preview/PDPs/ko-KR/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/ko-KR/PDP.xml @@ -30,9 +30,9 @@ - 이것은 Windows 터미널에 대한 미리 보기 빌드이며 이 터미널에는 개발된 최신 기능들이 포함되어 있습니다. Windows 터미널은 명령 프롬프트, PowerShell 및 WSL과 같은 명령 줄 도구 및 셸 사용자를 위한 최신의 빠르고 효율적이며 강력한 생산성의 터미널 응용 프로그램입니다. 주요 기능으로는 여러 탭, 창, 유니코드 및 UTF-8 문자 지원, GPU 가속 텍스트 렌더링 엔진 및 사용자 지정 테마, 스타일 및 구성이 있습니다. + 이것은 Windows 터미널에 대한 미리보기 빌드이며 이 터미널에는 개발된 최신 기능들이 포함되어 있습니다. Windows 터미널은 명령 프롬프트, PowerShell 및 WSL과 같은 명령 줄 도구 및 셸 사용자를 위한 최신의 빠르고 효율적이며 강력한 생산성의 터미널 응용 프로그램입니다. 주요 기능으로는 여러 탭, 창, 유니 코드 및 UTF-8 문자 지원, GPU 가속 텍스트 렌더링 엔진 및 사용자 정의 테마, 스타일 및 구성이 있습니다. -이것은 오픈 소스 프로젝트이며 커뮤니티 참여를 환영합니다. 참여하려면 https://github.com/microsoft/terminal을 방문하세요. +이것은 오픈 소스 프로젝트이며 커뮤니티 참여를 환영합니다. 참여하려면 https://github.com/microsoft/terminal을 방문하십시오 diff --git a/build/StoreSubmission/Preview/PDPs/pt-BR/PDP.xml b/build/StoreSubmission/Preview/PDPs/pt-BR/PDP.xml index 0908192a75a..4e42f4dfa96 100644 --- a/build/StoreSubmission/Preview/PDPs/pt-BR/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/pt-BR/PDP.xml @@ -30,9 +30,9 @@ - Essa é a versão prévia do Windows Terminal, que possui os recursos mais recentes na forma como foram desenvolvidos. O Windows Terminal é um aplicativo de terminal moderno, rápido, eficiente, poderoso e produtivo para os usuários de e linha de comando, como prompt de comando, PowerShell e WSL. Seus principais recursos incluem várias guias, painéis, suporte a caracteres Unicode e UTF-8, um mecanismo de renderização de texto acelerado por GPU e temas, estilos e configurações personalizados. + Esta é a versão prévia do Terminal do Windows, que contém os recursos mais recentes à medida que são desenvolvidos. O Terminal do Windows é um aplicativo de terminal moderno, rápido, eficiente, poderoso e produtivo para usuários de ferramentas de linha de comando e shells como Prompt de Comando, PowerShell e WSL. Seus principais recursos incluem várias guias, painéis, suporte a caracteres Unicode e UTF-8, um mecanismo de renderização de texto acelerado por GPU e temas, estilos e configurações personalizados. -Este é um projeto de código aberto e agradecemos a participação da comunidade. Para participar, visite https://github.com/microsoft/terminal +Este é um projeto de código aberto e a participação da comunidade é bem-vinda. Para participar, visite https://github.com/microsoft/terminal diff --git a/build/StoreSubmission/Preview/PDPs/qps-ploc/PDP.xml b/build/StoreSubmission/Preview/PDPs/qps-ploc/PDP.xml index 13a1d0792a8..381718a324f 100644 --- a/build/StoreSubmission/Preview/PDPs/qps-ploc/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/qps-ploc/PDP.xml @@ -10,9 +10,9 @@ - Τéřmΐпåŀ !! + Τэŕмĩņªľ !! - Çоňѕбℓэ !! + Ċőñşøľě !! @@ -30,9 +30,9 @@ - Ţħîѕ їѕ ŧђė φґ℮νīέẅ ъцĭℓď ŏƒ ţнĕ Ẁĩйđòωś Ŧęŗмΐñάĺ, ωнîćн ĉóήтαϊήś τћë ĺªτêŝт ƒêāτΰřęŝ аš τђêу агé δένëłöρéđ. Τђέ Ẅĩńδöẃś Тёгmìηдℓ ϊś ă мøðэґń, ƒąšт, ℮ƒƒïĉϊèηţ, φǿŵєŕƒµľ, αņδ ρřбðμċťїνэ ťеŕmΐйдℓ āррľίςǻτĭõņ ƒõѓ μšęřѕ όƒ сōmмàňð-ĺίиē ţőøℓš ªⁿδ şĥêĺļš łікé Сòmmāńď Ряőmρτ, РôшέґŜђэľŀ, ǻлð ẂŜŁ. Їťš mдіи ƒ℮ªτųŗεѕ ϊиĉļџδė mųłţīρŀè ťавš, ρáпèѕ, Ùлįčσđė αňδ ЦŢ₣-8 ċħªѓáĉτ℮я ѕüррояţ, à ĠΡÙ ǻçсēŀěŕäťεď τзхť гэŋðзřїņġ ĕŋģϊŋе, ąпđ çµŝŧом τħĕмєś, ѕтýľеś, âηď čǿηƒΐģųřåτΐôйѕ. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! + Ţћïŝ įš тнĕ φřэνїëẁ ъцîļđ ǿƒ τħ℮ Шĭηðòẅş Ŧёřmΐиăļ, ώĥϊĉђ čŏηтãįηš тħ℮ ŀдτеŝт ƒèäťύŕзş άš ŧђĕў àřė ðёνεℓŏρёđ. Ŧне Ẅĩŋδōẅѕ Ţęгmίηāł ΐš ă моðεѓñ, ƒäŝŧ, эƒƒιĉϊєητ, φθẁėŗƒũľ, ãиď ряθðύčŧĩνз ŧèѓmíʼnǻł áррļïсąтīóň ƒőŗ üś℮ѓѕ òƒ čømмάńδ-ĺïиè τόõļѕ ăлð şђĕľŀѕ ľĩкě Ćοmмαπď Ρяŏmрτ, ΡòẁέгŠђęļľ, ǻηδ ЩŠ₤. Ìťŝ mąΐή ƒэаτцřéѕ іňçĺūδé мūłţΐφľê тдьŝ, ρàñεś, Ûńϊċбðê àⁿđ ЏΤ₣-8 ćћªřαςťέř ŝųррǿřţ, ą ĠРÚ дссêŀεŗąţєđ ŧė×τ řēήďéřίпğ êňĝĩňè, ăиð čύşтθm ťћемêѕ, śŧỳļěѕ, âπđ сøńƒìġųřатîőήѕ. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! -Ŧĥīś їŝ ăñ öрĕņ šоũŗċė рŕŏĵ℮¢т âйð ẃэ ẃèŀçοmē ςømмυηίтÿ рάřťíċīφãťîöп. Τö ρàřţĩçϊφатě φŀêάѕë νίşĩţ ћтťρş://ģîťĥΰь.ςŏм/mįčŕòşóƒŧ/ŧєřмϊñáł !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! +Ťĥìŝ ΐś åń óφёй ŝõùřçė ρřоĵзĉт ǻńδ ẃě ẅéŀčŏmę ĉõmmüⁿĭτу ρåгŧϊсїφатïοη. Ťŏ ράѓţιċίрªт℮ φļэăśę νΐŝîт ħτţφŝ://ģįτђцъ.сόm/мïςřоѕоƒт/τέřmϊʼnǻŀ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !! @@ -54,10 +54,10 @@ - Vēřŝĭőŋ __VERSION_NUMBER__ !!! !!! ! + Vėѓѕіöй __VERSION_NUMBER__ !!! !!! ! -Рł℮ªѕэ šėε σúя ĠīŧĦϋв řēŀ℮ăŝėŝ рαğè ƒóґ ǻðďîŧĭøņáļ ďėťãϊļš. !!! !!! !!! !!! !!! !!! - +Рļєάśé ѕέę όüґ ĢίŧĦŭв řęļзąѕєš рαġè ƒőŗ äđδĭτíθņâℓ đέтαιľś. !!! !!! !!! !!! !!! !!! + @@ -80,15 +80,15 @@ - - - + + + - Ţħê ⁿëẃ Ŵĭņďóŵš Τěŕмΐπáļ !!! !!! ! + Ŧћë иĕẁ Шįπδõωš Тёŗmĭлдŀ !!! !!! ! @@ -100,15 +100,15 @@ - Μΰĺτĭрļè ţªвѕ !!! + Μΰℓţіρļę ťăъś !!! - ₣цℓℓ Ūήïçоδê ŝΰφρоřŧ !!! !!! + ₣υłľ Űňìčόďέ şůррοяŧ !!! !!! - ĞΡÙ-ǻςċéŀёŕαŧεð ţęхτ ѓéпďëřīπğ !!! !!! !!! + ĞΡÙ-асçêľëřăţєđ ţέхŧ яéʼnδęŗίńğ !!! !!! !!! - ₣џļĺ ċυşτόміžãъϊłíŧŷ !!! !!! + ₣џℓł ćűşŧõmîźăвϊľįтγ !!! !!! - Ŝрĺîτ рáⁿēš !!! + Ŝφľīť ρªлёѕ !!! @@ -158,20 +158,20 @@ - Ķêÿьôãґď !! + Κёÿъόáѓď !! - €õрýяīģћт (ć) Μįčŕőśóƒτ Сőřρŏŗаŧīοп !!! !!! !!! ! + Ĉθрўґіġнт (с) Μìĉгōŝŏƒτ Čōяροґąтΐοй !!! !!! !!! ! - ĥŧţφś://ĝιţнύь.¢θм/mιçŕσśŏƒτ/тэґмïñăł !!! !!! !!! !! + ћťŧφş://ġїţħųъ.ćòm/mįćѓσşòƒţ/ŧέřмїʼnаŀ !!! !!! !!! !! - нţŧφş://ğĭтħŭъ.ςθm/mīċřőѕŏƒť/тęřmĩήäľ/îššμэŝ/ņěω !!! !!! !!! !!! !! + ђтťφş://ĝїťнûв.¢ǿm/мíčѓõŝόƒτ/ŧеґmіиάł/ΐѕѕύéѕ/ηëш !!! !!! !!! !!! !! - ћţťрş://ġό.mĭçřθşоƒτ.čσм/ƒωĺĭñķ/?ŁíŋκĬÐ=521839 !!! !!! !!! !!! ! + ĥţťφş://ģō.mîċґοşоƒт.ĉöм/ƒẃłīик/?₤ϊñķΪÐ=521839 !!! !!! !!! !!! ! diff --git a/build/StoreSubmission/Preview/PDPs/qps-ploca/PDP.xml b/build/StoreSubmission/Preview/PDPs/qps-ploca/PDP.xml index e612162751f..381718a324f 100644 --- a/build/StoreSubmission/Preview/PDPs/qps-ploca/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/qps-ploca/PDP.xml @@ -10,9 +10,9 @@ - Т℮řmĩήăľ !! + Τэŕмĩņªľ !! - Сõňšöĺě !! + Ċőñşøľě !! @@ -30,9 +30,9 @@ - Τĥίŝ ïѕ тђè ρґĕνιεẃ ъџîľð ôƒ ţĥê Шìπďøωš Ŧэřmïⁿãℓ, ẅħίċĥ сόйťάійѕ ŧћę ľàţěšŧ ƒêāŧüґеş ǻѕ тнêу ªяè ďένэłŏφēð. Ťн℮ Ŵíʼnðōẁş Ţёѓmĭŋàĺ îś â мōðéгñ, ƒăšτ, ėƒƒĩçιέņţ, ρоωεřƒυŀ, åйđ ρřôδų¢тìν℮ тєřміηāł ãφρľíċāŧіόʼn ƒŏѓ ůśēяš öƒ ¢ǿmmâηδ-ļіηё ťǿóℓś ªʼnđ ŝђĕĺļś ľīĸё Ċøмmаⁿď Ρřθmρť, РôŵзѓŞћéļŀ, äŋδ ẂЅĹ. Īтś мăïл ƒèатůŕêš ĭʼnčļμðë мцłτĩрļĕ ţāьš, ρàñзѕ, Ųñΐςόđê диδ ЏŢ₣-8 ĉћªŕªćтзř şцρрøгť, ă ĠРЦ аċςëļéřąτĕδ ťĕ×ţ гёήðеřіŋġ éⁿģïⁿё, āиď ¢ûšтǿм тĥĕmέş, şťỳļèş, àńδ ςòňƒíĝûřãтіθиŝ. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! + Ţћïŝ įš тнĕ φřэνїëẁ ъцîļđ ǿƒ τħ℮ Шĭηðòẅş Ŧёřmΐиăļ, ώĥϊĉђ čŏηтãįηš тħ℮ ŀдτеŝт ƒèäťύŕзş άš ŧђĕў àřė ðёνεℓŏρёđ. Ŧне Ẅĩŋδōẅѕ Ţęгmίηāł ΐš ă моðεѓñ, ƒäŝŧ, эƒƒιĉϊєητ, φθẁėŗƒũľ, ãиď ряθðύčŧĩνз ŧèѓmíʼnǻł áррļïсąтīóň ƒőŗ üś℮ѓѕ òƒ čømмάńδ-ĺïиè τόõļѕ ăлð şђĕľŀѕ ľĩкě Ćοmмαπď Ρяŏmрτ, ΡòẁέгŠђęļľ, ǻηδ ЩŠ₤. Ìťŝ mąΐή ƒэаτцřéѕ іňçĺūδé мūłţΐφľê тдьŝ, ρàñεś, Ûńϊċбðê àⁿđ ЏΤ₣-8 ćћªřαςťέř ŝųррǿřţ, ą ĠРÚ дссêŀεŗąţєđ ŧė×τ řēήďéřίпğ êňĝĩňè, ăиð čύşтθm ťћемêѕ, śŧỳļěѕ, âπđ сøńƒìġųřатîőήѕ. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! -Тħΐš ιŝ ǻņ οφэń šõùřçė ρяóĵéĉτ ǻňð ẅĕ ẃеľ¢θмè ċŏmmũήĭŧγ φдřţϊĉĭρáτîőл. Тŏ ρǻřŧïçіφáťέ рĺëάѕе νïşϊţ ђŧťφš://ģîτнŭь.ςőм/mїçřøѕоƒţ/ŧęяmìηăℓ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! +Ťĥìŝ ΐś åń óφёй ŝõùřçė ρřоĵзĉт ǻńδ ẃě ẅéŀčŏmę ĉõmmüⁿĭτу ρåгŧϊсїφатïοη. Ťŏ ράѓţιċίрªт℮ φļэăśę νΐŝîт ħτţφŝ://ģįτђцъ.сόm/мïςřоѕоƒт/τέřmϊʼnǻŀ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !! @@ -54,10 +54,10 @@ - Vėгşϊσл __VERSION_NUMBER__ !!! !!! ! + Vėѓѕіöй __VERSION_NUMBER__ !!! !!! ! -Ρľзàşє śĕé όûя ĠϊтĤµв ŕęłёåşêś рåĝê ƒǿѓ ǻðδīŧĩòñâľ đëŧαіĺŝ. !!! !!! !!! !!! !!! !!! - +Рļєάśé ѕέę όüґ ĢίŧĦŭв řęļзąѕєš рαġè ƒőŗ äđδĭτíθņâℓ đέтαιľś. !!! !!! !!! !!! !!! !!! + @@ -80,15 +80,15 @@ - - - + + + - Τħе ⁿěώ Ẅīñďθẁŝ Тёřмìņаł !!! !!! ! + Ŧћë иĕẁ Шįπδõωš Тёŗmĭлдŀ !!! !!! ! @@ -100,15 +100,15 @@ - Μџĺŧĭρłĕ ŧäвŝ !!! + Μΰℓţіρļę ťăъś !!! - ₣ūŀĺ Üⁿі¢òđè śüφρбгτ !!! !!! + ₣υłľ Űňìčόďέ şůррοяŧ !!! !!! - ĢΡÛ-åććεłэřáţęδ тė×ŧ ŕëηδ℮гϊŋģ !!! !!! !!! + ĞΡÙ-асçêľëřăţєđ ţέхŧ яéʼnδęŗίńğ !!! !!! !!! - ₣ûľℓ сůšŧǿmįźãьįļїту !!! !!! + ₣џℓł ćűşŧõmîźăвϊľįтγ !!! !!! - Śφļіτ рαńêš !!! + Ŝφľīť ρªлёѕ !!! @@ -158,20 +158,20 @@ - Κėўьōǻѓđ !! + Κёÿъόáѓď !! - Çōργřΐğћŧ (с) Мìċřбѕоƒτ Ĉόŕрθгăŧϊоň !!! !!! !!! ! + Ĉθрўґіġнт (с) Μìĉгōŝŏƒτ Čōяροґąтΐοй !!! !!! !!! ! - ђттрš://ğīτћũь.ςōm/мíĉřōšοƒţ/ťєřmιňάľ !!! !!! !!! !! + ћťŧφş://ġїţħųъ.ćòm/mįćѓσşòƒţ/ŧέřмїʼnаŀ !!! !!! !!! !! - нтτрš://ĝіţнũв.¢øм/мιςřσśõƒт/ţēґмїŋªł/іššúèѕ/лèŵ !!! !!! !!! !!! !! + ђтťφş://ĝїťнûв.¢ǿm/мíčѓõŝόƒτ/ŧеґmіиάł/ΐѕѕύéѕ/ηëш !!! !!! !!! !!! !! - ћţтρş://ġό.míćѓόśσƒţ.çοм/ƒώℓïπκ/?ĻìηкΊĐ=521839 !!! !!! !!! !!! ! + ĥţťφş://ģō.mîċґοşоƒт.ĉöм/ƒẃłīик/?₤ϊñķΪÐ=521839 !!! !!! !!! !!! ! diff --git a/build/StoreSubmission/Preview/PDPs/qps-plocm/PDP.xml b/build/StoreSubmission/Preview/PDPs/qps-plocm/PDP.xml index f9d4d48b321..381718a324f 100644 --- a/build/StoreSubmission/Preview/PDPs/qps-plocm/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/qps-plocm/PDP.xml @@ -10,9 +10,9 @@ - Τэґmìпáŀ !! + Τэŕмĩņªľ !! - Čòⁿšσľè !! + Ċőñşøľě !! @@ -30,9 +30,9 @@ - Τħίš їś ŧђё рřενîέω ъŭĩℓđ ŏƒ ťђз Ẅΐйðóщš Ŧέгмιňаĺ, ŵђι¢ћ çŏйтäīпѕ ťħé ľàтèѕτ ƒеäτűѓєŝ áѕ ťћεў āŗé δένëłσφēď. Ťћέ Ẁіŋďōώš Τèѓмĩņâł ΐš ą мοðèŗη, ƒāšţ, ꃃï¢ιεʼnŧ, φõώěѓƒûł, ăηď рřŏđΰ¢ťįνė τзřмįńäŀ âφρℓĭĉåťìόñ ƒоŗ џşêгš σƒ ¢ømmáńď-ĺįñę тôøŀš дŋδ śħèŀŀѕ ŀįќє Сόммдлđ Ргöмφť, ΡόщêґŠнеļℓ, дήď ẄЅĽ. Įτś mâϊⁿ ƒêáţцřêѕ ìйςŀμδě мυľţίрłē τâвś, φąŋεś, Ųήі¢ŏđέ åиď ЦŤ₣-8 ĉћāŕǻćтêŕ şµрρθгť, а ĢΡŬ αсĉêľėřаτέď τз×т ŗěⁿδέґΐņģ єйģіňë, áπδ сűѕťøм ťħèměś, ŝтŷĺεѕ, ąиđ сǿйƒīğůŕáŧīбñś. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! + Ţћïŝ įš тнĕ φřэνїëẁ ъцîļđ ǿƒ τħ℮ Шĭηðòẅş Ŧёřmΐиăļ, ώĥϊĉђ čŏηтãįηš тħ℮ ŀдτеŝт ƒèäťύŕзş άš ŧђĕў àřė ðёνεℓŏρёđ. Ŧне Ẅĩŋδōẅѕ Ţęгmίηāł ΐš ă моðεѓñ, ƒäŝŧ, эƒƒιĉϊєητ, φθẁėŗƒũľ, ãиď ряθðύčŧĩνз ŧèѓmíʼnǻł áррļïсąтīóň ƒőŗ üś℮ѓѕ òƒ čømмάńδ-ĺïиè τόõļѕ ăлð şђĕľŀѕ ľĩкě Ćοmмαπď Ρяŏmрτ, ΡòẁέгŠђęļľ, ǻηδ ЩŠ₤. Ìťŝ mąΐή ƒэаτцřéѕ іňçĺūδé мūłţΐφľê тдьŝ, ρàñεś, Ûńϊċбðê àⁿđ ЏΤ₣-8 ćћªřαςťέř ŝųррǿřţ, ą ĠРÚ дссêŀεŗąţєđ ŧė×τ řēήďéřίпğ êňĝĩňè, ăиð čύşтθm ťћемêѕ, śŧỳļěѕ, âπđ сøńƒìġųřатîőήѕ. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! -Τĥіś ιѕ áņ őφ℮ή śοϋŕĉέ ρŗбјěςт âʼnď ẃз ŵêļсοмє ċθmmúпΐŧу φаřţìсίрàţιǿл. Ŧǿ рαґţϊçĩраťз ρĺеαŝέ νìśїт ћтťρş://ġįťђūь.ċοm/мΐсґǿšŏƒţ/ťέŗmιйåĺ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! +Ťĥìŝ ΐś åń óφёй ŝõùřçė ρřоĵзĉт ǻńδ ẃě ẅéŀčŏmę ĉõmmüⁿĭτу ρåгŧϊсїφатïοη. Ťŏ ράѓţιċίрªт℮ φļэăśę νΐŝîт ħτţφŝ://ģįτђцъ.сόm/мïςřоѕоƒт/τέřmϊʼnǻŀ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !! @@ -54,10 +54,10 @@ - Věřšíоň __VERSION_NUMBER__ !!! !!! ! + Vėѓѕіöй __VERSION_NUMBER__ !!! !!! ! -Ρłέåѕĕ şêę óųґ ĠίťĤџь řєℓэãş℮ś ρâģе ƒôř áđðĩŧіőηàĺ ðёţăіℓŝ. !!! !!! !!! !!! !!! !!! - +Рļєάśé ѕέę όüґ ĢίŧĦŭв řęļзąѕєš рαġè ƒőŗ äđδĭτíθņâℓ đέтαιľś. !!! !!! !!! !!! !!! !!! + @@ -80,15 +80,15 @@ - - - + + + - Тнë ñєω Щíηđошŝ Тęямīиâℓ !!! !!! ! + Ŧћë иĕẁ Шįπδõωš Тёŗmĭлдŀ !!! !!! ! @@ -100,15 +100,15 @@ - Μΰľťїрļё тăъŝ !!! + Μΰℓţіρļę ťăъś !!! - ₣υĺℓ Цπĩčôδë ѕúрφσřť !!! !!! + ₣υłľ Űňìčόďέ şůррοяŧ !!! !!! - ĜРŮ-åĉςєłзřàťёð ţèхţ řęʼnδёѓιηğ !!! !!! !!! + ĞΡÙ-асçêľëřăţєđ ţέхŧ яéʼnδęŗίńğ !!! !!! !!! - ₣úĺŀ čŭşťбмîźáвïŀìŧỳ !!! !!! + ₣џℓł ćűşŧõmîźăвϊľįтγ !!! !!! - Ŝφŀíť φâʼnęś !!! + Ŝφľīť ρªлёѕ !!! @@ -158,20 +158,20 @@ - Ķèỳъŏàѓδ !! + Κёÿъόáѓď !! - Čŏрýґíğнт (ç) Μίĉґбšöƒţ Çόяρőŗâтϊōⁿ !!! !!! !!! ! + Ĉθрўґіġнт (с) Μìĉгōŝŏƒτ Čōяροґąтΐοй !!! !!! !!! ! - ћţτρŝ://ĝϊţнųъ.сöm/міčřòšσƒţ/ŧêŗmĭñåĺ !!! !!! !!! !! + ћťŧφş://ġїţħųъ.ćòm/mįćѓσşòƒţ/ŧέřмїʼnаŀ !!! !!! !!! !! - нţŧρŝ://ģіťђúв.сŏm/мîćŕøşοƒŧ/τěřmįⁿдľ/íśşũєѕ/ńêẃ !!! !!! !!! !!! !! + ђтťφş://ĝїťнûв.¢ǿm/мíčѓõŝόƒτ/ŧеґmіиάł/ΐѕѕύéѕ/ηëш !!! !!! !!! !!! !! - ђţţрş://ğσ.mîςгōѕθƒт.ĉбм/ƒẅļìñк/?£іñќÍĎ=521839 !!! !!! !!! !!! ! + ĥţťφş://ģō.mîċґοşоƒт.ĉöм/ƒẃłīик/?₤ϊñķΪÐ=521839 !!! !!! !!! !!! ! diff --git a/build/StoreSubmission/Preview/PDPs/ru-RU/PDP.xml b/build/StoreSubmission/Preview/PDPs/ru-RU/PDP.xml index ec4475826b9..e944cbc595f 100644 --- a/build/StoreSubmission/Preview/PDPs/ru-RU/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/ru-RU/PDP.xml @@ -30,7 +30,7 @@ - Это предварительная сборка Windows Terminal, которая содержит новейшие функции по мере их разработки. Windows Terminal - это современное, быстрое, эффективное, мощное и продуктивное терминальное приложение для пользователей инструментов командной строки и оболочек, таких как командная строка, PowerShell и WSL. Его основные функции включают в себя несколько вкладок, панелей, поддержку символов Unicode и UTF-8, движок рендеринга текста с GPU-ускорением, а также персонализированные темы, стили и конфигурации. + Это предварительная сборка Windows Terminal, которая содержит новейшие функции по мере их разработки. Windows Terminal - это современное, быстрое, эффективное, мощное и продуктивное терминальное приложение для пользователей инструментов командной строки и оболочек, таких как командная строка, PowerShell и WSL. Его основные функции включают в себя несколько вкладок, панелей, поддержку символов Unicode и UTF-8, движок рендеринга текста с GPU-ускорением, а также настраиваемые темы, стили и конфигурации. Это проект с открытым исходным кодом, и мы приветствуем участие сообщества. Для участия, пожалуйста, посетите https://github.com/microsoft/terminal diff --git a/build/StoreSubmission/Preview/PDPs/zh-TW/PDP.xml b/build/StoreSubmission/Preview/PDPs/zh-TW/PDP.xml index 40f6193d6fd..40e469d9e95 100644 --- a/build/StoreSubmission/Preview/PDPs/zh-TW/PDP.xml +++ b/build/StoreSubmission/Preview/PDPs/zh-TW/PDP.xml @@ -30,7 +30,7 @@ - 這是 Windows 終端機的預覽版,其中包含最新開發的功能。Windows 終端機是一種新式、快速、高效、功能強大且具生產力的終端應用程式,適合命令列工具和 Shell (例如命令提示字元、PowerShell 和 WSL) 的使用者。主要功能包括多個索引標籤、窗格、Unicode 和 UTF-8 字元支援、GPU 加速的文字呈現引擎,以及自訂主題、樣式和設定。 + 這是 Windows 終端機的預覽版,其中包含最新開發的功能。Windows 終端機是一種新式、快速、高效、功能強大且具生產力的終端應用程式,適合命令列工具和 Shell (例如命令提示字元、PowerShell 和 WSL) 的使用者。主要功能包括多個索引標籤、窗格、Unicode 和 UTF-8 字元支援、GPU 加速的文字呈現引擎,以及自訂佈景主題、樣式和設定。 這是開放原始碼的專案,我們歡迎參與社群。若要參與,請瀏覽 https://github.com/microsoft/terminal diff --git a/build/StoreSubmission/Stable/PDPs/de-DE/PDP.xml b/build/StoreSubmission/Stable/PDPs/de-DE/PDP.xml index 958428fc504..815909966da 100644 --- a/build/StoreSubmission/Stable/PDPs/de-DE/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/de-DE/PDP.xml @@ -30,9 +30,9 @@ - Das Windows-Terminal ist eine moderne, schnelle, effiziente, leistungsstarke und produktive Terminalanwendung für Benutzer von Befehlszeilentools und Shells wie Eingabeaufforderung, PowerShell und WSL. Die wichtigsten Funktionen des Windows-Terminals umfassen mehrere Registerkarten, Bereiche, Unicode- und UTF-8-Zeichenunterstützung, GPU-beschleunigtes Textrendering-Modul sowie benutzerdefinierte Designs, Formatvorlagen und Konfigurationen. + Das Windows-Terminal ist eine moderne, schnelle, effiziente, leistungsstarke und produktive Terminal-Anwendung für Benutzer von Befehlszeilentools und Shells wie beispielsweise Eingabeaufforderung, PowerShell und WSL. Die wichtigsten Funktionen des Windows-Terminals umfassen mehrere Registerkarten, Bereiche, Unicode- und UTF-8-Zeichenunterstützung, GPU-beschleunigtes Textrendering-Modul sowie benutzerdefinierte Designs, Formatvorlagen und Konfigurationen. -Dies ist ein Open Source-Projekt, und wir freuen uns über die Teilnahme der Community. Um teilzunehmen, besuchen Sie bitte die Website https://github.com/microsoft/terminal +Dies ist ein Open Source-Projekt, und wir freuen uns über die Teilnahme an der Community. Um teilzunehmen, besuchen Sie bitte die Website https://github.com/microsoft/terminal diff --git a/build/StoreSubmission/Stable/PDPs/fr-FR/PDP.xml b/build/StoreSubmission/Stable/PDPs/fr-FR/PDP.xml index 5802ed21f8f..59168e815cf 100644 --- a/build/StoreSubmission/Stable/PDPs/fr-FR/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/fr-FR/PDP.xml @@ -30,9 +30,9 @@ - Le terminal Windows est une application de terminal moderne, rapide, efficace, puissante et productive pour les utilisateurs d’outils en ligne de commande et d’environnements tels que l’Invite de commandes, PowerShell et WSL. Ses principales fonctionnalités incluent plusieurs onglets, des volets, une prise en charge des caractères Unicode et UTF-8, un moteur de rendu de texte accéléré par GPU, ainsi que des thèmes, styles et configurations personnalisés. + Le Terminal Windows est une application de terminal moderne, rapide, efficace, puissante et productive pour les utilisateurs d’outils en ligne de commande et d’interpréteurs de commandes tels que l’Invite de commandes, PowerShell et WSL. Ses principales fonctionnalités incluent plusieurs onglets, des volets, une prise en charge des caractères Unicode et UTF-8, un moteur de rendu de texte accéléré par GPU, ainsi que des thèmes, styles et configurations personnalisés. -Il s’agit d’un projet open source et nous vous invitons à participer dans la communauté. Pour participer, visitez https://github.com/microsoft/terminal +Il s’agit d’un projet open source et nous encourageons la participation à la communauté. Pour participer, veuillez visiter le site web https://github.com/microsoft/terminal diff --git a/build/StoreSubmission/Stable/PDPs/it-IT/PDP.xml b/build/StoreSubmission/Stable/PDPs/it-IT/PDP.xml index 22ba22725a3..4d15d3f8990 100644 --- a/build/StoreSubmission/Stable/PDPs/it-IT/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/it-IT/PDP.xml @@ -30,9 +30,9 @@ - Terminale Windows è un'applicazione terminale moderna, veloce, efficiente, utile e produttiva per gli utenti che utilizzano shell e strumenti da riga di comando come il prompt dei comandi, PowerShell e WSL. Le sue funzionalità principali includono più schede, riquadri, supporto dei caratteri Unicode e UTF-8, un motore di rendering del testo con accelerazione GPU, oltre a configurazioni, stili e temi personalizzati. + Terminale Windows è un'applicazione terminale moderna, veloce, efficiente, utile e produttiva per gli utenti che utilizzano shell e strumenti da riga di comando come il prompt dei comandi, PowerShell e WSL. Le funzionalità principali includono più schede, riquadri, supporto di caratteri Unicode e UTF-8, un motore di rendering del testo con accelerazione GPU e temi, stili e configurazioni personalizzati. -Si tratta di un progetto open source in cui la partecipazione della community è ben gradita. Per partecipare, visita la pagina https://github.com/microsoft/terminal +Si tratta di un progetto open source e la partecipazione della community è molto gradita. Per partecipare, visita la pagina https://github.com/microsoft/terminale diff --git a/build/StoreSubmission/Stable/PDPs/ja-JP/PDP.xml b/build/StoreSubmission/Stable/PDPs/ja-JP/PDP.xml index 1c84ce20a04..dda6bf9bd02 100644 --- a/build/StoreSubmission/Stable/PDPs/ja-JP/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/ja-JP/PDP.xml @@ -30,7 +30,7 @@ - Windows ターミナルは、コマンド プロンプト、PowerShell、WSL などのコマンドライン ツールおよびシェルのユーザーのための、高速、効率的、強力な、生産性を向上させる最新のターミナル アプリケーションです。主な機能には、複数のタブ、ウィンドウ、Unicode および UTF-8 文字のサポート、GPU アクセラレータによるテキスト レンダリング エンジン、カスタム テーマ、スタイル、構成が含まれます。 + Windows ターミナルは、コマンド プロンプト、PowerShell、WSL などのコマンドライン ツールおよびシェルのユーザーのための、高速、効率的、強力な、生産性を向上させる最新のターミナル アプリケーションです。主な機能には、複数のタブ、ウィンドウ、Unicode および UTF-8 文字のサポート、GPU アクセラレータによるテキスト レンダリング エンジン、カスタマイズできるテーマ、スタイル、構成が含まれます。 これはオープン ソース プロジェクトで、コミュニティへの参加をお待ちしております。参加する場合は、https://github.com/microsoft/terminal にアクセスしてください diff --git a/build/StoreSubmission/Stable/PDPs/ko-KR/PDP.xml b/build/StoreSubmission/Stable/PDPs/ko-KR/PDP.xml index cb4b1463015..ae0cddc3e0b 100644 --- a/build/StoreSubmission/Stable/PDPs/ko-KR/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/ko-KR/PDP.xml @@ -30,9 +30,9 @@ - Windows 터미널은 명령 프롬프트, PowerShell 및 WSL과 같은 명령 줄 도구 및 셸 사용자를 위한 최신의 빠르고 효율적이며 강력한 생산성의 터미널 응용 프로그램입니다. 주요 기능으로는 여러 탭, 창, 유니코드 및 UTF-8 문자 지원, GPU 가속 텍스트 렌더링 엔진 및 사용자 지정 테마, 스타일 및 구성이 있습니다. + Windows 터미널은 명령 프롬프트, PowerShell 및 WSL과 같은 명령 줄 도구 및 셸 사용자를 위한 최신의 빠르고 효율적이며 강력한 생산성의 터미널 응용 프로그램입니다. 주요 기능으로는 여러 탭, 창, 유니 코드 및 UTF-8 문자 지원, GPU 가속 텍스트 렌더링 엔진 및 사용자 정의 테마, 스타일 및 구성이 있습니다. -이것은 오픈 소스 프로젝트이며 커뮤니티 참여를 환영합니다. 참여하려면 https://github.com/microsoft/terminal을 방문하세요. +이것은 오픈 소스 프로젝트이며 커뮤니티 참여를 환영합니다. 참여하려면 https://github.com/microsoft/terminal을 방문하십시오 diff --git a/build/StoreSubmission/Stable/PDPs/pt-BR/PDP.xml b/build/StoreSubmission/Stable/PDPs/pt-BR/PDP.xml index ceb023a12b2..ca64b4b9d3a 100644 --- a/build/StoreSubmission/Stable/PDPs/pt-BR/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/pt-BR/PDP.xml @@ -30,9 +30,9 @@ - O Windows Terminal é um aplicativo de terminal moderno, rápido, eficiente, poderoso e produtivo para os usuários de ferramentas e shells de linha de comando, como prompt de comando, PowerShell e WSL. Seus principais recursos incluem várias guias, painéis, suporte a caracteres Unicode e UTF-8, um mecanismo de renderização de texto acelerado por GPU e temas, estilos e configurações personalizados. + O Terminal do Windows é um aplicativo de terminal moderno, rápido, eficiente, poderoso e produtivo para usuários de ferramentas de linha de comando e shells como Prompt de Comando, PowerShell e WSL. Seus principais recursos incluem várias guias, painéis, suporte a caracteres Unicode e UTF-8, um mecanismo de renderização de texto acelerado por GPU e temas, estilos e configurações personalizados. -Este é um projeto de código aberto e agradecemos a participação da comunidade. Para participar, visite https://github.com/microsoft/terminal +Este é um projeto de código aberto e a participação da comunidade é bem-vinda. Para participar, visite https://github.com/microsoft/terminal diff --git a/build/StoreSubmission/Stable/PDPs/qps-ploc/PDP.xml b/build/StoreSubmission/Stable/PDPs/qps-ploc/PDP.xml index 2b2b09dfd31..0156522a9eb 100644 --- a/build/StoreSubmission/Stable/PDPs/qps-ploc/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/qps-ploc/PDP.xml @@ -10,9 +10,9 @@ - Ťεгмîʼnāł !! + Τэŕмĩņªľ !! - Ċõйŝοłе !! + Ċőñşøľě !! @@ -30,9 +30,9 @@ - Ŧнė Windows Ŧєґмїηаŀ ĭş д mōδзґл, ƒâŝţ, ꃃісϊэⁿŧ, ροώέяƒűľ, ǻⁿð рřбδūсťĩνέ ŧēřmïиâĺ ªррļìςåтїøл ƒόѓ џŝĕгѕ σƒ ¢ŏмmαлď-ĺîлε ťøσŀś åⁿð şнэℓĺѕ ℓїĸé Çōmмăиď Ρгõмφт, РôщзяŠнèℓŀ, ǻлδ ŴŞĽ. Ϊţŝ mдîň ƒеάτûřεś ĩпčļцđє mùℓţíрŀę τаъѕ, φâήéš, Ŭπïçοðē àпđ ŨТ₣-8 сћдřăçţзŕ šΰφφόřť, ā ĢРÜ άсĉĕŀ℮řăтєď ťέхţ ŗёйđēřΐήğ εиğĭŋє, άņď ċůśţσm τħέмëş, ŝτỳŀêş, åлđ ćǿпƒιġŭяǻţìσʼnś. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! + Ţћē Windows Ťěřмĭпªļ ΐŝ а mσđ℮ŗⁿ, ƒαšτ, 냃ĭċíèñŧ, ρоώëřƒųļ, ãлđ ρгσďűςťįν℮ тĕгмΐņǻľ аφφľīсàтĭόʼn ƒбř ΰśēřś оƒ ċǿmmάņď-ľιñĕ тθōℓѕ àήδ ŝнέŀłš ℓįкё Ćσммāпď Рřσmρŧ, РощёŕŠћėļℓ, ãπď ŴŜŁ. Īтś мǻĭп ƒзåţųŗêš ιņçłϋðē мΰℓŧìрļέ ţãвš, ράи℮ѕ, Üήιсοδê âиð ŮΤ₣-8 ćћăŗªĉтĕя şΰρφоѓť, ă ĜРЏ äĉçěľēґάţèđ ŧ℮жт яēπđěřĭñģ éπğíńз, åñδ сύšťóм тћêmĕš, śŧŷłéš, âπð ςбήƒīĝџѓáťίόńš. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! -Тĥìś ίš дп бφзⁿ ŝούґćĕ ρřöјёçт дⁿδ ẅ℮ ω℮ľčбмê ĉоmмџʼníţŷ φαґтїčîрάťīой. Τσ φāŗţìсϊрâŧє ρļēãšε νįšĭţ ђтŧрş://ģϊťħūв.ċŏm/мíςѓōśŏƒţ/ţэґmīňąŀ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! +Ţĥíŝ ιš άň øρèñ šθūѓςë ρгбјė¢τ ąʼnð ẅ℮ ẃêŀċõмè сοмmúńїťγ φàřτĩĉîрªťϊòη. Ţò ράятїĉîрǻŧê ρĺęαŝě νîŝϊт ħŧťφѕ://ġїтђûь.ĉόm/mìĉřòşοƒţ/τéřmíпâľ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !! @@ -54,10 +54,10 @@ - V℮ŗśįôη __VERSION_NUMBER__ !!! !!! ! + Vėѓѕіöй __VERSION_NUMBER__ !!! !!! ! -Ρļєдšë şėε оύŗ ĠîтĦūъ ѓзļеαşĕş рάğę ƒбѓ ăđďίţĭõņάľ δеťâĭłş. !!! !!! !!! !!! !!! !!! - +Рļєάśé ѕέę όüґ ĢίŧĦŭв řęļзąѕєš рαġè ƒőŗ äđδĭτíθņâℓ đέтαιľś. !!! !!! !!! !!! !!! !!! + @@ -80,15 +80,15 @@ - - - + + + - Тħè ⁿëẁ Щīńđōẁś Ťĕгмΐńăł !!! !!! ! + Ŧћë иĕẁ Шįπδõωš Тёŗmĭлдŀ !!! !!! ! @@ -100,15 +100,15 @@ - Μûļťίφℓє ţâвś !!! + Μΰℓţіρļę ťăъś !!! - ₣ųĺℓ Ûпΐςõđз ѕµρφοгτ !!! !!! + ₣υłľ Űňìčόďέ şůррοяŧ !!! !!! - ĜРÚ-ǻč¢ёĺεřăŧέď ţεхτ ŗэπđεґįņğ !!! !!! !!! + ĞΡÙ-асçêľëřăţєđ ţέхŧ яéʼnδęŗίńğ !!! !!! !!! - ₣ûℓļ ćџşţŏм힪вîłίťў !!! !!! + ₣џℓł ćűşŧõmîźăвϊľįтγ !!! !!! - Šρłīť ρäʼnēş !!! + Ŝφľīť ρªлёѕ !!! @@ -158,20 +158,20 @@ - Ķęýъǿâгđ !! + Κёÿъόáѓď !! - Ćõρÿřιġħτ (ç) Мîςŕøšόƒт Сόґрôŗåťĭби !!! !!! !!! ! + Ĉθрўґіġнт (с) Μìĉгōŝŏƒτ Čōяροґąтΐοй !!! !!! !!! ! - ĥтťφş://ĝíτħµъ.¢θm/mìčŗôŝõƒŧ/ţэѓmĭñаľ !!! !!! !!! !! + ћťŧφş://ġїţħųъ.ćòm/mįćѓσşòƒţ/ŧέřмїʼnаŀ !!! !!! !!! !! - ĥťτрš://ģїτħύъ.ćоm/мϊčŕóѕóƒτ/тèяmíŋαŀ/іşѕųёŝ/ⁿêω !!! !!! !!! !!! !! + ђтťφş://ĝїťнûв.¢ǿm/мíčѓõŝόƒτ/ŧеґmіиάł/ΐѕѕύéѕ/ηëш !!! !!! !!! !!! !! - ћŧтρŝ://ģσ.mïсѓøšóƒт.ċǿм/ƒщłϊπķ/?£ілκЇĎ=521839 !!! !!! !!! !!! ! + ĥţťφş://ģō.mîċґοşоƒт.ĉöм/ƒẃłīик/?₤ϊñķΪÐ=521839 !!! !!! !!! !!! ! diff --git a/build/StoreSubmission/Stable/PDPs/qps-ploca/PDP.xml b/build/StoreSubmission/Stable/PDPs/qps-ploca/PDP.xml index b83891bb15e..0156522a9eb 100644 --- a/build/StoreSubmission/Stable/PDPs/qps-ploca/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/qps-ploca/PDP.xml @@ -10,9 +10,9 @@ - Тεгмιŋāľ !! + Τэŕмĩņªľ !! - Ćбñѕöℓэ !! + Ċőñşøľě !! @@ -30,9 +30,9 @@ - Ŧђэ Windows Τēяmіňаĺ íŝ ä мǿðєѓπ, ƒâѕť, έƒƒĭςίєйť, φôωзŕƒµŀ, αиđ ρгôðųçτїνέ ťĕŗмîηäℓ аφφℓіçâŧїõń ƒǿř ûśегѕ òƒ сθмmάʼnδ-ĺïŋё τσθℓş ąñδ šĥëŀľś łīķé €øмmªйð Ρѓòmρŧ, Рøẃ℮ŗŠħěĺℓ, ǻлδ ẀŜĽ. Îтş мдïη ƒĕąтΰřèš įπčŀûďĕ мŭłτїρļê ťăъѕ, ρªŋёş, Ūʼnΐċőðε áиδ ÚΤ₣-8 ¢ĥàгå¢тĕř śΰφρöгτ, ǻ ĢРŰ áçĉěłéřáŧ℮đ ţė×ŧ гεήđ℮гîиġ ĕпĝїŋě, äйď ¢µšτοm ťћёмěş, şτŷłэś, áⁿδ сбиƒîğџяãтįŏńŝ. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! + Ţћē Windows Ťěřмĭпªļ ΐŝ а mσđ℮ŗⁿ, ƒαšτ, 냃ĭċíèñŧ, ρоώëřƒųļ, ãлđ ρгσďűςťįν℮ тĕгмΐņǻľ аφφľīсàтĭόʼn ƒбř ΰśēřś оƒ ċǿmmάņď-ľιñĕ тθōℓѕ àήδ ŝнέŀłš ℓįкё Ćσммāпď Рřσmρŧ, РощёŕŠћėļℓ, ãπď ŴŜŁ. Īтś мǻĭп ƒзåţųŗêš ιņçłϋðē мΰℓŧìрļέ ţãвš, ράи℮ѕ, Üήιсοδê âиð ŮΤ₣-8 ćћăŗªĉтĕя şΰρφоѓť, ă ĜРЏ äĉçěľēґάţèđ ŧ℮жт яēπđěřĭñģ éπğíńз, åñδ сύšťóм тћêmĕš, śŧŷłéš, âπð ςбήƒīĝџѓáťίόńš. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! -Ţћìś ĭŝ àй øρëň şоûřĉê рґöĵє¢ŧ ăπď шз ẅéℓċömэ ¢όммυńĭŧŷ рáŗťĭćίрªţіθń. Тθ рǻяτìсìρáтę ρℓэăşĕ νìѕïţ ĥŧŧρš://ġïţĥŭъ.ςθm/mїĉѓθѕóƒт/тεřmίηâŀ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! +Ţĥíŝ ιš άň øρèñ šθūѓςë ρгбјė¢τ ąʼnð ẅ℮ ẃêŀċõмè сοмmúńїťγ φàřτĩĉîрªťϊòη. Ţò ράятїĉîрǻŧê ρĺęαŝě νîŝϊт ħŧťφѕ://ġїтђûь.ĉόm/mìĉřòşοƒţ/τéřmíпâľ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !! @@ -54,10 +54,10 @@ - Vēґѕιби __VERSION_NUMBER__ !!! !!! ! + Vėѓѕіöй __VERSION_NUMBER__ !!! !!! ! -Рℓěãšє śεэ óűŗ ĞïŧΗųв ѓěŀзªśεѕ рαġē ƒøř αδđīťíόŋäŀ δзŧªìĺş. !!! !!! !!! !!! !!! !!! - +Рļєάśé ѕέę όüґ ĢίŧĦŭв řęļзąѕєš рαġè ƒőŗ äđδĭτíθņâℓ đέтαιľś. !!! !!! !!! !!! !!! !!! + @@ -80,15 +80,15 @@ - - - + + + - Ţнê ήėщ Ẅĭņďбωś Τєŗмίπαľ !!! !!! ! + Ŧћë иĕẁ Шįπδõωš Тёŗmĭлдŀ !!! !!! ! @@ -100,15 +100,15 @@ - Μμłŧĩφĺê ţăъš !!! + Μΰℓţіρļę ťăъś !!! - ₣úłļ Џήïсθđ℮ ѕϋφрóґŧ !!! !!! + ₣υłľ Űňìčόďέ şůррοяŧ !!! !!! - ĞРÛ-áсčēℓéřǻťěđ ţėжŧ ŕэиðéŕĭņĝ !!! !!! !!! + ĞΡÙ-асçêľëřăţєđ ţέхŧ яéʼnδęŗίńğ !!! !!! !!! - ₣ύĺľ ¢ůѕţõмїźàъΐľΐţў !!! !!! + ₣џℓł ćűşŧõmîźăвϊľįтγ !!! !!! - Śφŀīť φàňěŝ !!! + Ŝφľīť ρªлёѕ !!! @@ -158,20 +158,20 @@ - Ќëўвőâŕð !! + Κёÿъόáѓď !! - €όруѓїģĥť (ς) Μíсŗθšοƒŧ Ċσŕрόŗаτīõл !!! !!! !!! ! + Ĉθрўґіġнт (с) Μìĉгōŝŏƒτ Čōяροґąтΐοй !!! !!! !!! ! - нτтφš://ğιťћϋь.ćóm/мīĉřöšοƒт/ŧėřмîňąļ !!! !!! !!! !! + ћťŧφş://ġїţħųъ.ćòm/mįćѓσşòƒţ/ŧέřмїʼnаŀ !!! !!! !!! !! - ħтţρŝ://ĝĭţнûь.ćόм/mΐčŕоşøƒť/ŧзřmїйąŀ/ĭśşüęš/ʼnėω !!! !!! !!! !!! !! + ђтťφş://ĝїťнûв.¢ǿm/мíčѓõŝόƒτ/ŧеґmіиάł/ΐѕѕύéѕ/ηëш !!! !!! !!! !!! !! - ђţтρś://ğó.мìςŕôšôƒť.ĉőm/ƒẅŀìʼnк/?₤ïⁿкЇĐ=521839 !!! !!! !!! !!! ! + ĥţťφş://ģō.mîċґοşоƒт.ĉöм/ƒẃłīик/?₤ϊñķΪÐ=521839 !!! !!! !!! !!! ! diff --git a/build/StoreSubmission/Stable/PDPs/qps-plocm/PDP.xml b/build/StoreSubmission/Stable/PDPs/qps-plocm/PDP.xml index 761ff26bf22..0156522a9eb 100644 --- a/build/StoreSubmission/Stable/PDPs/qps-plocm/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/qps-plocm/PDP.xml @@ -10,9 +10,9 @@ - Тεґmîпάľ !! + Τэŕмĩņªľ !! - Ċоńšõŀė !! + Ċőñşøľě !! @@ -30,9 +30,9 @@ - Ŧђέ Windows Ţэяmΐлäĺ ΐš ã mθðèřй, ƒâѕτ, зƒƒїċīеʼnţ, φøшеѓƒűľ, ąήð φřоðŭςŧіνě тĕŗмíⁿäŀ äррļісдτïŏи ƒσг ϋѕеґš òƒ čθммąпδ-ļїηє ţθöŀŝ αήð śћеĺłš ℓíκě Çŏmmªņδ Рґômрť, ΡбώëґŞĥëłĺ, дñđ ẄŠ£. İтŝ mάϊй ƒ℮аŧυѓêŝ įйĉľµđё műľťĩφľĕ ťǻвš, φäⁿεş, Ůŋіćǿδė ąņδ ŨТ₣-8 čђåřǻčтęя ѕùρρǿѓτ, ª ĢΡŬ асçєľēѓàτеď тě×ţ řėⁿđέґíлĝ ёʼnğíʼnэ, ąŋð ćŭšτσм ŧĥємёŝ, śţγłėŝ, άпδ соńƒìġμяãτìοñś. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! + Ţћē Windows Ťěřмĭпªļ ΐŝ а mσđ℮ŗⁿ, ƒαšτ, 냃ĭċíèñŧ, ρоώëřƒųļ, ãлđ ρгσďűςťįν℮ тĕгмΐņǻľ аφφľīсàтĭόʼn ƒбř ΰśēřś оƒ ċǿmmάņď-ľιñĕ тθōℓѕ àήδ ŝнέŀłš ℓįкё Ćσммāпď Рřσmρŧ, РощёŕŠћėļℓ, ãπď ŴŜŁ. Īтś мǻĭп ƒзåţųŗêš ιņçłϋðē мΰℓŧìрļέ ţãвš, ράи℮ѕ, Üήιсοδê âиð ŮΤ₣-8 ćћăŗªĉтĕя şΰρφоѓť, ă ĜРЏ äĉçěľēґάţèđ ŧ℮жт яēπđěřĭñģ éπğíńз, åñδ сύšťóм тћêmĕš, śŧŷłéš, âπð ςбήƒīĝџѓáťίόńš. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! -Τĥίѕ ϊś åŋ öρёń šǿũяčз ρřőјĕċτ ªηđ щé ẁєĺсǿмє ċòmmμήíťŷ рàŗтì¢ìрąţїòи. Τσ рäŗτΐĉΐφǻτè рľзąśê νîŝĭŧ ћţŧрş://ĝіτћűв.ĉοм/mīĉřόśŏƒт/ťεгmїņάℓ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! +Ţĥíŝ ιš άň øρèñ šθūѓςë ρгбјė¢τ ąʼnð ẅ℮ ẃêŀċõмè сοмmúńїťγ φàřτĩĉîрªťϊòη. Ţò ράятїĉîрǻŧê ρĺęαŝě νîŝϊт ħŧťφѕ://ġїтђûь.ĉόm/mìĉřòşοƒţ/τéřmíпâľ !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !! @@ -54,10 +54,10 @@ - Vėŗŝϊóл __VERSION_NUMBER__ !!! !!! ! + Vėѓѕіöй __VERSION_NUMBER__ !!! !!! ! -Ρĺ℮âš℮ şέз øúг ĢіťΗŭв яéļëǻśзś φǻģĕ ƒόŗ áďδїτĭøήǻŀ ďзţаΐŀѕ. !!! !!! !!! !!! !!! !!! - +Рļєάśé ѕέę όüґ ĢίŧĦŭв řęļзąѕєš рαġè ƒőŗ äđδĭτíθņâℓ đέтαιľś. !!! !!! !!! !!! !!! !!! + @@ -80,15 +80,15 @@ - - - + + + - Τħė ñ℮ẅ Щιпδǿẃѕ Τèямίηäł !!! !!! ! + Ŧћë иĕẁ Шįπδõωš Тёŗmĭлдŀ !!! !!! ! @@ -100,15 +100,15 @@ - Мųĺτίρļē тàвś !!! + Μΰℓţіρļę ťăъś !!! - ₣űĺľ Üпĩċôďέ şųφφōѓŧ !!! !!! + ₣υłľ Űňìčόďέ şůррοяŧ !!! !!! - ĞΡÛ-д¢čĕļēяáŧěδ тєхţ řèпďēгίлĝ !!! !!! !!! + ĞΡÙ-асçêľëřăţєđ ţέхŧ яéʼnδęŗίńğ !!! !!! !!! - ₣ùŀŀ сϋŝтοмîżåвΐĺїŧỳ !!! !!! + ₣џℓł ćűşŧõmîźăвϊľįтγ !!! !!! - Šрŀіτ рåηëś !!! + Ŝφľīť ρªлёѕ !!! @@ -158,20 +158,20 @@ - Ķėŷъσάŗđ !! + Κёÿъόáѓď !! - €öрÿřïģħτ (ċ) Мĩçřōšöƒт Ćθѓρõŕαŧĭоη !!! !!! !!! ! + Ĉθрўґіġнт (с) Μìĉгōŝŏƒτ Čōяροґąтΐοй !!! !!! !!! ! - ћťτρš://ĝìτћŭъ.ĉõм/мїсгбşσƒт/т℮řмįлáł !!! !!! !!! !! + ћťŧφş://ġїţħųъ.ćòm/mįćѓσşòƒţ/ŧέřмїʼnаŀ !!! !!! !!! !! - нŧţрş://ġϊŧħύь.ĉőm/mĩĉґôšοƒť/тęѓмįńáŀ/įѕşŭэś/лэώ !!! !!! !!! !!! !! + ђтťφş://ĝїťнûв.¢ǿm/мíčѓõŝόƒτ/ŧеґmіиάł/ΐѕѕύéѕ/ηëш !!! !!! !!! !!! !! - ĥťτрś://ģö.мī¢яθśôƒт.çøm/ƒẃļілĸ/?£іŋќĬÐ=521839 !!! !!! !!! !!! ! + ĥţťφş://ģō.mîċґοşоƒт.ĉöм/ƒẃłīик/?₤ϊñķΪÐ=521839 !!! !!! !!! !!! ! diff --git a/build/StoreSubmission/Stable/PDPs/ru-RU/PDP.xml b/build/StoreSubmission/Stable/PDPs/ru-RU/PDP.xml index 03a8f2cfa1f..9ac0a140588 100644 --- a/build/StoreSubmission/Stable/PDPs/ru-RU/PDP.xml +++ b/build/StoreSubmission/Stable/PDPs/ru-RU/PDP.xml @@ -30,7 +30,7 @@ - Терминал Windows — это современное, быстрое, мощное и эффективное приложение терминала для пользователей средств командной строки и оболочек, таких как Командная строка, PowerShell и WSL. В число его основных функций входят множественные вкладки, панели, поддержка символов Юникода и UTF-8, модуль отрисовки текста с использованием графического ускорителя, а также персонализированные темы, стили и конфигурации. + Терминал Windows — это современное, быстрое, мощное и эффективное приложение терминала для пользователей средств командной строки и оболочек, таких как Командная строка, PowerShell и WSL. В число его основных функций входят множественные вкладки, панели, поддержка символов Юникода и UTF-8, модуль отрисовки текста с использованием графического ускорителя, а также пользовательские темы, стили и конфигурации. Это проект с открытым исходным кодом, и мы приглашаем сообщество к участию. Чтобы внести вклад, посетите страницу https://github.com/microsoft/terminal diff --git a/scratch/ScratchIslandApp/Package/Resources/qps-ploc/Resources.resw b/scratch/ScratchIslandApp/Package/Resources/qps-ploc/Resources.resw index e20e3c69981..64682c298a6 100644 --- a/scratch/ScratchIslandApp/Package/Resources/qps-ploc/Resources.resw +++ b/scratch/ScratchIslandApp/Package/Resources/qps-ploc/Resources.resw @@ -1,4 +1,4 @@ - + @@ -126,6 +126,10 @@ Bereich teilen + + Bereich "Codeausschnitte" öffnen + This will open a pane with a list of the users's saved commands ("snippets") in it + Terminal (portierbar) This display name is used when the Terminal application is running in a "portable" mode, where settings are not stored in a shared location. @@ -727,4 +731,7 @@ Dialogfeld „Info“ öffnen This will open the "about" dialog, to display version info and other documentation + + Codeschnipsel speichern + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/es-ES/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/es-ES/Resources.resw index 17dac88310f..a4a5b09745d 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/es-ES/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/es-ES/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ Abrir el cuadro de diálogo Acerca de This will open the "about" dialog, to display version info and other documentation + + Guardar fragmento de código + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/fr-FR/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/fr-FR/Resources.resw index 21fe9bcf229..ca2607aa108 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/fr-FR/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/fr-FR/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ Ouvrir la boîte de dialogue à propos de This will open the "about" dialog, to display version info and other documentation + + Enregistrer l’extrait de code + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/it-IT/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/it-IT/Resources.resw index 68d19388cee..d678fc7ba51 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/it-IT/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/it-IT/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ Apri finestra di dialogo Informazioni su This will open the "about" dialog, to display version info and other documentation + + Salva frammento + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/ja-JP/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/ja-JP/Resources.resw index 3a86cbc0288..f167bdd9fb1 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/ja-JP/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/ja-JP/Resources.resw @@ -1,17 +1,17 @@  - @@ -126,6 +126,10 @@ ウィンドウを分割する + + スニペット ウィンドウを開く + This will open a pane with a list of the users's saved commands ("snippets") in it + ターミナル (ポータブル) This display name is used when the Terminal application is running in a "portable" mode, where settings are not stored in a shared location. @@ -727,4 +731,7 @@ バージョン情報ダイアログを開く This will open the "about" dialog, to display version info and other documentation + + スニペットの保存 + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/ko-KR/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/ko-KR/Resources.resw index b776a0cffd6..ffdb82e62b3 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/ko-KR/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/ko-KR/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ 대화 상자 열기 This will open the "about" dialog, to display version info and other documentation + + 코드 조각 저장 + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/pt-BR/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/pt-BR/Resources.resw index cb4bd2648a6..3c1f5049d14 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/pt-BR/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/pt-BR/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ Abrir a caixa de diálogo sobre This will open the "about" dialog, to display version info and other documentation + + Salvar Snippet + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/qps-ploc/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/qps-ploc/Resources.resw index e93d8c85bee..fd40d604479 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/qps-ploc/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/qps-ploc/Resources.resw @@ -1,17 +1,17 @@ - + - @@ -126,6 +126,10 @@ Śрĺíŧ ρāлë !!! + + Òρëй ѕήїρφέţś ρªʼné !!! !! + This will open a pane with a list of the users's saved commands ("snippets") in it + Ţèѓmĩŋąĺ (Ρθŗτаьℓ℮) !!! !!! This display name is used when the Terminal application is running in a "portable" mode, where settings are not stored in a shared location. @@ -727,4 +731,7 @@ Οφёņ ǻвőųŧ đĭдłбģ !!! !! This will open the "about" dialog, to display version info and other documentation - \ No newline at end of file + + Ŝâνê Ŝⁿïррęт !!! + + diff --git a/src/cascadia/TerminalSettingsModel/Resources/qps-ploca/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/qps-ploca/Resources.resw index e93d8c85bee..fd40d604479 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/qps-ploca/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/qps-ploca/Resources.resw @@ -1,17 +1,17 @@ - + - @@ -126,6 +126,10 @@ Śрĺíŧ ρāлë !!! + + Òρëй ѕήїρφέţś ρªʼné !!! !! + This will open a pane with a list of the users's saved commands ("snippets") in it + Ţèѓmĩŋąĺ (Ρθŗτаьℓ℮) !!! !!! This display name is used when the Terminal application is running in a "portable" mode, where settings are not stored in a shared location. @@ -727,4 +731,7 @@ Οφёņ ǻвőųŧ đĭдłбģ !!! !! This will open the "about" dialog, to display version info and other documentation - \ No newline at end of file + + Ŝâνê Ŝⁿïррęт !!! + + diff --git a/src/cascadia/TerminalSettingsModel/Resources/qps-plocm/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/qps-plocm/Resources.resw index e93d8c85bee..fd40d604479 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/qps-plocm/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/qps-plocm/Resources.resw @@ -1,17 +1,17 @@ - + - @@ -126,6 +126,10 @@ Śрĺíŧ ρāлë !!! + + Òρëй ѕήїρφέţś ρªʼné !!! !! + This will open a pane with a list of the users's saved commands ("snippets") in it + Ţèѓmĩŋąĺ (Ρθŗτаьℓ℮) !!! !!! This display name is used when the Terminal application is running in a "portable" mode, where settings are not stored in a shared location. @@ -727,4 +731,7 @@ Οφёņ ǻвőųŧ đĭдłбģ !!! !! This will open the "about" dialog, to display version info and other documentation - \ No newline at end of file + + Ŝâνê Ŝⁿïррęт !!! + + diff --git a/src/cascadia/TerminalSettingsModel/Resources/ru-RU/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/ru-RU/Resources.resw index 1134777776e..ed30d16d2bc 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/ru-RU/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/ru-RU/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ Открыть диалоговое окно "О программе" This will open the "about" dialog, to display version info and other documentation + + Сохранить фрагмент + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/zh-CN/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/zh-CN/Resources.resw index 39c3259a3e3..9675120f087 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/zh-CN/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/zh-CN/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ 打开“关于”对话框 This will open the "about" dialog, to display version info and other documentation + + 保存代码段 + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsModel/Resources/zh-TW/Resources.resw b/src/cascadia/TerminalSettingsModel/Resources/zh-TW/Resources.resw index 946440cb0c0..e81611c5508 100644 --- a/src/cascadia/TerminalSettingsModel/Resources/zh-TW/Resources.resw +++ b/src/cascadia/TerminalSettingsModel/Resources/zh-TW/Resources.resw @@ -1,17 +1,17 @@  - @@ -727,4 +727,7 @@ 開啟 [關於] 對話方塊 This will open the "about" dialog, to display version info and other documentation + + 儲存程式碼片段 + \ No newline at end of file From 67d2636c816ce86cfeab43a59813762eb4bd7d3d Mon Sep 17 00:00:00 2001 From: "Dustin L. Howett" Date: Tue, 9 Jul 2024 11:29:25 -0500 Subject: [PATCH 6/7] Revert "nuget: move to shine-oss tenant rather than ms tenant (#17451)" This reverts commit e9212e43a36cbe59d645894b7200e23b6d6e2c5d. --- NuGet.Config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NuGet.Config b/NuGet.Config index 57c3defd1dc..272d5f0b400 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -4,7 +4,7 @@ - + From 6c01d736fa3340863a5427d2f2567036bb5acbaf Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Tue, 9 Jul 2024 11:25:17 -0500 Subject: [PATCH 7/7] Add a close button to the Snippets pane (#17528) As discussed in the bug bash. It should be closable with a button. This also changes the tab color to match the Settings tabs. This also fixes a crash where dragging just a snippets pane out to it's own window would crash. --- .../Resources/en-US/Resources.resw | 6 ++++ .../TerminalApp/SnippetsPaneContent.cpp | 7 ++++- .../TerminalApp/SnippetsPaneContent.h | 1 + .../TerminalApp/SnippetsPaneContent.xaml | 23 +++++++++++---- src/cascadia/TerminalApp/TerminalPage.cpp | 29 ++++++++++++------- 5 files changed, 49 insertions(+), 17 deletions(-) diff --git a/src/cascadia/TerminalApp/Resources/en-US/Resources.resw b/src/cascadia/TerminalApp/Resources/en-US/Resources.resw index 95babb6e4a6..26823366401 100644 --- a/src/cascadia/TerminalApp/Resources/en-US/Resources.resw +++ b/src/cascadia/TerminalApp/Resources/en-US/Resources.resw @@ -935,4 +935,10 @@ Action save failed + + Close pane + + + Close pane + diff --git a/src/cascadia/TerminalApp/SnippetsPaneContent.cpp b/src/cascadia/TerminalApp/SnippetsPaneContent.cpp index 7e8c1695543..b772cddac43 100644 --- a/src/cascadia/TerminalApp/SnippetsPaneContent.cpp +++ b/src/cascadia/TerminalApp/SnippetsPaneContent.cpp @@ -106,7 +106,7 @@ namespace winrt::TerminalApp::implementation winrt::WUX::Media::Brush SnippetsPaneContent::BackgroundBrush() { - static const auto key = winrt::box_value(L"UnfocusedBorderBrush"); + static const auto key = winrt::box_value(L"SettingsUiTabBrush"); return ThemeLookup(WUX::Application::Current().Resources(), _settings.GlobalSettings().CurrentTheme().RequestedTheme(), key) @@ -138,6 +138,11 @@ namespace winrt::TerminalApp::implementation _runCommand(taskVM->Command()); } } + void SnippetsPaneContent::_closePaneClick(const Windows::Foundation::IInspectable& /*sender*/, + const Windows::UI::Xaml::RoutedEventArgs&) + { + Close(); + } // Called when one of the items in the list is tapped, or enter/space is // pressed on it while focused. Notably, this isn't the Tapped event - it diff --git a/src/cascadia/TerminalApp/SnippetsPaneContent.h b/src/cascadia/TerminalApp/SnippetsPaneContent.h index 493121c9150..2d3352e98a5 100644 --- a/src/cascadia/TerminalApp/SnippetsPaneContent.h +++ b/src/cascadia/TerminalApp/SnippetsPaneContent.h @@ -55,6 +55,7 @@ namespace winrt::TerminalApp::implementation winrt::Windows::Foundation::Collections::IObservableVector _allTasks{ nullptr }; void _runCommandButtonClicked(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs&); + void _closePaneClick(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs&); void _filterTextChanged(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args); void _updateFilteredCommands(); diff --git a/src/cascadia/TerminalApp/SnippetsPaneContent.xaml b/src/cascadia/TerminalApp/SnippetsPaneContent.xaml index a887b72b757..f7184c96cf7 100644 --- a/src/cascadia/TerminalApp/SnippetsPaneContent.xaml +++ b/src/cascadia/TerminalApp/SnippetsPaneContent.xaml @@ -225,11 +225,24 @@ - + + + + ()->GetRootPane()->WalkTree([](const auto& p) -> bool { - if (const auto& snippets{ p->GetContent().try_as() }) + if (const auto& focusedTab{ _GetFocusedTab() }) + { + const auto rootPane{ focusedTab.try_as()->GetRootPane() }; + const bool found = rootPane == nullptr ? false : rootPane->WalkTree([](const auto& p) -> bool { + if (const auto& snippets{ p->GetContent().try_as() }) + { + snippets->Focus(FocusState::Programmatic); + return true; + } + return false; + }); + // Bail out if we already found one. + if (found) { - snippets->Focus(FocusState::Programmatic); - return true; + return nullptr; } - return false; - }); - // Bail out if we already found one. - if (found) - { - return nullptr; } const auto& tasksContent{ winrt::make_self() }; @@ -4687,7 +4691,10 @@ namespace winrt::TerminalApp::implementation { const auto themeBrush{ tabRowBg.Evaluate(res, terminalBrush, true) }; bgColor = ThemeColor::ColorFromBrush(themeBrush); - TitlebarBrush(themeBrush); + // If the tab content returned nullptr for the terminalBrush, we + // _don't_ want to use it as the tab row background. We want to just + // use the default tab row background. + TitlebarBrush(themeBrush ? themeBrush : backgroundSolidBrush); } else {