Compare commits

..
Author SHA1 Message Date
Felix Seidl 35c1f2d305 fix flute run not respecting UseConPty setting
fixes #941
2021-07-28 22:22:47 +02:00
Felix Seidl 4c5e13607f add missing messager registrations 2021-07-24 14:29:50 +02:00
Felix Seidl ae4a82ab5d fix command bar backgrounds 2021-07-24 14:29:14 +02:00
Felix Seidl 76312e042b update dependencies 2021-07-24 13:14:48 +02:00
Mertcan Davulcu 2bd2ec94b3 Update README.md (#928) 2021-06-20 13:24:04 +02:00
dependabot[bot] b0f651dccb Bump lodash from 4.17.20 to 4.17.21 in /FluentTerminal.Client (#917)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-10 07:42:13 +02:00
dependabot[bot] c63a6bbc53 Bump browserslist from 4.14.5 to 4.16.6 in /FluentTerminal.Client (#922)
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.14.5 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.14.5...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-30 11:56:46 +02:00
Felix Seidl e7df4a0743 Revert WinUI (Settigs Crash) 2021-03-28 10:48:02 +02:00
Felix Seidl 823205fa69 Migrate to WCT MVVM 2021-03-27 18:08:51 +01:00
Felix Seidl 5fd7b00778 update nuget dependencies 2021-03-27 16:29:20 +01:00
Felix Seidl 3fb321a0d8 added nuget.config 2021-03-27 15:54:27 +01:00
Felix Seidl a815ccb64a Update main.yml 2021-03-27 15:50:32 +01:00
J04n5mith ebccdc0329 added quotes in the icon copy line (first line) (#897)
The icon does not copy when you have a path with blanks.
2021-03-06 12:58:53 +01:00
Mertcan Davulcu f9860ae8dd Clear Turkish Support (#892)
* Update Resources.resw

* Update Resources.resw
2021-02-07 22:03:35 +01:00
Felix Seidl 1a8a77bf66 Update main.yml 2021-02-07 21:25:16 +01:00
nckrkllkc 0d02b83279 Update Resources.resw (#891)
Spelling errors in Turkish language are fixed.
2021-02-07 21:12:16 +01:00
Felix Seidl c263489f40 Increase version 2021-01-19 18:41:37 +01:00
Felix Seidl b8610f6ccb Fix problems with adding/deleting profiles 2021-01-19 17:51:45 +01:00
Felix Seidl 9a1783c221 Update translations 2021-01-18 22:28:45 +01:00
akanealwandFelix Seidl 6a123ed953 Made changes to install.bat and added install_with_icon.bat to fix issues #867 and #719 respectively (#884)
* Create README.md

* Update README.md

* Add files via upload

* Update README.md

* Add files via upload

* Update README.md

* Update Install.bat

Added entry for drive context menu item.

* Update Install_with_icon.bat

* Update Uninstall.bat

Added extra uninstall command for added drive context menu item

* Update Install_with_icon.bat

Added another entry for drive context menu integration

* Update Install.bat

* Update README.md

* Update Install_with_icon.bat

* Update README.md

* Update Install_with_icon.bat

* remove icon file on uninstall

Co-authored-by: Felix Seidl <f.seidl@me.com>
2021-01-18 22:13:24 +01:00
Faris Cakaric 3fd4625d9e Added Bosnian (#880) 2021-01-17 12:29:30 +01:00
Faris CakaricandFelix Seidl 783d03848f Added Bosnian (#879)
* Added Bosnian

* include in project

Co-authored-by: Felix Seidl <f.seidl@me.com>
2021-01-17 12:29:16 +01:00
Felix Seidl 74e63f9abf downgrade WinUI to prevent crash when settings is opened the second time 2021-01-17 12:00:14 +01:00
Felix Seidl 92edcd224d fix sdk reference 2021-01-16 17:57:56 +01:00
Felix Seidl a1c9350818 increase version 2020-11-16 17:18:30 +01:00
Felix Seidl f6040e8c56 Update translations 2020-11-15 12:29:05 +01:00
Felix Seidl 44c7a0a2ae Update WinUI to fix crash in color picker
fixes #860
2020-11-15 12:27:50 +01:00
Felix Seidl 7491618109 fix esc key 2020-11-15 11:21:34 +01:00
RhavoX 78361ee160 Adjusted the behavior of search so that the previous text is selected once search is invoked when being open already (#869) 2020-11-15 11:03:32 +01:00
Felix Seidl 774665151e Increase version 2020-11-07 12:32:08 +01:00
Felix Seidl 8d2b696658 list all profiles in the new tab/window menu 2020-10-30 13:14:38 +01:00
Felix Seidl 6c7ea3bed6 Update translations 2020-10-30 12:09:25 +01:00
Felix Seidl 3e22d56468 update node dependencies 2020-10-30 11:46:24 +01:00
Felix Seidl b60fd38d51 update nuget dependencies 2020-10-30 11:46:14 +01:00
RhavoX 6e3cfa634e Improved the way the search flyout is behaving. (#826)
The search command will now show the flyout and focus on the textbox. If the textbox has no focus and search command is used again it will focus the textbox.
A new command has been added to close the search flyout (escape by default) which can now be used to close it.
2020-09-27 22:44:22 +02:00
Xherdi Lika 6d57cdfdab ✨ Updated Readme to include link to vscode extension (#842) 2020-09-03 19:11:53 +02:00
Felix Seidl 198853d37b Merge branch 'master' of https://github.com/felixse/FluentTerminal 2020-08-07 14:56:37 +02:00
Felix Seidl 68208ff0ec increase version 2020-08-07 14:56:35 +02:00
RhavoX e3f079701f Added missing Command.ReconnectTab localisation entries. (#827) 2020-08-06 14:59:22 +02:00
DennisandEric Cornelissen 2d7d1810a9 Update Dutch translations (#822)
* Update Dutch translations

Add new translations.
Fix typo's.

* Update FluentTerminal.App/Strings/nl/Resources.resw

Fix typo

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>

* Update FluentTerminal.App/Strings/nl/Resources.resw

Fix typo

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>

* Update FluentTerminal.App/Strings/nl/Resources.resw

Cut English text from Dutch translation

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>

* Update FluentTerminal.App/Strings/nl/Resources.resw

Fix typo

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>

* Update FluentTerminal.App/Strings/nl/Resources.resw

Fix typo

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>

* Update Resources.resw

Fix typo

* Fix typo

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>
2020-08-06 14:53:21 +02:00
dependabot[bot] cbc90cc94c Bump elliptic from 6.5.2 to 6.5.3 in /FluentTerminal.Client (#825)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-01 23:01:17 +02:00
Felix Seidl 0d48fac129 Add missing store constant for x64
fixes #768
2020-07-21 22:21:45 +02:00
Felix Seidl 099f7c701d Add Esperanto and Uyghur localizations 2020-07-21 22:08:17 +02:00
RhavoXandFelix Seidl 2057c6d189 Fixed almost all warnings in the project. (#820)
* Fixed almost all warnings in the project. Only lanuage warning remains for the bundle project due to weird AZ language detection issues.

* changed binding mode to onetime to avoid binding warnings

Co-authored-by: Felix Seidl <f.seidl@me.com>
2020-07-20 21:55:44 +02:00
RhavoX 56ed197b02 Fix for a crash in search popup. (#817)
The crash occured because the popup is treated like the mainwindow and the main window grabs keypresses. Because of this a paste command can be executed on the main window when attempting to paste into the search box (when ctrl-c is used as a paste binding).
Adding an empty binding for copy and paste resolves this. Additionally it was required to prevent the terminal view from handling paste requests to prevent pasting to searchbox and terminal at the same time.
2020-07-18 10:28:52 +02:00
Loreno10andFelix Seidl 5642e755af ADD base for increasing and decreasing font size with keys (#728)
* ADD base for increasing and decreasing font size with keys

* finish resize implementation

Co-authored-by: Felix Seidl <f.seidl@me.com>
2020-07-15 20:00:56 +02:00
RhavoX 981eb9b362 fixes #761 (#814)
Also copies title to other tabs
2020-07-15 17:39:41 +02:00
RhavoX dd6917e1f7 Allows to hide dialog on escape press even when textbox has focus. (#815)
Also regains focus on wrong input when enter is used instead of allowing the terminal in the background to grab it.
2020-07-15 07:46:34 +02:00
RhavoX e9769a776d fixes #790 (#813) 2020-07-15 07:43:15 +02:00
RhavoX 1068ca98e8 Fix for lack of focus on search textbox. Reason being that attempt to focus was set before the control was visible most of the time. (#812) 2020-07-13 21:04:10 +02:00
Felix Seidl c2c93878c7 Update README.md 2020-06-28 17:22:51 +02:00
Felix Seidl cded0ad97a Update readme 2020-06-28 17:18:40 +02:00
Felix Seidl fb299121a3 Fix localisation of tab close button tooltip
fixes #764
2020-06-28 17:12:48 +02:00
Felix Seidl cce7b6e0f1 update dependencies 2020-06-28 17:06:05 +02:00
Felix Seidl c169dd496b update to latest xterm.js 2020-06-28 17:03:24 +02:00
kocuvan 70d117cb64 Added Slovenian translation (#789) 2020-06-06 22:45:33 +02:00
Max Hora 39e8f2ba7a Export/import settings for default shell profile and default theme. (#773) 2020-06-01 10:52:59 +02:00
Felix Seidl 0a8c186a98 update xterm 2020-05-30 11:41:14 +02:00
Felix Seidl ea23b37947 Update nuget dependencies 2020-05-30 11:32:38 +02:00
Max Hora ea50883d1c Enhance OpenSSH output on restart of session. (#767) 2020-05-24 14:09:08 +02:00
Felix Seidl 1c08a6d486 Increase version 2020-05-23 10:30:19 +02:00
Felix Seidl 9f75007e21 Added croatian translation 2020-05-09 11:04:31 +02:00
Felix Seidl 38e1c4f68f temporarily remove smart buffer 2020-05-02 21:07:46 +02:00
Felix Seidl 57cfa6e99a Update translations 2020-05-02 20:55:50 +02:00
Felix Seidl 1e7831c9a5 revert Win2D to fix build issues 2020-05-02 20:49:24 +02:00
Felix Seidl 16730d2810 update dependencies 2020-04-25 23:39:32 +02:00
Max Hora 4ca061baa9 Fixes random hanging on closing of ConPty session by disposing pseudo console before its writing pipe. (#733) 2020-04-23 08:04:37 +02:00
Felix Seidl b753dcbf4d Update translations 2020-04-20 21:33:01 +02:00
Felix Seidl 7dc2c85d62 Update main.yml 2020-04-15 22:19:02 +02:00
Felix Seidl 5e76cf9967 Fix CI 2020-04-15 22:10:15 +02:00
Felix Seidl 8999ded059 Fix search panel icon for older windows 10 versions
fixes #721
2020-04-15 22:00:39 +02:00
Felix Seidl 6d83e357d6 Revert to official xterm.js release and update dependencies 2020-04-13 12:06:19 +02:00
Max Hora 05c385342c Fixes performance issues of multiple ConPty sessions with fast output. (#715) 2020-04-12 23:00:47 +02:00
Felix Seidl 0dc1a1cd5d don't treat AltGr like Alt+Ctrl
fixes #699
2020-04-10 15:03:19 +02:00
Felix Seidl e1fc980779 fix missing translations for tab color names 2020-04-10 14:00:40 +02:00
Felix Seidl ccd8c1eaa4 improve settings import/export 2020-04-10 13:52:23 +02:00
Restia666Ashdoll ad1a933207 Update README.md (#707) 2020-04-08 08:04:46 +02:00
Felix Seidl 8d7c57d6fe allow more keybindings (again)
fixes #697
2020-04-05 18:33:43 +02:00
Felix Seidl 8d039f59ef prevent conpty from changing the title to its executable location
fixes #687
2020-04-05 17:43:53 +02:00
Felix Seidl cb8d3cabc7 fix missing tab color names 2020-04-05 17:23:47 +02:00
Felix Seidl 579def4f63 Fix tab color for unselected tabs
fixes #688
2020-04-05 17:19:08 +02:00
Max Hora 5d54d448b0 Rollback to use double quotes around identity file for ssh cli cmd. (#698) 2020-04-05 13:28:46 +02:00
Max HoraandFelix Seidl dec492e39a Reconnect failed tab. (#682)
* Reconnect failed tab.

* Reconnect session overlay; Reconnect tab command is removed from context menus.

* some ui changes + localization

Co-authored-by: Felix Seidl <f.seidl@me.com>
2020-03-31 20:01:09 +02:00
Felix Seidl 20540937fe Update main.yml 2020-03-27 12:26:04 +01:00
Felix Seidl 3dd29d7bb7 Update readme 2020-03-27 12:05:35 +01:00
Felix Seidl 90ac2b0c7c Increase version 2020-03-27 11:56:47 +01:00
Felix Seidl e459255b23 Update translations 2020-03-25 19:27:45 +01:00
Felix Seidl 9165716899 Update main.yml 2020-03-25 19:14:16 +01:00
Felix Seidl 49cf63c6b8 use xterm fork to fix selection color issues 2020-03-25 18:42:47 +01:00
Felix Seidl d0b5f99e28 fix issue displaying the selected terminal theme in settings 2020-03-25 17:49:17 +01:00
Felix Seidl e1b28d2f83 fix crash on quick launch to new window (#672) 2020-03-25 17:47:32 +01:00
Felix Seidl 24a2a23b23 compress large tile png to fix CI 2020-03-24 23:15:38 +01:00
Felix Seidl 25536e9bcb New icon 2020-03-24 23:01:33 +01:00
Felix Seidl 2f984fc411 addded chinese simplified, indonesian and arabic localizations 2020-03-24 21:48:59 +01:00
Aleksandar Pesic 596eee712b "Use buffer" profile settings implemented. (#680) 2020-03-23 18:54:06 +01:00
Felix Seidl 7b18037862 Update to latest UWP version 2020-03-21 10:05:16 +01:00
Felix Seidl 41cffb1a1c fix security issues 2020-03-20 16:32:35 +01:00
Felix Seidl 6ddfba93d9 fix app menu placement 2020-03-15 11:18:31 +01:00
Felix Seidl 6a1e12c83a Fix crash when opening menu in older Windows 10 versions
fixes #528
2020-03-15 10:54:48 +01:00
Felix Seidl e24261ab02 added new mouse action: copy selection or paste if none
fixes #298
2020-03-07 14:25:08 +01:00
Felix Seidl 60d294b20f improved icons in app menu 2020-03-07 11:59:23 +01:00
Felix Seidl 1ee051a106 remove obsolete line ending translation setting 2020-03-07 11:41:19 +01:00
Felix Seidl ea1a167dd3 improve paste implementation 2020-03-07 11:09:21 +01:00
Felix Seidl 1a91a6b22e small layout fix 2020-03-07 10:36:30 +01:00
Felix Seidl 941c525409 fix ~ input on german keyboard layout 2020-03-05 15:59:26 +01:00
Felix Seidl d7f741c2ad Move show text copied notification option to general settings 2020-03-04 22:21:24 +01:00
Felix Seidl ab73b28582 Use profile name as default tab title
fixes #639
2020-03-03 22:40:36 +01:00
Felix Seidl 95ccf3a984 Removed profile selection dialog 2020-03-03 22:10:33 +01:00
Felix Seidl 93eccc3470 Localize search options, focus search on open 2020-03-03 21:33:05 +01:00
Felix Seidl f86f20321d Rework tab context menu 2020-03-03 18:39:38 +01:00
Felix Seidl 475e2da999 Reworked context menu 2020-03-01 13:04:26 +01:00
Felix Seidl 985cac99e6 Use MDL2 icons for settings 2020-02-29 22:18:55 +01:00
Felix Seidl 832b9bdf97 Align resize overlay style to new search overlay 2020-02-29 21:45:40 +01:00
Max Risuhin 264502e1e6 Disable WebView zooming to prevent crash on too small font size. (#673) 2020-02-29 20:40:34 +01:00
Felix Seidl 6015dbda2f fix crash on ctrl+f when search is open 2020-02-29 20:40:01 +01:00
Felix Seidl d879ee02fc better background color for search overlay 2020-02-29 20:39:43 +01:00
Felix Seidl 27c55c6f09 Reworked search view, added search options 2020-02-29 19:09:54 +01:00
289 changed files with 22929 additions and 8296 deletions

No files matched your search

+3 -3
View File
@@ -13,11 +13,11 @@ jobs:
- name: Build client
working-directory: ./FluentTerminal.Client
run: |
npm install
npm run build
yarn
yarn build
- name: Setup MSBuild.exe
uses: warrenbuckley/Setup-MSBuild@v1
uses: microsoft/setup-msbuild@v1.0.2
- name: MSBuild
run: msbuild FluentTerminal.sln -t:build -p:Configuration=Debug -p:Platform=x64 -m -restore
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

@@ -1,3 +1,4 @@
reg add "HKCU\Software\Classes\Directory\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%1\"" /f
reg add "HKCU\Software\Classes\Directory\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
reg add "HKCU\Software\Classes\Directory\Background\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
reg add "HKCU\Software\Classes\Drive\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
reg add "HKCU\Software\Classes\LibraryFolder\Background\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
@@ -0,0 +1,9 @@
copy /y FluentTerminal.ico "%LOCALAPPDATA%\Microsoft\WindowsApps"
reg add "HKCU\Software\Classes\Directory\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
reg add "HKCU\Software\Classes\Directory\shell\Open Fluent Terminal here" /v icon /t REG_SZ /d "%LOCALAPPDATA%\Microsoft\WindowsApps\FluentTerminal.ico" /f
reg add "HKCU\Software\Classes\Directory\Background\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
reg add "HKCU\Software\Classes\Directory\Background\shell\Open Fluent Terminal here" /v icon /t REG_SZ /d "%LOCALAPPDATA%\Microsoft\WindowsApps\FluentTerminal.ico" /f
reg add "HKCU\Software\Classes\Drive\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
reg add "HKCU\Software\Classes\Drive\shell\Open Fluent Terminal here" /v icon /t REG_SZ /d "%LOCALAPPDATA%\Microsoft\WindowsApps\FluentTerminal.ico" /f
reg add "HKCU\Software\Classes\LibraryFolder\Background\shell\Open Fluent Terminal here\command" /d "\"%LOCALAPPDATA%\Microsoft\WindowsApps\flute.exe\" new \"%%V\"" /f
reg add "HKCU\Software\Classes\LibraryFolder\Background\shell\Open Fluent Terminal here" /v icon /t REG_SZ /d "%LOCALAPPDATA%\Microsoft\WindowsApps\FluentTerminal.ico" /f
@@ -0,0 +1,2 @@
If you want a an icon for the context menu entries, download the .ico file and put in the same directory as the Install_with_icon.bat file then run it.
The same Uninstall.bat works for both Install.bat files.
@@ -1,3 +1,5 @@
reg delete "HKCU\Software\Classes\Directory\shell\Open Fluent Terminal here" /f
reg delete "HKCU\Software\Classes\Directory\Background\shell\Open Fluent Terminal here" /f
reg delete "HKCU\Software\Classes\Drive\shell\Open Fluent Terminal here" /f
reg delete "HKCU\Software\Classes\LibraryFolder\Background\shell\Open Fluent Terminal here" /f
del %LOCALAPPDATA%\Microsoft\WindowsApps\FluentTerminal.ico
@@ -23,7 +23,7 @@ namespace FluentTerminal.App.Services.Test
public void ShowCreateKeyBindingDialog_Default_UsesCreateKeyBindingDialog()
{
var createKeyBindingDialog = new Mock<ICreateKeyBindingDialog>();
var dialogService = new DialogService(Mock.Of<IShellProfileSelectionDialog>, Mock.Of<IMessageDialog>, () => createKeyBindingDialog.Object, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
var dialogService = new DialogService(Mock.Of<IMessageDialog>, () => createKeyBindingDialog.Object, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
dialogService.ShowCreateKeyBindingDialog();
@@ -36,7 +36,7 @@ namespace FluentTerminal.App.Services.Test
var title = string.Empty;
var content = _fixture.Create<string>();
var buttons = _fixture.CreateMany<DialogButton>(2);
var dialogService = new DialogService(Mock.Of<IShellProfileSelectionDialog>, Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
var dialogService = new DialogService(Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
Func<Task<DialogButton>> showMessageDialogAsnyc = () => dialogService.ShowMessageDialogAsync(title, content, buttons.ElementAt(0), buttons.ElementAt(1));
@@ -49,7 +49,7 @@ namespace FluentTerminal.App.Services.Test
var title = _fixture.Create<string>();
var content = string.Empty;
var buttons = _fixture.CreateMany<DialogButton>(2);
var dialogService = new DialogService(Mock.Of<IShellProfileSelectionDialog>, Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
var dialogService = new DialogService(Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
Func<Task<DialogButton>> showMessageDialogAsnyc = () => dialogService.ShowMessageDialogAsync(title, content, buttons.ElementAt(0), buttons.ElementAt(1));
@@ -61,7 +61,7 @@ namespace FluentTerminal.App.Services.Test
{
var title = _fixture.Create<string>();
var content = _fixture.Create<string>();
var dialogService = new DialogService(Mock.Of<IShellProfileSelectionDialog>, Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
var dialogService = new DialogService(Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
Func<Task<DialogButton>> showMessageDialogAsnyc = () => dialogService.ShowMessageDialogAsync(title, content);
@@ -75,30 +75,19 @@ namespace FluentTerminal.App.Services.Test
var content = _fixture.Create<string>();
var buttons = _fixture.CreateMany<DialogButton>(2);
var messageDialog = new Mock<IMessageDialog>();
var dialogService = new DialogService(Mock.Of<IShellProfileSelectionDialog>, () => messageDialog.Object, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
var dialogService = new DialogService(() => messageDialog.Object, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
dialogService.ShowMessageDialogAsync(title, content, buttons.ElementAt(0), buttons.ElementAt(1));
messageDialog.Verify(x => x.ShowAsync(), Times.Once);
}
[Fact]
public void ShowProfileSelectionDialogAsync_Default_UsesShellProfileSelectionDialog()
{
var shellProfileSelectionDialog = new Mock<IShellProfileSelectionDialog>();
var dialogService = new DialogService(() => shellProfileSelectionDialog.Object, Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, Mock.Of<IInputDialog>, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
dialogService.ShowProfileSelectionDialogAsync();
shellProfileSelectionDialog.Verify(x => x.SelectProfileAsync(), Times.Once);
}
[Fact]
public void ShowInputDialogAsync_UsesIInputDialogSetTitle()
{
var title = "title";
var inputDialog = new Mock<IInputDialog>();
var dialogService = new DialogService(Mock.Of<IShellProfileSelectionDialog>, Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, () => inputDialog.Object, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
var dialogService = new DialogService(Mock.Of<IMessageDialog>, Mock.Of<ICreateKeyBindingDialog>, () => inputDialog.Object, Mock.Of<ISshConnectionInfoDialog>, Mock.Of<ICustomCommandDialog>, Mock.Of<IAboutDialog>);
dialogService.ShowInputDialogAsync(title);
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
@@ -11,13 +11,13 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoFixture" Version="4.11.0" />
<PackageReference Include="FluentAssertions" Version="5.10.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="AutoFixture" Version="4.17.0" />
<PackageReference Include="FluentAssertions" Version="5.10.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="Moq" Version="4.16.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
@@ -1,7 +1,6 @@
using AutoFixture;
using FluentAssertions;
using FluentTerminal.App.Services.Implementation;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using Moq;
@@ -11,8 +10,8 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using FluentTerminal.Models.Messages;
using GalaSoft.MvvmLight.Messaging;
using Xunit;
using Microsoft.Toolkit.Mvvm.Messaging;
namespace FluentTerminal.App.Services.Test
{
@@ -167,8 +166,8 @@ namespace FluentTerminal.App.Services.Test
};
var currentThemeChangedEventInvoked = false;
var settingsService = new SettingsService(defaultValueProvider, applicationDataContainers);
Messenger.Default.Register<CurrentThemeChangedMessage>(this,
message => currentThemeChangedEventInvoked = true);
WeakReferenceMessenger.Default.Register<CurrentThemeChangedMessage>(this,
(r, m) => currentThemeChangedEventInvoked = true);
settingsService.SaveCurrentThemeId(currentThemeId);
@@ -217,8 +216,8 @@ namespace FluentTerminal.App.Services.Test
SshProfiles = Mock.Of<IApplicationDataContainer>()
};
var settingsService = new SettingsService(defaultValueProvider, applicationDataContainers);
Messenger.Default.Register<CurrentThemeChangedMessage>(this,
message => currentThemeChangedEventInvoked = true);
WeakReferenceMessenger.Default.Register<CurrentThemeChangedMessage>(this,
(r, m) => currentThemeChangedEventInvoked = true);
settingsService.SaveTheme(theme);
@@ -382,8 +381,8 @@ namespace FluentTerminal.App.Services.Test
SshProfiles = Mock.Of<IApplicationDataContainer>()
};
var settingsService = new SettingsService(defaultValueProvider, applicationDataContainers);
Messenger.Default.Register<TerminalOptionsChangedMessage>(this,
message => terminalOptionsChangedEventInvoked = true);
WeakReferenceMessenger.Default.Register<TerminalOptionsChangedMessage>(this,
(r, m) => terminalOptionsChangedEventInvoked = true);
settingsService.SaveTerminalOptions(terminalOptions);
@@ -453,8 +452,7 @@ namespace FluentTerminal.App.Services.Test
SshProfiles = Mock.Of<IApplicationDataContainer>()
};
var settingsService = new SettingsService(defaultValueProvider, applicationDataContainers);
Messenger.Default.Register<ApplicationSettingsChangedMessage>(this,
a => applicationSettingsChangedEventInvoked = true);
WeakReferenceMessenger.Default.Register<ApplicationSettingsChangedMessage>(this, (r, m) => applicationSettingsChangedEventInvoked = true);
settingsService.SaveApplicationSettings(applicationSettings);
@@ -556,8 +554,8 @@ namespace FluentTerminal.App.Services.Test
SshProfiles = Mock.Of<IApplicationDataContainer>()
};
var settingsService = new SettingsService(defaultValueProvider, applicationDataContainers);
Messenger.Default.Register<KeyBindingsChangedMessage>(this,
message => keyBindingsChangedEventInvoked = true);
WeakReferenceMessenger.Default.Register<KeyBindingsChangedMessage>(this,
(r, m) => keyBindingsChangedEventInvoked = true);
settingsService.SaveKeyBindings(command.ToString(), keyBindings);
@@ -605,8 +603,8 @@ namespace FluentTerminal.App.Services.Test
SshProfiles = Mock.Of<IApplicationDataContainer>()
};
var settingsService = new SettingsService(defaultValueProvider, applicationDataContainers);
Messenger.Default.Register<KeyBindingsChangedMessage>(this,
message => keyBindingsChangedEventInvoked = true);
WeakReferenceMessenger.Default.Register<KeyBindingsChangedMessage>(this,
(r, m) => keyBindingsChangedEventInvoked = true);
settingsService.ResetKeyBindings();
@@ -1,12 +0,0 @@
using FluentTerminal.Models;
using System.Threading.Tasks;
namespace FluentTerminal.App.Services.Dialogs
{
public interface IShellProfileSelectionDialog
{
ShellProfile SelectedProfile { get; }
Task<ShellProfile> SelectProfileAsync();
}
}
@@ -1,5 +1,4 @@
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml;
namespace FluentTerminal.App.Services.EventArgs
{
@@ -0,0 +1,23 @@
using System;
namespace FluentTerminal.App.Services.Exceptions
{
public class ReadTextFileException : Exception
{
public ReadTextFileException() : base()
{
}
public ReadTextFileException(string message) : base(message)
{
}
public ReadTextFileException(string message, Exception innerException) : base(message, innerException)
{
}
protected ReadTextFileException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context)
{
}
}
}
@@ -1,6 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FluentTerminal.App.Services.Exceptions
{
@@ -7,12 +7,12 @@
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="MvvmLightLibs" Version="5.4.1.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="PListNet" Version="3.0.0" />
<PackageReference Include="RestSharp" Version="106.10.1" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.0.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="PListNet" Version="3.2.0" />
<PackageReference Include="RestSharp" Version="106.12.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="System.Runtime.InteropServices.WindowsRuntime" Version="4.3.0" />
</ItemGroup>
@@ -1,12 +0,0 @@
using FluentTerminal.Models.Enums;
namespace FluentTerminal.App.Services
{
// This validator is needed because accelerator key has to be member of VirtualKey enum.
public interface IAcceleratorKeyValidator
{
bool Valid(int key);
bool Valid(ExtendedVirtualKey key);
}
}
@@ -14,9 +14,8 @@ namespace FluentTerminal.App.Services
{
Task<DialogButton> ShowMessageDialogAsync(string title, string content, params DialogButton[] buttons);
Task<ShellProfile> ShowProfileSelectionDialogAsync();
Task<KeyBinding> ShowCreateKeyBindingDialog();
Task<string> ShowInputDialogAsync(string title);
Task<SshProfile> ShowSshConnectionInfoDialogAsync(SshProfile input = null);
@@ -35,6 +35,8 @@ namespace FluentTerminal.App.Services
Task SaveTextFileAsync(string path, string content);
Task<string> ReadTextFileAsync(string path);
Task<string> GetSshConfigDirAsync();
Task<string[]> GetFilesFromSshConfigDirAsync();
@@ -1,5 +1,4 @@
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.Models;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using System;
using System.Collections.Generic;
@@ -42,7 +41,8 @@ namespace FluentTerminal.App.Services.Implementation
EnableLogging = false,
PrintableOutputOnly = true,
LogDirectoryPath = logDirectoryPath,
UseConPty = true
UseConPty = true,
ShowTextCopied = false
};
}
@@ -114,6 +114,18 @@ namespace FluentTerminal.App.Services.Implementation
}
};
case Command.ReconnectTab:
return new List<KeyBinding>
{
new KeyBinding
{
Command = nameof(Command.ReconnectTab),
Ctrl = true,
Alt = true,
Key = (int)ExtendedVirtualKey.R
}
};
case Command.NewTab:
return new List<KeyBinding>
{
@@ -126,18 +138,6 @@ namespace FluentTerminal.App.Services.Implementation
}
};
case Command.ConfigurableNewTab:
return new List<KeyBinding>
{
new KeyBinding
{
Command = nameof(Command.ConfigurableNewTab),
Ctrl = true,
Alt = true,
Key = (int)ExtendedVirtualKey.T
}
};
case Command.NewSshTab:
return new List<KeyBinding>
{
@@ -169,8 +169,8 @@ namespace FluentTerminal.App.Services.Implementation
{
Command = nameof(Command.NewCustomCommandTab),
Ctrl = true,
Shift = true,
Key = (int)ExtendedVirtualKey.Q
Alt = true,
Key = (int)ExtendedVirtualKey.T
}
};
@@ -182,7 +182,7 @@ namespace FluentTerminal.App.Services.Implementation
Command = nameof(Command.NewCustomCommandWindow),
Ctrl = true,
Alt = true,
Key = (int)ExtendedVirtualKey.Q
Key = (int)ExtendedVirtualKey.N
}
};
@@ -222,18 +222,6 @@ namespace FluentTerminal.App.Services.Implementation
}
};
case Command.ConfigurableNewWindow:
return new List<KeyBinding>
{
new KeyBinding
{
Command = nameof(Command.ConfigurableNewWindow),
Ctrl = true,
Alt = true,
Key = (int)ExtendedVirtualKey.N
}
};
case Command.ShowSettings:
return new List<KeyBinding>
{
@@ -242,8 +230,7 @@ namespace FluentTerminal.App.Services.Implementation
Command = nameof(Command.ShowSettings),
Ctrl = true,
Shift = true,
// I've had to replace ExtendedVirtualKey.Comma because it isn't a member of VirtualKey enum, thus cannot be shown in menu.
Key = (int)ExtendedVirtualKey.S
Key = (int)ExtendedVirtualKey.Comma
}
};
@@ -296,6 +283,16 @@ namespace FluentTerminal.App.Services.Implementation
}
};
case Command.CloseSearch:
return new List<KeyBinding>
{
new KeyBinding
{
Command = nameof(Command.CloseSearch),
Key = (int)ExtendedVirtualKey.Escape
}
};
case Command.ToggleFullScreen:
return new List<KeyBinding>
{
@@ -335,7 +332,36 @@ namespace FluentTerminal.App.Services.Implementation
Key = (int)ExtendedVirtualKey.L
}
};
case Command.IncreaseFontSize:
return new List<KeyBinding>
{
new KeyBinding
{
Command = nameof(Command.IncreaseFontSize),
Ctrl = true,
Key = (int)ExtendedVirtualKey.Plus
}
};
case Command.DecreaseFontSize:
return new List<KeyBinding>
{
new KeyBinding
{
Command = nameof(Command.DecreaseFontSize),
Ctrl = true,
Key = (int)ExtendedVirtualKey.Minus
}
};
case Command.ResetFontSize:
return new List<KeyBinding>
{
new KeyBinding
{
Command = nameof(Command.ResetFontSize),
Ctrl = true,
Key = (int)ExtendedVirtualKey.Number0
}
};
default:
throw new InvalidOperationException($"Default keybindings for Command '{command}' are missing");
}
@@ -353,7 +379,7 @@ namespace FluentTerminal.App.Services.Implementation
new TabTheme
{
Id = 0,
Name = I18N.Translate("TabTheme.None"),
Name = "TabTheme.None",
BackgroundOpacity = double.NaN,
BackgroundPointerOverOpacity = double.NaN,
BackgroundPressedOpacity = double.NaN,
@@ -364,37 +390,37 @@ namespace FluentTerminal.App.Services.Implementation
new TabTheme
{
Id = 1,
Name = I18N.Translate("TabTheme.Red"),
Name = "TabTheme.Red",
Color = "#E81123"
},
new TabTheme
{
Id = 2,
Name = I18N.Translate("TabTheme.Green"),
Name = "TabTheme.Green",
Color = "#10893E"
},
new TabTheme
{
Id = 3,
Name = I18N.Translate("TabTheme.Blue"),
Name = "TabTheme.Blue",
Color = "#0078D7"
},
new TabTheme
{
Id = 4,
Name = I18N.Translate("TabTheme.Purple"),
Name = "TabTheme.Purple",
Color = "#881798"
},
new TabTheme
{
Id = 5,
Name = I18N.Translate("TabTheme.Orange"),
Name = "TabTheme.Orange",
Color = "#FF8C00"
},
new TabTheme
{
Id = 6,
Name = I18N.Translate("TabTheme.Teal"),
Name = "TabTheme.Teal",
Color = "#00B7C3"
}
};
@@ -437,8 +463,8 @@ namespace FluentTerminal.App.Services.Implementation
Location = @"C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe",
PreInstalled = true,
WorkingDirectory = string.Empty,
LineEndingTranslation = LineEndingStyle.DoNotModify,
UseConPty = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 8), // Windows 10 1903+
UseBuffer = false,
EnvironmentVariables = new Dictionary<string, string>
{
["TERM"] = "xterm-256color"
@@ -465,8 +491,8 @@ namespace FluentTerminal.App.Services.Implementation
Location = @"C:\Windows\System32\cmd.exe",
PreInstalled = true,
WorkingDirectory = string.Empty,
LineEndingTranslation = LineEndingStyle.DoNotModify,
UseConPty = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 7), // Windows 10 1809+
UseBuffer = true,
EnvironmentVariables = new Dictionary<string, string>
{
["TERM"] = "xterm-256color"
@@ -493,8 +519,8 @@ namespace FluentTerminal.App.Services.Implementation
Location = @"C:\windows\system32\wsl.exe",
PreInstalled = true,
WorkingDirectory = string.Empty,
LineEndingTranslation = LineEndingStyle.ToLF,
UseConPty = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 7), // Windows 10 1809+
UseBuffer = true, //TODO: Set to false if the buffer causes issues with WSL.
EnvironmentVariables = new Dictionary<string, string>
{
["TERM"] = "xterm-256color"
@@ -7,7 +7,6 @@ namespace FluentTerminal.App.Services.Implementation
{
public class DialogService : IDialogService
{
private readonly Func<IShellProfileSelectionDialog> _shellProfileSelectionDialogFactory;
private readonly Func<IMessageDialog> _messageDialogFactory;
private readonly Func<ICreateKeyBindingDialog> _createKeyBindingDialogFactory;
private readonly Func<IInputDialog> _inputDialogFactory;
@@ -15,13 +14,11 @@ namespace FluentTerminal.App.Services.Implementation
private readonly Func<ICustomCommandDialog> _customCommandDialogFactory;
private readonly Func<IAboutDialog> _aboutDialogFactory;
public DialogService(Func<IShellProfileSelectionDialog> shellProfileSelectionDialogFactory,
Func<IMessageDialog> messageDialogFactory, Func<ICreateKeyBindingDialog> createKeyBindingDialogFactory,
public DialogService(Func<IMessageDialog> messageDialogFactory, Func<ICreateKeyBindingDialog> createKeyBindingDialogFactory,
Func<IInputDialog> inputDialogFactory, Func<ISshConnectionInfoDialog> sshConnectionInfoDialogFactory,
Func<ICustomCommandDialog> customCommandDialogFactory,
Func<IAboutDialog> aboutDialogFactory)
{
_shellProfileSelectionDialogFactory = shellProfileSelectionDialogFactory;
_messageDialogFactory = messageDialogFactory;
_createKeyBindingDialogFactory = createKeyBindingDialogFactory;
_inputDialogFactory = inputDialogFactory;
@@ -74,13 +71,6 @@ namespace FluentTerminal.App.Services.Implementation
return dialog.GetInput();
}
public Task<ShellProfile> ShowProfileSelectionDialogAsync()
{
var dialog = _shellProfileSelectionDialogFactory();
return dialog.SelectProfileAsync();
}
public Task<SshProfile> ShowSshConnectionInfoDialogAsync(SshProfile input = null) =>
_sshConnectionInfoDialogFactory().GetSshConnectionInfoAsync(input);
@@ -7,7 +7,7 @@ using System.Collections.ObjectModel;
using System.Linq;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.Models.Messages;
using GalaSoft.MvvmLight.Messaging;
using Microsoft.Toolkit.Mvvm.Messaging;
namespace FluentTerminal.App.Services.Implementation
{
@@ -63,7 +63,8 @@ namespace FluentTerminal.App.Services.Implementation
TerminalOptions = GetTerminalOptions(),
Themes = new List<TerminalTheme>(),
Profiles = new List<ShellProfile>(),
SshProfiles = new List<SshProfile>()
SshProfiles = new List<SshProfile>(),
DefaultSettings = GetDefaultSettings(),
};
foreach (var theme in GetThemes().Where(x => !x.PreInstalled))
@@ -71,7 +72,7 @@ namespace FluentTerminal.App.Services.Implementation
config.Themes.Add(theme);
}
foreach (var profile in GetShellProfiles().Where(x => !x.PreInstalled))
foreach (var profile in GetShellProfiles())
{
config.Profiles.Add(profile);
}
@@ -84,6 +85,15 @@ namespace FluentTerminal.App.Services.Implementation
return JsonConvert.SerializeObject(config, PreserveDictionaryKeyCaseContractResolver.SerializerSettings);
}
private Dictionary<string, string> GetDefaultSettings()
{
return new Dictionary<string, string>
{
[DefaultShellProfileKey] = GetDefaultShellProfileId().ToString(),
[CurrentThemeKey] = GetCurrentThemeId().ToString(),
};
}
public void ImportSettings(string serializedSettings)
{
var config = new
@@ -93,7 +103,8 @@ namespace FluentTerminal.App.Services.Implementation
Themes = new List<TerminalTheme>(),
Profiles = new List<ShellProfile>(),
SshProfiles = new List<SshProfile>(),
TerminalOptions = GetTerminalOptions()
TerminalOptions = GetTerminalOptions(),
DefaultSettings = new Dictionary<string, string>(),
};
JsonConvert.PopulateObject(serializedSettings, config);
@@ -117,22 +128,18 @@ namespace FluentTerminal.App.Services.Implementation
SaveTheme(theme, existingTheme != null);
}
// Can't create pre-installed profiles
foreach (var profile in config.Profiles.Where(x => !x.PreInstalled))
foreach (var profile in config.Profiles)
{
var existingProfile = GetShellProfile(profile.Id);
var isNew = existingProfile.EqualTo(default);
var isNew = existingProfile == default;
// You can only edit certain parts of preinstalled profiles
if (!isNew && existingProfile.PreInstalled)
{
existingProfile.WorkingDirectory = profile.WorkingDirectory;
existingProfile.Arguments = profile.Arguments;
existingProfile.TabThemeId = profile.TabThemeId;
existingProfile.TerminalThemeId = profile.TerminalThemeId;
existingProfile.LineEndingTranslation = profile.LineEndingTranslation;
existingProfile.KeyBindings = profile.KeyBindings;
SaveShellProfile(profile, isNew);
// those cannot be edited
profile.Name = existingProfile.Name;
profile.Location = existingProfile.Location;
SaveShellProfile(profile, false);
continue;
}
SaveShellProfile(profile, isNew);
@@ -141,25 +148,35 @@ namespace FluentTerminal.App.Services.Implementation
foreach (var profile in config.SshProfiles)
{
var existingProfile = GetSshProfile(profile.Id);
var isNew = existingProfile.EqualTo(default(SshProfile));
var isNew = existingProfile == default;
SaveSshProfile(profile, isNew);
}
SaveTerminalOptions(config.TerminalOptions);
if (config.DefaultSettings.ContainsKey(DefaultShellProfileKey))
{
SaveDefaultShellProfileId(new Guid(config.DefaultSettings[DefaultShellProfileKey]));
}
if (config.DefaultSettings.ContainsKey(CurrentThemeKey))
{
SaveCurrentThemeId(new Guid(config.DefaultSettings[CurrentThemeKey]));
}
}
public void DeleteShellProfile(Guid id)
{
_shellProfiles.Delete(id.ToString());
Messenger.Default.Send(new ShellProfileDeletedMessage(id));
WeakReferenceMessenger.Default.Send(new ShellProfileDeletedMessage(id));
}
public void DeleteSshProfile(Guid id)
{
_sshProfiles.Delete(id.ToString());
Messenger.Default.Send(new ShellProfileDeletedMessage(id));
Messenger.Default.Send(new KeyBindingsChangedMessage());
WeakReferenceMessenger.Default.Send(new ShellProfileDeletedMessage(id));
WeakReferenceMessenger.Default.Send(new KeyBindingsChangedMessage());
}
@@ -176,7 +193,7 @@ namespace FluentTerminal.App.Services.Implementation
}
}
Messenger.Default.Send(new ThemeDeletedMessage(id));
WeakReferenceMessenger.Default.Send(new ThemeDeletedMessage(id));
}
public ApplicationSettings GetApplicationSettings()
@@ -316,32 +333,32 @@ namespace FluentTerminal.App.Services.Implementation
_keyBindings.WriteValueAsJson(command.ToString(), _defaultValueProvider.GetDefaultKeyBindings(command));
}
Messenger.Default.Send(new KeyBindingsChangedMessage());
WeakReferenceMessenger.Default.Send(new KeyBindingsChangedMessage());
}
public void SaveApplicationSettings(ApplicationSettings applicationSettings)
{
_roamingSettings.WriteValueAsJson(nameof(ApplicationSettings), applicationSettings);
Messenger.Default.Send(new ApplicationSettingsChangedMessage(applicationSettings.Clone()));
WeakReferenceMessenger.Default.Send(new ApplicationSettingsChangedMessage(applicationSettings.Clone()));
}
public void NotifyApplicationSettingsChanged(ApplicationSettings applicationSettings)
{
Messenger.Default.Send(new ApplicationSettingsChangedMessage(applicationSettings.Clone()));
WeakReferenceMessenger.Default.Send(new ApplicationSettingsChangedMessage(applicationSettings.Clone()));
}
public void SaveCurrentThemeId(Guid id)
{
_roamingSettings.SetValue(CurrentThemeKey, id);
Messenger.Default.Send(new CurrentThemeChangedMessage(id));
WeakReferenceMessenger.Default.Send(new CurrentThemeChangedMessage(id));
}
public void SaveDefaultShellProfileId(Guid id)
{
_localSettings.SetValue(DefaultShellProfileKey, id);
Messenger.Default.Send(new DefaultShellProfileChangedMessage(id));
WeakReferenceMessenger.Default.Send(new DefaultShellProfileChangedMessage(id));
}
public void SaveKeyBindings(string command, ICollection<KeyBinding> keyBindings)
@@ -352,7 +369,7 @@ namespace FluentTerminal.App.Services.Implementation
}
_keyBindings.WriteValueAsJson(enumValue.ToString(), keyBindings);
Messenger.Default.Send(new KeyBindingsChangedMessage());
WeakReferenceMessenger.Default.Send(new KeyBindingsChangedMessage());
}
public void SaveShellProfile(ShellProfile shellProfile, bool newShell = false)
@@ -360,15 +377,15 @@ namespace FluentTerminal.App.Services.Implementation
_shellProfiles.WriteValueAsJson(shellProfile.Id.ToString(), shellProfile);
// When saving the shell profile, we also need to update keybindings for everywhere.
Messenger.Default.Send(new KeyBindingsChangedMessage());
WeakReferenceMessenger.Default.Send(new KeyBindingsChangedMessage());
if (newShell)
{
Messenger.Default.Send(new ShellProfileAddedMessage(shellProfile));
WeakReferenceMessenger.Default.Send(new ShellProfileAddedMessage(shellProfile));
}
else
{
Messenger.Default.Send(new ShellProfileChangedMessage(shellProfile));
WeakReferenceMessenger.Default.Send(new ShellProfileChangedMessage(shellProfile));
}
}
@@ -377,22 +394,22 @@ namespace FluentTerminal.App.Services.Implementation
_sshProfiles.WriteValueAsJson(sshProfile.Id.ToString(), sshProfile);
// When saving the shell profile, we also need to update keybindings for everywhere.
Messenger.Default.Send(new KeyBindingsChangedMessage());
WeakReferenceMessenger.Default.Send(new KeyBindingsChangedMessage());
if (newShell)
{
Messenger.Default.Send(new ShellProfileAddedMessage(sshProfile));
WeakReferenceMessenger.Default.Send(new ShellProfileAddedMessage(sshProfile));
}
else
{
Messenger.Default.Send(new ShellProfileChangedMessage(sshProfile));
WeakReferenceMessenger.Default.Send(new ShellProfileChangedMessage(sshProfile));
}
}
public void SaveTerminalOptions(TerminalOptions terminalOptions)
{
_roamingSettings.WriteValueAsJson(nameof(TerminalOptions), terminalOptions);
Messenger.Default.Send(new TerminalOptionsChangedMessage(terminalOptions));
WeakReferenceMessenger.Default.Send(new TerminalOptionsChangedMessage(terminalOptions));
}
public void SaveTheme(TerminalTheme theme, bool newTheme = false)
@@ -401,12 +418,12 @@ namespace FluentTerminal.App.Services.Implementation
if (theme.Id == GetCurrentThemeId())
{
Messenger.Default.Send(new CurrentThemeChangedMessage(theme.Id));
WeakReferenceMessenger.Default.Send(new CurrentThemeChangedMessage(theme.Id));
}
if (newTheme)
{
Messenger.Default.Send(new ThemeAddedMessage(theme));
WeakReferenceMessenger.Default.Send(new ThemeAddedMessage(theme));
}
}
}
@@ -84,6 +84,18 @@ namespace FluentTerminal.App.Services.Implementation
}
}
public async Task<string> ReadTextFileAsync(string path)
{
var response = await GetResponseAsync<StringValueResponse>(new ReadTextFileRequest { Path = path }).ConfigureAwait(false);
if (!response.Success)
{
throw new ReadTextFileException(string.IsNullOrWhiteSpace(response.Error) ? "Failed to read the file." : response.Error);
}
return response.Value;
}
public async Task<string> GetSshConfigDirAsync()
{
if (!string.IsNullOrEmpty(_sshConfigDir))
+11 -1
View File
@@ -24,6 +24,12 @@ namespace FluentTerminal.App.Services
_requireShellProcessStart = !terminalId.HasValue;
}
public void Reconnect()
{
_exited = false;
_trayProcessCommunicationService.TerminalExited += OnTerminalExited;
}
private void OnTerminalExited(object sender, TerminalExitStatus status)
{
if (status.TerminalId != Id)
@@ -71,6 +77,8 @@ namespace FluentTerminal.App.Services
public byte Id { get; }
public ShellProfile Profile { get; private set; }
/// <summary>
/// To be called by either view or viewmodel
/// </summary>
@@ -137,6 +145,8 @@ namespace FluentTerminal.App.Services
/// </summary>
public async Task<TerminalResponse> StartShellProcessAsync(ShellProfile shellProfile, TerminalSize size, SessionType sessionType, string termState)
{
Profile = shellProfile;
if (!_requireShellProcessStart && !string.IsNullOrEmpty(termState))
{
OutputReceived?.Invoke(this, Encoding.UTF8.GetBytes(termState));
@@ -151,7 +161,7 @@ namespace FluentTerminal.App.Services
if (response.Success)
{
_fallbackTitle = response.ShellExecutableName;
_fallbackTitle = response.Name;
SetTitle(_fallbackTitle);
}
return response;
@@ -1,9 +1,9 @@
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using System;
namespace FluentTerminal.App.ViewModels
{
public class EnvironmentVariableViewModel : ViewModelBase
public class EnvironmentVariableViewModel : ObservableObject
{
private string _name;
private string _value;
@@ -13,13 +13,13 @@ namespace FluentTerminal.App.ViewModels
public string Name
{
get => _name;
set => Set(ref _name, value);
set => SetProperty(ref _name, value);
}
public string Value
{
get => _value;
set => Set(ref _value, value);
set => SetProperty(ref _value, value);
}
}
}
@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MvvmLightLibs" Version="5.4.1.1" />
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.0.2" />
</ItemGroup>
<ItemGroup>
@@ -6,15 +6,17 @@ namespace FluentTerminal.App.ViewModels
{
public interface ITerminalView : IDisposable
{
Task ChangeFontSize(int fontSize);
Task ChangeThemeAsync(TerminalTheme theme);
Task ChangeKeyBindingsAsync();
Task ChangeOptionsAsync(TerminalOptions options);
Task InitializeAsync(TerminalViewModel viewModel);
Task ReconnectAsync();
void DisposalPrepare();
Task FindNextAsync(string searchText);
Task FindPreviousAsync(string searchText);
Task FindNextAsync(SearchRequest request);
Task FindPreviousAsync(SearchRequest request);
Task FocusTerminalAsync();
Task<string> SerializeXtermStateAsync();
Task PasteAsync(string text);
void Paste(string text);
}
}
@@ -1,125 +0,0 @@
using FluentTerminal.App.ViewModels.Utilities;
using System;
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Infrastructure
{
public class AsyncCommand : IAsyncCommand
{
public event EventHandler CanExecuteChanged;
private bool _isExecuting;
private readonly Func<Task> _execute;
private readonly Func<bool> _canExecute;
private readonly IErrorHandler _errorHandler;
public AsyncCommand(
Func<Task> execute,
Func<bool> canExecute = null,
IErrorHandler errorHandler = null)
{
_execute = execute;
_canExecute = canExecute;
_errorHandler = errorHandler;
}
public bool CanExecute()
{
return !_isExecuting && (_canExecute?.Invoke() ?? true);
}
public async Task ExecuteAsync()
{
if (CanExecute())
{
try
{
// TODO: If we're using class field _isExecuting, maybe we should introduce some locking?
_isExecuting = true;
await _execute();
}
finally
{
_isExecuting = false;
}
}
RaiseCanExecuteChanged();
}
public void RaiseCanExecuteChanged()
{
CanExecuteChanged?.Invoke(this, EventArgs.Empty);
}
#region Explicit implementations
bool ICommand.CanExecute(object parameter)
{
return CanExecute();
}
void ICommand.Execute(object parameter)
{
ExecuteAsync().FireAndForgetSafeAsync(_errorHandler);
}
#endregion
}
public class AsyncCommand<T> : IAsyncCommand<T>
{
public event EventHandler CanExecuteChanged;
private bool _isExecuting;
private readonly Func<T, Task> _execute;
private readonly Func<T, bool> _canExecute;
private readonly IErrorHandler _errorHandler;
public AsyncCommand(Func<T, Task> execute, Func<T, bool> canExecute = null, IErrorHandler errorHandler = null)
{
_execute = execute;
_canExecute = canExecute;
_errorHandler = errorHandler;
}
public bool CanExecute(T parameter)
{
return !_isExecuting && (_canExecute?.Invoke(parameter) ?? true);
}
public async Task ExecuteAsync(T parameter)
{
if (CanExecute(parameter))
{
try
{
_isExecuting = true;
await _execute(parameter);
}
finally
{
_isExecuting = false;
}
}
RaiseCanExecuteChanged();
}
public void RaiseCanExecuteChanged()
{
CanExecuteChanged?.Invoke(this, EventArgs.Empty);
}
#region Explicit implementations
bool ICommand.CanExecute(object parameter)
{
return CanExecute((T)parameter);
}
void ICommand.Execute(object parameter)
{
ExecuteAsync((T)parameter).FireAndForgetSafeAsync(_errorHandler);
}
#endregion
}
}
@@ -1,20 +0,0 @@
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Infrastructure
{
/// <summary>
/// based on: https://github.com/johnthiriet/AsyncVoid
/// </summary>
public interface IAsyncCommand : ICommand
{
Task ExecuteAsync();
bool CanExecute();
}
public interface IAsyncCommand<in T> : ICommand
{
Task ExecuteAsync(T parameter);
bool CanExecute(T parameter);
}
}
File diff suppressed because it is too large. Load diff
@@ -9,7 +9,7 @@ namespace FluentTerminal.App.ViewModels.Menu
public ObservableCollection<MenuItemViewModelBase> SubItems { get; }
public ExpandableMenuItemViewModel(string text, IEnumerable<MenuItemViewModelBase> subItems = null,
string description = null, object icon = null) : base(text, description, icon)
string description = null, Mdl2Icon icon = null) : base(text, description, icon)
{
if (subItems == null)
{
@@ -0,0 +1,46 @@
namespace FluentTerminal.App.ViewModels.Menu
{
public sealed class Mdl2Icon
{
public string Color { get; }
public string Glyph { get; }
private Mdl2Icon(string glyph, string color = null)
{
Glyph = glyph;
Color = color;
}
public static Mdl2Icon Link(string color = null) => new Mdl2Icon("\uE71B", color);
public static Mdl2Icon Copy(string color = null) => new Mdl2Icon("\uE8C8", color);
public static Mdl2Icon Paste(string color = null) => new Mdl2Icon("\uE77F", color);
public static Mdl2Icon Edit(string color = null) => new Mdl2Icon("\uE70F", color);
public static Mdl2Icon Search(string color = null) => new Mdl2Icon("\uE721", color);
public static Mdl2Icon Add(string color = null) => new Mdl2Icon("\uE710", color);
public static Mdl2Icon Cancel(string color = null) => new Mdl2Icon("\uE711", color);
public static Mdl2Icon PaginationDotOutline10(string color = null) => new Mdl2Icon("\uF126", color);
public static Mdl2Icon PaginationDotSolid10(string color = null) => new Mdl2Icon("\uF127", color);
public static Mdl2Icon NewWindow(string color = null) => new Mdl2Icon("\uE78B", color);
public static Mdl2Icon History(string color = null) => new Mdl2Icon("\uE81C", color);
public static Mdl2Icon Settings(string color = null) => new Mdl2Icon("\uE713", color);
public static Mdl2Icon Info(string color = null) => new Mdl2Icon("\uE946", color);
public static Mdl2Icon FavoriteStar(string color = null) => new Mdl2Icon("\uE734", color);
public static Mdl2Icon Globe(string color = null) => new Mdl2Icon("\uE774", color);
public static Mdl2Icon Play(string color = null) => new Mdl2Icon("\uE768", color);
}
}
@@ -1,18 +1,21 @@
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using Windows.System;
namespace FluentTerminal.App.ViewModels.Menu
{
public class MenuItemKeyBindingViewModel : ViewModelBase
public class MenuItemKeyBindingViewModel : ObservableObject
{
#region Properties
private int _key;
public int Key
{
get => _key;
set => Set(ref _key, value);
set => SetProperty(ref _key, value);
}
private int _keyModifiers;
@@ -21,7 +24,7 @@ namespace FluentTerminal.App.ViewModels.Menu
public int KeyModifiers
{
get => _keyModifiers;
private set => Set(ref _keyModifiers, value);
private set => SetProperty(ref _keyModifiers, value);
}
private bool _ctrl;
@@ -31,7 +34,7 @@ namespace FluentTerminal.App.ViewModels.Menu
get => _ctrl;
set
{
if (Set(ref _ctrl, value))
if (SetProperty(ref _ctrl, value))
{
SetKeyModifiers();
}
@@ -45,7 +48,7 @@ namespace FluentTerminal.App.ViewModels.Menu
get => _alt;
set
{
if (Set(ref _alt, value))
if (SetProperty(ref _alt, value))
{
SetKeyModifiers();
}
@@ -59,7 +62,7 @@ namespace FluentTerminal.App.ViewModels.Menu
get => _shift;
set
{
if (Set(ref _shift, value))
if (SetProperty(ref _shift, value))
{
SetKeyModifiers();
}
@@ -73,16 +76,28 @@ namespace FluentTerminal.App.ViewModels.Menu
get => _windows;
set
{
if (Set(ref _windows, value))
if (SetProperty(ref _windows, value))
{
SetKeyModifiers();
}
}
}
#endregion Properties
public bool IsExtendedVirtualKey => !Enum.IsDefined(typeof(VirtualKey), Key);
#region Constructors
public string GetOverrideText()
{
var segments = new List<string>();
if (Ctrl) segments.Add("Ctrl");
if (Alt) segments.Add("Alt");
if (Windows) segments.Add("Windows");
if (Shift) segments.Add("Shift");
segments.Add(EnumHelper.GetEnumDescription((ExtendedVirtualKey)Key));
return string.Join("+", segments);
}
public MenuItemKeyBindingViewModel(int key = 0, bool ctrl = false, bool alt = false, bool shift = false,
bool windows = false)
@@ -101,9 +116,7 @@ namespace FluentTerminal.App.ViewModels.Menu
{
}
#endregion Constructors
#region Methods
private void SetKeyModifiers()
{
@@ -142,6 +155,5 @@ namespace FluentTerminal.App.ViewModels.Menu
return _key == other._key && _keyModifiers == other._keyModifiers;
}
#endregion Methods
}
}
@@ -12,7 +12,7 @@ namespace FluentTerminal.App.ViewModels.Menu
public MenuItemKeyBindingViewModel KeyBinding
{
get => _keyBinding;
set => Set(ref _keyBinding, value);
set => SetProperty(ref _keyBinding, value);
}
public ICommand Command { get; }
@@ -21,7 +21,7 @@ namespace FluentTerminal.App.ViewModels.Menu
#region Constructors
public MenuItemViewModel(string text, ICommand command, string description = null, object icon = null,
public MenuItemViewModel(string text, ICommand command, string description = null, Mdl2Icon icon = null,
MenuItemKeyBindingViewModel keyBinding = null) : base(text, description, icon)
{
_keyBinding = keyBinding;
@@ -1,9 +1,9 @@
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
namespace FluentTerminal.App.ViewModels.Menu
{
public class MenuItemViewModelBase : ViewModelBase
public class MenuItemViewModelBase : ObservableObject
{
#region Properties
@@ -12,7 +12,7 @@ namespace FluentTerminal.App.ViewModels.Menu
public string Text
{
get => _text;
set => Set(ref _text, value);
set => SetProperty(ref _text, value);
}
private string _description;
@@ -20,45 +20,22 @@ namespace FluentTerminal.App.ViewModels.Menu
public string Description
{
get => _description;
set => Set(ref _description, value);
set => SetProperty(ref _description, value);
}
private object _icon;
private Mdl2Icon _icon;
/// <summary>
/// Defines menu item icon.
/// </summary>
/// <remarks>
/// Acceptable values of this property are:
/// <list type="bullet">
/// <item><see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.iconelement">IconElement</see>
/// (usually <see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.symbolicon">SymbolIcon</see>
/// or <see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.fonticon">FontIcon</see>);</item>
/// <item><see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.symbol">Symbol</see> enum value,
/// which will be used for creating
/// <see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.symbolicon">SymbolIcon</see>;</item>
/// <item><see cref="int"/>, in which case it'll be converted to
/// <see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.symbol">Symbol</see> enum value;</item>
/// <item><see cref="string"/>, in which case a new
/// <see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.fonticon">FontIcon</see> instance will
/// be created, whose
/// <see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.fonticon.glyph">Glyph</see> property
/// will be set to the value of this property.
/// <see cref="!:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.fonticon.fontfamily">FontFamily</see>
/// property of the newly created instance will be set to <c>"Segoe MDL2 Assets"</c>.</item>
/// </list>
/// </remarks>
public object Icon
public Mdl2Icon Icon
{
get => _icon;
set => Set(ref _icon, value);
set => SetProperty(ref _icon, value);
}
#endregion Properties
#region Constructor
protected MenuItemViewModelBase(string text, string description, object icon)
protected MenuItemViewModelBase(string text, string description, Mdl2Icon icon)
{
_text = text;
_description = description;
@@ -1,15 +1,15 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
namespace FluentTerminal.App.ViewModels.Menu
{
public class AppMenuViewModel : ViewModelBase
public class MenuViewModel : ObservableObject
{
public ObservableCollection<MenuItemViewModelBase> Items { get; }
public AppMenuViewModel(IEnumerable<MenuItemViewModelBase> items = null)
public MenuViewModel(IEnumerable<MenuItemViewModelBase> items = null)
{
if (items == null)
{
@@ -25,7 +25,7 @@ namespace FluentTerminal.App.ViewModels.Menu
}
}
public bool EquivalentTo(AppMenuViewModel other)
public bool EquivalentTo(MenuViewModel other)
{
if (ReferenceEquals(this, other)) return true;
@@ -0,0 +1,28 @@
using System;
namespace FluentTerminal.App.ViewModels.Menu
{
public class RadioMenuItemViewModel : MenuItemViewModelBase
{
public object BindingSource { get; }
public string BindingPath { get; }
public string GroupName { get; }
public RadioMenuItemViewModel(string text, string groupName, object bindingSource, string bindingPath = null, string description = null, Mdl2Icon icon = null)
: base(text, description, icon)
{
GroupName = groupName ?? throw new ArgumentNullException(nameof(groupName));
BindingSource = bindingSource ?? throw new ArgumentNullException(nameof(bindingSource));
BindingPath = bindingPath;
}
public override bool EquivalentTo(MenuItemViewModelBase other)
{
if (!base.EquivalentTo(other)) return false;
if (!(other is RadioMenuItemViewModel radioMenuItem)) return false;
return GroupName == radioMenuItem.GroupName && BindingSource == radioMenuItem.BindingSource && BindingPath == radioMenuItem.BindingPath;
}
}
}
@@ -0,0 +1,26 @@
using System;
namespace FluentTerminal.App.ViewModels.Menu
{
public class ToggleMenuItemViewModel : MenuItemViewModelBase
{
public object BindingSource { get; }
public string BindingPath { get; }
public ToggleMenuItemViewModel(string text, object bindingSource, string bindingPath = null, string description = null, Mdl2Icon icon = null)
: base(text, description, icon)
{
BindingSource = bindingSource ?? throw new ArgumentNullException(nameof(bindingSource));
BindingPath = bindingPath;
}
public override bool EquivalentTo(MenuItemViewModelBase other)
{
if (!base.EquivalentTo(other)) return false;
if (!(other is ToggleMenuItemViewModel toggleMenuItem)) return false;
return BindingSource == toggleMenuItem.BindingSource && BindingPath == toggleMenuItem.BindingPath;
}
}
}
@@ -1,10 +1,10 @@
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using System;
using Windows.UI.Xaml;
namespace FluentTerminal.App.ViewModels
{
public class OverlayViewModel : ViewModelBase
public class OverlayViewModel : ObservableObject
{
private readonly DispatcherTimer _overlayTimer;
private bool _showOverlay;
@@ -19,13 +19,13 @@ namespace FluentTerminal.App.ViewModels
public bool ShowOverlay
{
get => _showOverlay;
set => Set(ref _showOverlay, value);
set => SetProperty(ref _showOverlay, value);
}
public string OverlayContent
{
get => _overlayContent;
set => Set(ref _overlayContent, value);
set => SetProperty(ref _overlayContent, value);
}
public void Show(string message)
@@ -3,21 +3,21 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Input;
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.App.ViewModels.Profiles;
using FluentTerminal.App.ViewModels.Settings;
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
namespace FluentTerminal.App.ViewModels
{
/// <summary>
/// Base class for all profile view models. Implements logic for saving, editing, resetting, etc.
/// </summary>
public abstract class ProfileViewModelBase<T> : ViewModelBase where T : ProfileProviderViewModelBase
public abstract class ProfileViewModelBase<T> : ObservableObject where T : ProfileProviderViewModelBase
{
#region Fields
@@ -41,7 +41,7 @@ namespace FluentTerminal.App.ViewModels
public bool InEditMode
{
get => _inEditMode;
set => Set(ref _inEditMode, value);
set => SetProperty(ref _inEditMode, value);
}
private string _name;
@@ -49,7 +49,7 @@ namespace FluentTerminal.App.ViewModels
public string Name
{
get => _name;
set => Set(ref _name, value);
set => SetProperty(ref _name, value);
}
public KeyBindingsViewModel KeyBindings { get; }
@@ -69,15 +69,15 @@ namespace FluentTerminal.App.ViewModels
#region Commands
public IAsyncCommand CancelEditCommand { get; }
public ICommand CancelEditCommand { get; }
public IAsyncCommand DeleteCommand { get; }
public ICommand DeleteCommand { get; }
public RelayCommand EditCommand { get; }
public ICommand EditCommand { get; }
public IAsyncCommand SaveChangesCommand { get; }
public ICommand SaveChangesCommand { get; }
public IAsyncCommand AddKeyboardShortcutCommand { get; }
public ICommand AddKeyboardShortcutCommand { get; }
#endregion Commands
@@ -102,11 +102,11 @@ namespace FluentTerminal.App.ViewModels
Initialize(shellProfile);
DeleteCommand = new AsyncCommand(DeleteAsync, CanDelete);
DeleteCommand = new AsyncRelayCommand(DeleteAsync, CanDelete);
EditCommand = new RelayCommand(Edit);
CancelEditCommand = new AsyncCommand(CancelEditAsync);
SaveChangesCommand = new AsyncCommand(SaveChangesAsync);
AddKeyboardShortcutCommand = new AsyncCommand(AddKeyboardShortcut);
CancelEditCommand = new AsyncRelayCommand(CancelEditAsync);
SaveChangesCommand = new AsyncRelayCommand(SaveChangesAsync);
AddKeyboardShortcutCommand = new AsyncRelayCommand(AddKeyboardShortcutAsync);
}
#endregion Constructor
@@ -248,7 +248,7 @@ namespace FluentTerminal.App.ViewModels
IsNew = false;
}
private Task AddKeyboardShortcut()
private Task AddKeyboardShortcutAsync()
{
return KeyBindings.ShowAddKeyBindingDialogAsync();
}
@@ -1,8 +1,9 @@
using System.Threading.Tasks;
using System.Windows.Input;
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using Microsoft.Toolkit.Mvvm.Input;
namespace FluentTerminal.App.ViewModels.Profiles
{
@@ -26,7 +27,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public string Location
{
get => _location;
set => Set(ref _location, value);
set => SetProperty(ref _location, value);
}
private string _workingDirectory;
@@ -34,7 +35,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public string WorkingDirectory
{
get => _workingDirectory;
set => Set(ref _workingDirectory, value);
set => SetProperty(ref _workingDirectory, value);
}
private string _arguments;
@@ -42,16 +43,16 @@ namespace FluentTerminal.App.ViewModels.Profiles
public string Arguments
{
get => _arguments;
set => Set(ref _arguments, value);
set => SetProperty(ref _arguments, value);
}
#endregion Properties
#region Commands
public IAsyncCommand BrowseForCustomShellCommand { get; }
public ICommand BrowseForCustomShellCommand { get; }
public IAsyncCommand BrowseForWorkingDirectoryCommand { get; }
public ICommand BrowseForWorkingDirectoryCommand { get; }
#endregion Commands
@@ -63,8 +64,8 @@ namespace FluentTerminal.App.ViewModels.Profiles
{
_fileSystemService = fileSystemService;
BrowseForCustomShellCommand = new AsyncCommand(BrowseForCustomShell);
BrowseForWorkingDirectoryCommand = new AsyncCommand(BrowseForWorkingDirectory);
BrowseForCustomShellCommand = new AsyncRelayCommand(BrowseForCustomShell);
BrowseForWorkingDirectoryCommand = new AsyncRelayCommand(BrowseForWorkingDirectory);
Initialize(Model);
}
@@ -7,9 +7,9 @@ using System.Web;
using Windows.UI.Core;
using FluentTerminal.App.Services;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using FluentTerminal.Models.Messages;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Messaging;
namespace FluentTerminal.App.ViewModels.Profiles
{
@@ -17,15 +17,10 @@ namespace FluentTerminal.App.ViewModels.Profiles
/// Base class for all profile view model classes. It contains properties shared by all other view models
/// (theme-related properties, line-ending translation, and WinPTY/ConPTY selection).
/// </summary>
public abstract class ProfileProviderViewModelBase : ViewModelBase
public abstract class ProfileProviderViewModelBase : ObservableObject,
IRecipient<ThemeAddedMessage>,
IRecipient<ThemeDeletedMessage>
{
#region Static
private static readonly LineEndingStyle[] LineEndingStylesArray =
Enum.GetValues(typeof(LineEndingStyle)).Cast<LineEndingStyle>().ToArray();
#endregion Static
#region Fields
protected readonly ISettingsService SettingsService;
@@ -68,17 +63,6 @@ namespace FluentTerminal.App.ViewModels.Profiles
public ObservableCollection<TerminalTheme> TerminalThemes { get; }
public ObservableCollection<LineEndingStyle> LineEndingStyles { get; } =
new ObservableCollection<LineEndingStyle>(LineEndingStylesArray);
private LineEndingStyle _lineEndingTranslation;
public LineEndingStyle LineEndingTranslation
{
get => _lineEndingTranslation;
set => Set(ref _lineEndingTranslation, value);
}
private TabTheme _selectedTabTheme;
public TabTheme SelectedTabTheme
@@ -97,7 +81,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
? value
: TabThemes.FirstOrDefault(t => t.Id == value.Id) ?? TabThemes.First();
if (Set(ref _selectedTabTheme, theme))
if (SetProperty(ref _selectedTabTheme, theme))
{
_tabThemeId = theme.Id;
}
@@ -111,7 +95,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
get => _tabThemeId;
set
{
if (Set(ref _tabThemeId, value))
if (SetProperty(ref _tabThemeId, value))
{
SelectedTabTheme = TabThemes.FirstOrDefault(t => t.Id.Equals(value));
}
@@ -130,13 +114,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
if (theme == null)
{
// How to handle attempt to setting null theme?
// 1) Throw an exception:
//throw new ArgumentNullException();
// 2) Ignore the attempt:
//return;
// 3) Use default theme (probably the best):
theme = TerminalThemes.First();
return;
}
else if (!TerminalThemes.Contains(theme))
{
@@ -144,7 +122,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
theme = TerminalThemes.FirstOrDefault(t => t.Id.Equals(theme.Id)) ?? TerminalThemes.First();
}
if (Set(ref _selectedTerminalTheme, theme))
if (SetProperty(ref _selectedTerminalTheme, theme))
{
_terminalThemeId = theme.Id;
}
@@ -158,7 +136,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
get => _terminalThemeId;
set
{
if (Set(ref _terminalThemeId, value))
if (SetProperty(ref _terminalThemeId, value))
{
SelectedTerminalTheme = TerminalThemes.FirstOrDefault(t => t.Id.Equals(value));
}
@@ -170,7 +148,15 @@ namespace FluentTerminal.App.ViewModels.Profiles
public bool UseConPty
{
get => _useConPty;
set => Set(ref _useConPty, value);
set => SetProperty(ref _useConPty, value);
}
private bool _useBuffer;
public bool UseBuffer
{
get => _useBuffer;
set => SetProperty(ref _useBuffer, value);
}
#endregion Properties
@@ -196,17 +182,16 @@ namespace FluentTerminal.App.ViewModels.Profiles
SelectedTerminalTheme = TerminalThemes.First();
MessengerInstance.Register<ThemeAddedMessage>(this, OnThemeAdded);
MessengerInstance.Register<ThemeDeletedMessage>(this, OnThemeDeleted);
Initialize(Model);
WeakReferenceMessenger.Default.RegisterAll(this);
}
#endregion Constructor
#region Methods
private void OnThemeDeleted(ThemeDeletedMessage message)
public void Receive(ThemeDeletedMessage message)
{
var theme = TerminalThemes.FirstOrDefault(t => t.Id.Equals(message.ThemeId));
@@ -226,15 +211,15 @@ namespace FluentTerminal.App.ViewModels.Profiles
}, CoreDispatcherPriority.Low, true);
}
private void OnThemeAdded(ThemeAddedMessage message)
public void Receive(ThemeAddedMessage message)
{
ApplicationView.ExecuteOnUiThreadAsync(() => TerminalThemes.Add(message.Theme), CoreDispatcherPriority.Low);
}
private void Initialize(ShellProfile profile)
{
LineEndingTranslation = profile.LineEndingTranslation;
UseConPty = profile.UseConPty;
UseBuffer = profile.UseBuffer;
TerminalThemeId = profile.TerminalThemeId;
TabThemeId = profile.TabThemeId;
}
@@ -246,8 +231,8 @@ namespace FluentTerminal.App.ViewModels.Profiles
protected virtual Task CopyToProfileAsync(ShellProfile profile)
{
profile.LineEndingTranslation = _lineEndingTranslation;
profile.UseConPty = _useConPty;
profile.UseBuffer = _useBuffer;
profile.TerminalThemeId = _terminalThemeId;
profile.TabThemeId = _tabThemeId;
return Task.CompletedTask;
@@ -264,8 +249,8 @@ namespace FluentTerminal.App.ViewModels.Profiles
/// </summary>
public virtual bool HasChanges()
{
return Model.LineEndingTranslation != _lineEndingTranslation ||
Model.UseConPty != _useConPty ||
return Model.UseConPty != _useConPty ||
Model.UseBuffer != _useBuffer ||
!Model.TerminalThemeId.Equals(_terminalThemeId) ||
Model.TabThemeId != _tabThemeId;
}
@@ -301,7 +286,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
#region Links/shortcuts related
private const string UseConPtyQueryStringName = "conpty";
private const string LineEndingQueryStringName = "lineending";
private const string UseBufferQueryStringName = "buffer";
private const string TerminalThemeIdQueryStringName = "theme";
private const string TabThemeIdQueryStringName = "tab";
@@ -341,8 +326,7 @@ URL={0}
public string GetBaseQueryString()
{
var queryString =
$"{UseConPtyQueryStringName}={_useConPty}&{LineEndingQueryStringName}={_lineEndingTranslation}";
var queryString = $"{UseConPtyQueryStringName}={_useConPty}&{UseBufferQueryStringName}={_useBuffer}";
if (_tabThemeId != TabThemes.First().Id)
{
@@ -373,11 +357,11 @@ URL={0}
}
keyValue = queryStringParams.FirstOrDefault(t =>
LineEndingQueryStringName.Equals(t.Item1, StringComparison.OrdinalIgnoreCase));
UseBufferQueryStringName.Equals(t.Item1, StringComparison.OrdinalIgnoreCase));
if (!string.IsNullOrEmpty(keyValue?.Item2) && Enum.TryParse(keyValue.Item2, true, out LineEndingStyle lineEndingTranslation))
if (!string.IsNullOrEmpty(keyValue?.Item2) && bool.TryParse(keyValue.Item2?.ToLower(), out bool useBuffer))
{
LineEndingTranslation = lineEndingTranslation;
UseConPty = useBuffer;
}
keyValue = queryStringParams.FirstOrDefault(t =>
@@ -6,10 +6,11 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
using System.Windows.Input;
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using Microsoft.Toolkit.Mvvm.Input;
namespace FluentTerminal.App.ViewModels.Profiles
{
@@ -59,7 +60,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public string Host
{
get => _host;
set => Set(ref _host, value);
set => SetProperty(ref _host, value);
}
private ushort _sshPort;
@@ -67,7 +68,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public ushort SshPort
{
get => _sshPort;
set => Set(ref _sshPort, value);
set => SetProperty(ref _sshPort, value);
}
private string _username;
@@ -75,7 +76,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public string Username
{
get => _username;
set => Set(ref _username, value);
set => SetProperty(ref _username, value);
}
private string _identityFile;
@@ -83,7 +84,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public string IdentityFile
{
get => _identityFile;
set => Set(ref _identityFile, value);
set => SetProperty(ref _identityFile, value);
}
private bool _useMosh;
@@ -91,7 +92,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public bool UseMosh
{
get => _useMosh;
set => Set(ref _useMosh, value);
set => SetProperty(ref _useMosh, value);
}
private ushort _moshPortFrom;
@@ -99,7 +100,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public ushort MoshPortFrom
{
get => _moshPortFrom;
set => Set(ref _moshPortFrom, value);
set => SetProperty(ref _moshPortFrom, value);
}
private ushort _moshPortTo;
@@ -107,14 +108,14 @@ namespace FluentTerminal.App.ViewModels.Profiles
public ushort MoshPortTo
{
get => _moshPortTo;
set => Set(ref _moshPortTo, value);
set => SetProperty(ref _moshPortTo, value);
}
#endregion Properties
#region Commands
public IAsyncCommand BrowseForIdentityFileCommand { get; }
public ICommand BrowseForIdentityFileCommand { get; }
#endregion Commands
@@ -132,7 +133,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
Initialize((SshProfile)Model);
BrowseForIdentityFileCommand = new AsyncCommand(BrowseForIdentityFileAsync);
BrowseForIdentityFileCommand = new AsyncRelayCommand(BrowseForIdentityFileAsync);
}
#endregion Constructor
@@ -199,8 +200,8 @@ namespace FluentTerminal.App.ViewModels.Profiles
}
return _sshPort == SshProfile.DefaultSshPort
? $"-i '{_identityFile}'"
: $"-p {_sshPort:#####} -i '{_identityFile}'";
? $"-i \"{_identityFile}\""
: $"-p {_sshPort:#####} -i \"{_identityFile}\"";
}
protected override void LoadFromProfile(ShellProfile profile)
@@ -1,11 +1,12 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.ViewModels.Infrastructure;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class AboutPageViewModel : ViewModelBase
public class AboutPageViewModel : ObservableObject
{
private const string BaseUrl = "https://github.com/felixse/FluentTerminal/releases/tag/";
private readonly IUpdateService _updateService;
@@ -17,10 +18,10 @@ namespace FluentTerminal.App.ViewModels.Settings
_updateService = updateService;
_applicationView = applicationView;
CheckForUpdatesCommand = new AsyncCommand(() => CheckForUpdateAsync(true));
CheckForUpdatesCommand = new AsyncRelayCommand(() => CheckForUpdateAsync(true));
}
public IAsyncCommand CheckForUpdatesCommand { get; }
public ICommand CheckForUpdatesCommand { get; }
public string CurrentVersion
{
@@ -38,12 +39,12 @@ namespace FluentTerminal.App.ViewModels.Settings
get => _latestVersion;
set
{
if (Set(ref _latestVersion, value))
if (SetProperty(ref _latestVersion, value))
{
RaisePropertyChanged(nameof(LatestVersionFound));
RaisePropertyChanged(nameof(LatestVersionLoading));
RaisePropertyChanged(nameof(LatestVersionNotFound));
RaisePropertyChanged(nameof(LatestVersionReleaseNotesURL));
OnPropertyChanged(nameof(LatestVersionFound));
OnPropertyChanged(nameof(LatestVersionLoading));
OnPropertyChanged(nameof(LatestVersionNotFound));
OnPropertyChanged(nameof(LatestVersionReleaseNotesURL));
}
}
}
@@ -1,15 +1,16 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class GeneralPageViewModel : ViewModelBase
public class GeneralPageViewModel : ObservableObject
{
private readonly ApplicationSettings _applicationSettings;
private readonly IDefaultValueProvider _defaultValueProvider;
@@ -39,8 +40,8 @@ namespace FluentTerminal.App.ViewModels.Settings
_applicationSettings = _settingsService.GetApplicationSettings();
RestoreDefaultsCommand = new AsyncCommand(RestoreDefaultsAsync);
BrowseLogDirectoryCommand = new AsyncCommand(BrowseLogDirectoryAsync);
RestoreDefaultsCommand = new AsyncRelayCommand(RestoreDefaultsAsync);
BrowseLogDirectoryCommand = new AsyncRelayCommand(BrowseLogDirectoryAsync);
}
public IEnumerable<string> Languages => _applicationLanguageService.Languages;
@@ -48,7 +49,7 @@ namespace FluentTerminal.App.ViewModels.Settings
public bool NeedsToRestart
{
get => _needsToRestart;
set => Set(ref _needsToRestart, value);
set => SetProperty(ref _needsToRestart, value);
}
public string SelectedLanguage
@@ -78,7 +79,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.ShowCustomTitleInTitlebar = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -92,7 +93,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.EnableTrayIcon = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
// Toggle message telling user to restart the program
ShouldRestartForTrayMessage = !ShouldRestartForTrayMessage;
@@ -103,7 +104,7 @@ namespace FluentTerminal.App.ViewModels.Settings
public bool ShouldRestartForTrayMessage
{
get => _shouldRestartForTrayMessage;
set => Set(ref _shouldRestartForTrayMessage, value);
set => SetProperty(ref _shouldRestartForTrayMessage, value);
}
public bool ShowNewOutputIndicator
@@ -115,7 +116,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.ShowNewOutputIndicator = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -129,7 +130,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.UseMoshByDefault = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -143,7 +144,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.AutoFallbackToWindowsUsernameInLinks = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -157,7 +158,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.RTrimCopiedLines = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -171,7 +172,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.MuteTerminalBeeps = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
_trayProcessCommunicationService.MuteTerminalAsync(value);
}
@@ -186,7 +187,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.EnableLogging = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -200,7 +201,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.PrintableOutputOnly = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -214,7 +215,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.LogDirectoryPath = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -228,7 +229,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.UseConPty = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -242,7 +243,7 @@ namespace FluentTerminal.App.ViewModels.Settings
public bool CanEnableStartupTask
{
get => _canEnableStartupTask;
set => Set(ref _canEnableStartupTask, value);
set => SetProperty(ref _canEnableStartupTask, value);
}
public bool ConfirmClosingTabs
@@ -254,7 +255,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.ConfirmClosingTabs = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -268,7 +269,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.ConfirmClosingWindows = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -282,8 +283,8 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.NewTerminalLocation = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
RaisePropertyChanged(nameof(TabIsSelected));
OnPropertyChanged();
OnPropertyChanged(nameof(TabIsSelected));
}
}
}
@@ -297,21 +298,21 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.TabWindowCascadingAppMenu = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
public IAsyncCommand RestoreDefaultsCommand { get; }
public ICommand RestoreDefaultsCommand { get; }
public IAsyncCommand BrowseLogDirectoryCommand { get; }
public ICommand BrowseLogDirectoryCommand { get; }
public bool StartupTaskEnabled
{
get => _startupTaskEnabled;
set
{
if (Set(ref _startupTaskEnabled, value))
if (SetProperty(ref _startupTaskEnabled, value))
{
// ReSharper disable once AssignmentIsFullyDiscarded
_ = SetStartupTaskStateAsync(value);
@@ -322,7 +323,7 @@ namespace FluentTerminal.App.ViewModels.Settings
public string StartupTaskErrorMessage
{
get => _startupTaskErrorMessage;
set => Set(ref _startupTaskErrorMessage, value);
set => SetProperty(ref _startupTaskErrorMessage, value);
}
public bool TabIsSelected
@@ -340,7 +341,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.TabsPosition = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -360,7 +361,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.UnderlineSelectedTab = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -386,7 +387,21 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.InactiveTabColorMode = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
public bool ShowTextCopied
{
get => _applicationSettings.ShowTextCopied;
set
{
if (_applicationSettings.ShowTextCopied != value)
{
_applicationSettings.ShowTextCopied = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
OnPropertyChanged();
}
}
}
@@ -418,6 +433,7 @@ namespace FluentTerminal.App.ViewModels.Settings
PrintableOutputOnly = defaults.PrintableOutputOnly;
LogDirectoryPath = defaults.LogDirectoryPath;
UseConPty = defaults.UseConPty;
ShowTextCopied = defaults.ShowTextCopied;
}
}
@@ -1,14 +1,15 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System;
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class KeyBindingViewModel : ViewModelBase
public class KeyBindingViewModel : ObservableObject
{
private readonly IDialogService _dialogService;
@@ -17,8 +18,8 @@ namespace FluentTerminal.App.ViewModels.Settings
Model = keyBinding;
Parent = parent;
_dialogService = dialogService;
EditCommand = new AsyncCommand(EditAsync);
DeleteCommand = new AsyncCommand(DeleteAsync);
EditCommand = new AsyncRelayCommand(EditAsync);
DeleteCommand = new AsyncRelayCommand(DeleteAsync);
}
// Needs to be triggered from the UI thread
@@ -36,7 +37,7 @@ namespace FluentTerminal.App.ViewModels.Settings
if (Model.Meta != value)
{
Model.Meta = value;
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -49,7 +50,7 @@ namespace FluentTerminal.App.ViewModels.Settings
if (Model.Alt != value)
{
Model.Alt = value;
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -62,13 +63,13 @@ namespace FluentTerminal.App.ViewModels.Settings
if (Model.Ctrl != value)
{
Model.Ctrl = value;
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
public IAsyncCommand DeleteCommand { get; }
public IAsyncCommand EditCommand { get; }
public ICommand DeleteCommand { get; }
public ICommand EditCommand { get; }
public int Key
{
@@ -78,7 +79,7 @@ namespace FluentTerminal.App.ViewModels.Settings
if (Model.Key != value)
{
Model.Key = value;
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -93,7 +94,7 @@ namespace FluentTerminal.App.ViewModels.Settings
if (Model.Shift != value)
{
Model.Shift = value;
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -2,17 +2,18 @@
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class KeyBindingsPageViewModel : ViewModelBase
public class KeyBindingsPageViewModel : ObservableObject
{
private readonly IDialogService _dialogService;
private readonly ISettingsService _settingsService;
@@ -23,15 +24,15 @@ namespace FluentTerminal.App.ViewModels.Settings
_settingsService = settingsService;
_dialogService = dialogService;
_trayProcessCommunicationService = trayProcessCommunicationService;
RestoreDefaultsCommand = new RelayCommand(async () => await RestoreDefaultsAsync().ConfigureAwait(false));
AddCommand = new RelayCommand<string>(async command => await AddAsync(command).ConfigureAwait(false));
RestoreDefaultsCommand = new AsyncRelayCommand(RestoreDefaultsAsync);
AddCommand = new AsyncRelayCommand<string>(AddAsync);
Initialize(_settingsService.GetCommandKeyBindings());
}
public RelayCommand<string> AddCommand { get; }
public ICommand AddCommand { get; }
public ObservableCollection<KeyBindingsViewModel> KeyBindings { get; } = new ObservableCollection<KeyBindingsViewModel>();
public RelayCommand RestoreDefaultsCommand { get; }
public ICommand RestoreDefaultsCommand { get; }
private Task AddAsync(string command)
{
@@ -1,6 +1,6 @@
using FluentTerminal.App.Services;
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace FluentTerminal.App.ViewModels.Settings
{
public class KeyBindingsViewModel : ViewModelBase
public class KeyBindingsViewModel : ObservableObject
{
private readonly IDialogService _dialogService;
private bool _editable;
@@ -37,7 +37,7 @@ namespace FluentTerminal.App.ViewModels.Settings
public bool Editable
{
get => _editable;
set => Set(ref _editable, value);
set => SetProperty(ref _editable, value);
}
public ObservableCollection<KeyBindingViewModel> KeyBindings { get; } = new ObservableCollection<KeyBindingViewModel>();
@@ -2,13 +2,14 @@
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class MousePageViewModel : ViewModelBase
public class MousePageViewModel : ObservableObject
{
private readonly ISettingsService _settingsService;
private readonly IDialogService _dialogService;
@@ -22,7 +23,7 @@ namespace FluentTerminal.App.ViewModels.Settings
_defaultValueProvider = defaultValueProvider;
_applicationSettings = _settingsService.GetApplicationSettings();
RestoreDefaultsCommand = new RelayCommand(async () => await RestoreDefaultsAsync().ConfigureAwait(false));
RestoreDefaultsCommand = new AsyncRelayCommand(RestoreDefaultsAsync);
}
public bool CopyOnSelect
@@ -34,7 +35,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.CopyOnSelect = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -48,7 +49,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.MouseRightClickAction = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -71,6 +72,12 @@ namespace FluentTerminal.App.ViewModels.Settings
set { if (value) MouseRightClickAction = MouseAction.Paste; }
}
public bool MouseRightClickCopySelectionOrPasteIsSelected
{
get => MouseRightClickAction == MouseAction.CopySelectionOrPaste;
set { if (value) MouseRightClickAction = MouseAction.CopySelectionOrPaste; }
}
public MouseAction MouseMiddleClickAction
{
get => _applicationSettings.MouseMiddleClickAction;
@@ -80,7 +87,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_applicationSettings.MouseMiddleClickAction = value;
_settingsService.SaveApplicationSettings(_applicationSettings);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -103,7 +110,13 @@ namespace FluentTerminal.App.ViewModels.Settings
set { if (value) MouseMiddleClickAction = MouseAction.Paste; }
}
public RelayCommand RestoreDefaultsCommand { get; }
public bool MouseMiddleClickCopySelectionOrPasteIsSelected
{
get => MouseMiddleClickAction == MouseAction.CopySelectionOrPaste;
set { if (value) MouseMiddleClickAction = MouseAction.CopySelectionOrPaste; }
}
public ICommand RestoreDefaultsCommand { get; }
// Requires UI thread
private async Task RestoreDefaultsAsync()
@@ -1,15 +1,16 @@
using FluentTerminal.App.Services;
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class ProfilesPageViewModel : ViewModelBase
public class ProfilesPageViewModel : ObservableObject
{
private readonly IDefaultValueProvider _defaultValueProvider;
private readonly IDialogService _dialogService;
@@ -79,9 +80,9 @@ namespace FluentTerminal.App.ViewModels.Settings
}
}
public RelayCommand CreateShellProfileCommand { get; }
public ICommand CreateShellProfileCommand { get; }
public RelayCommand<ShellProfileViewModel> CloneCommand { get; }
public ICommand CloneCommand { get; }
private void CreateShellProfile()
{
@@ -122,7 +123,7 @@ namespace FluentTerminal.App.ViewModels.Settings
public ShellProfileViewModel SelectedShellProfile
{
get => _selectedShellProfile;
set => Set(ref _selectedShellProfile, value);
set => SetProperty(ref _selectedShellProfile, value);
}
public ObservableCollection<ShellProfileViewModel> ShellProfiles { get; } = new ObservableCollection<ShellProfileViewModel>();
@@ -1,15 +1,16 @@
using FluentTerminal.App.Services;
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class SshProfilesPageViewModel: ViewModelBase
public class SshProfilesPageViewModel: ObservableObject
{
private readonly IDialogService _dialogService;
private readonly ISettingsService _settingsService;
@@ -63,9 +64,9 @@ namespace FluentTerminal.App.ViewModels.Settings
}
}
public RelayCommand CreateSshProfileCommand { get; }
public ICommand CreateSshProfileCommand { get; }
public RelayCommand<SshProfileViewModel> CloneCommand { get; }
public ICommand CloneCommand { get; }
public void CreateSshProfile()
{
@@ -112,7 +113,7 @@ namespace FluentTerminal.App.ViewModels.Settings
public SshProfileViewModel SelectedSshProfile
{
get => _selectedShellProfile;
set => Set(ref _selectedShellProfile, value);
set => SetProperty(ref _selectedShellProfile, value);
}
public ObservableCollection<SshProfileViewModel> SshProfiles { get; } = new ObservableCollection<SshProfileViewModel>();
@@ -3,15 +3,16 @@ using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Utilities;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class TerminalPageViewModel : ViewModelBase
public class TerminalPageViewModel : ObservableObject
{
private readonly TerminalOptions _terminalOptions;
private readonly ISettingsService _settingsService;
@@ -63,7 +64,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.CursorBlink = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -77,7 +78,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.UseAcrylicBackground = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -91,7 +92,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.FontFamily = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -105,7 +106,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.FontWeight = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -119,7 +120,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.BackgroundOpacity = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -133,7 +134,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.Padding = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -153,12 +154,12 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.ScrollBackLimit = intValue;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
else
{
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -173,21 +174,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.WordSeparator = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
}
}
}
public bool ShowTextCopied
{
get => _terminalOptions.ShowTextCopied;
set
{
if (_terminalOptions.ShowTextCopied != value)
{
_terminalOptions.ShowTextCopied = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -203,14 +190,14 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.FontSize = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
public IEnumerable<int> Sizes { get; }
public RelayCommand RestoreDefaultsCommand { get; }
public ICommand RestoreDefaultsCommand { get; }
private CursorStyle CursorStyle
{
@@ -221,7 +208,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.CursorStyle = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -235,7 +222,7 @@ namespace FluentTerminal.App.ViewModels.Settings
{
_terminalOptions.ScrollBarStyle = value;
_settingsService.SaveTerminalOptions(_terminalOptions);
RaisePropertyChanged();
OnPropertyChanged();
}
}
}
@@ -259,7 +246,6 @@ namespace FluentTerminal.App.ViewModels.Settings
FontWeight = defaults.FontWeight;
BackgroundOpacity = defaults.BackgroundOpacity;
ScrollBackLimit = defaults.ScrollBackLimit.ToString();
ShowTextCopied = defaults.ShowTextCopied;
WordSeparator = defaults.WordSeparator;
}
}
@@ -270,7 +256,7 @@ namespace FluentTerminal.App.ViewModels.Settings
_dialogService = dialogService;
_defaultValueProvider = defaultValueProvider;
RestoreDefaultsCommand = new RelayCommand(async () => await RestoreDefaultsAsync().ConfigureAwait(false));
RestoreDefaultsCommand = new AsyncRelayCommand(RestoreDefaultsAsync);
Fonts = systemFontService.GetSystemFontFamilies().OrderBy(s => s.Name);
Sizes = Enumerable.Range(2, 72);
@@ -1,18 +1,20 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using FluentTerminal.Models.Messages;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using Microsoft.Toolkit.Mvvm.Messaging;
using System.Windows.Input;
namespace FluentTerminal.App.ViewModels.Settings
{
public class ThemesPageViewModel : ViewModelBase
public class ThemesPageViewModel : ObservableObject,
IRecipient<TerminalOptionsChangedMessage>
{
private readonly IDefaultValueProvider _defaultValueProvider;
private readonly IDialogService _dialogService;
@@ -42,11 +44,9 @@ namespace FluentTerminal.App.ViewModels.Settings
_imageFileSystemService = imageFileSystemService;
CreateThemeCommand = new RelayCommand(CreateTheme);
ImportThemeCommand = new AsyncCommand(ImportThemeAsync);
ImportThemeCommand = new AsyncRelayCommand(ImportThemeAsync);
CloneCommand = new RelayCommand<ThemeViewModel>(CloneTheme);
MessengerInstance.Register<TerminalOptionsChangedMessage>(this, OnTerminalOptionsChanged);
BackgroundOpacity = _settingsService.GetTerminalOptions().BackgroundOpacity;
var activeThemeId = _settingsService.GetCurrentThemeId();
@@ -64,16 +64,18 @@ namespace FluentTerminal.App.ViewModels.Settings
}
SelectedTheme = Themes.First(t => t.IsActive);
WeakReferenceMessenger.Default.RegisterAll(this);
}
public RelayCommand CreateThemeCommand { get; }
public IAsyncCommand ImportThemeCommand { get; }
public RelayCommand<ThemeViewModel> CloneCommand { get; set; }
public ICommand CreateThemeCommand { get; }
public ICommand ImportThemeCommand { get; }
public ICommand CloneCommand { get; set; }
public double BackgroundOpacity
{
get => _backgroundOpacity;
set => Set(ref _backgroundOpacity, value);
set => SetProperty(ref _backgroundOpacity, value);
}
public ThemeViewModel SelectedTheme
@@ -87,7 +89,7 @@ namespace FluentTerminal.App.ViewModels.Settings
_selectedTheme.BackgroundImageChanged -= OnSelectedThemeBackgroundImageChanged;
}
Set(ref _selectedTheme, value);
SetProperty(ref _selectedTheme, value);
SelectedThemeChanged?.Invoke(this, _selectedTheme);
if (value != null)
@@ -218,7 +220,7 @@ namespace FluentTerminal.App.ViewModels.Settings
}
}
private void OnTerminalOptionsChanged(TerminalOptionsChangedMessage message)
public void Receive(TerminalOptionsChangedMessage message)
{
BackgroundOpacity = message.TerminalOptions.BackgroundOpacity;
}
@@ -1,11 +1,11 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.ViewModels.Settings;
using GalaSoft.MvvmLight;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using System;
namespace FluentTerminal.App.ViewModels
{
public class SettingsViewModel : ViewModelBase
public class SettingsViewModel : ObservableObject
{
public SettingsViewModel(ISettingsService settingsService, IDefaultValueProvider defaultValueProvider, IDialogService dialogService,
ITrayProcessCommunicationService trayProcessCommunicationService, IThemeParserFactory themeParserFactory, ISystemFontService systemFontService,
@@ -1,12 +1,12 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using GalaSoft.MvvmLight.Command;
using System;
using System.Linq;
using System.Threading.Tasks;
using FluentTerminal.App.ViewModels.Profiles;
using System.Windows.Input;
using Microsoft.Toolkit.Mvvm.Input;
namespace FluentTerminal.App.ViewModels
{
@@ -28,7 +28,7 @@ namespace FluentTerminal.App.ViewModels
public bool IsDefault
{
get => _isDefault;
set => Set(ref _isDefault, value);
set => SetProperty(ref _isDefault, value);
}
#endregion Properties
@@ -41,9 +41,9 @@ namespace FluentTerminal.App.ViewModels
#region Commands
public RelayCommand SetDefaultCommand { get; }
public ICommand SetDefaultCommand { get; }
public IAsyncCommand RestoreDefaultsCommand { get; }
public ICommand RestoreDefaultsCommand { get; }
#endregion Commands
@@ -60,7 +60,7 @@ namespace FluentTerminal.App.ViewModels
shellProfile);
SetDefaultCommand = new RelayCommand(SetDefault);
RestoreDefaultsCommand = new AsyncCommand(RestoreDefaultsAsync);
RestoreDefaultsCommand = new AsyncRelayCommand(RestoreDefaultsAsync);
}
#endregion Constrcutor
@@ -0,0 +1,31 @@
using FluentTerminal.Models;
using Microsoft.Toolkit.Mvvm.ComponentModel;
namespace FluentTerminal.App.ViewModels
{
public class TabThemeViewModel : ObservableObject
{
private bool _isSelected;
public TabThemeViewModel(TabTheme theme, TerminalViewModel terminal)
{
Theme = theme;
Terminal = terminal;
}
public bool IsSelected
{
get => _isSelected;
set
{
if (SetProperty(ref _isSelected, value) && value)
{
Terminal.TabTheme = this;
}
}
}
public TabTheme Theme { get; }
public TerminalViewModel Terminal { get; }
}
}
@@ -1,10 +1,7 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using FluentTerminal.Models.Enums;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using Newtonsoft.Json;
using System;
using System.Collections.ObjectModel;
@@ -13,10 +10,20 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Windows.UI.Core;
using FluentTerminal.Models.Messages;
using System.Windows.Input;
using FluentTerminal.App.ViewModels.Menu;
using System.Collections.Generic;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Messaging;
using Microsoft.Toolkit.Mvvm.Input;
namespace FluentTerminal.App.ViewModels
{
public class TerminalViewModel : ViewModelBase
public class TerminalViewModel : ObservableObject,
IRecipient<ApplicationSettingsChangedMessage>,
IRecipient<CurrentThemeChangedMessage>,
IRecipient<TerminalOptionsChangedMessage>,
IRecipient<KeyBindingsChangedMessage>
{
#region Static
@@ -32,12 +39,16 @@ namespace FluentTerminal.App.ViewModels
public string ShellTitle { get; set; }
public string TabTitle { get; set; }
public TerminalTheme TerminalTheme { get; set; }
public TabTheme TabTheme { get; set; }
public int TabThemeId { get; set; }
public bool ShowSearchPanel { get; set; }
public string SearchText { get; set; }
public bool SearchMatchCase { get; set; }
public bool SearchWholeWord { get; set; }
public bool SearchWithRegex { get; set; }
public string XtermBufferState { get; set; }
public byte TerminalId { get; set; }
public ShellProfile ShellProfile { get; set; }
public int FontSize { get; set; }
}
public async Task<string> SerializeAsync()
@@ -48,12 +59,16 @@ namespace FluentTerminal.App.ViewModels
ShellTitle = ShellTitle,
TabTitle = TabTitle,
TerminalTheme = TerminalTheme,
TabTheme = TabTheme,
TabThemeId = TabTheme.Theme.Id,
ShowSearchPanel = ShowSearchPanel,
SearchText = SearchText,
SearchMatchCase = SearchMatchCase,
SearchWholeWord = SearchWholeWord,
SearchWithRegex = SearchWithRegex,
XtermBufferState = await SerializeXtermStateAsync().ConfigureAwait(false),
TerminalId = Terminal.Id,
ShellProfile = ShellProfile
ShellProfile = ShellProfile,
FontSize = FontSize
};
return JsonConvert.SerializeObject(state);
@@ -68,12 +83,17 @@ namespace FluentTerminal.App.ViewModels
ShellTitle = state.ShellTitle;
TabTitle = state.TabTitle;
TerminalTheme = state.TerminalTheme;
TabTheme = state.TabTheme;
TabTheme = TabThemes.FirstOrDefault(t => t.Theme.Id == state.TabThemeId);
ShowSearchPanel = state.ShowSearchPanel;
SearchText = state.SearchText;
SearchMatchCase = state.SearchMatchCase;
SearchWholeWord = state.SearchWholeWord;
SearchWithRegex = state.SearchWithRegex;
XtermBufferState = state.XtermBufferState;
_terminalId = state.TerminalId;
ShellProfile = state.ShellProfile;
FontSize = state.FontSize;
TabTheme.IsSelected = true;
}
}
@@ -86,22 +106,27 @@ namespace FluentTerminal.App.ViewModels
private bool _hasExitedWithError;
private string _searchText;
private bool _showSearchPanel;
private TabTheme _tabTheme;
private bool _searchMatchCase;
private bool _searchWholeWord;
private bool _searchWithRegex;
private TabThemeViewModel _tabTheme;
private TerminalTheme _terminalTheme;
private TerminalOptions _terminalOptions;
private string _tabTitle;
private string _shellTitle;
private bool _hasCustomTitle;
private byte? _terminalId;
private bool _hasSelection;
private string _hoveredUri;
private MenuViewModel _contextMenu;
private MenuViewModel _tabContextMenu;
private readonly TabThemeViewModel _transparentTabThemeViewModel;
private int _fontSize;
public TerminalViewModel(ISettingsService settingsService, ITrayProcessCommunicationService trayProcessCommunicationService, IDialogService dialogService,
IKeyboardCommandService keyboardCommandService, ApplicationSettings applicationSettings, ShellProfile shellProfile,
IApplicationView applicationView, IClipboardService clipboardService, string terminalState = null)
{
MessengerInstance.Register<ApplicationSettingsChangedMessage>(this, OnApplicationSettingsChanged);
MessengerInstance.Register<CurrentThemeChangedMessage>(this, OnCurrentThemeChanged);
MessengerInstance.Register<TerminalOptionsChangedMessage>(this, OnTerminalOptionsChanged);
SettingsService = settingsService;
_terminalOptions = SettingsService.GetTerminalOptions();
@@ -117,24 +142,35 @@ namespace FluentTerminal.App.ViewModels
ShellProfile = shellProfile;
TerminalTheme = shellProfile.TerminalThemeId == Guid.Empty ? SettingsService.GetCurrentTheme() : SettingsService.GetTheme(shellProfile.TerminalThemeId);
TabThemes = new ObservableCollection<TabTheme>(SettingsService.GetTabThemes());
TabTheme = TabThemes.FirstOrDefault(t => t.Id == ShellProfile.TabThemeId);
CloseCommand = new AsyncCommand(TryCloseAsync, CanExecuteCommand);
TabThemes = new ObservableCollection<TabThemeViewModel>(SettingsService.GetTabThemes().Select(theme => new TabThemeViewModel(theme, this)));
CloseCommand = new AsyncRelayCommand(TryCloseAsync, CanExecuteCommand);
CloseLeftTabsCommand = new RelayCommand(CloseLeftTabs, CanExecuteCommand);
CloseRightTabsCommand = new RelayCommand(CloseRightTabs, CanExecuteCommand);
CloseOtherTabsCommand = new RelayCommand(CloseOtherTabs, CanExecuteCommand);
FindNextCommand = new RelayCommand(FindNext, CanExecuteCommand);
FindPreviousCommand = new RelayCommand(FindPrevious, CanExecuteCommand);
CloseSearchPanelCommand = new RelayCommand(CloseSearchPanel, CanExecuteCommand);
SelectTabThemeCommand = new RelayCommand<string>(SelectTabTheme, CanExecuteCommand);
EditTitleCommand = new AsyncCommand(EditTitleAsync, CanExecuteCommand);
EditTitleCommand = new AsyncRelayCommand(EditTitleAsync, CanExecuteCommand);
DuplicateTabCommand = new RelayCommand(DuplicateTab, CanExecuteCommand);
ReconnectTabCommand = new AsyncRelayCommand(ReconnectTabAsync, () => CanExecuteCommand() && HasExitedWithError);
CopyCommand = new AsyncRelayCommand(Copy, () => HasSelection);
PasteCommand = new AsyncRelayCommand(Paste);
CopyLinkCommand = new AsyncRelayCommand(() => CopyTextAsync(HoveredUri), () => !string.IsNullOrWhiteSpace(HoveredUri));
ShowSearchPanelCommand = new RelayCommand(() => ShowSearchPanel = true, () => !ShowSearchPanel);
if (!String.IsNullOrEmpty(terminalState))
FontSize = _terminalOptions.FontSize;
if (!string.IsNullOrEmpty(terminalState))
{
Restore(terminalState);
}
else
{
var defaultTabTheme = TabThemes.FirstOrDefault(t => t.Theme.Id == ShellProfile.TabThemeId);
defaultTabTheme.IsSelected = true;
}
_transparentTabThemeViewModel = TabThemes.FirstOrDefault(t => t.Theme.Id == 0);
Terminal = new Terminal(TrayProcessCommunicationService, _terminalId);
Terminal.KeyboardCommandReceived += Terminal_KeyboardCommandReceived;
@@ -143,6 +179,23 @@ namespace FluentTerminal.App.ViewModels
Terminal.TitleChanged += Terminal_TitleChanged;
Terminal.Exited += Terminal_Exited;
Terminal.Closed += Terminal_Closed;
ContextMenu = BuidContextMenu();
TabContextMenu = BuildTabContextMenu();
WeakReferenceMessenger.Default.RegisterAll(this);
}
public MenuViewModel ContextMenu
{
get => _contextMenu;
set => SetProperty(ref _contextMenu, value);
}
public MenuViewModel TabContextMenu
{
get => _tabContextMenu;
set => SetProperty(ref _tabContextMenu, value);
}
private bool _disposalRequested;
@@ -159,51 +212,62 @@ namespace FluentTerminal.App.ViewModels
public event EventHandler Activated;
public event EventHandler Closed;
public event EventHandler<string> FindNextRequested;
public event EventHandler<string> FindPreviousRequested;
public event EventHandler<SearchRequest> FindNextRequested;
public event EventHandler<SearchRequest> FindPreviousRequested;
public event EventHandler SearchStarted;
public event EventHandler<TerminalTheme> ThemeChanged;
public event EventHandler CloseLeftTabsRequested;
public event EventHandler CloseRightTabsRequested;
public event EventHandler CloseOtherTabsRequested;
public event EventHandler DuplicateTabRequested;
public event EventHandler<int> FontSizeChanged;
public ApplicationSettings ApplicationSettings { get; private set; }
public IApplicationView ApplicationView { get; }
public TabTheme BackgroundTabTheme
public TabThemeViewModel BackgroundTabTheme
{
// The effective background theme depends on whether it is selected (use the theme), or if it is inactive
// (if we're set to underline inactive tabs, use the null theme).
get => IsSelected || (!IsSelected && ApplicationSettings.InactiveTabColorMode == InactiveTabColorMode.Background) ?
_tabTheme :
SettingsService.GetTabThemes().FirstOrDefault(t => t.Color == null);
TabTheme :
_transparentTabThemeViewModel;
}
public IClipboardService ClipboardService { get; }
public string XtermBufferState { get; private set; }
public AsyncCommand CloseCommand { get; private set; }
public ICommand CloseCommand { get; private set; }
public RelayCommand CloseRightTabsCommand { get; }
public ICommand CloseRightTabsCommand { get; }
public RelayCommand CloseLeftTabsCommand { get; }
public ICommand CloseLeftTabsCommand { get; }
public RelayCommand CloseOtherTabsCommand { get; }
public ICommand CloseOtherTabsCommand { get; }
public RelayCommand CloseSearchPanelCommand { get; }
public ICommand CloseSearchPanelCommand { get; }
public IDialogService DialogService { get; }
public IAsyncCommand EditTitleCommand { get; }
public ICommand EditTitleCommand { get; }
public RelayCommand FindNextCommand { get; }
public ICommand FindNextCommand { get; }
public RelayCommand FindPreviousCommand { get; }
public ICommand FindPreviousCommand { get; }
public RelayCommand DuplicateTabCommand { get; }
public ICommand DuplicateTabCommand { get; }
public AsyncRelayCommand ReconnectTabCommand { get; }
public ICommand CopyLinkCommand { get; private set; }
public ICommand CopyCommand { get; private set; }
public ICommand PasteCommand { get; private set; }
public ICommand ShowSearchPanelCommand { get; private set; }
public double BackgroundOpacity => _terminalOptions?.BackgroundOpacity ?? 1.0;
@@ -212,15 +276,40 @@ namespace FluentTerminal.App.ViewModels
get => _isSelected;
set
{
if (Set(ref _isSelected, value))
if (SetProperty(ref _isSelected, value))
{
if (IsSelected)
{
_keyboardCommandService.RegisterCommandHandler(nameof(Command.Search), () => ShowSearchPanel = true);
_keyboardCommandService.RegisterCommandHandler(nameof(Command.CloseSearch), () => CloseSearchPanel());
HasNewOutput = false;
}
RaisePropertyChanged(nameof(IsUnderlined));
RaisePropertyChanged(nameof(BackgroundTabTheme));
RaisePropertyChanged(nameof(ShowCloseButton));
else
{
_keyboardCommandService.DeregisterCommandHandler(nameof(Command.Search));
_keyboardCommandService.DeregisterCommandHandler(nameof(Command.CloseSearch));
}
OnPropertyChanged(nameof(IsUnderlined));
OnPropertyChanged(nameof(BackgroundTabTheme));
OnPropertyChanged(nameof(ShowCloseButton));
}
}
}
public bool HasSelection
{
get => _hasSelection;
set => SetProperty(ref _hasSelection, value);
}
public string HoveredUri
{
get => _hoveredUri;
set
{
if (SetProperty(ref _hoveredUri, value))
{
ContextMenu = BuidContextMenu();
}
}
}
@@ -230,9 +319,9 @@ namespace FluentTerminal.App.ViewModels
get => _isHovered;
set
{
if (Set(ref _isHovered, value))
if (SetProperty(ref _isHovered, value))
{
RaisePropertyChanged(nameof(ShowCloseButton));
OnPropertyChanged(nameof(ShowCloseButton));
}
}
}
@@ -243,12 +332,12 @@ namespace FluentTerminal.App.ViewModels
}
public bool IsUnderlined => (IsSelected && ApplicationSettings.UnderlineSelectedTab) ||
(!IsSelected && ApplicationSettings.InactiveTabColorMode == InactiveTabColorMode.Underlined && TabTheme.Color != null);
(!IsSelected && ApplicationSettings.InactiveTabColorMode == InactiveTabColorMode.Underlined && TabTheme.Theme.Color != null);
public bool HasNewOutput
{
get => _hasNewOutput;
set => Set(ref _hasNewOutput, value);
set => SetProperty(ref _hasNewOutput, value);
}
public bool HasExitedWithError
@@ -256,20 +345,37 @@ namespace FluentTerminal.App.ViewModels
get => _hasExitedWithError;
set
{
if (Set(ref _hasExitedWithError, value) && value)
if (SetProperty(ref _hasExitedWithError, value) && value)
{
HasNewOutput = false;
}
ReconnectTabCommand.NotifyCanExecuteChanged();
}
}
public string SearchText
{
get => _searchText;
set => Set(ref _searchText, value);
set => SetProperty(ref _searchText, value);
}
public RelayCommand<string> SelectTabThemeCommand { get; }
public bool SearchMatchCase
{
get => _searchMatchCase;
set => SetProperty(ref _searchMatchCase, value);
}
public bool SearchWholeWord
{
get => _searchWholeWord;
set => SetProperty(ref _searchWholeWord, value);
}
public bool SearchWithRegex
{
get => _searchWithRegex;
set => SetProperty(ref _searchWithRegex, value);
}
public ISettingsService SettingsService { get; }
@@ -278,21 +384,26 @@ namespace FluentTerminal.App.ViewModels
public bool ShowSearchPanel
{
get => _showSearchPanel;
set => Set(ref _showSearchPanel, value);
set => SetProperty(ref _showSearchPanel, value);
}
public TabTheme TabTheme
public bool SearchHasFocus { get; set; }
public TabThemeViewModel TabTheme
{
get => _tabTheme;
set
{
Set(ref _tabTheme, value);
RaisePropertyChanged(nameof(IsUnderlined));
RaisePropertyChanged(nameof(BackgroundTabTheme));
SetProperty(ref _tabTheme, value);
OnPropertyChanged(nameof(IsUnderlined));
OnPropertyChanged(nameof(BackgroundTabTheme));
// necessary to update this constantly so that duplicated tabs will also carry over the color
ShellProfile.TabThemeId = value.Theme.Id;
}
}
public ObservableCollection<TabTheme> TabThemes { get; }
public ObservableCollection<TabThemeViewModel> TabThemes { get; }
public Terminal Terminal { get; private set; }
@@ -301,7 +412,7 @@ namespace FluentTerminal.App.ViewModels
public TerminalTheme TerminalTheme
{
get => _terminalTheme;
set => Set(ref _terminalTheme, value);
set => SetProperty(ref _terminalTheme, value);
}
public bool Initialized { get; set; }
@@ -332,7 +443,8 @@ namespace FluentTerminal.App.ViewModels
}
}
Set(ref _tabTitle, title);
SetProperty(ref _tabTitle, title);
ShellProfile.Name = title;
}
}
@@ -341,18 +453,27 @@ namespace FluentTerminal.App.ViewModels
get => _shellTitle;
set
{
if (Set(ref _shellTitle, value) && !_hasCustomTitle)
if (SetProperty(ref _shellTitle, value) && !_hasCustomTitle)
{
TabTitle = value;
}
}
}
public int FontSize
{
get => _fontSize;
set
{
_fontSize = value > 0 ? value : 1;
}
}
public ITrayProcessCommunicationService TrayProcessCommunicationService { get; }
public Task CloseAsync()
{
MessengerInstance.Unregister(this);
//MessengerInstance.Unregister(this); // todo necessary?
return Terminal.CloseAsync();
}
@@ -363,7 +484,7 @@ namespace FluentTerminal.App.ViewModels
{
ClipboardService.SetText(text);
if (_terminalOptions.ShowTextCopied)
if (ApplicationSettings.ShowTextCopied)
{
Overlay.Show(I18N.Translate("TextCopied"));
}
@@ -430,7 +551,7 @@ namespace FluentTerminal.App.ViewModels
private void FindNext()
{
FindNextRequested?.Invoke(this, SearchText);
FindNextRequested?.Invoke(this, new SearchRequest { MatchCase = SearchMatchCase, Regex = SearchWithRegex, Term = SearchText, WholeWord = SearchWholeWord });
}
public ITerminalView TerminalView { get; set; }
@@ -442,7 +563,7 @@ namespace FluentTerminal.App.ViewModels
private void FindPrevious()
{
FindPreviousRequested?.Invoke(this, SearchText);
FindPreviousRequested?.Invoke(this, new SearchRequest { MatchCase = SearchMatchCase, Regex = SearchWithRegex, Term = SearchText, WholeWord = SearchWholeWord });
}
private void DuplicateTab()
@@ -450,18 +571,24 @@ namespace FluentTerminal.App.ViewModels
DuplicateTabRequested?.Invoke(this, EventArgs.Empty);
}
private void OnApplicationSettingsChanged(ApplicationSettingsChangedMessage message)
public async Task ReconnectTabAsync()
{
HasExitedWithError = false;
await TerminalView?.ReconnectAsync();
}
public void Receive(ApplicationSettingsChangedMessage message)
{
ApplicationSettings = message.ApplicationSettings;
ApplicationView.ExecuteOnUiThreadAsync(() =>
{
RaisePropertyChanged(nameof(IsUnderlined));
RaisePropertyChanged(nameof(BackgroundTabTheme));
OnPropertyChanged(nameof(IsUnderlined));
OnPropertyChanged(nameof(BackgroundTabTheme));
});
}
private void OnCurrentThemeChanged(CurrentThemeChangedMessage message)
public void Receive(CurrentThemeChangedMessage message)
{
// only change theme if not overwritten by profile
if (ShellProfile.TerminalThemeId == Guid.Empty)
@@ -476,15 +603,29 @@ namespace FluentTerminal.App.ViewModels
}
}
private void OnTerminalOptionsChanged(TerminalOptionsChangedMessage message)
public void Receive(TerminalOptionsChangedMessage message)
{
_terminalOptions = message.TerminalOptions;
ApplicationView.ExecuteOnUiThreadAsync(() => RaisePropertyChanged(nameof(BackgroundOpacity)), CoreDispatcherPriority.Low);
ApplicationView.ExecuteOnUiThreadAsync(() => OnPropertyChanged(nameof(BackgroundOpacity)), CoreDispatcherPriority.Low);
}
private void SelectTabTheme(string id)
public void Receive(KeyBindingsChangedMessage message)
{
TabTheme = TabThemes.FirstOrDefault(t => t.Id == int.Parse(id));
ApplicationView.ExecuteOnUiThreadAsync(() =>
{
var contextMenu = BuidContextMenu();
if (!contextMenu.EquivalentTo(ContextMenu))
{
ContextMenu = contextMenu;
}
var tabContextMenu = BuildTabContextMenu();
if (!tabContextMenu.EquivalentTo(TabContextMenu))
{
TabContextMenu = tabContextMenu;
}
}, CoreDispatcherPriority.Low, true);
}
private void Terminal_Exited(object sender, int exitCode)
@@ -514,18 +655,12 @@ namespace FluentTerminal.App.ViewModels
{
case nameof(Command.Copy):
{
var selection = await Terminal.GetSelectedText().ConfigureAwait(false);
await CopyTextAsync(selection).ConfigureAwait(false);
await Copy().ConfigureAwait(false);
return;
}
case nameof(Command.Paste):
{
string content = await ClipboardService.GetTextAsync().ConfigureAwait(false);
if (content != null)
{
content = ShellProfile.TranslateLineEndings(content);
await TerminalView.PasteAsync(content).ConfigureAwait(false);
}
await Paste().ConfigureAwait(false);
return;
}
case nameof(Command.PasteWithoutNewlines):
@@ -534,7 +669,7 @@ namespace FluentTerminal.App.ViewModels
if (content != null)
{
content = ShellProfile.NewlinePattern.Replace(content, string.Empty);
await TerminalView.PasteAsync(content).ConfigureAwait(false);
TerminalView.Paste(content);
}
return;
}
@@ -542,14 +677,41 @@ namespace FluentTerminal.App.ViewModels
{
await ApplicationView.ExecuteOnUiThreadAsync(() =>
{
ShowSearchPanel = !ShowSearchPanel;
if (ShowSearchPanel)
{
SearchStarted?.Invoke(this, EventArgs.Empty);
}
ShowSearchPanel = true;
SearchStarted?.Invoke(this, EventArgs.Empty);
}).ConfigureAwait(false);
return;
}
case nameof(Command.CloseSearch):
{
await ApplicationView.ExecuteOnUiThreadAsync(() =>
{
CloseSearchPanel();
}).ConfigureAwait(false);
return;
}
case nameof(Command.IncreaseFontSize):
{
FontSize++;
FontSizeChanged?.Invoke(this, FontSize);
return;
}
case nameof(Command.DecreaseFontSize):
{
if (FontSize > 2)
{
FontSize--;
FontSizeChanged?.Invoke(this, FontSize);
}
return;
}
case nameof(Command.ResetFontSize):
{
FontSize = _terminalOptions.FontSize;
FontSizeChanged?.Invoke(this, FontSize);
return;
}
default:
{
await ApplicationView.ExecuteOnUiThreadAsync(() => _keyboardCommandService.SendCommand(e))
@@ -579,6 +741,7 @@ namespace FluentTerminal.App.ViewModels
private void Terminal_TitleChanged(object sender, string e)
{
if (e == Terminal.Profile.Location) return;
ApplicationView.ExecuteOnUiThreadAsync(() => ShellTitle = e);
}
@@ -597,5 +760,128 @@ namespace FluentTerminal.App.ViewModels
await CloseAsync().ConfigureAwait(false);
}
}
private async Task Copy()
{
var selection = await Terminal.GetSelectedText().ConfigureAwait(false);
await CopyTextAsync(selection).ConfigureAwait(false);
}
private async Task Paste()
{
// prevent from pasting something into the terminal window when the actual command is executed
// while being in the search box
if (!SearchHasFocus)
{
var content = await ClipboardService.GetTextAsync().ConfigureAwait(false);
if (content != null)
{
TerminalView.Paste(content);
}
}
}
private MenuViewModel BuidContextMenu()
{
var commandKeyBindings = SettingsService.GetCommandKeyBindings();
var contextMenu = new MenuViewModel();
if (!string.IsNullOrWhiteSpace(HoveredUri))
{
var copyLink = new MenuItemViewModel(I18N.Translate("CopyLink"), CopyLinkCommand, icon: Mdl2Icon.Link());
contextMenu.Items.Add(copyLink);
contextMenu.Items.Add(new SeparatorMenuItemViewModel());
}
var copy = new MenuItemViewModel(I18N.Translate("Command.Copy"), CopyCommand, icon: Mdl2Icon.Copy());
AddKeyBindings(copy, Command.Copy, commandKeyBindings);
contextMenu.Items.Add(copy);
var paste = new MenuItemViewModel(I18N.Translate("Command.Paste"), PasteCommand, icon: Mdl2Icon.Paste());
AddKeyBindings(paste, Command.Paste, commandKeyBindings);
contextMenu.Items.Add(paste);
contextMenu.Items.Add(new SeparatorMenuItemViewModel());
var editTitle = new MenuItemViewModel(I18N.Translate("EditTitle.Text"), EditTitleCommand, icon: Mdl2Icon.Edit());
AddKeyBindings(editTitle, Command.ChangeTabTitle, commandKeyBindings);
contextMenu.Items.Add(editTitle);
var search = new MenuItemViewModel(I18N.Translate("Search.Text"), ShowSearchPanelCommand, icon: Mdl2Icon.Search());
AddKeyBindings(search, Command.Search, commandKeyBindings);
contextMenu.Items.Add(search);
contextMenu.Items.Add(new SeparatorMenuItemViewModel());
var duplicate = new MenuItemViewModel(I18N.Translate("Command.DuplicateTab"), DuplicateTabCommand);
AddKeyBindings(duplicate, Command.DuplicateTab, commandKeyBindings);
contextMenu.Items.Add(duplicate);
contextMenu.Items.Add(new SeparatorMenuItemViewModel());
var close = new MenuItemViewModel(I18N.Translate("Close"), CloseCommand, icon: Mdl2Icon.Cancel());
AddKeyBindings(close, Command.CloseTab, commandKeyBindings);
contextMenu.Items.Add(close);
return contextMenu;
}
private MenuViewModel BuildTabContextMenu()
{
var commandKeyBindings = SettingsService.GetCommandKeyBindings();
var contextMenu = new MenuViewModel();
RadioMenuItemViewModel createTabColorItem(TabThemeViewModel tabTheme)
{
//todo localise name
var icon = tabTheme.Theme.Id == 0 ? Mdl2Icon.PaginationDotOutline10() : Mdl2Icon.PaginationDotSolid10(tabTheme.Theme.Color);
return new RadioMenuItemViewModel(I18N.Translate($"{tabTheme.Theme.Name}"), $"{Terminal.Id}_tabTheme", tabTheme, bindingPath: nameof(TabThemeViewModel.IsSelected) , icon: icon);
}
var tabColor = new ExpandableMenuItemViewModel(I18N.Translate("Color.Text"));
foreach (var tabTheme in TabThemes)
{
tabColor.SubItems.Add(createTabColorItem(tabTheme));
}
contextMenu.Items.Add(tabColor);
var editTitle = new MenuItemViewModel(I18N.Translate("EditTitle.Text"), EditTitleCommand, icon: Mdl2Icon.Edit());
AddKeyBindings(editTitle, Command.ChangeTabTitle, commandKeyBindings);
contextMenu.Items.Add(editTitle);
contextMenu.Items.Add(new SeparatorMenuItemViewModel());
var duplicate = new MenuItemViewModel(I18N.Translate("Command.DuplicateTab"), DuplicateTabCommand);
AddKeyBindings(duplicate, Command.DuplicateTab, commandKeyBindings);
contextMenu.Items.Add(duplicate);
contextMenu.Items.Add(new SeparatorMenuItemViewModel());
var closeLeft = new MenuItemViewModel(I18N.Translate("CloseLeft.Text"), CloseLeftTabsCommand);
contextMenu.Items.Add(closeLeft);
var closeRight = new MenuItemViewModel(I18N.Translate("CloseRight.Text"), CloseRightTabsCommand);
contextMenu.Items.Add(closeRight);
var closeOther = new MenuItemViewModel(I18N.Translate("CloseOther.Text"), CloseOtherTabsCommand);
contextMenu.Items.Add(closeOther);
var close = new MenuItemViewModel(I18N.Translate("Close"), CloseCommand, icon: Mdl2Icon.Cancel());
AddKeyBindings(close, Command.CloseTab, commandKeyBindings);
contextMenu.Items.Add(close);
return contextMenu;
}
private void AddKeyBindings(MenuItemViewModel menuItem, Command command, IDictionary<string, ICollection<KeyBinding>> commandKeyBindings)
{
var keyBindings = commandKeyBindings[command.ToString()];
if (keyBindings?.Any() == true)
{
menuItem.KeyBinding = new MenuItemKeyBindingViewModel(keyBindings.First());
}
}
}
}
+36 -37
View File
@@ -1,9 +1,8 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Infrastructure;
using FluentTerminal.Models;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using Newtonsoft.Json;
using System;
using System.Threading.Tasks;
@@ -11,7 +10,7 @@ using System.Windows.Input;
namespace FluentTerminal.App.ViewModels
{
public class ThemeViewModel : ViewModelBase
public class ThemeViewModel : ObservableObject
{
private readonly IDialogService _dialogService;
private readonly ISettingsService _settingsService;
@@ -95,13 +94,13 @@ namespace FluentTerminal.App.ViewModels
BackgroundThemeFile = Model.BackgroundImage;
SetActiveCommand = new RelayCommand(SetActive);
DeleteCommand = new AsyncCommand(DeleteAsync, NotPreInstalled);
DeleteCommand = new AsyncRelayCommand(DeleteAsync, NotPreInstalled);
EditCommand = new RelayCommand(Edit, NotPreInstalled);
CancelEditCommand = new AsyncCommand(CancelEditAsync);
SaveChangesCommand = new AsyncCommand(SaveChangesAsync);
ExportCommand = new AsyncCommand(Export, NotPreInstalled);
ChooseBackgroundImageCommand = new AsyncCommand(ChooseBackgroundImageAsync, NotPreInstalled);
DeleteBackgroundImageCommand = new AsyncCommand(DeleteBackgroundImageAsync, NotPreInstalled);
CancelEditCommand = new AsyncRelayCommand(CancelEditAsync);
SaveChangesCommand = new AsyncRelayCommand(SaveChangesAsync);
ExportCommand = new AsyncRelayCommand(Export, NotPreInstalled);
ChooseBackgroundImageCommand = new AsyncRelayCommand(ChooseBackgroundImageAsync, NotPreInstalled);
DeleteBackgroundImageCommand = new AsyncRelayCommand(DeleteBackgroundImageAsync, NotPreInstalled);
}
public event EventHandler Activated;
@@ -113,7 +112,7 @@ namespace FluentTerminal.App.ViewModels
public string Author
{
get => _author;
set => Set(ref _author, value);
set => SetProperty(ref _author, value);
}
public string Background
@@ -121,7 +120,7 @@ namespace FluentTerminal.App.ViewModels
get => _background;
set
{
Set(ref _background, value);
SetProperty(ref _background, value);
BackgroundChanged?.Invoke(this, value);
}
}
@@ -129,67 +128,67 @@ namespace FluentTerminal.App.ViewModels
public double BackgroundOpacity
{
get => _backgroundOpacity;
set => Set(ref _backgroundOpacity, value);
set => SetProperty(ref _backgroundOpacity, value);
}
public string Black
{
get => _black;
set => Set(ref _black, value);
set => SetProperty(ref _black, value);
}
public string Blue
{
get => _blue;
set => Set(ref _blue, value);
set => SetProperty(ref _blue, value);
}
public string BrightBlack
{
get => _brightBlack;
set => Set(ref _brightBlack, value);
set => SetProperty(ref _brightBlack, value);
}
public string BrightBlue
{
get => _brightBlue;
set => Set(ref _brightBlue, value);
set => SetProperty(ref _brightBlue, value);
}
public string BrightCyan
{
get => _brightCyan;
set => Set(ref _brightCyan, value);
set => SetProperty(ref _brightCyan, value);
}
public string BrightGreen
{
get => _brightGreen;
set => Set(ref _brightGreen, value);
set => SetProperty(ref _brightGreen, value);
}
public string BrightMagenta
{
get => _brightMagenta;
set => Set(ref _brightMagenta, value);
set => SetProperty(ref _brightMagenta, value);
}
public string BrightRed
{
get => _brightRed;
set => Set(ref _brightRed, value);
set => SetProperty(ref _brightRed, value);
}
public string BrightWhite
{
get => _brightWhite;
set => Set(ref _brightWhite, value);
set => SetProperty(ref _brightWhite, value);
}
public string BrightYellow
{
get => _brightYellow;
set => Set(ref _brightYellow, value);
set => SetProperty(ref _brightYellow, value);
}
public ICommand CancelEditCommand { get; }
@@ -197,19 +196,19 @@ namespace FluentTerminal.App.ViewModels
public string Cursor
{
get => _cursor;
set => Set(ref _cursor, value);
set => SetProperty(ref _cursor, value);
}
public string CursorAccent
{
get => _cursorAccent;
set => Set(ref _cursorAccent, value);
set => SetProperty(ref _cursorAccent, value);
}
public string Cyan
{
get => _cyan;
set => Set(ref _cyan, value);
set => SetProperty(ref _cyan, value);
}
public ICommand DeleteCommand { get; }
@@ -219,13 +218,13 @@ namespace FluentTerminal.App.ViewModels
public string Foreground
{
get => _foreground;
set => Set(ref _foreground, value);
set => SetProperty(ref _foreground, value);
}
public string Green
{
get => _green;
set => Set(ref _green, value);
set => SetProperty(ref _green, value);
}
public Guid Id { get; }
@@ -233,31 +232,31 @@ namespace FluentTerminal.App.ViewModels
public bool InEditMode
{
get => _inEditMode;
set => Set(ref _inEditMode, value);
set => SetProperty(ref _inEditMode, value);
}
public bool IsActive
{
get => _isActive;
set => Set(ref _isActive, value);
set => SetProperty(ref _isActive, value);
}
public string Magenta
{
get => _magenta;
set => Set(ref _magenta, value);
set => SetProperty(ref _magenta, value);
}
public string Name
{
get => _name;
set => Set(ref _name, value);
set => SetProperty(ref _name, value);
}
public string Red
{
get => _red;
set => Set(ref _red, value);
set => SetProperty(ref _red, value);
}
public ICommand SaveChangesCommand { get; }
@@ -265,7 +264,7 @@ namespace FluentTerminal.App.ViewModels
public string Selection
{
get => _selection;
set => Set(ref _selection, value);
set => SetProperty(ref _selection, value);
}
public ICommand SetActiveCommand { get; }
@@ -273,13 +272,13 @@ namespace FluentTerminal.App.ViewModels
public string White
{
get => _white;
set => Set(ref _white, value);
set => SetProperty(ref _white, value);
}
public string Yellow
{
get => _yellow;
set => Set(ref _yellow, value);
set => SetProperty(ref _yellow, value);
}
public ImageFile BackgroundThemeFile
@@ -287,7 +286,7 @@ namespace FluentTerminal.App.ViewModels
get => _backgroundThemeFile;
set
{
Set(ref _backgroundThemeFile, value);
SetProperty(ref _backgroundThemeFile, value);
BackgroundImageChanged?.Invoke(this, value);
}
}
+39
View File
@@ -0,0 +1,39 @@
using Microsoft.Xaml.Interactivity;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace FluentTerminal.App.Actions
{
public class FocusAction : DependencyObject, IAction
{
public object Execute(object sender, object parameter)
{
var control = TargetObject ?? sender as Control;
if (control != null)
{
if (!control.IsLoaded)
control.Loaded += Control_Loaded;
else
control.Focus(FocusState.Programmatic);
}
return null;
}
private void Control_Loaded(object sender, RoutedEventArgs e)
{
Control control = sender as Control;
control.Focus(FocusState.Programmatic);
control.Loaded -= Control_Loaded; // won't be needed anymore. Remove reference just in case
}
public Control TargetObject
{
get { return (Control)GetValue(TargetObjectProperty); }
set { SetValue(TargetObjectProperty, value); }
}
public static readonly DependencyProperty TargetObjectProperty =
DependencyProperty.Register(nameof(TargetObject), typeof(Control), typeof(FocusAction), new PropertyMetadata(null));
}
}
+1
View File
@@ -42,6 +42,7 @@
<converters:TrueToBoldConverter x:Key="TrueToBoldConverter" />
<converters:I18NConverter x:Key="I18NConverter" />
<converters:NullToCollapsedConverter x:Key="NullToCollapsedConverter" />
<converters:MenuViewModelToFlyoutMenuConverter x:Key="MenuViewModelToFlyoutMenuConverter" />
</ResourceDictionary>
</Application.Resources>
</Application>
+196 -147
View File
@@ -36,7 +36,7 @@ using IContainer = Autofac.IContainer;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Profiles;
using FluentTerminal.Models.Messages;
using GalaSoft.MvvmLight.Messaging;
using Microsoft.Toolkit.Mvvm.Messaging;
namespace FluentTerminal.App
{
@@ -47,6 +47,7 @@ namespace FluentTerminal.App
private readonly ISettingsService _settingsService;
private readonly ITrayProcessCommunicationService _trayProcessCommunicationService;
private readonly IDialogService _dialogService;
private readonly INotificationService _notificationService;
private bool _alreadyLaunched;
private bool _isLaunching;
private ApplicationSettings _applicationSettings;
@@ -100,7 +101,6 @@ namespace FluentTerminal.App
builder.RegisterType<FileSystemService>().As<IFileSystemService>().SingleInstance();
builder.RegisterType<ImageFileSystemService>().As<IImageFileSystemService>().SingleInstance();
builder.RegisterType<SystemFontService>().As<ISystemFontService>().SingleInstance();
builder.RegisterType<ShellProfileSelectionDialog>().As<IShellProfileSelectionDialog>().InstancePerDependency();
builder.RegisterType<CreateKeyBindingDialog>().As<ICreateKeyBindingDialog>().InstancePerDependency();
builder.RegisterType<InputDialog>().As<IInputDialog>().InstancePerDependency();
builder.RegisterType<AboutDialog>().As<IAboutDialog>().InstancePerDependency();
@@ -111,13 +111,13 @@ namespace FluentTerminal.App
builder.RegisterType<StartupTaskService>().As<IStartupTaskService>().SingleInstance();
builder.RegisterType<ApplicationLanguageService>().As<IApplicationLanguageService>().SingleInstance();
builder.RegisterType<ShellProfileMigrationService>().As<IShellProfileMigrationService>().SingleInstance();
builder.RegisterType<AcceleratorKeyValidator>().As<IAcceleratorKeyValidator>().SingleInstance();
_container = builder.Build();
Messenger.Default.Register<ApplicationSettingsChangedMessage>(this, OnApplicationSettingsChanged);
WeakReferenceMessenger.Default.Register<App, ApplicationSettingsChangedMessage>(this, (r, m) => r.OnApplicationSettingsChanged(m));
_settingsService = _container.Resolve<ISettingsService>();
_notificationService = _container.Resolve<INotificationService>();
var shellProfileMigrationService = _container.Resolve<IShellProfileMigrationService>();
foreach (var profile in _settingsService.GetShellProfiles())
@@ -187,7 +187,190 @@ namespace FluentTerminal.App
protected override async void OnActivated(IActivatedEventArgs args)
{
if (args is ProtocolActivatedEventArgs protocolActivated)
await OnLaunchOrActivate(args);
base.OnActivated(args);
}
private async Task ParseCommandLineArgumentsAsync(object verb, CommandLineActivatedEventArgs commandLineActivated)
{
using var deferral = commandLineActivated.Operation.GetDeferral();
if (verb is SettingsVerb settingsVerb)
{
if (string.IsNullOrWhiteSpace(settingsVerb.Import) && !settingsVerb.Export)
{
await ShowSettingsAsync();
}
else if (settingsVerb.Export)
{
var settings = _settingsService.ExportSettings();
var path = Path.Combine(commandLineActivated.Operation.CurrentDirectoryPath, "config.json");
try
{
await StartSystemTray().ConfigureAwait(false);
await _trayProcessCommunicationService.SaveTextFileAsync(path, settings).ConfigureAwait(false);
_notificationService.ShowNotification("Export settings", $"Settings were exported to {path}.");
}
catch (Exception e)
{
_notificationService.ShowNotification("Export settings", $"Failed with error: {e.Message}");
commandLineActivated.Operation.ExitCode = 1;
}
if (!_isLaunching && !_alreadyLaunched)
{
Exit();
}
}
else if (!string.IsNullOrWhiteSpace(settingsVerb.Import))
{
var path = Path.Combine(commandLineActivated.Operation.CurrentDirectoryPath, settingsVerb.Import.Replace(".\\", string.Empty));
try
{
await StartSystemTray().ConfigureAwait(false);
var content = await _trayProcessCommunicationService.ReadTextFileAsync(path).ConfigureAwait(false);
_settingsService.ImportSettings(content);
_notificationService.ShowNotification("Import settings", $"Successfully imported settings from {path}.");
}
catch (Exception e)
{
_notificationService.ShowNotification("Import settings", $"Failed with error: {e.Message}");
commandLineActivated.Operation.ExitCode = 1;
}
if (!_isLaunching && !_alreadyLaunched)
{
Exit();
}
}
}
else if (verb is NewVerb newVerb)
{
var profile = default(ShellProfile);
if (!string.IsNullOrWhiteSpace(newVerb.Profile))
{
profile = _settingsService.GetShellProfiles().FirstOrDefault(x => x.Name.Equals(newVerb.Profile, StringComparison.CurrentCultureIgnoreCase));
}
if (profile == null)
{
profile = _settingsService.GetDefaultShellProfile();
}
if (!string.IsNullOrWhiteSpace(newVerb.Directory) && newVerb.Directory != ".")
{
profile.WorkingDirectory = newVerb.Directory;
}
else
{
profile.WorkingDirectory = commandLineActivated.Operation.CurrentDirectoryPath;
}
var location = newVerb.Target == Target.Default ? _applicationSettings.NewTerminalLocation
: newVerb.Target == Target.Tab ? NewTerminalLocation.Tab
: NewTerminalLocation.Window;
await CreateTerminalAsync(profile, location);
}
else if (verb is RunVerb runVerb)
{
var profile = new ShellProfile
{
Id = Guid.Empty,
Location = null,
Arguments = runVerb.Command,
WorkingDirectory = runVerb.Directory,
UseConPty = _settingsService.GetApplicationSettings().UseConPty
};
if (runVerb.SmartBuffer.HasValue)
{
profile.UseBuffer = runVerb.SmartBuffer.Value;
}
if (!string.IsNullOrWhiteSpace(runVerb.Theme))
{
var theme = _settingsService.GetThemes().FirstOrDefault(x => x.Name.Equals(runVerb.Theme, StringComparison.CurrentCultureIgnoreCase));
if (theme != null)
{
profile.TerminalThemeId = theme.Id;
}
}
if (string.IsNullOrWhiteSpace(profile.WorkingDirectory))
{
profile.WorkingDirectory = commandLineActivated.Operation.CurrentDirectoryPath;
}
var location = runVerb.Target == Target.Default ? _applicationSettings.NewTerminalLocation
: runVerb.Target == Target.Tab ? NewTerminalLocation.Tab
: NewTerminalLocation.Window;
await CreateTerminalAsync(profile, location);
}
}
private Task ShowOrCreateWindowAsync(ActivationViewSwitcher viewSwitcher)
{
var viewModel = _mainViewModels.Find(o => o.ApplicationView.Id == _activeWindowId) ??
_mainViewModels.LastOrDefault();
return viewModel == null
? CreateTerminalAsync(_settingsService.GetDefaultShellProfile(), NewTerminalLocation.Tab, viewSwitcher)
: ShowAsStandaloneAsync(viewModel, viewSwitcher);
}
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
await OnLaunchOrActivate(args);
}
public async Task OnLaunchOrActivate(IActivatedEventArgs args)
{
if (args is LaunchActivatedEventArgs launchActivated)
{
if (_isLaunching)
{
return;
}
_isLaunching = true;
if (!_alreadyLaunched)
{
await InitializeLoggerAsync();
// ReSharper disable once AssignmentIsFullyDiscarded
_ = JumpListHelper.UpdateAsync(_settingsService);
var viewModel = _container.Resolve<MainViewModel>();
if (launchActivated.Arguments.StartsWith(JumpListHelper.ShellProfileFlag))
{
await viewModel.AddProfileByGuidAsync(Guid.Parse(launchActivated.Arguments.Replace(JumpListHelper.ShellProfileFlag, string.Empty)));
}
else
{
await viewModel.AddDefaultProfileAsync(NewTerminalLocation.Tab);
}
await CreateMainViewAsync(typeof(MainPage), viewModel, true);
Window.Current.Activate();
}
else if (launchActivated.Arguments.StartsWith(JumpListHelper.ShellProfileFlag))
{
var location = _applicationSettings.NewTerminalLocation;
var profile = _settingsService.GetShellProfile(Guid.Parse(launchActivated.Arguments.Replace(JumpListHelper.ShellProfileFlag, string.Empty)));
await CreateTerminalAsync(profile, location, launchActivated.ViewSwitcher);
}
else
{
var viewModel = await CreateNewTerminalWindowAsync();
await viewModel.AddDefaultProfileAsync(NewTerminalLocation.Tab);
await ShowAsStandaloneAsync(viewModel, launchActivated.ViewSwitcher);
}
_isLaunching = false;
}
else if (args is ProtocolActivatedEventArgs protocolActivated)
{
if (protocolActivated.Uri == new Uri("ftcmd://fluent.terminal?focus"))
{
@@ -263,7 +446,7 @@ namespace FluentTerminal.App
var error = await vm.AcceptChangesAsync(true);
var profile = (SshProfile) vm.Model;
var profile = (SshProfile)vm.Model;
if (!string.IsNullOrEmpty(error))
{
@@ -348,8 +531,7 @@ namespace FluentTerminal.App
return;
}
if (args is CommandLineActivatedEventArgs commandLineActivated)
else if (args is CommandLineActivatedEventArgs commandLineActivated)
{
var arguments = commandLineActivated.Operation.Arguments;
if (string.IsNullOrWhiteSpace(arguments))
@@ -359,148 +541,10 @@ namespace FluentTerminal.App
_commandLineParser
.ParseArguments(SplitArguments(arguments), typeof(NewVerb), typeof(RunVerb), typeof(SettingsVerb))
.WithParsed(async verb => await CliRunAsync(verb, commandLineActivated));
.WithParsed(async verb => await ParseCommandLineArgumentsAsync(verb, commandLineActivated));
}
}
private async Task CliRunAsync(object verb, CommandLineActivatedEventArgs commandLineActivated)
{
if (verb is SettingsVerb settingsVerb)
{
if (!settingsVerb.Import && !settingsVerb.Export)
{
await ShowSettingsAsync();
}
else if (settingsVerb.Export)
{
var exportFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("config.json", CreationCollisionOption.OpenIfExists);
var settings = _settingsService.ExportSettings();
await FileIO.WriteTextAsync(exportFile, settings);
await new MessageDialog($"{I18N.Translate("SettingsExported")} {exportFile.Path}").ShowAsync();
}
else if (settingsVerb.Import)
{
var file = await ApplicationData.Current.LocalFolder.GetFileAsync("config.json");
var content = await FileIO.ReadTextAsync(file);
_settingsService.ImportSettings(content);
await new MessageDialog($"{I18N.Translate("SettingsImported")} {file.Path}").ShowAsync();
}
}
else if (verb is NewVerb newVerb)
{
var profile = default(ShellProfile);
if (!string.IsNullOrWhiteSpace(newVerb.Profile))
{
profile = _settingsService.GetShellProfiles().FirstOrDefault(x => x.Name.Equals(newVerb.Profile, StringComparison.CurrentCultureIgnoreCase));
}
if (profile == null)
{
profile = _settingsService.GetDefaultShellProfile();
}
if (!string.IsNullOrWhiteSpace(newVerb.Directory) && newVerb.Directory != ".")
{
profile.WorkingDirectory = newVerb.Directory;
}
else
{
profile.WorkingDirectory = commandLineActivated.Operation.CurrentDirectoryPath;
}
var location = newVerb.Target == Target.Default ? _applicationSettings.NewTerminalLocation
: newVerb.Target == Target.Tab ? NewTerminalLocation.Tab
: NewTerminalLocation.Window;
await CreateTerminalAsync(profile, location);
}
else if (verb is RunVerb runVerb)
{
var profile = new ShellProfile
{
Id = Guid.Empty,
Location = null,
Arguments = runVerb.Command,
WorkingDirectory = runVerb.Directory
};
if (!string.IsNullOrWhiteSpace(runVerb.Theme))
{
var theme = _settingsService.GetThemes().FirstOrDefault(x => x.Name.Equals(runVerb.Theme, StringComparison.CurrentCultureIgnoreCase));
if (theme != null)
{
profile.TerminalThemeId = theme.Id;
}
}
if (string.IsNullOrWhiteSpace(profile.WorkingDirectory))
{
profile.WorkingDirectory = commandLineActivated.Operation.CurrentDirectoryPath;
}
var location = runVerb.Target == Target.Default ? _applicationSettings.NewTerminalLocation
: runVerb.Target == Target.Tab ? NewTerminalLocation.Tab
: NewTerminalLocation.Window;
await CreateTerminalAsync(profile, location);
}
}
private Task ShowOrCreateWindowAsync(ActivationViewSwitcher viewSwitcher)
{
var viewModel = _mainViewModels.Find(o => o.ApplicationView.Id == _activeWindowId) ??
_mainViewModels.LastOrDefault();
return viewModel == null
? CreateTerminalAsync(_settingsService.GetDefaultShellProfile(), NewTerminalLocation.Tab, viewSwitcher)
: ShowAsStandaloneAsync(viewModel, viewSwitcher);
}
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
if (_isLaunching)
{
return;
}
_isLaunching = true;
if (!_alreadyLaunched)
{
await InitializeLoggerAsync();
// ReSharper disable once AssignmentIsFullyDiscarded
_ = JumpListHelper.UpdateAsync(_settingsService);
var viewModel = _container.Resolve<MainViewModel>();
if (args.Arguments.StartsWith(JumpListHelper.ShellProfileFlag))
{
await viewModel.AddProfileByGuidAsync(Guid.Parse(args.Arguments.Replace(JumpListHelper.ShellProfileFlag, string.Empty)));
}
else
{
await viewModel.AddDefaultProfileAsync(NewTerminalLocation.Tab);
}
await CreateMainViewAsync(typeof(MainPage), viewModel, true);
Window.Current.Activate();
}
else if (args.Arguments.StartsWith(JumpListHelper.ShellProfileFlag))
{
var location = _applicationSettings.NewTerminalLocation;
var profile = _settingsService.GetShellProfile(Guid.Parse(args.Arguments.Replace(JumpListHelper.ShellProfileFlag, string.Empty)));
await CreateTerminalAsync(profile, location, args.ViewSwitcher);
}
else
{
var viewModel = await CreateNewTerminalWindowAsync();
await viewModel.AddDefaultProfileAsync(NewTerminalLocation.Tab);
await ShowAsStandaloneAsync(viewModel, args.ViewSwitcher);
}
_isLaunching = false;
}
private static async Task InitializeLoggerAsync()
{
var logDirectory = await ApplicationData.Current.LocalCacheFolder.CreateFolderAsync("Logs", CreationCollisionOption.OpenIfExists);
@@ -755,6 +799,11 @@ namespace FluentTerminal.App
private Task StartSystemTray()
{
if (_trayReady.Task.IsCompleted)
{
return Task.CompletedTask;
}
var launch = FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync("AppLaunchedParameterGroup").AsTask();
return Task.WhenAll(launch, _trayReady.Task).ContinueWith(
@@ -14,6 +14,9 @@ namespace FluentTerminal.App.CommandLineArguments
[Option("theme")]
public string Theme { get; set; }
[Option("smart-buffer")]
public bool? SmartBuffer { get; set; }
[Option("target")]
public Target Target { get; set; }
}
@@ -6,8 +6,8 @@ namespace FluentTerminal.App.CommandLineArguments
public class SettingsVerb
{
[Option('i', "import",
HelpText = "Import settings.")]
public bool Import { get; set; }
HelpText = "Import settings from specified file.")]
public string Import { get; set; }
[Option('e', "export",
HelpText = "Export settings.")]
@@ -1,6 +1,5 @@
using Microsoft.Toolkit.Uwp.Helpers;
using System;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
@@ -20,6 +20,10 @@ namespace FluentTerminal.App.Converters
{
return Translate($"{enumType}.{enumValue}");
}
else if (value is string stringValue)
{
return Translate(stringValue);
}
else if (parameter is string resource)
{
return Translate(resource);
+9 -25
View File
@@ -1,4 +1,6 @@
using System;
using FluentTerminal.App.ViewModels.Menu;
using Microsoft.Toolkit.Uwp.Helpers;
using System;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
@@ -10,37 +12,19 @@ namespace FluentTerminal.App.Converters
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value == null)
if (value is Mdl2Icon mdl2Icon)
{
return null;
}
var fontIcon = new FontIcon { FontFamily = new FontFamily("Segoe MDL2 Assets"), Glyph = mdl2Icon.Glyph };
if (value is IconElement icon)
{
return icon;
}
if (value is Symbol symbol)
{
return new SymbolIcon(symbol);
}
if (value is int intSymbol)
{
if (Enum.IsDefined(typeof(Symbol), intSymbol))
if(!string.IsNullOrWhiteSpace(mdl2Icon.Color))
{
return new SymbolIcon((Symbol) intSymbol);
fontIcon.Foreground = new SolidColorBrush(mdl2Icon.Color.ToColor());
}
throw new ArgumentException($"Integer value isn't defined in {nameof(Symbol)} enum.", nameof(value));
return fontIcon;
}
if (value is string glyph)
{
return new FontIcon {FontFamily = new FontFamily("Segoe MDL2 Assets"), Glyph = glyph};
}
throw new ArgumentException($"Invalid {nameof(value)} parameter type: {value.GetType()}.", nameof(value));
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, string language) =>
@@ -6,6 +6,8 @@ using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using FluentTerminal.App.ViewModels.Menu;
using FluentTerminal.App.Views;
using Microsoft.UI.Xaml.Controls;
using Windows.Foundation.Metadata;
// ReSharper disable LocalizableElement
@@ -34,6 +36,16 @@ namespace FluentTerminal.App.Converters
return GetRegularItem(regular);
}
if (viewModel is ToggleMenuItemViewModel toggle)
{
return GetToggleItem(toggle);
}
if (viewModel is RadioMenuItemViewModel radio)
{
return GetRadioItem(radio);
}
// Won't happen ever, but still...
throw new NotImplementedException(
$"Unexpected {nameof(MenuItemViewModelBase)} type: {viewModel.GetType()}");
@@ -79,12 +91,22 @@ namespace FluentTerminal.App.Converters
if (viewModel.KeyBinding != null)
{
item.KeyboardAccelerators?.Add(new KeyboardAccelerator
if (viewModel.KeyBinding.IsExtendedVirtualKey)
{
Key = (VirtualKey) viewModel.KeyBinding.Key,
Modifiers = (VirtualKeyModifiers) viewModel.KeyBinding.KeyModifiers,
IsEnabled = true
});
if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 6))
{
item.KeyboardAcceleratorTextOverride = viewModel.KeyBinding.GetOverrideText();
}
}
else
{
item.KeyboardAccelerators?.Add(new KeyboardAccelerator
{
Key = (VirtualKey)viewModel.KeyBinding.Key,
Modifiers = (VirtualKeyModifiers)viewModel.KeyBinding.KeyModifiers,
IsEnabled = true
});
}
}
return item;
@@ -126,6 +148,85 @@ namespace FluentTerminal.App.Converters
return item;
}
private static ToggleMenuFlyoutItem GetToggleItem(ToggleMenuItemViewModel viewModel)
{
var item = new ToggleMenuFlyoutItem();
item.SetBinding(MenuFlyoutItem.TextProperty, new Binding
{
Source = viewModel,
Path = new PropertyPath(nameof(MenuItemViewModelBase.Text)),
Mode = BindingMode.OneWay
});
item.SetBinding(ToolTipService.ToolTipProperty, new Binding
{
Source = viewModel,
Path = new PropertyPath(nameof(MenuItemViewModelBase.Description)),
Mode = BindingMode.OneWay
});
item.SetBinding(MenuFlyoutItem.IconProperty, new Binding
{
Source = viewModel,
Path = new PropertyPath(nameof(MenuItemViewModelBase.Icon)),
Converter = IconConverter,
Mode = BindingMode.OneWay
});
item.SetBinding(ToggleMenuFlyoutItem.IsCheckedProperty, new Binding
{
Source = viewModel.BindingSource,
Path = new PropertyPath(viewModel.BindingPath),
Mode = BindingMode.TwoWay
});
return item;
}
private static RadioMenuFlyoutItem GetRadioItem(RadioMenuItemViewModel viewModel)
{
var item = new RadioMenuFlyoutItem();
item.SetBinding(MenuFlyoutItem.TextProperty, new Binding
{
Source = viewModel,
Path = new PropertyPath(nameof(MenuItemViewModelBase.Text)),
Mode = BindingMode.OneWay
});
item.SetBinding(ToolTipService.ToolTipProperty, new Binding
{
Source = viewModel,
Path = new PropertyPath(nameof(MenuItemViewModelBase.Description)),
Mode = BindingMode.OneWay
});
item.SetBinding(MenuFlyoutItem.IconProperty, new Binding
{
Source = viewModel,
Path = new PropertyPath(nameof(MenuItemViewModelBase.Icon)),
Converter = IconConverter,
Mode = BindingMode.OneWay
});
item.SetBinding(RadioMenuFlyoutItem.GroupNameProperty, new Binding
{
Source = viewModel,
Path = new PropertyPath(nameof(RadioMenuItemViewModel.GroupName)),
Mode = BindingMode.OneWay
});
item.SetBinding(RadioMenuFlyoutItem.IsCheckedProperty, new Binding
{
Source = viewModel.BindingSource,
Path = new PropertyPath(viewModel.BindingPath),
Mode = BindingMode.TwoWay
});
return item;
}
#endregion Static
#region IValueConverter
@@ -6,7 +6,7 @@ using Windows.UI.Xaml.Controls.Primitives;
namespace FluentTerminal.App.Converters
{
public class AppMenuViewModelToFlyoutMenuConverter : IValueConverter
public class MenuViewModelToFlyoutMenuConverter : IValueConverter
{
private static readonly MenuItemViewModelBaseToMenuFlayoutItemBaseConverter ItemConverter =
new MenuItemViewModelBaseToMenuFlayoutItemBaseConverter();
@@ -18,18 +18,18 @@ namespace FluentTerminal.App.Converters
return null;
}
if (!(value is AppMenuViewModel appMenuViewModel))
if (!(value is MenuViewModel menuViewModel))
{
throw new ArgumentException(
$"Invalid {nameof(value)} argument type: {value.GetType()}. {typeof(AppMenuViewModel)} expected.");
$"Invalid {nameof(value)} argument type: {value.GetType()}. {typeof(MenuViewModel)} expected.");
}
var menuFlyout = new MenuFlyout
{
Placement = FlyoutPlacementMode.BottomEdgeAlignedLeft
Placement = FlyoutPlacementMode.Bottom
};
foreach (var menuItemViewModelBase in appMenuViewModel.Items)
foreach (var menuItemViewModelBase in menuViewModel.Items)
{
menuFlyout.Items?.Add((MenuFlyoutItemBase) ItemConverter.Convert(menuItemViewModelBase));
}
@@ -1,4 +1,4 @@
using FluentTerminal.Models;
using FluentTerminal.App.ViewModels;
using FluentTerminal.Models.Enums;
using Microsoft.Toolkit.Uwp.Helpers;
using System;
@@ -12,8 +12,9 @@ namespace FluentTerminal.App.Converters
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value is TabTheme theme && Enum.TryParse<TabThemeKey>((string)parameter, true, out TabThemeKey tabThemeKey))
if (value is TabThemeViewModel viewModel && Enum.TryParse<TabThemeKey>((string)parameter, true, out TabThemeKey tabThemeKey))
{
var theme = viewModel.Theme;
switch (tabThemeKey)
{
case TabThemeKey.Background:
@@ -1,4 +1,4 @@
using FluentTerminal.Models;
using FluentTerminal.App.ViewModels;
using System;
using Windows.UI.Xaml.Data;
@@ -8,9 +8,9 @@ namespace FluentTerminal.App.Converters
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value is TabTheme theme && parameter is string idString && int.TryParse(idString, out var id))
if (value is TerminalViewModel terminal && parameter is string idString && int.TryParse(idString, out var id))
{
return theme.Id == id;
return terminal.TabTheme.Theme.Id == id;
}
return null;
}
@@ -1,23 +1,21 @@
using FluentTerminal.App.Services.Dialogs;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.Models;
using GalaSoft.MvvmLight.Command;
using Microsoft.Toolkit.Mvvm.Input;
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using System.Windows.Input;
using Windows.System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using FluentTerminal.App.Services;
namespace FluentTerminal.App.Dialogs
{
// ReSharper disable once RedundantExtendsListEntry
public sealed partial class CreateKeyBindingDialog : ContentDialog, ICreateKeyBindingDialog, INotifyPropertyChanged
{
private readonly IAcceleratorKeyValidator _acceleratorKeyValidator;
private bool _ctrl;
private bool _shift;
private bool _alt;
@@ -27,25 +25,25 @@ namespace FluentTerminal.App.Dialogs
public bool Ctrl
{
get => _ctrl;
set => Set(ref _ctrl, value);
set => SetProperty(ref _ctrl, value);
}
public bool Shift
{
get => _shift;
set => Set(ref _shift, value);
set => SetProperty(ref _shift, value);
}
public bool Alt
{
get => _alt;
set => Set(ref _alt, value);
set => SetProperty(ref _alt, value);
}
public bool Meta
{
get => _meta;
set => Set(ref _meta, value);
set => SetProperty(ref _meta, value);
}
public int Key
@@ -53,17 +51,12 @@ namespace FluentTerminal.App.Dialogs
get => _key;
set
{
// We're ignoring invalid keys.
if (_acceleratorKeyValidator.Valid(value))
{
Set(ref _key, value);
}
SetProperty(ref _key, value);
}
}
public CreateKeyBindingDialog(IAcceleratorKeyValidator acceleratorKeyValidator)
public CreateKeyBindingDialog()
{
_acceleratorKeyValidator = acceleratorKeyValidator;
InitializeComponent();
ResetCommand = new RelayCommand(Reset);
PreviewKeyDown += RegisterKeyBindingDialog_PreviewKeyDown;
@@ -73,7 +66,7 @@ namespace FluentTerminal.App.Dialogs
this.SecondaryButtonText = I18N.Translate("Cancel");
}
public RelayCommand ResetCommand { get; }
public ICommand ResetCommand { get; }
public event PropertyChangedEventHandler PropertyChanged;
@@ -132,7 +125,7 @@ namespace FluentTerminal.App.Dialogs
ResetButton.Visibility = Visibility.Collapsed;
}
private void Set<T>(ref T field, T value, [CallerMemberName]string propertyName = "")
private void SetProperty<T>(ref T field, T value, [CallerMemberName]string propertyName = "")
{
if (field?.Equals(value) ?? value == null)
{
@@ -14,8 +14,8 @@
IsDesignTimeCreatable=False}"
DefaultButton="Primary"
PrimaryButtonClick="OnPrimaryButtonClick"
SecondaryButtonClick="OnSecondaryButtonClick"
PrimaryButtonText="Button1"
SecondaryButtonClick="OnSecondaryButtonClick"
SecondaryButtonText="Button2"
mc:Ignorable="d">
<ContentDialog.Resources>
@@ -46,9 +46,12 @@
<AutoSuggestBox.ItemTemplate>
<DataTemplate x:DataType="viewModels:CommandItemViewModel">
<Grid HorizontalAlignment="Stretch">
<ContentControl HorizontalAlignment="Stretch" Content="{x:Bind RichTextBlock, Mode=OneWay}"/>
<!--I've had to create a transparent overlay over RichTextBox in order to make mouse selection work. Weird but true.-->
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="Transparent"/>
<ContentControl HorizontalAlignment="Stretch" Content="{x:Bind RichTextBlock, Mode=OneWay}" />
<!-- I've had to create a transparent overlay over RichTextBox in order to make mouse selection work. Weird but true. -->
<Grid
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Transparent" />
</Grid>
</DataTemplate>
</AutoSuggestBox.ItemTemplate>
@@ -76,42 +79,18 @@
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<!-- Row -->
<TextBlock
x:Uid="LineEndingModeOnPaste"
Grid.Row="0"
Grid.Column="0"
Margin="0,8,8,0"
VerticalAlignment="Center"
Text="Line ending on paste:" />
<ComboBox
Grid.Row="0"
Grid.Column="1"
Margin="0,8,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
ItemsSource="{x:Bind ViewModel.LineEndingStyles}"
SelectedItem="{x:Bind ViewModel.LineEndingTranslation, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="enums:LineEndingStyle">
<TextBlock Text="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=LineEndingStyle}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!-- Row -->
<TextBlock
x:Uid="SshInfoDialog_TabColor"
Grid.Row="1"
Grid.Row="0"
Grid.Column="0"
Margin="0,8,8,0"
VerticalAlignment="Center"
Text="Tab color:" />
<ComboBox
Grid.Row="1"
Grid.Row="0"
Grid.Column="1"
Margin="0,8,0,0"
HorizontalAlignment="Stretch"
@@ -122,13 +101,13 @@
<!-- Row -->
<TextBlock
x:Uid="Theme"
Grid.Row="2"
Grid.Row="1"
Grid.Column="0"
Margin="0,8,8,0"
VerticalAlignment="Center"
Text="Theme:" />
<ComboBox
Grid.Row="2"
Grid.Row="1"
Grid.Column="1"
Margin="0,8,0,0"
HorizontalAlignment="Stretch"
@@ -138,13 +117,12 @@
<!-- Row -->
<CheckBox
Grid.Row="3"
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,8,0,0"
Content="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseConPty}"
IsChecked="{x:Bind ViewModel.UseConPty, Mode=TwoWay}" />
</Grid>
</controls:Expander>
@@ -16,7 +16,8 @@ using Windows.Foundation;
using Windows.System;
using Windows.UI.Xaml.Input;
using FluentTerminal.App.ViewModels;
using FluentTerminal.App.ViewModels.Infrastructure;
using System.Windows.Input;
using Microsoft.Toolkit.Mvvm.Input;
// The Content Dialog item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
@@ -40,7 +41,7 @@ namespace FluentTerminal.App.Dialogs
public CommandProfileProviderViewModel ViewModel { get; private set; }
public IAsyncCommand SaveLinkCommand { get; }
public ICommand SaveLinkCommand { get; }
public CustomCommandDialog(ISettingsService settingsService, IApplicationView applicationView,
ITrayProcessCommunicationService trayProcessCommunicationService, ICommandHistoryService historyService)
@@ -52,7 +53,7 @@ namespace FluentTerminal.App.Dialogs
InitializeComponent();
SaveLinkCommand = new AsyncCommand(SaveLink);
SaveLinkCommand = new AsyncRelayCommand(SaveLink);
PrimaryButtonText = I18N.Translate("OK");
SecondaryButtonText = I18N.Translate("Cancel");
@@ -233,9 +234,13 @@ namespace FluentTerminal.App.Dialogs
else
{
await new MessageDialog(error, I18N.Translate("InvalidInput")).ShowAsync();
SetupFocus(); // needed to apply focus back to the textbox instead of the terminal in the background.
}
}
return;
case VirtualKey.Escape:
Hide();
return;
}
}
@@ -1,17 +0,0 @@
<ContentDialog
x:Class="FluentTerminal.App.Dialogs.ShellProfileSelectionDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Uid="SelectProfileUI"
Title="Select Profile"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
PrimaryButtonText="Start"
mc:Ignorable="d">
<ComboBox
HorizontalAlignment="Stretch"
DisplayMemberPath="Name"
ItemsSource="{x:Bind Profiles}"
SelectedItem="{x:Bind SelectedProfile, Mode=TwoWay}" />
</ContentDialog>
@@ -1,43 +0,0 @@
using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Dialogs;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.Utilities;
using FluentTerminal.Models;
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using Windows.UI.Xaml.Controls;
namespace FluentTerminal.App.Dialogs
{
// ReSharper disable once RedundantExtendsListEntry
public sealed partial class ShellProfileSelectionDialog : ContentDialog, IShellProfileSelectionDialog
{
public ObservableCollection<ShellProfile> Profiles { get; }
public ShellProfile SelectedProfile { get; private set; }
public ShellProfileSelectionDialog(ISettingsService settingsService)
{
Profiles = new ObservableCollection<ShellProfile>(settingsService.GetAllProfiles().OrderBy(p => p.Name));
SelectedProfile = Profiles.First();
InitializeComponent();
PrimaryButtonText = I18N.TranslateWithFallback("OK", "OK");
SecondaryButtonText = I18N.TranslateWithFallback("Cancel", "Cancel");
var currentTheme = settingsService.GetCurrentTheme();
RequestedTheme = ContrastHelper.GetIdealThemeForBackgroundColor(currentTheme.Colors.Background);
}
public Task<ShellProfile> SelectProfileAsync()
{
return ShowAsync().AsTask()
.ContinueWith(t => t.Result == ContentDialogResult.Primary ? SelectedProfile : null,
TaskContinuationOptions.OnlyOnRanToCompletion);
}
}
}
+5 -31
View File
@@ -129,7 +129,6 @@
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<!-- Row -->
@@ -165,40 +164,16 @@
Text="{x:Bind ViewModel.MoshPortTo, Mode=TwoWay}"
Visibility="{x:Bind ViewModel.UseMosh, Mode=OneWay, Converter={StaticResource TrueToVisibleConverter}}" />
<!-- Row -->
<TextBlock
x:Uid="LineEndingModeOnPaste"
Grid.Row="1"
Grid.Column="0"
Margin="0,8,8,0"
VerticalAlignment="Center"
Text="Line ending on paste:" />
<ComboBox
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="3"
Margin="0,8,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
ItemsSource="{x:Bind ViewModel.LineEndingStyles}"
SelectedItem="{x:Bind ViewModel.LineEndingTranslation, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="enums:LineEndingStyle">
<TextBlock Text="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=LineEndingStyle}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!-- Row -->
<TextBlock
x:Uid="SshInfoDialog_TabColor"
Grid.Row="2"
Grid.Row="1"
Grid.Column="0"
Margin="0,8,8,0"
VerticalAlignment="Center"
Text="Tab color:" />
<ComboBox
Grid.Row="2"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="3"
Margin="0,8,0,0"
@@ -210,13 +185,13 @@
<!-- Row -->
<TextBlock
x:Uid="Theme"
Grid.Row="3"
Grid.Row="2"
Grid.Column="0"
Margin="0,8,8,0"
VerticalAlignment="Center"
Text="Theme:" />
<ComboBox
Grid.Row="3"
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="3"
Margin="0,8,0,0"
@@ -227,13 +202,12 @@
<!-- Row -->
<CheckBox
Grid.Row="4"
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="4"
Margin="0,8,0,0"
Content="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseConPty}"
IsChecked="{x:Bind ViewModel.UseConPty, Mode=TwoWay}" />
</Grid>
</controls:Expander>
@@ -12,7 +12,8 @@ using FluentTerminal.App.Services;
using FluentTerminal.App.Services.Utilities;
using FluentTerminal.App.ViewModels.Profiles;
using FluentTerminal.Models;
using FluentTerminal.App.ViewModels.Infrastructure;
using System.Windows.Input;
using Microsoft.Toolkit.Mvvm.Input;
namespace FluentTerminal.App.Dialogs
{
@@ -26,8 +27,8 @@ namespace FluentTerminal.App.Dialogs
public SshConnectViewModel ViewModel { get; private set; }
public IAsyncCommand BrowseIdentityFileCommand { get; }
public IAsyncCommand SaveLinkCommand { get; }
public ICommand BrowseIdentityFileCommand { get; }
public ICommand SaveLinkCommand { get; }
public SshInfoDialog(ISettingsService settingsService, IApplicationView applicationView,
IFileSystemService fileSystemService, ITrayProcessCommunicationService trayProcessCommunicationService)
@@ -39,8 +40,8 @@ namespace FluentTerminal.App.Dialogs
InitializeComponent();
BrowseIdentityFileCommand = new AsyncCommand(BrowseIdentityFile);
SaveLinkCommand = new AsyncCommand(SaveLink);
BrowseIdentityFileCommand = new AsyncRelayCommand(BrowseIdentityFile);
SaveLinkCommand = new AsyncRelayCommand(SaveLink);
PrimaryButtonText = I18N.Translate("OK");
SecondaryButtonText = I18N.Translate("Cancel");
+74 -30
View File
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<UseAppLocalCoreFramework>true</UseAppLocalCoreFramework>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
@@ -9,14 +12,15 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FluentTerminal.App</RootNamespace>
<AssemblyName>FluentTerminal.App</AssemblyName>
<DefaultLanguage>en</DefaultLanguage>
<DefaultLanguage>en-US</DefaultLanguage>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.18362.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.19041.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
<AppxBundlePlatforms>x64</AppxBundlePlatforms>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
@@ -97,6 +101,7 @@
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
<ItemGroup>
<Compile Include="Actions\FocusAction.cs" />
<Compile Include="Adapters\ApplicationViewAdapter.cs" />
<Compile Include="Adapters\AppServiceConnectionAdapter.cs" />
<Compile Include="App.xaml.cs">
@@ -107,7 +112,7 @@
<Compile Include="CommandLineArguments\RunVerb.cs" />
<Compile Include="CommandLineArguments\SettingsVerb.cs" />
<Compile Include="CommandLineArguments\Target.cs" />
<Compile Include="Converters\AppMenuViewModelToFlyoutMenuConverter.cs" />
<Compile Include="Converters\MenuViewModelToFlyoutMenuConverter.cs" />
<Compile Include="Converters\BackgroundToApplicationThemeConverter.cs" />
<Compile Include="Converters\BooleanNegationConverter.cs" />
<Compile Include="Converters\ColorResourceKeyFallbackConverter.cs" />
@@ -132,7 +137,6 @@
<Compile Include="Dialogs\AboutDialog.xaml.cs">
<DependentUpon>AboutDialog.xaml</DependentUpon>
</Compile>
<Compile Include="Services\AcceleratorKeyValidator.cs" />
<Compile Include="Services\CommandHistoryService.cs" />
<Compile Include="Utilities\DelayedAction.cs" />
<Compile Include="Utilities\DispatcherExtensions.cs" />
@@ -144,9 +148,6 @@
<Compile Include="Dialogs\InputDialog.xaml.cs">
<DependentUpon>InputDialog.xaml</DependentUpon>
</Compile>
<Compile Include="Dialogs\ShellProfileSelectionDialog.xaml.cs">
<DependentUpon>ShellProfileSelectionDialog.xaml</DependentUpon>
</Compile>
<Compile Include="Dialogs\SshInfoDialog.xaml.cs">
<DependentUpon>SshInfoDialog.xaml</DependentUpon>
</Compile>
@@ -239,12 +240,14 @@
<Content Include="Client\index.html" />
<Content Include="Client\style.css" />
<Content Include="Client\xterm.css" />
<PRIResource Include="Strings\eo\Resources.resw" />
<PRIResource Include="Strings\ru\Resources.resw" />
<PRIResource Include="Strings\fr\Resources.resw" />
<PRIResource Include="Strings\es\Resources.resw" />
<PRIResource Include="Strings\de\Resources.resw" />
<PRIResource Include="Strings\zh-CN\Resources.resw" />
<PRIResource Include="Strings\en\Resources.resw" />
<PRIResource Include="Strings\ug-Arab\Resources.resw" />
<PRIResource Include="Strings\zh-Hant\Resources.resw" />
<PRIResource Include="Strings\en-US\Resources.resw" />
</ItemGroup>
<ItemGroup>
<Content Include="Properties\Default.rd.xml" />
@@ -269,10 +272,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Dialogs\ShellProfileSelectionDialog.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Dialogs\SshInfoDialog.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -357,31 +356,43 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Autofac">
<Version>5.1.2</Version>
<Version>6.2.0</Version>
</PackageReference>
<PackageReference Include="CommandLineParser">
<Version>2.7.82</Version>
<Version>2.8.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
<Version>6.2.9</Version>
<Version>6.2.12</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Mvvm">
<Version>7.0.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Uwp.UI">
<Version>6.0.0</Version>
<Version>7.0.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Uwp.UI.Controls">
<Version>6.0.0</Version>
<Version>7.0.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.UI.Xaml">
<Version>2.3.200213001</Version>
<Version>2.6.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.Xaml.Behaviors.Uwp.Managed">
<Version>2.0.1</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.3</Version>
<Version>13.0.1</Version>
</PackageReference>
<PackageReference Include="System.IO.FileSystem.Primitives">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.Runtime.Handles">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.Text.Encoding.Extensions">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="Win2D.uwp">
<Version>1.24.0</Version>
<Version>1.26.0</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
@@ -402,11 +413,6 @@
<Name>FluentTerminal.RuntimeComponent</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<SDKReference Include="WindowsDesktop, Version=10.0.18362.0">
<Name>Windows Desktop Extensions for the UWP</Name>
</SDKReference>
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\ro\Resources.resw" />
</ItemGroup>
@@ -422,9 +428,6 @@
<ItemGroup>
<PRIResource Include="Strings\he\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\az\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\ja\Resources.resw" />
</ItemGroup>
@@ -434,6 +437,47 @@
<ItemGroup>
<PRIResource Include="Strings\uk\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\ar\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\id\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\zh-Hans\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\fa\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\hu\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\tr\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\hr\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\sl\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\az-Latn\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\sv\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\uz-Latn\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\bs\Resources.resw" />
</ItemGroup>
<ItemGroup>
<SDKReference Include="WindowsDesktop, Version=10.0.19041.0">
<Name>Windows Desktop Extensions for the UWP</Name>
</SDKReference>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
@@ -1,4 +1,5 @@
using System.Reflection;
using System.Resources;
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
@@ -25,4 +26,5 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: ComVisible(false)]
[assembly: ComVisible(false)]
[assembly: NeutralResourcesLanguage("en-US")]
@@ -1,13 +0,0 @@
using System;
using Windows.System;
using FluentTerminal.Models.Enums;
namespace FluentTerminal.App.Services
{
public class AcceleratorKeyValidator : IAcceleratorKeyValidator
{
public bool Valid(int key) => Enum.IsDefined(typeof(VirtualKey), key);
public bool Valid(ExtendedVirtualKey key) => Valid((int) key);
}
}
@@ -10,14 +10,21 @@ namespace FluentTerminal.App.Services
private readonly Dictionary<string, string> _languages = new Dictionary<string, string>
{
[""] = "System default",
["ar"] = "العربية",
["ar-IQ"] = "اللهجة العراقية",
["az"] = "azərbaycan dili",
["az-Latn"] = "azərbaycan dili",
["bs"] = "bosanski",
["de"] = "Deutsch",
["en"] = "English",
["eo"] = "Esperanto",
["es"] = "Español",
["fa"] = "فارسی",
["fr"] = "Français",
["he"] = "עברית",
["hi"] = "हिन्दुस्तानी",
["hr"] = "Hrvatski",
["hu"] = "magyar",
["id"] = "Bahasa Indonesia",
["it"] = "Italiano",
["ja"] = "日本語",
["ko"] = "한국어",
@@ -26,8 +33,14 @@ namespace FluentTerminal.App.Services
["pt-BR"] = "Português-Brasil",
["ro"] = "Română",
["ru"] = "Pусский",
["sl"] = "Slovenščina",
["sv"] = "svenska",
["tr"] = "Türkçe",
["ug-Arab"] = "ئۇيغۇر تىلى",
["uk"] = "Українська",
["zh-Hans-CN"] = "Chinese (Traditional)"
["uz-Latn"] = "O'zbek tili",
["zh-Hans"] = "简体中文",
["zh-Hant"] = "繁體中文"
};
public IEnumerable<string> Languages => _languages.Values;
@@ -44,6 +57,10 @@ namespace FluentTerminal.App.Services
public string GetCurrentLanguage()
{
if (!_languages.ContainsKey(ApplicationLanguages.PrimaryLanguageOverride))
{
ApplicationLanguages.PrimaryLanguageOverride = "en";
}
return _languages[ApplicationLanguages.PrimaryLanguageOverride];
}
}
@@ -6,7 +6,7 @@ using System.Text;
using FluentTerminal.App.Services.Implementation;
using FluentTerminal.Models;
using FluentTerminal.Models.Messages;
using GalaSoft.MvvmLight.Messaging;
using Microsoft.Toolkit.Mvvm.Messaging;
using Newtonsoft.Json;
namespace FluentTerminal.App.Services
@@ -153,7 +153,7 @@ namespace FluentTerminal.App.Services
{
_historyContainer.WriteValueAsJson(GetHash(executedCommand.Value), executedCommand);
Messenger.Default.Send(new CommandHistoryChangedMessage());
WeakReferenceMessenger.Default.Send(new CommandHistoryChangedMessage());
}
/// <summary>
@@ -357,7 +357,7 @@ namespace FluentTerminal.App.Services
_historyContainer.Clear();
Messenger.Default.Send(new CommandHistoryChangedMessage());
WeakReferenceMessenger.Default.Send(new CommandHistoryChangedMessage());
}
public void Delete(ExecutedCommand executedCommand)
@@ -366,7 +366,7 @@ namespace FluentTerminal.App.Services
_historyContainer.Delete(GetHash(executedCommand.Value));
Messenger.Default.Send(new CommandHistoryChangedMessage());
WeakReferenceMessenger.Default.Send(new CommandHistoryChangedMessage());
}
#endregion Methods
+136 -53
View File
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>اسأل قبل إغلاق النوافذ</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>اسأل قبل إغلاق علامات التبويب</value>
@@ -147,7 +148,8 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>اللون على علامات التبويب غير النشطة</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>نسخ</value>
@@ -155,11 +157,13 @@
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>إظهار عنوان علامة التبويب المخصصة أيضًا في شريط العنوان</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>تحرير العنوان</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>جنرال لواء</value>
@@ -175,7 +179,8 @@
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>إعادة التشغيل المطلوبة لتطبيق الإعداد</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>علامة تبويب جديدة</value>
@@ -191,7 +196,8 @@
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>شبابيك</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>فتح محطات جديدة كما</value>
@@ -223,7 +229,8 @@
</data>
<data name="Setting" xml:space="preserve">
<value>الإعدادات</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>الإعدادات</value>
@@ -383,15 +390,18 @@
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>حجم الخط</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>استيراد</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>اختصار لوحة المفاتيح</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>اختصار لوحة المفاتيح</value>
@@ -415,7 +425,8 @@
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>عمل الزر الأوسط</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>الفأر</value>
@@ -439,7 +450,8 @@
</data>
<data name="Padding.Header" xml:space="preserve">
<value>حشوة</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>اسم</value>
@@ -451,7 +463,8 @@
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>موضوع</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>ملاحظات الإصدار</value>
@@ -467,7 +480,8 @@
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>حد التمرير</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>الاختباء التلقائي</value>
@@ -479,7 +493,8 @@
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>نمط شريط التمرير</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>مرئي</value>
@@ -531,59 +546,73 @@
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>عمل اخراجي</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>هل تريد بالتأكيد إغلاق علامة التبويب &quot;{0}&quot;؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>هل أنت متأكد من أنك تريد إغلاق هذه النافذة؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>هل أنت متأكد من أنك تريد حذف رابط المفاتيح هذا؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف هذا الموضوع؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>هل أنت متأكد من أنك تريد تجاهل جميع التغييرات؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>هل أنت متأكد من أنك تريد استعادة الإعدادات العامة؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>هل أنت متأكد من رغبتك في استعادة روابط المفاتيح الافتراضية؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>هل أنت متأكد من أنك تريد استعادة إعدادات الماوس؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>هل أنت متأكد أنك تريد استعادة هذا الملف الشخصي؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>هل تريد بالتأكيد استعادة خيارات المحطة الافتراضية؟</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>تم تعطيل السياسة.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>معطل من قبل المستخدم. يرجى إعادة تنشيطه في علامة التبويب بدء التشغيل من إدارة المهام.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>تحرير العنوان</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>خطأ</value>
@@ -591,11 +620,13 @@
</data>
<data name="ErrorString1" xml:space="preserve">
<value>لا يمكن إتمام العملية بسبب الخطأ التالي:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>فشل استيراد النسق</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>لم يتم العثور على محلل مناسب</value>
@@ -610,9 +641,11 @@
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>أدخل رابط المفتاح الخاص بك الآن</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>حسنا</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>إعادة تعيين</value>
@@ -627,7 +660,8 @@
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>تغيير عنوان التبويب</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>واضح</value>
@@ -637,17 +671,10 @@
<value>إغلاق علامة التبويب</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>علامة تبويب جديدة قابلة للتكوين</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>نافذة جديدة شكلي</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>كيبيندينغس</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>حذف</value>
@@ -663,7 +690,8 @@
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>نافذة جديدة</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>علامة التبويب التالية</value>
@@ -685,17 +713,10 @@
<value>اختر الكل</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>بداية</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>اختر صفحة شخصية</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>إعدادات العرض</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>التبديل إلى المحطة 1</value>
@@ -735,14 +756,17 @@
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>ملء الشاشة تبديل</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>تبديل النافذة</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>علامة تبويب عن بعد جديدة</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>علامة تبويب SSH جديدة</value>
@@ -758,6 +782,7 @@
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>ميناء</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>مسار ملف الهوية</value>
@@ -770,24 +795,28 @@
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>المتقدمة</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>منافذ موش:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>حفظ الاختصار</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>يحتاج التطبيق إلى إعادة التشغيل ليصبح هذا التغيير نافذ المفعول.</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>مدخل غير صالح</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>لا يمكن أن يكون المنفذ 0.</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>المستخدم والمضيف حقول إلزامية.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>اسم المستخدم لا يمكن أن يكون فارغا.</value>
@@ -797,6 +826,7 @@
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>يجب أن يكون منفذ SSH أكبر من الصفر.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>ميناء موش لا يمكن أن يكون صفرا.</value>
@@ -818,15 +848,18 @@
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>خرج جديد</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>خرجت مع الخطأ</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>هل أنت متأكد أنك تريد حذف ملف التعريف هذا؟</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>نافذة SSH جديدة</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>ملفات تعريف SSH</value>
@@ -857,9 +890,11 @@
</data>
<data name="SettingsImported" xml:space="preserve">
<value>تم استيراد الإعدادات من الملف</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>تحديد ملف غير موجود</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>استخدم اسم مستخدم Windows عند فتح عناوين URL SSH التي لا تحدد واحدًا</value>
@@ -878,6 +913,7 @@
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>لا يمكن أن يكون الموقع فارغًا.</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>كتم صوت صفير المحطة الطرفية</value>
@@ -887,6 +923,7 @@
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>أمر</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>أمر غير مدعوم:</value>
@@ -902,6 +939,7 @@
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>نافذة جديدة للإطلاق السريع</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>علامة تبويب سريعة جديدة</value>
@@ -914,6 +952,7 @@
</data>
<data name="DropTabHere" xml:space="preserve">
<value>علامة التبويب إسقاط هنا</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>إغلاق علامات التبويب إلى اليسار</value>
@@ -932,15 +971,19 @@
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>لا يمكن تعريف متغيرين للبيئة بنفس الاسم.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>لا يمكن تعريف متغير بيئة بدون اسم.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>متغيرات البيئة</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>إغلاق لوحة البحث</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>بحث عن التالي</value>
@@ -950,15 +993,19 @@
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>أدخل مصطلح البحث</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>بحث</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>الإخراج للطباعة فقط</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>إخراج السجل للتصحيح</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>أحرف كلمة فاصل</value>
@@ -1044,4 +1091,40 @@
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Case sensitive</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session disconnected.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Increase font size</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Decrease font size</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reset font size</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
File diff suppressed because it is too large. Load diff
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>Pəncərələri bağlamadan əvvəl soruşun</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>Tabları bağlamadan əvvəl soruşun</value>
@@ -147,7 +148,8 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Aktiv olmayan tabların rəngi</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Kopyala</value>
@@ -155,11 +157,13 @@
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Xüsusi tab başlığını başlıq çubuğunda da göstər</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Başlığı redaktə edin</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>Ümumi</value>
@@ -175,7 +179,8 @@
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Dəyişikliyi tətbiq etmək üçün yenidən başladın</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>Yeni tab</value>
@@ -191,7 +196,8 @@
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Pəncərələr</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Yeni terminalı ... kimi aç</value>
@@ -223,7 +229,8 @@
</data>
<data name="Setting" xml:space="preserve">
<value>Parametrlər</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>Parametrlər</value>
@@ -383,15 +390,18 @@
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Şrift ölçüsü</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>İdxal</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Klaviatura qısa yolu</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>Klaviatura qısa yolu</value>
@@ -439,7 +449,8 @@
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Taxma</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>Adı</value>
@@ -451,7 +462,8 @@
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Mövzu</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Buraxılış qeydləri</value>
@@ -467,7 +479,8 @@
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>Geri qayıtma həddi</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>Avtomatik gizlətmə</value>
@@ -479,7 +492,8 @@
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Scrollbar stili</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>Görünür</value>
@@ -531,59 +545,73 @@
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>İş qovluğu</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>&quot;{0}&quot; tabını bağlamaq istədiyinizə əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Bu pəncərəni bağlamaq istədiyinizə əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Bu qısayolu silmək istədiyinizə əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Bu mövzunu silmək istədiyinizə əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Bütün dəyişiklikləri ləğv etmək istədiyinizdən əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Ümumi parametrləri bərpa etmək istədiyinizə əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Standart açar bağlantıları bərpa etməyinizə əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Siçan parametrlərini bərpa etmək istədiyinizə əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Bu profilinizi bərpa etmək istədiyinizdən əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Standart terminal seçimlərini bərpa etmək istədiyinizdən əminsiniz?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Siyasətə görə əlil.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>İstifadəçi tərəfindən əlil Zəhmət olmasa Task Manager&apos;in Başlanğıc sekmesinde yenidən aktiv olun.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Başlığı redaktə edin</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>Xəta</value>
@@ -591,11 +619,13 @@
</data>
<data name="ErrorString1" xml:space="preserve">
<value>Aşağıdakı səhv səbəbindən əməliyyat başa çatdırıla bilməz:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>İdxal mövzusu alınmadı</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>Uyğun analizçi tapılmadı</value>
@@ -610,9 +640,11 @@
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Klaviaturanızı indi daxil edin</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>tamam</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Sıfırlayın</value>
@@ -627,7 +659,8 @@
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>Nişan başlığını dəyişdirin</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>Aydındır</value>
@@ -637,17 +670,10 @@
<value>Nişanı bağlayın</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Yapılandırılabilir yeni nişan</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Tənzimlənən yeni pəncərə</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Keybindings</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>Silin</value>
@@ -663,7 +689,8 @@
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>Yeni pəncərə</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>Sonrakı nişan</value>
@@ -685,17 +712,10 @@
<value>Hamısını seç</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Başlamaq</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Profil seçin</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Parametrləri göstərin</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>Terminal 1-ə keçin</value>
@@ -735,14 +755,17 @@
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Tam ekranı dəyişdirin</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Pəncərəni dəyişdirin</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>Yeni uzaq nişanı</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>Yeni SSH nişanı</value>
@@ -758,6 +781,7 @@
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>liman</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Şəxsiyyət sənədinin yolu</value>
@@ -770,24 +794,28 @@
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Ətraflı</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh limanları:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>Qısayolları saxla</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>Bu dəyişikliyin qüvvəyə minməsi üçün tətbiq yenidən başlamalıdır.</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>yalnış daxiletmə</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>Port 0 ola bilməz.</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>İstifadəçi və ev sahibi məcburi sahələrdir.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>İstifadəçi adı boş ola bilməz.</value>
@@ -797,6 +825,7 @@
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>SSH portu sıfırdan çox olmalıdır.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>Mosh portu sıfır ola bilməz.</value>
@@ -818,15 +847,18 @@
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>Yeni çıxış</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Səhvlə çıxdı</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Bu profili silmək istədiyinizə əminsiniz?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>Yeni SSH pəncərəsi</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH profilləri</value>
@@ -857,9 +889,11 @@
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Parametrlər sənəddən idxal edildi</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Şəxsiyyət faylı mövcud deyil</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Birini göstərməyən SSH URL-lərini açarkən Windows istifadəçi adından istifadə edin</value>
@@ -878,6 +912,7 @@
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>Yer boş ola bilməz.</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Terminal səslərini səssizləşdirin</value>
@@ -887,6 +922,7 @@
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Əmr</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Dəstəklənməyən əmr:</value>
@@ -902,6 +938,7 @@
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>Yeni sürətli pəncərə</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>Yeni sürətli nişan</value>
@@ -914,6 +951,7 @@
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Nişanı buraya salın</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Nişanları sola bağlayın</value>
@@ -932,15 +970,19 @@
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Eyni adlı iki mühit dəyişkənliyini təyin etmək olmur.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Bir mühit dəyişənini ad olmadan təyin etmək olmur.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Ətraf mühit dəyişkənləri</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Axtarış panelini bağlayın</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Növbəti tapın</value>
@@ -950,15 +992,19 @@
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Axtarış termini daxil edin</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Axtarış</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Yalnız çap edilə bilər</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Çatdırılma üçün giriş çıxışı</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Söz ayırıcı simvol</value>
@@ -1044,4 +1090,40 @@
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Case sensitive</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session disconnected.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Increase font size</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Decrease font size</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reset font size</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
File diff suppressed because it is too large. Load diff
+126 -51
View File
@@ -151,7 +151,8 @@ Fuzzy</comment>
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Inaktive Tabs einfärben</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Kopieren</value>
@@ -159,11 +160,13 @@ Fuzzy</comment>
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Benutzerdefinierten Tabtitel auch in der Titelleiste anzeigen</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Titel ändern</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>Allgemein</value>
@@ -179,7 +182,8 @@ Fuzzy</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Neustart benötigt um vollständig angewandt zu werden.</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>Neuer Tab</value>
@@ -195,7 +199,8 @@ Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Fenster</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Neue Terminals öffnen als</value>
@@ -227,7 +232,8 @@ Fuzzy</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>Einstellungen</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>Einstellungen</value>
@@ -389,15 +395,18 @@ Fuzzy</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Schriftgröße</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>Importieren</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Tastaturbelegung</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>Tastaturkürzel</value>
@@ -421,7 +430,8 @@ Fuzzy</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Aktion für mittlere Taste</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>Maus</value>
@@ -446,7 +456,8 @@ Fuzzy</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Abstand</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>Name</value>
@@ -458,7 +469,8 @@ Fuzzy</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Theme</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Versionshinweise</value>
@@ -474,7 +486,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>Maximales Hochscrollen</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>Automatisch ausblendend</value>
@@ -486,7 +499,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Scrollleisten-Darstellung</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>Sichtbar</value>
@@ -541,7 +555,8 @@ Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Arbeitsverzeichnis</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Sind Sie sicher dass Sie den Tab &quot;{0}&quot; schließen wollen?</value>
@@ -550,51 +565,63 @@ Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Sind Sie sicher dass Sie dieses Fenster schließen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Sind Sie sicher dass Sie dieses Tastaturkürzel löschen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Sind Sie sicher dass Sie dieses Theme löschen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Sind Sie sicher dass Sie alle Änderungen widerrufen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Sind Sie sicher dass Sie die Standard-Einstellungen wiederherstellen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Sind Sie sicher dass Sie die Standard-Tastaturbelegung wiederherstellen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Sind Sie sicher dass Sie Standard-Mauseinstellungen wiederherstellen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Sind Sie sicher dass Sie die Standard-Einstellungen für dieses Profile wiederherstellen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Sind Sie sicher dass Sie die Standard-Terminal-Einstellungen wiederherstellen wollen?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Durch Gruppenrichtlinie deaktiviert.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Durch den Benutzer deaktiviert. Bitte im Startup-Tab im Task Manager wieder aktivieren.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Titel ändern</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>Fehler</value>
@@ -602,11 +629,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>Der Befehl konnte aufgrund des folgenden Fehlers nicht ausgeführt werden:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>Theme importieren fehlgeschlagen</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>Kein passender Parser gefunden.</value>
@@ -621,9 +650,11 @@ Fuzzy</comment>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Jetzt Tastaturkürzel eingeben</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Zurücksetzen</value>
@@ -639,7 +670,8 @@ Fuzzy</comment>
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>Tab-Titel anpassen</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>Bildschirm leeren</value>
@@ -649,17 +681,10 @@ Fuzzy</comment>
<value>Tab schließen</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Konfigurierbarer neuer Tab</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Konfigurierbares neues Fenster</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Tastaturkürzel</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>Löschen</value>
@@ -677,7 +702,8 @@ Fuzzy</comment>
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>Neues Fenster</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>Nächster Tab</value>
@@ -699,17 +725,10 @@ Fuzzy</comment>
<value>Alles auswählen</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Start</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Profil auswählen</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Einstellungen öffnen</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>Zu Terminal 1 wechseln</value>
@@ -749,11 +768,13 @@ Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Vollbildmodus ein/ausschalten</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Fenster ein/ausblenden</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>Neuer SSH-Tab</value>
@@ -775,6 +796,7 @@ Fuzzy</comment>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>Port</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Pfad zur Identitätsdatei</value>
@@ -788,6 +810,7 @@ Fuzzy</comment>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Erweitert</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh ports:</value>
@@ -843,15 +866,18 @@ Fuzzy</comment>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>Neue Ausgabe</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Mit Fehler beendet</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Sind Sie sicher dass Sie dieses Profil löschen wollen?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>Neues SSH-Fenster</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH-Profile</value>
@@ -888,9 +914,11 @@ Fuzzy</comment>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Einstellungen wurden importiert.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Identittätsdatei existiert nicht</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Windows-Benutzernamen verwenden wenn nicht in SSH-Url angegeben</value>
@@ -909,6 +937,7 @@ Fuzzy</comment>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>Dateipfad darf nicht leer sein</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Hinweistöne stummschalten</value>
@@ -918,6 +947,7 @@ Fuzzy</comment>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Befehl</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Nicht unterstüzter Befehl:</value>
@@ -933,6 +963,7 @@ Fuzzy</comment>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>Neues Quick Launch-Fenster</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>Neuer Quick Launch-Tab</value>
@@ -945,6 +976,7 @@ Fuzzy</comment>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Tab hier ablegen</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Linke Tabs schließen</value>
@@ -963,15 +995,19 @@ Fuzzy</comment>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Es können keine zwei Umgebungsvariablen mit dem gleichen Namen erstellt werden.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Es kann keine Umgebungsvariable ohne Name erstellt werden.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Umgebungsvariablen</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Suche schließen</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Nächstes Ergebnis</value>
@@ -981,9 +1017,11 @@ Fuzzy</comment>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Suchbegriff eingeben</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Suche</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Nur darstellbare Ausgaben</value>
@@ -991,6 +1029,7 @@ Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Ausgabe zum Debuggen protokollieren</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Worttrennende Zeichen</value>
@@ -1077,4 +1116,40 @@ Fuzzy</comment>
<data name="BrightColors.Text" xml:space="preserve">
<value>Helle Farben</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Link kopieren</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Ganzes Wort</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Groß-/Kleinschreibung beachten</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Auswahl kopieren oder Einfügen</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Smart Buffer verwenden</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Neu starten</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Sitzung wurde getrennt.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Schriftgröße vergrößern</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Schriftgröße verkleinern</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Schriftgröße zurücksetzen</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
@@ -148,11 +148,13 @@ Fuzzy</comment>
</data>
<data name="Color.Text" xml:space="preserve">
<value>Color</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Color on inactive tabs</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Copy</value>
@@ -161,15 +163,18 @@ Fuzzy</comment>
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Show custom tab title also in titlebar</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Edit Title</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>General</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="TabTheme.Green" xml:space="preserve">
<value>Green</value>
@@ -182,7 +187,8 @@ Fuzzy</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Relaunch required to apply setting</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>New tab</value>
@@ -199,7 +205,8 @@ Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Windows</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Open new terminals as</value>
@@ -235,7 +242,8 @@ Fuzzy</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>Settings</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>Settings</value>
@@ -398,15 +406,18 @@ Fuzzy</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Font size</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>Import</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Keyboard shortcut</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>Keyboard shortcut</value>
@@ -430,7 +441,8 @@ Fuzzy</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Middle button action</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>Mouse</value>
@@ -455,7 +467,8 @@ Fuzzy</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Padding</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>Name</value>
@@ -467,7 +480,8 @@ Fuzzy</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Theme</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Release notes</value>
@@ -483,7 +497,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>Scrollback limit</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>Auto hiding</value>
@@ -495,7 +510,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Scrollbar style</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>Visible</value>
@@ -550,7 +566,8 @@ Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Working directory</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Are you sure you want to close &quot;{0}&quot; tab?</value>
@@ -559,51 +576,63 @@ Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Are you sure you want to close this window?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Are you sure you want to delete this keybinding?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Are you sure you want to delete this theme?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Are you sure you want to discard all changes?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Are you sure you want to restore the general settings?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Are you sure you want to restore the default keybindings?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Are you sure you want to restore the mouse settings?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Are you sure you want to restore this profile?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Are you sure you want to restore the default terminal options?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Disabled by policy.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Disabled by user. Please reactivate it in the Startup tab of the Task Manager.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Edit Title</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>Error</value>
@@ -611,11 +640,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>The operation cannot be completed due to the following error:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>Import theme failed</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>No suitable parser found</value>
@@ -630,9 +661,11 @@ Fuzzy</comment>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Enter your keybinding now</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Reset</value>
@@ -659,21 +692,12 @@ Fuzzy</comment>
<data name="Command.CloseTab" xml:space="preserve">
<value>Close tab</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Configurable new tab</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Configurable new window</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Keybindings</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>Delete</value>
@@ -719,14 +743,6 @@ Fuzzy</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Start</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Select Profile</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Show settings</value>
<comment>Command
@@ -807,6 +823,7 @@ Fuzzy</comment>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>port</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Identity file path</value>
@@ -820,6 +837,7 @@ Fuzzy</comment>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Advanced</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh ports:</value>
@@ -875,15 +893,18 @@ Fuzzy</comment>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>New output</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Exited with error</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Are you sure you want to delete this profile?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>New SSH window</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH Profiles</value>
@@ -920,9 +941,11 @@ Fuzzy</comment>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Settings were imported from file</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Identify file does not exist</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Use Windows username when opening SSH URLs that don&apos;t specify one</value>
@@ -941,6 +964,7 @@ Fuzzy</comment>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>Location cannot be empty.</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Mute terminal beeps</value>
@@ -950,6 +974,7 @@ Fuzzy</comment>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Command</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Unsupported command:</value>
@@ -966,6 +991,7 @@ Fuzzy</comment>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>New quick launch window</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>New quick tab</value>
@@ -978,6 +1004,7 @@ Fuzzy</comment>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Drop tab here</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Close tabs to the left</value>
@@ -996,15 +1023,19 @@ Fuzzy</comment>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Cannot define two environment variables with the same name.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Cannot define an environment variable without a name.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Environment variables</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Close search panel</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Find next</value>
@@ -1014,9 +1045,11 @@ Fuzzy</comment>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Enter search term</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Search</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Printable output only</value>
@@ -1024,6 +1057,7 @@ Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Log output for debugging</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Word separator characters</value>
@@ -1111,4 +1145,40 @@ Fuzzy</comment>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Case sensitive</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session disconnected.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Increase font size</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Decrease font size</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reset font size</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
File diff suppressed because it is too large. Load diff
+205 -127
View File
@@ -137,7 +137,8 @@ Fuzzy</comment>
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>Preguntar antes de cerrar las ventanas</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>Preguntar antes de cerrar las pestañas</value>
@@ -149,7 +150,8 @@ Fuzzy</comment>
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Color de las pestañas inactivas</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Copiar</value>
@@ -157,11 +159,13 @@ Fuzzy</comment>
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Mostrar título personalizado de la pestaña también en la barra de título</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Editar título</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>General</value>
@@ -177,7 +181,8 @@ Fuzzy</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Se necesita reiniciar para aplicar las opciones</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>Nueva pestaña</value>
@@ -193,7 +198,8 @@ Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Ventanas</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Abrir nuevas terminales como</value>
@@ -225,7 +231,8 @@ Fuzzy</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>Opciones</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>Opciones</value>
@@ -387,15 +394,18 @@ Fuzzy</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Tamaño de fuente</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>Importar</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Atajo</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>Atajo</value>
@@ -419,7 +429,8 @@ Fuzzy</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Acción del botón central</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>Ratón</value>
@@ -444,7 +455,8 @@ Fuzzy</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Padding</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>Nombre</value>
@@ -456,7 +468,8 @@ Fuzzy</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Tema</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Notas de lanzamiento</value>
@@ -472,7 +485,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>Límite de desplazamiento</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>Ocultar automáticamente</value>
@@ -484,7 +498,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Estilo de la barra de desplazamiento</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>Visible</value>
@@ -539,59 +554,73 @@ Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Directorio de trabajo</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Are you sure you want to close &quot;{0}&quot; tab?</value>
<comment>ViewModel</comment>
<value>¿Estás seguro que quieres cerrar la pestaña &quot;{0}&quot;?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>¿Quieres cerrar esta ventana?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>¿Quieres eliminar este atajo?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>¿Quieres eliminar este tema?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>¿Quieres descartar todos los cambios?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>¿Quieres restaurar las opciones generales?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>¿Quieres restaurar los atajos por defecto?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>¿Quieres restaurar las opciones de ratón?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>¿Quieres restaurar este perfil?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>¿Quieres restaurar las opciones por defecto de la terminal?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Deshabilitado por política.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Deshabilitado por el usuario. Por favor reactivalo en la Pestaña de inicio en el Gestor de tareas.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Editar título</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>Error</value>
@@ -599,11 +628,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>La operación no se pudo completar por el siguiente error:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>Error al importar el tema</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>No se ha encontrado un parser disponible</value>
@@ -618,9 +649,11 @@ Fuzzy</comment>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Introduce tu atajo ahora</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Reiniciar</value>
@@ -635,7 +668,8 @@ Fuzzy</comment>
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>Cambiar título de la pestaña</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>Limpiar</value>
@@ -645,17 +679,10 @@ Fuzzy</comment>
<value>Cerrar pestaña</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Nueva pestaña configurable</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Nueva ventana configurable</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Atajos</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>Borrar</value>
@@ -673,7 +700,8 @@ Fuzzy</comment>
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>Nueva ventana</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>Pestaña siguiente</value>
@@ -695,17 +723,10 @@ Fuzzy</comment>
<value>Seleccionar todo</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Iniciar</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Selecciona perfil</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Mostar opciones</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>Cambiar a Terminal 1</value>
@@ -745,11 +766,13 @@ Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Cambiar a Ventana completa</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Cambiar ventana</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>Nueva pestaña remota</value>
@@ -771,6 +794,7 @@ Fuzzy</comment>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>Puerto</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Ubicación de la entidad</value>
@@ -784,6 +808,7 @@ Fuzzy</comment>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Avanzado</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Puertos de Mosh:</value>
@@ -839,230 +864,283 @@ Fuzzy</comment>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>Nueva entrada</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Se salió con error</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>¿Quieres eliminar este perfil?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>New SSH window</value>
<value>Nueva ventana SSH</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH Profiles</value>
<value>Perfiles SSH</value>
</data>
<data name="SshInfoDialog_TabColor.Text" xml:space="preserve">
<value>Tab color:</value>
<value>Color de pestaña:</value>
</data>
<data name="UseConPty" xml:space="preserve">
<value>Use ConPty</value>
<value>Usar ConPty</value>
</data>
<data name="Username.Header" xml:space="preserve">
<value>Username</value>
<value>Nombre de usuario</value>
</data>
<data name="MoshPortFrom.Header" xml:space="preserve">
<value>From port</value>
<value>Puerto desde</value>
</data>
<data name="MoshPortTo.Header" xml:space="preserve">
<value>to port</value>
<value>a puerto</value>
</data>
<data name="MoshPortRange.Text" xml:space="preserve">
<value>Mosh port range</value>
<value>Rango de puertos Mosh</value>
</data>
<data name="Authenticate" xml:space="preserve">
<value>Authenticate</value>
<value>Autenticar</value>
</data>
<data name="SettingsExported" xml:space="preserve">
<value>Settings were exported to file</value>
<value>Opciones exportadas a archivo</value>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Settings were imported from file</value>
<value>Opciones importadas desde archivo</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Identify file does not exist</value>
<value>No existe el archivo de identidad</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Use Windows username when opening SSH URLs that don&apos;t specify one</value>
<value>Usar nombre de Windows al abrir urls SSH que no especifican uno</value>
</data>
<data name="UseMoshByDefault.Header" xml:space="preserve">
<value>Default to Mosh for SSH connections</value>
<value>Mosh para conexiones SSH por defecto</value>
</data>
<data name="RTrimCopiedLines.Header" xml:space="preserve">
<value>Right trim copied lines</value>
<value>Recortar a la derecha las líneas copiadas</value>
</data>
<data name="QuickSshDefault.Header" xml:space="preserve">
<value>Use quick SSH by default</value>
<value>Usar SSH rápido por defecto</value>
</data>
<data name="InvalidCommand" xml:space="preserve">
<value>Invalid command.</value>
<value>Comando inválido.</value>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>Location cannot be empty.</value>
<value>La ubicación no puede estar vacía.</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Mute terminal beeps</value>
<value>Silenciar sonidos de terminal</value>
</data>
<data name="CommandTextBox.PlaceholderText" xml:space="preserve">
<value>Enter a command (e.g. &apos;ssh username@host&apos;)</value>
<value>Introduce un comando (p.e. &apos;ssh username@host&apos;)</value>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Command</value>
<value>Comando</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Unsupported command:</value>
<value>Comando no soportado:</value>
</data>
<data name="CommandArgumentsMandatory" xml:space="preserve">
<value>Command arguments are missing.</value>
<value>Faltan argumentos del comando.</value>
</data>
<data name="QuickCommandDialog.Title" xml:space="preserve">
<value>Quick Launch</value>
<value>Lanzamiento rápido</value>
</data>
<data name="Command.NewCustomCommandTab" xml:space="preserve">
<value>New quick launch tab</value>
<value>Nueva pestaña de inicio rápido</value>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>New quick launch window</value>
<value>Lanzar nueva ventana rápida</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>New quick tab</value>
<value>Nueva pestaña rápida</value>
</data>
<data name="FileNotFound" xml:space="preserve">
<value>File not found:</value>
<value>Archivo no encontrado:</value>
</data>
<data name="InvalidLink" xml:space="preserve">
<value>Invalid link.</value>
<value>Enlace inválido.</value>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Drop tab here</value>
<value>Suelta la pestaña aquí</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Close tabs to the left</value>
<value>Cerrar pestañas a la izquierda</value>
</data>
<data name="CloseOther.Text" xml:space="preserve">
<value>Close other tabs</value>
<value>Cerrar el resto de pestañas</value>
</data>
<data name="CloseRight.Text" xml:space="preserve">
<value>Close tabs to the right</value>
<value>Cerrar pestañas a la derecha</value>
</data>
<data name="Command.DuplicateTab" xml:space="preserve">
<value>Duplicate tab</value>
<value>Duplicar pestaña</value>
</data>
<data name="Duplicate.Text" xml:space="preserve">
<value>Duplicate</value>
<value>Duplicar</value>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Cannot define two environment variables with the same name.</value>
<value>No puedes asignar dos variables de entorno con el mismo nombre.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Cannot define an environment variable without a name.</value>
<value>No puedes definir una variable de entorno sin nombre.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Environment variables</value>
<value>Variables de entorno</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Close search panel</value>
<value>Cerrar panel de búsqueda</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Find next</value>
<value>Buscar siguiente</value>
</data>
<data name="FindPrevious.ToolTipService.ToolTip" xml:space="preserve">
<value>Find previous</value>
<value>Buscar anterior</value>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Enter search term</value>
<value>Ingrese el término de búsqueda</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Search</value>
<value>Buscar</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Printable output only</value>
<value>Solamente salida imprimible</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Log output for debugging</value>
<value>Registar salida para debugeo</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Word separator characters</value>
<value>Caracteres separadores de palabras</value>
</data>
<data name="Recent.Text" xml:space="preserve">
<value>Recent</value>
<value>Reciente</value>
</data>
<data name="NewTab_Description" xml:space="preserve">
<value>Opens default profile in a new tab.</value>
<value>Abre el perfil predeterminado en una nueva pestaña.</value>
</data>
<data name="NewSshTab_Description" xml:space="preserve">
<value>Opens a new SSH or Mosh session in a new tab.</value>
<value>Abre una nueva sesión SSH o Mosh en una nueva pestaña.</value>
</data>
<data name="NewQuickTab_Description" xml:space="preserve">
<value>Opens &quot;Quick Launch&quot; dialog and starts session in a new tab.</value>
<value>Abre el cuadro de diálogo &quot;Inicio rápido&quot; e inicia la sesión en una pestaña nueva.</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>Opens settings window.</value>
<value>Abrir ventana de opciones.</value>
</data>
<data name="About_Description" xml:space="preserve">
<value>Basic info about the app.</value>
<value>Información básica sobre la app.</value>
</data>
<data name="Recent_Description" xml:space="preserve">
<value>Recently opened sessions.</value>
<value>Sesiones abiertas recientemente.</value>
</data>
<data name="MenuItem_DefaultProfile_Description" xml:space="preserve">
<value>Starts new terminal session based on the default profile.</value>
<value>Inicia una nueva sesión de terminal basada en el perfil predeterminado.</value>
</data>
<data name="MenuItem_Remote_Text" xml:space="preserve">
<value>Remote Connect...</value>
<value>Conexión remota...</value>
</data>
<data name="MenuItem_Remote_Description" xml:space="preserve">
<value>Opens a dialog for launching a new SSH or Mosh terminal session.</value>
<value>Abre un cuadro de diálogo para iniciar una nueva sesión de terminal SSH o Mosh.</value>
</data>
<data name="MenuItem_QuickLaunch_Text" xml:space="preserve">
<value>Quick Launch...</value>
<value>Conexión rápida...</value>
</data>
<data name="MenuItem_QuickLaunch_Description" xml:space="preserve">
<value>Opens a &quot;Quick Launch&quot; dialog for starting a new terminal session.</value>
<value>Abre un cuadro de diálogo &quot;Inicio rápido&quot; para iniciar una nueva sesión de terminal.</value>
</data>
<data name="MenuItem_NewWindow_Text" xml:space="preserve">
<value>New Window</value>
<value>Nueva ventana</value>
</data>
<data name="MenuItem_NewTab_Text" xml:space="preserve">
<value>New Tab</value>
<value>Nueva pestaña</value>
</data>
<data name="MenuItem_NewTab_Description" xml:space="preserve">
<value>Launches a session in a new tab.</value>
<value>Inicia una sesión en una nueva pestaña.</value>
</data>
<data name="MenuItem_NewWindow_Description" xml:space="preserve">
<value>Launches a session in a new window.</value>
<value>Lanzar nueva sesión en una nueva ventana.</value>
</data>
<data name="AppMenuType.Text" xml:space="preserve">
<value>Application menu type</value>
<value>Tipo de menú de la aplicación</value>
</data>
<data name="AppMenuType_Flat.Content" xml:space="preserve">
<value>Flat, honoring &quot;Open new terminals as&quot; setting</value>
<value>Plano, honrando la configuración &quot;Abrir nuevos terminales como&quot;</value>
</data>
<data name="AppMenuType_Cascading.Content" xml:space="preserve">
<value>&quot;New Tab&quot; / &quot;New Window&quot; cascading</value>
<value>&quot;Nueva pestaña&quot; / &quot;Nueva ventana&quot; en cascada</value>
</data>
<data name="Quit.Text" xml:space="preserve">
<value>Quit</value>
<value>Salir</value>
</data>
<data name="Quit.Description" xml:space="preserve">
<value>Quit Fluent Terminal</value>
<value>Salir de Fluent Terminal</value>
</data>
<data name="EnabledByPolicy" xml:space="preserve">
<value>Enabled by policy.</value>
<value>Habilitado por la política.</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Background image</value>
<value>Imagen de fondo</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Use acrylic background</value>
<value>Usar fondo acrílico</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Are you sure you want to delete this background image?</value>
<value>¿Estás seguro de querer borrar esta imagen de fondo?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Colors</value>
<value>Colores</value>
</data>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
<value>Colores brillantes</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copiar enlace</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Toda la palabra</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Distingue mayúsculas y minúsculas</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copiar selección o pegar</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Usar búfer inteligente</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Reiniciar sesión</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Sesión finalizada.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Incrementar tamaño de fuente</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Disminuir tamaño de fuente</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reiniciar tamaño de fuente</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
File diff suppressed because it is too large. Load diff
+225 -154
View File
@@ -118,12 +118,12 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AboutDialog.Title" xml:space="preserve">
<value>A propos</value>
<value>À propos</value>
<comment>MainPage.xaml
Fuzzy</comment>
</data>
<data name="Background.Content" xml:space="preserve">
<value>Fond</value>
<value>Arrière-plan</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabTheme.Blue" xml:space="preserve">
@@ -151,8 +151,9 @@ Fuzzy</comment>
<comment>TabBar.xaml</comment>
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Couleur sur les onglets inactifs</value>
<comment>GeneralSettings.xaml</comment>
<value>Couleur des onglets inactifs</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Copier</value>
@@ -161,11 +162,13 @@ Fuzzy</comment>
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Afficher le titre de l&apos;onglet personnalisé également dans la barre de titre</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Editer le titre</value>
<comment>TabBar.xaml</comment>
<value>Éditer le titre</value>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>Général</value>
@@ -177,12 +180,13 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="IndicatorOutput.Header" xml:space="preserve">
<value>Afficher le nouvel indicateur de sortie sur les onglets d’arrière-plan</value>
<value>Afficher l&apos;indicateur de nouvelle sortie sur les onglets inactifs</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Relancement requis pour appliquer le réglage</value>
<comment>GeneralSettings.xaml</comment>
<value>Relancez l&apos;application pour appliquer ce réglage</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>Nouvel onglet</value>
@@ -199,10 +203,11 @@ Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Fenêtres</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Ouvrir de nouveaux terminaux en tant que</value>
<value>Ouvrir les nouveaux terminaux en tant que</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabTheme.Orange" xml:space="preserve">
@@ -235,7 +240,8 @@ Fuzzy</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>Réglages</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>Réglages</value>
@@ -246,7 +252,7 @@ Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabsPostion.Text" xml:space="preserve">
<value>Afficher les onglets sur</value>
<value>Disposition des onglets</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabTheme.Teal" xml:space="preserve">
@@ -255,11 +261,11 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="TP_Bottom.Content" xml:space="preserve">
<value>Bas</value>
<value>En bas</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TP_Top.Content" xml:space="preserve">
<value>Haut</value>
<value>En haut</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="Underline.Content" xml:space="preserve">
@@ -267,11 +273,11 @@ Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="UnderlineTab.Header" xml:space="preserve">
<value>Souligner l&apos;onglet sélectionné</value>
<value>Souligner l&apos;onglet actif</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="Setting_About.Content" xml:space="preserve">
<value>A propos</value>
<value>À propos</value>
<comment>SettingsPage.xaml</comment>
</data>
<data name="Setting_General.Content" xml:space="preserve">
@@ -287,7 +293,7 @@ Fuzzy</comment>
<comment>SettingsPage.xaml</comment>
</data>
<data name="Setting_Profiles.Content" xml:space="preserve">
<value>Profiles</value>
<value>Profils</value>
<comment>SettingsPage.xaml</comment>
</data>
<data name="Setting_Terminal.Content" xml:space="preserve">
@@ -308,15 +314,15 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="BackgroundOpacity.Header" xml:space="preserve">
<value>Opacité du fond</value>
<value>Opacité de l&apos;arrière-plan</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="BlinkingCursor.Header" xml:space="preserve">
<value>Clignotement du curseur</value>
<value>Curseur clignotant</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="BoldText.Header" xml:space="preserve">
<value>Texte en gras</value>
<value>Texte gras</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="CancelAppBarButton.Label" xml:space="preserve">
@@ -324,7 +330,7 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="CheckingUpdates.Text" xml:space="preserve">
<value>Vérification des mises à jour ...</value>
<value>Vérification des mises à jour...</value>
<comment>About.xaml</comment>
</data>
<data name="CheckUpdates.Label" xml:space="preserve">
@@ -332,7 +338,7 @@ Fuzzy</comment>
<comment>About.xaml</comment>
</data>
<data name="ClickColorEdit.Text" xml:space="preserve">
<value>Cliquez sur une couleur pour éditer</value>
<value>Cliquez sur une couleur pour l&apos;éditer</value>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="CloneAppBarButton.Label" xml:space="preserve">
@@ -348,11 +354,11 @@ Fuzzy</comment>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="CopyOnSelect.Header" xml:space="preserve">
<value>Copier sur sélectionner</value>
<value>Copie automatique</value>
<comment>MouseSettings.xaml</comment>
</data>
<data name="CreateProfile.Text" xml:space="preserve">
<value>Créer un nouveau</value>
<value>Créer un profil</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="CurrentVersion.Text" xml:space="preserve">
@@ -385,7 +391,7 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="EditAppBarButton.Label" xml:space="preserve">
<value>Editer</value>
<value>Éditer</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ExportAppBarButton.Label" xml:space="preserve">
@@ -393,20 +399,23 @@ Fuzzy</comment>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="FontFamily.Header" xml:space="preserve">
<value>Famille de polices</value>
<value>Famille de police</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Taille de police</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>Importer</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Raccourci clavier</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>Raccourci clavier</value>
@@ -421,16 +430,17 @@ Fuzzy</comment>
<comment>About.xaml</comment>
</data>
<data name="LineEndingMode.Header" xml:space="preserve">
<value>Mode de traduction de fin de ligne</value>
<value>Conversion de fin de ligne</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="LineEndingModeOnPaste.Text" xml:space="preserve">
<value>Mode de traduction de fin de ligne sur coller:</value>
<value>Conversion de fin des lignes collées:</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Action du bouton du milieu</value>
<comment>MouseSettings.xaml</comment>
<value>Action du bouton central</value>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>Souris</value>
@@ -450,24 +460,26 @@ Fuzzy</comment>
<comment>MouseSettings.xaml</comment>
</data>
<data name="NewTheme.Text" xml:space="preserve">
<value>Créer un nouveau</value>
<value>Créer un thème</value>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Padding</value>
<comment>TerminalSettings.xaml</comment>
<value>Bords</value>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>Nom</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="Profiles.Text" xml:space="preserve">
<value>Profiles</value>
<value>Profils</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Thème</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Notes de version</value>
@@ -478,31 +490,33 @@ Fuzzy</comment>
<comment>MouseSettings.xaml</comment>
</data>
<data name="SaveAppBarButton.Label" xml:space="preserve">
<value>Sauvgarder</value>
<value>Sauvegarder</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>Limite de défilement</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>Masquage automatique</value>
<value>Masquer automatiquement</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollBarHidden.Content" xml:space="preserve">
<value>Masqué</value>
<value>Masquée</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Style de barre de défilement</value>
<comment>TerminalSettings.xaml</comment>
<value>Barre de défilement</value>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>Visible</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="SetActiveAppBarButton.Label" xml:space="preserve">
<value>Définir actif</value>
<value>Définir comme actif</value>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="SetDefaultAppBarButton.Label" xml:space="preserve">
@@ -510,11 +524,11 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ShellLocation.Header" xml:space="preserve">
<value>Emplacement exécutable du shell</value>
<value>Emplacement de l&apos;exécutable du shell</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="TabColor.Header" xml:space="preserve">
<value>Couleur d&apos;onglet</value>
<value>Couleur de l&apos;onglet</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="Terminal.Text" xml:space="preserve">
@@ -549,60 +563,74 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Directeur de travail</value>
<comment>ShellProfileSettings.xaml</comment>
<value>Dossier de départ</value>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Êtes-vous sûr de vouloir fermer &quot;{0}&quot; onglets?</value>
<comment>ViewModel</comment>
<value>Êtes-vous sûr(e) de vouloir fermer &quot;{0}&quot; onglets ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Are you sure you want to close this window?</value>
<comment>ViewModel</comment>
<value>Voulez-vous fermer cette fenêtre ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Are you sure you want to delete this keybinding?</value>
<comment>ViewModel</comment>
<value>Voulez-vous supprimer ce raccourci ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Êtes-vous sûr de vouloir supprimer ce thème?</value>
<comment>ViewModel</comment>
<value>Voulez-vous supprimer ce thème ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Êtes-vous sûr de vouloir annuler toutes les modifications?</value>
<comment>ViewModel</comment>
<value>Voulez-vous annuler toutes les modifications ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Êtes-vous sûr de vouloir restaurer les paramètres généraux?</value>
<comment>ViewModel</comment>
<value>Voulez-vous restaurer les paramètres généraux ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Êtes-vous sûr de vouloir restaurer les raccourcis clavier par défaut?</value>
<comment>ViewModel</comment>
<value>Voulez-vous restaurer les raccourcis clavier par défaut ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Êtes-vous sûr de vouloir restaurer les paramètres de la souris?</value>
<comment>ViewModel</comment>
<value>Voulez-vous restaurer les paramètres de la souris ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Êtes-vous sûr de vouloir restaurer ce profil?</value>
<comment>ViewModel</comment>
<value>Voulez-vous restaurer ce profil ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Êtes-vous sûr de vouloir restaurer les options du terminal par défaut?</value>
<comment>ViewModel</comment>
<value>Voulez-vous restaurer les options du terminal par défaut ?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Désactivé par politique.</value>
<comment>ViewModel</comment>
<value>Désactivé par Stratégie de Goupe.</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Désactivé par l&apos;utilisateur. Veuillez le réactiver dans l&apos;onglet Démarrage du Gestionnaire des Tâches.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Editer le titre</value>
<comment>ViewModel</comment>
<value>Éditer le titre</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>Erreur</value>
@@ -610,11 +638,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>L&apos;opération ne peut pas être terminée en raison de l&apos;erreur suivante:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>L&apos;importation du thème a échouer</value>
<comment>ViewModel</comment>
<value>L&apos;importation du thème a échoué</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>Aucun analyseur approprié trouvé</value>
@@ -628,17 +658,19 @@ Fuzzy</comment>
<value>Annuler</value>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Entrez votre raccourcis maintenant</value>
<value>Entrez votre raccourci maintenant</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Réinitialiser</value>
<comment>Fuzzy</comment>
</data>
<data name="TextCopied" xml:space="preserve">
<value>Texte copier</value>
<value>Texte copié</value>
<comment>ViewModel</comment>
</data>
<data name="AddAppBarButton.Label" xml:space="preserve">
@@ -658,21 +690,12 @@ Fuzzy</comment>
<data name="Command.CloseTab" xml:space="preserve">
<value>Fermer l&apos;onglet</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Nouvel onglet configurable</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Nouvelle fenêtre configurable</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Raccourcis clavier</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>Effacer</value>
@@ -680,7 +703,7 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="KeyBindingsViewEdit.Content" xml:space="preserve">
<value>Editer</value>
<value>Éditer</value>
<comment>KeyBindingsView.xaml</comment>
</data>
<data name="Command.NewTab" xml:space="preserve">
@@ -709,23 +732,15 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="Command.Search" xml:space="preserve">
<value>Chercher</value>
<value>Recherche</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SelectAll" xml:space="preserve">
<value>Selectionner tout</value>
<value>Sélectionner tout</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Début</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Choisissez un profil</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Afficher les paramètres</value>
<comment>Command
@@ -777,12 +792,12 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Basculer en plein écran</value>
<value>Plein écran</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Basculer la fenêtre</value>
<value>Afficher/Masquer la fenêtre</value>
<comment>Command
Fuzzy</comment>
</data>
@@ -791,11 +806,11 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>Nouvel SSH onglet</value>
<value>Nouvel onglet SSH</value>
<comment>Fuzzy</comment>
</data>
<data name="SshInfoDialog.Title" xml:space="preserve">
<value>SSH Informations</value>
<value>Informations SSH</value>
</data>
<data name="UserTextBox.PlaceholderText" xml:space="preserve">
<value>utilisateur</value>
@@ -806,6 +821,7 @@ Fuzzy</comment>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>port</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Chemin du fichier d&apos;identité</value>
@@ -815,10 +831,11 @@ Fuzzy</comment>
<value>Naviguer</value>
</data>
<data name="UseMoshCheckBox.Content" xml:space="preserve">
<value>Utilisez Mosh</value>
<value>Utiliser Mosh</value>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Avancé</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Ports Mosh:</value>
@@ -843,7 +860,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>Le nom d&apos;utilisateur ne peut pas être vide.</value>
<value>Le nom d&apos;utilisateur ne peut être vide.</value>
</data>
<data name="SshConnectionInfoValidationResult.HostEmpty" xml:space="preserve">
<value>L&apos;hôte ne peut être vide.</value>
@@ -867,22 +884,25 @@ Fuzzy</comment>
<value>Non</value>
</data>
<data name="Language.Header" xml:space="preserve">
<value>Language</value>
<value>Langage</value>
</data>
<data name="None.Text" xml:space="preserve">
<value>Aucun</value>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>Nouvelle sortie</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Sortie avec erreur</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Êtes-vous sûr de vouloir supprimer ce profil?</value>
<value>Voulez-vous supprimer ce profil ?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>Nouvelle fenêtre SSH</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>Profils SSH</value>
@@ -893,7 +913,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="UseConPty" xml:space="preserve">
<value>Utilisez ConPty</value>
<value>Utiliser ConPty</value>
<comment>Fuzzy</comment>
</data>
<data name="Username.Header" xml:space="preserve">
@@ -905,7 +925,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="MoshPortTo.Header" xml:space="preserve">
<value>au portt</value>
<value>au port</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPortRange.Text" xml:space="preserve">
@@ -919,52 +939,57 @@ Fuzzy</comment>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Les paramètres ont été importés du fichier</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Le fichier d&apos;identification n&apos;existe pas</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Utilisez le nom d&apos;utilisateur Windows lors de l&apos;ouverture d&apos;URL SSH qui don&apos;t spécifier un</value>
<value>Utiliser le nom d&apos;utilisateur Windows pour les connexions SSH qui n&apos;en spécifient aucun</value>
</data>
<data name="UseMoshByDefault.Header" xml:space="preserve">
<value>Mosh par défaut pour les connexions SSH</value>
</data>
<data name="RTrimCopiedLines.Header" xml:space="preserve">
<value>Couper les lignes copiées</value>
<value>Rogner les lignes copiées</value>
</data>
<data name="QuickSshDefault.Header" xml:space="preserve">
<value>Utiliser SSH rapide par défaut</value>
</data>
<data name="InvalidCommand" xml:space="preserve">
<value>Commande non valide.</value>
<value>Commande invalide.</value>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>L&apos;emplacement ne peut pas être vide.</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Mutter les bips du terminal</value>
<value>Désactiver les bips du terminal</value>
</data>
<data name="CommandTextBox.PlaceholderText" xml:space="preserve">
<value>Entrez une commande (e.g. &apos;ssh username@host&apos;)</value>
<value>Entrez une commande (ex: &apos;ssh username@host&apos;)</value>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Commande</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Commande non supportée:</value>
</data>
<data name="CommandArgumentsMandatory" xml:space="preserve">
<value>Les arguments de commande sont manquants.</value>
<value>Les arguments de la commande sont manquants.</value>
</data>
<data name="QuickCommandDialog.Title" xml:space="preserve">
<value>Démarrage rapide</value>
<value>Lancement rapide</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewCustomCommandTab" xml:space="preserve">
<value>Nouvel onglet de lancement rapide</value>
<value>Lancement rapide (onglet)</value>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>Nouvelle fenêtre de lancement rapide</value>
<value>Lancement rapide (fenêtre)</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>Nouvel onglet rapide</value>
@@ -976,7 +1001,8 @@ Fuzzy</comment>
<value>Lien invalide.</value>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Drop tab here</value>
<value>Déposez l&apos;onglet ici</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Fermer les onglets à gauche</value>
@@ -988,7 +1014,7 @@ Fuzzy</comment>
<value>Fermer les onglets à droite</value>
</data>
<data name="Command.DuplicateTab" xml:space="preserve">
<value>Onglet dupliquer</value>
<value>Dupliquer l&apos;onglet</value>
<comment>Fuzzy</comment>
</data>
<data name="Duplicate.Text" xml:space="preserve">
@@ -996,116 +1022,161 @@ Fuzzy</comment>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Impossible de définir deux variables d’environnement portant le même nom.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Impossible de définir une variable d&apos;environnement sans nom.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Variables d&apos;environnement</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Fermer le panneau de recherche</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Trouver le suivant</value>
<value>Résultat suivant</value>
</data>
<data name="FindPrevious.ToolTipService.ToolTip" xml:space="preserve">
<value>Rechercher précédent</value>
<value>Résultat précédent</value>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Entrez le terme de recherche</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Chercher</value>
<value>Recherche</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Sortie imprimable seulement</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Journal de sortie pour le débogage</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Caractères séparateurs de mots</value>
</data>
<data name="Recent.Text" xml:space="preserve">
<value>Recent</value>
<value>Récents</value>
</data>
<data name="NewTab_Description" xml:space="preserve">
<value>Opens default profile in a new tab.</value>
<value>Ouvre le profil par défaut dans un nouvel onglet.</value>
</data>
<data name="NewSshTab_Description" xml:space="preserve">
<value>Opens a new SSH or Mosh session in a new tab.</value>
<value>Ouvre une session SSH ou Mosh dans un nouvel onglet.</value>
</data>
<data name="NewQuickTab_Description" xml:space="preserve">
<value>Opens &quot;Quick Launch&quot; dialog and starts session in a new tab.</value>
<value>Ouvre le dialogue &quot;Lancement rapide&quot; et démarre une session dans un nouvel onglet.</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>Opens settings window.</value>
<value>Ouvre les paramètres.</value>
</data>
<data name="About_Description" xml:space="preserve">
<value>Basic info about the app.</value>
<value>Informations sur l&apos;application.</value>
</data>
<data name="Recent_Description" xml:space="preserve">
<value>Recently opened sessions.</value>
<value>Sessions récentes.</value>
</data>
<data name="MenuItem_DefaultProfile_Description" xml:space="preserve">
<value>Starts new terminal session based on the default profile.</value>
<value>Démarre une nouvelle session de terminal du profil par défaut.</value>
</data>
<data name="MenuItem_Remote_Text" xml:space="preserve">
<value>Remote Connect...</value>
<value>Connexion à distance...</value>
</data>
<data name="MenuItem_Remote_Description" xml:space="preserve">
<value>Opens a dialog for launching a new SSH or Mosh terminal session.</value>
<value>Ouvre un dialogue permettant de lancer une nouvelle session SSH ou Mosh.</value>
</data>
<data name="MenuItem_QuickLaunch_Text" xml:space="preserve">
<value>Quick Launch...</value>
<value>Lancement rapide...</value>
</data>
<data name="MenuItem_QuickLaunch_Description" xml:space="preserve">
<value>Opens a &quot;Quick Launch&quot; dialog for starting a new terminal session.</value>
<value>Ouvrir un dialogue &quot;Lancement rapide&quot; pour une nouvelle session de terminal.</value>
</data>
<data name="MenuItem_NewWindow_Text" xml:space="preserve">
<value>New Window</value>
<value>Nouvelle fenêtre</value>
</data>
<data name="MenuItem_NewTab_Text" xml:space="preserve">
<value>New Tab</value>
<value>Nouvel onglet</value>
<comment>@William Why adding dots everywhere? These are not sentences</comment>
</data>
<data name="MenuItem_NewTab_Description" xml:space="preserve">
<value>Launches a session in a new tab.</value>
<value>Lance une session dans un nouvel onglet.</value>
</data>
<data name="MenuItem_NewWindow_Description" xml:space="preserve">
<value>Launches a session in a new window.</value>
<value>Lance une session dans une nouvelle fenêtre.</value>
</data>
<data name="AppMenuType.Text" xml:space="preserve">
<value>Application menu type</value>
<value>Style du menu d&apos;application</value>
</data>
<data name="AppMenuType_Flat.Content" xml:space="preserve">
<value>Flat, honoring &quot;Open new terminals as&quot; setting</value>
<value>Plat, honorant le paramètre &quot;Ouvrir les nouveaux terminaux en tant que&quot;</value>
</data>
<data name="AppMenuType_Cascading.Content" xml:space="preserve">
<value>&quot;New Tab&quot; / &quot;New Window&quot; cascading</value>
<value>&quot;Nouvel onglet&quot; / &quot;Nouvelle fenêtre&quot; en cascade.</value>
</data>
<data name="Quit.Text" xml:space="preserve">
<value>Quit</value>
<value>Quitter</value>
</data>
<data name="Quit.Description" xml:space="preserve">
<value>Quit Fluent Terminal</value>
<value>Quitter Fluent Terminal</value>
</data>
<data name="EnabledByPolicy" xml:space="preserve">
<value>Enabled by policy.</value>
<value>Autorisé par Stratégie de Goupe.</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Background image</value>
<value>Image d&apos;arrière-plan</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Use acrylic background</value>
<value>Arrière-plan transparent</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Are you sure you want to delete this background image?</value>
<value>Voulez-vous supprimer cet arrière-plan ?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Colors</value>
<value>Couleurs</value>
</data>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
<value>Couleurs claires</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copier le lien</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Expression régulière</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Mot entier</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Sensible à la casse</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copier la sélection ou coller</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Utiliser le buffer intelligent</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Redémarrer</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session déconnectée.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Augmenter la taille de la police</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Diminuer la taille de la police</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Réinitialiser la taille de la police</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Onglet Reconnecter</value>
</data>
</root>
+128 -50
View File
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>אשר סגירת חלונות</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>אשר סגירת לשוניות</value>
@@ -147,7 +148,8 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>צבע לשוניות לא פעילות</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>העתק</value>
@@ -155,11 +157,13 @@
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>הצג כותרת מותאמת אישית גם בשורת כותרת</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>ערוך כותרת</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>כללי</value>
@@ -194,7 +198,8 @@ Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>חלונות</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>פתח טרמינל חדש כ...</value>
@@ -227,7 +232,8 @@ Fuzzy</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>הגדרות</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>הגדרות</value>
@@ -389,15 +395,18 @@ Fuzzy</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>גודל גופן</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>ייבא</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>קיצור מקשים</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>קיצור מקשים</value>
@@ -421,7 +430,8 @@ Fuzzy</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>פעולת כפתור עמצאי בעכבר</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>עכבר</value>
@@ -457,7 +467,8 @@ Fuzzy</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>ערכת נושא</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Release notes</value>
@@ -473,7 +484,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>הגבלת גלילה לאחור</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>הסתרה אוטומטית</value>
@@ -485,7 +497,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>עיצוב גלילה לאחור</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>נראה</value>
@@ -537,59 +550,73 @@ Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>תיקיית עבודה</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>האם הנך בטוח שברצונך לסגור לשונית &quot;{0}&quot;?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>האם הנך בטוח שברצונך לסגור חלון זה?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>האם הנך בטוח שברצונך למחוק צירוף מקשים זה?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>האם הנך בטוח שברצונך למחוק ערכת נושא זו?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>האם הנך בטוח שברצונך לבטל את כלל השינויים?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>האם הנך בטוח שברצונך לשחזר הגדרות כלליות?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>האם הנך בטוח שברצונך לשחזר צירוף מקשים לברירת המחדל?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>האם הנך בטוח שברצונך לשחזר הגדרות עכבר?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>האם הנך בטוח שברצונך לשחזר פרופיל?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>האם הנך בטוח ברצונך לשחזר הגדרות ברירת מחדל עבור הטרמינל?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>מבוטל ע&quot;י מדיניות.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>מבוטל ע&quot;י המשתמש. אנא הפעל מחדש בלשונית אתחול במנהל המשימות.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>ערוך כותרת</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>שגיאה</value>
@@ -597,11 +624,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>הפעולה אינה יכולה להתבצע עקב השגיאה הבאה:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>ייבוא ערכת נושא נכשלה</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>לא נמצא מנתח מתאים</value>
@@ -617,9 +646,11 @@ Fuzzy</comment>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>הכנס צירוף מקשים כעת</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>אישור</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>איפוס</value>
@@ -634,7 +665,8 @@ Fuzzy</comment>
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>שנה שם לשונית</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>נקה</value>
@@ -644,17 +676,10 @@ Fuzzy</comment>
<value>סגור לשונית</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Configurable new tab</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Configurable new window</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>צירופי מקשים</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>מחק</value>
@@ -670,7 +695,8 @@ Fuzzy</comment>
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>חלון חדש</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>לשונית הבאה</value>
@@ -692,17 +718,10 @@ Fuzzy</comment>
<value>סמן הכל</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>התחל</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>בחר פרופיל</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>הצג הגדרות</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>עבור לטרמינל 1</value>
@@ -747,10 +766,12 @@ Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>החלף חלון</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>לשונית מרוחקת חדשה</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>לשונית SSH חדשה</value>
@@ -778,24 +799,28 @@ Fuzzy</comment>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>מתקדם</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh ports:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>שמור קיצור דרך</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>היישום צריך להפעיל מחדש כדי שהשינוי ייכנס לתוקף.</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>קלט לא תקין</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>Port cannot be 0.</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>המשתמש והשרת יעד הם שדות חובה.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>שם המשתמש לא יכול להיות ריק.</value>
@@ -805,6 +830,7 @@ Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>PORT ה-SSH צריכה להיות גדולה מאפס.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>PORT ה-MOSH יכול לא להיות אפס.</value>
@@ -827,15 +853,18 @@ Fuzzy</comment>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>פלט חדש</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>הסתיים עם שגיאה</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>האם אתה בטוח שברצונך למחוק פרופיל זה?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>חלון SSH חדש</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>פרופילי SSH</value>
@@ -866,9 +895,11 @@ Fuzzy</comment>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>הגדרות יובאו מהקובץ</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>קובץ זיהוי אינו קיים</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Use Windows username when opening SSH URLs that don&apos;t specify one</value>
@@ -887,6 +918,7 @@ Fuzzy</comment>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>המיקום לא יכול להיות ריק.</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>השתק צפצופי טרמינל</value>
@@ -896,6 +928,7 @@ Fuzzy</comment>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>פקודה</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>פקודה לא נתמכת:</value>
@@ -911,6 +944,7 @@ Fuzzy</comment>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>חלון הפעלה מהירה חדש</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>כרטיסייה מהירה חדשה</value>
@@ -923,6 +957,7 @@ Fuzzy</comment>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>שחרר את הלשונית כאן</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>סגור לשוניות משמאל</value>
@@ -941,15 +976,19 @@ Fuzzy</comment>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>לא ניתן להגדיר שני משתני סביבה עם אותו שם.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>לא ניתן להגדיר משתנה סביבה ללא שם.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>משתני סביבה</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>סגור את לוח החיפוש</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>מצא את הבא</value>
@@ -959,12 +998,15 @@ Fuzzy</comment>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>הזן מונח חיפוש</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>חיפוש</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>פלט להדפסה בלבד</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Log output for debugging</value>
@@ -1053,4 +1095,40 @@ Fuzzy</comment>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Case sensitive</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session disconnected.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Increase font size</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Decrease font size</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reset font size</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
+136 -53
View File
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>खिड़कियां बंद करने से पहले पूछें</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>टैब बंद करने से पहले पूछें</value>
@@ -147,7 +148,8 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>निष्क्रिय टैब पर रंग</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>प्रतिलिपि</value>
@@ -155,11 +157,13 @@
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>शीर्षक टैब में भी कस्टम टैब शीर्षक दिखाएं</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>शीर्षक संपादित करें</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>सामान्य</value>
@@ -175,7 +179,8 @@
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>सेटिंग लागू करने के लिए पुनः लोड करना आवश्यक है</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>नया टैब</value>
@@ -191,7 +196,8 @@
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>खिड़कियाँ</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>के रूप में नए टर्मिनल खोलें</value>
@@ -223,7 +229,8 @@
</data>
<data name="Setting" xml:space="preserve">
<value>समायोजन</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>समायोजन</value>
@@ -383,15 +390,18 @@
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>फ़ॉन्ट आकार</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>आयात</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>कुंजीपटल संक्षिप्त रीति</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>कुंजीपटल संक्षिप्त रीति</value>
@@ -415,7 +425,8 @@
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>मध्य बटन कार्रवाई</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>माउस</value>
@@ -439,7 +450,8 @@
</data>
<data name="Padding.Header" xml:space="preserve">
<value>गद्दी</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>नाम</value>
@@ -451,7 +463,8 @@
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>विषय</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>रिलीज नोट्स</value>
@@ -467,7 +480,8 @@
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>स्क्रॉलबैक सीमा</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>ऑटो छुपा रहा</value>
@@ -479,7 +493,8 @@
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>स्क्रॉलबार शैली</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>दर्शनीय</value>
@@ -531,59 +546,73 @@
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>कार्यकारी डाइरेक्टरी</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>क्या आप वाकई &quot;{0}&quot; टैब को बंद करना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>क्या आप वाकई इस विंडो को बंद करना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>क्या आप वाकई इस कीबाइंडिंग को हटाना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>क्या आप वाकई इस विषय को हटाना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>क्या आप वाकई सभी परिवर्तनों को छोड़ना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>क्या आप वाकई सामान्य सेटिंग्स को पुनर्स्थापित करना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>क्या आप वाकई डिफ़ॉल्ट कीबाइंडिंग को पुनर्स्थापित करना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>क्या आप वाकई माउस सेटिंग्स को पुनर्स्थापित करना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>क्या आप वाकई इस प्रोफ़ाइल को पुनर्स्थापित करना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>क्या आप वाकई डिफ़ॉल्ट टर्मिनल विकल्प को पुनर्स्थापित करना चाहते हैं?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>नीति द्वारा अक्षम।</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>उपयोगकर्ता द्वारा अक्षम। कृपया इसे टास्क मैनेजर के स्टार्टअप टैब में पुनः सक्रिय करें।</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>शीर्षक संपादित करें</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>त्रुटि</value>
@@ -591,11 +620,13 @@
</data>
<data name="ErrorString1" xml:space="preserve">
<value>निम्न त्रुटि के कारण ऑपरेशन पूरा नहीं किया जा सकता है:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>आयात विषय विफल रहा</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>कोई उपयुक्त पार्सर नहीं मिला</value>
@@ -610,9 +641,11 @@
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>अब अपनी कीबाइंडिंग दर्ज करें</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>ठीक</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>रीसेट</value>
@@ -627,7 +660,8 @@
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>टैब शीर्षक बदलें</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>स्पष्ट</value>
@@ -637,17 +671,10 @@
<value>टैब बंद करें</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>कॉन्फ़िगर करने योग्य नया टैब</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>कॉन्फ़िगर करने योग्य नई विंडो</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>कुंजी बाइंडिंग</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>हटाना</value>
@@ -663,7 +690,8 @@
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>नयी खिड़की</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>अगला टैब</value>
@@ -685,17 +713,10 @@
<value>सभी का चयन करे</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>शुरू</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>प्रोफ़ाइल चुनें</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>सेटिंग दिखाएँ</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>टर्मिनल 1 पर स्विच करें</value>
@@ -735,14 +756,17 @@
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>पूर्णस्क्रीन चालू करें</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>खिड़की टॉगल करें</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>नया रिमोट टैब</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>न्यू एसएसएच टैब</value>
@@ -758,6 +782,7 @@
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>बंदरगाह</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>पहचान फ़ाइल पथ</value>
@@ -770,24 +795,28 @@
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>उन्नत</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh बंदरगाहों:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>शॉर्टकट बचाओ</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>इस परिवर्तन को प्रभावी होने के लिए एप्लिकेशन को पुनरारंभ करना होगा।</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>अमान्य निवेश</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>पोर्ट 0 नहीं हो सकता।</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>उपयोगकर्ता और होस्ट अनिवार्य क्षेत्र हैं।</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>उपयोगकर्ता नाम रिक्त नहीं हो सकता।</value>
@@ -797,6 +826,7 @@
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>SSH पोर्ट को शून्य से अधिक होना चाहिए।</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>MOS पोर्ट शून्य नहीं हो सकता।</value>
@@ -818,15 +848,18 @@
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>नया आउटपुट</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>त्रुटि के साथ बाहर निकल गया</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>क्या आप वाकई इस प्रोफ़ाइल को हटाना चाहते हैं?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>नई एसएसएच खिड़की</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH प्रोफाइल</value>
@@ -857,9 +890,11 @@
</data>
<data name="SettingsImported" xml:space="preserve">
<value>सेटिंग्स फ़ाइल से आयात किए गए थे</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>पहचानें फ़ाइल मौजूद नहीं है</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>SSH URL खोलते समय Windows उपयोगकर्ता नाम का उपयोग करें जो एक निर्दिष्ट नहीं करता है</value>
@@ -878,6 +913,7 @@
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>स्थान खाली नहीं हो सकता।</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>म्यूट टर्मिनल बीप्स</value>
@@ -887,6 +923,7 @@
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>आदेश</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>असमर्थित आदेश:</value>
@@ -902,6 +939,7 @@
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>नई त्वरित लॉन्च विंडो</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>नया त्वरित टैब</value>
@@ -914,6 +952,7 @@
</data>
<data name="DropTabHere" xml:space="preserve">
<value>यहां टैब ड्रॉप करें</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>बाईं ओर टैब बंद करें</value>
@@ -932,15 +971,19 @@
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>एक ही नाम से दो पर्यावरण चर को परिभाषित नहीं किया जा सकता है।</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>बिना नाम के पर्यावरण चर को परिभाषित नहीं किया जा सकता है।</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>पर्यावरण चर</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>खोज पैनल बंद करें</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>अगला तलाशें</value>
@@ -950,15 +993,19 @@
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>खोज शब्द दर्ज करें</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>खोज</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>प्रिंट करने योग्य उत्पादन ही</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>डीबगिंग के लिए आउटपुट लॉग करें</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>शब्द विभाजक वर्ण</value>
@@ -1044,4 +1091,40 @@
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Case sensitive</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session disconnected.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Increase font size</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Decrease font size</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reset font size</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+150 -73
View File
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>Chiedi conferma prima di chiudere le finestre</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>Chiedi conferma prima di chiudere le schede</value>
@@ -147,7 +148,8 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Scegli come colorare le schede inattive</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Copia</value>
@@ -155,11 +157,13 @@
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Mostra il nome della scheda nella barra del titolo</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Rinomina scheda</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>Generale</value>
@@ -175,7 +179,8 @@
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Per applicare le impostazioni è necessario riavviare l&apos;app</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>Nuova scheda</value>
@@ -191,7 +196,8 @@
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Finestre</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Apri i nuovi terminali come</value>
@@ -223,7 +229,8 @@
</data>
<data name="Setting" xml:space="preserve">
<value>Impostazioni</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>Impostazioni</value>
@@ -255,8 +262,7 @@
</data>
<data name="UnderlineTab.Header" xml:space="preserve">
<value>Sottolinea la scheda attiva</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="Setting_About.Content" xml:space="preserve">
<value>Informazioni su</value>
@@ -384,15 +390,18 @@ Fuzzy</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Dimensioni carattere</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>Importa</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Scorciatoia da tastiera</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>Scorciatoia da tastiera</value>
@@ -417,7 +426,8 @@ Fuzzy</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Azione tasto centrale del mouse</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>Mouse</value>
@@ -441,7 +451,8 @@ Fuzzy</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Margini</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>Nome</value>
@@ -453,7 +464,8 @@ Fuzzy</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Tema</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Note di rilascio</value>
@@ -482,7 +494,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Barra di scorrimento</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>Sempre visibile</value>
@@ -534,47 +547,58 @@ Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Directory di lavoro</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Vuoi davvero chiudere la scheda &quot;{0}&quot;?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Vuoi davvero chiudere questa finestra?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Vuoi davvero eliminare questa combinazione di tasti?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Vuoi davvero eliminare questo tema?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Vuoi davvero annullare tutti i cambiamenti?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Vuoi davvero riportare tutte le impostazioni ai valori predefiniti?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Vuoi davvero ripristinare le combinazioni di tasti predefinite?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Vuoi ripristinare le impostazioni del mouse?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Vuoi ripristinare questo profilo ai suoi valori predefiniti?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Vuoi davvero ripristinare le impostazioni predefinite del terminale?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Disattivato da policy</value>
@@ -583,11 +607,13 @@ Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Disattivato dall&apos;utente. Riattiva Fluent Terminal nella scheda Avvio del Task Manager</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Rinomina scheda</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>Errore</value>
@@ -595,11 +621,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>L&apos;operazione non è stata portata a termine a causa del seguente errore:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>Importazione tema fallita</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>Nessun parser compatibile trovato</value>
@@ -614,9 +642,11 @@ Fuzzy</comment>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Inserisci la combinazione di tasti</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Ripristina</value>
@@ -631,7 +661,8 @@ Fuzzy</comment>
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>Rinomina scheda</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>Svuota</value>
@@ -641,17 +672,10 @@ Fuzzy</comment>
<value>Chiudi scheda</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Nuova scheda con profilo</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Nuova finestra con profilo</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Combinazioni di tasti</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>Elimina</value>
@@ -667,7 +691,8 @@ Fuzzy</comment>
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>Nuova finestra</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>Scheda successiva</value>
@@ -689,17 +714,10 @@ Fuzzy</comment>
<value>Seleziona tutto</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Avvia</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Seleziona profilo</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Mostra le impostazioni</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>Passa al Terminale 1</value>
@@ -739,14 +757,17 @@ Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Attiva/Disattiva modalità schermo intero</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Mostra/Nascondi finestra</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>Nuova scheda remota</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>Nuova scheda SSH</value>
@@ -762,6 +783,7 @@ Fuzzy</comment>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>porta</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Percorso file chiave di identità</value>
@@ -775,24 +797,28 @@ Fuzzy</comment>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Avanzate</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Porte per Mosh:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>Salva scorciatoia</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>L&apos;app deve essere riavviata per poter applicare queste modifiche</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>Input non valido</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>La porta non può essere 0</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>I campi utente e host sono obbligatori</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>Il nome utente non può essere vuoto</value>
@@ -802,6 +828,7 @@ Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>Le porte SSH devono essere maggiori di 0</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>Le porte Mosh non possono essere 0</value>
@@ -823,15 +850,18 @@ Fuzzy</comment>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>Nuovo output</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Terminato con errore</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Vuoi davvero eliminare questo profilo?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>Nuova finestra SSH</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>Connessioni SSH</value>
@@ -862,6 +892,7 @@ Fuzzy</comment>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Le impostazioni sono state importate dal file</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Il file specificato non esiste</value>
@@ -879,13 +910,13 @@ Fuzzy</comment>
</data>
<data name="QuickSshDefault.Header" xml:space="preserve">
<value>Usa Quick SSH come impostazione predefinita</value>
<comment>Fuzzy</comment>
</data>
<data name="InvalidCommand" xml:space="preserve">
<value>Comando non valido</value>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>Il percorso non può essere vuoto</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Non riprodurre i suoni del terminale</value>
@@ -895,6 +926,7 @@ Fuzzy</comment>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Comando</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Comando non supportato:</value>
@@ -926,6 +958,7 @@ Fuzzy</comment>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Rilascia la scheda qui</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Chiudi tutte le schede a sinistra</value>
@@ -944,15 +977,19 @@ Fuzzy</comment>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Non si possono definire due variabili d&apos;ambiente con lo stesso nome</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Le variabili d&apos;ambiente devono avere un nome</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Variabili d&apos;ambiente</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Chiudi il pannello di ricerca</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Trova successivo</value>
@@ -962,15 +999,19 @@ Fuzzy</comment>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Scrivi il testo da cercare</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Cerca</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Solo output stampabile</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Log output per il debug</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Separatori di parole</value>
@@ -985,7 +1026,7 @@ Fuzzy</comment>
<value>Apre una sessione SSH o Mosh in una nuova scheda</value>
</data>
<data name="NewQuickTab_Description" xml:space="preserve">
<value>Opens &quot;Quick Launch&quot; dialog and starts session in a new tab.</value>
<value>Apre la schermata di &quot;Avvio rapido&quot; e avvia la sessione in una nuova scheda</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>Apre la finestra impostazioni</value>
@@ -997,63 +1038,99 @@ Fuzzy</comment>
<value>Sessioni aperte di recente</value>
</data>
<data name="MenuItem_DefaultProfile_Description" xml:space="preserve">
<value>Starts new terminal session based on the default profile.</value>
<value>Avvia una nuova sessione di terminale con il profilo predefinito</value>
</data>
<data name="MenuItem_Remote_Text" xml:space="preserve">
<value>Connessione remota...</value>
</data>
<data name="MenuItem_Remote_Description" xml:space="preserve">
<value>Opens a dialog for launching a new SSH or Mosh terminal session.</value>
<value>Apre una schermata per la creazione di una sessione SSH o Mosh</value>
</data>
<data name="MenuItem_QuickLaunch_Text" xml:space="preserve">
<value>Avvio rapido...</value>
</data>
<data name="MenuItem_QuickLaunch_Description" xml:space="preserve">
<value>Opens a &quot;Quick Launch&quot; dialog for starting a new terminal session.</value>
<value>Apre la schermata di &quot;Avvio rapido&quot; per una nuova sessione di terminale</value>
</data>
<data name="MenuItem_NewWindow_Text" xml:space="preserve">
<value>New Window</value>
<value>Nuova finestra</value>
</data>
<data name="MenuItem_NewTab_Text" xml:space="preserve">
<value>New Tab</value>
<value>Nuova scheda</value>
</data>
<data name="MenuItem_NewTab_Description" xml:space="preserve">
<value>Launches a session in a new tab.</value>
<value>Avvia la sessione in una nuova scheda</value>
</data>
<data name="MenuItem_NewWindow_Description" xml:space="preserve">
<value>Launches a session in a new window.</value>
<value>Avvia la sessione in una nuova finestra</value>
</data>
<data name="AppMenuType.Text" xml:space="preserve">
<value>Application menu type</value>
<value>Formato menu applicazione</value>
</data>
<data name="AppMenuType_Flat.Content" xml:space="preserve">
<value>Flat, honoring &quot;Open new terminals as&quot; setting</value>
<value>Lineare, le azioni seguiranno l&apos;impostazione &quot;Apri i nuovi terminali come&quot;</value>
</data>
<data name="AppMenuType_Cascading.Content" xml:space="preserve">
<value>&quot;New Tab&quot; / &quot;New Window&quot; cascading</value>
<value>Menù a cascata &quot;Nuova Scheda&quot; / &quot;Nuova finestra&quot;</value>
</data>
<data name="Quit.Text" xml:space="preserve">
<value>Quit</value>
<value>Chiudi</value>
</data>
<data name="Quit.Description" xml:space="preserve">
<value>Quit Fluent Terminal</value>
<value>Chiudi Fluent Terminal</value>
</data>
<data name="EnabledByPolicy" xml:space="preserve">
<value>Enabled by policy.</value>
<value>Attivato da policy</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Background image</value>
<value>Immagine di sfondo</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Use acrylic background</value>
<value>Usa la sfumatura acrilica per lo sfondo</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Are you sure you want to delete this background image?</value>
<value>Vuoi davvero eliminare questa immagine di sfondo?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Colors</value>
<value>Colori</value>
</data>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
<value>Colori brillanti</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copia link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Parola intera</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Sensibile a maiuscole/minuscole</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copia selezione o incolla</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Usa smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Riavvia</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Sessione terminata.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Increase font size</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Decrease font size</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reset font size</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
+141 -58
View File
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>ウィンドウを閉じる前に尋ねる</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>タブを閉じる前に尋ねる</value>
@@ -147,7 +148,8 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>非アクティブなタブの色</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>コピー</value>
@@ -155,11 +157,13 @@
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>カスタムタブタイトルをタイトルバーにも表示する</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>タイトルを編集</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>一般</value>
@@ -175,7 +179,8 @@
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>設定を適用するには再起動が必要です</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>新しいタブ</value>
@@ -191,7 +196,8 @@
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>ウィンドウ</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>新しいターミナルの開き方</value>
@@ -223,7 +229,8 @@
</data>
<data name="Setting" xml:space="preserve">
<value>設定</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>設定</value>
@@ -383,15 +390,18 @@
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>フォントサイズ</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>インポート</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>キーボードショートカット</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>キーボードショートカット</value>
@@ -415,7 +425,8 @@
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>中央ボタンの動作</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>マウス</value>
@@ -439,7 +450,8 @@
</data>
<data name="Padding.Header" xml:space="preserve">
<value>余白</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>名前</value>
@@ -451,7 +463,8 @@
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>テーマ</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>リリースノート</value>
@@ -467,7 +480,8 @@
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>スクロールバックの限界</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>自動的に隠す</value>
@@ -479,7 +493,8 @@
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>スクロールバーのスタイル</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>常に表示する</value>
@@ -531,59 +546,73 @@
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>作業ディレクトリ</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>このタブを閉じてもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>このウィンドウを閉じてもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>このキーバインドを削除してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>このテーマを削除してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>全ての変更を破棄してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>一般の設定を復元してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>デフォルトのキーバインドを復元してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>マウスの設定を復元してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>このプロファイルを復元してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>デフォルトのオプションに戻してもよろしいですか?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>ポリシーにより無効化されています。</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>ユーザーにより無効化されています。タスクマネージャのスタートアップタブにて再起動してください。</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>タイトル編集</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>エラー</value>
@@ -591,11 +620,13 @@
</data>
<data name="ErrorString1" xml:space="preserve">
<value>以下のエラーにより操作が終了できませんでした:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>テーマのインポートに失敗しました</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>適切なパーサーが見つかりません</value>
@@ -610,9 +641,11 @@
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>キーバインドを入力</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>リセット</value>
@@ -627,7 +660,8 @@
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>タブタイトルを変更</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>クリア</value>
@@ -637,17 +671,10 @@
<value>タブを閉じる</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>新規タブ (プロファイル選択可能)</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>新規ウィンドウ (プロファイル選択可能)</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>キー割り当て</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>削除</value>
@@ -663,7 +690,8 @@
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>新しいウィンドウ</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>次のタブ</value>
@@ -685,17 +713,10 @@
<value>すべて選択</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>開始</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>プロファイル選択</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>設定表示</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>ターミナル1に切り替え</value>
@@ -735,14 +756,17 @@
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>フルスクリーン切替</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>ウィンドウ切り替え</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>新しいリモートタブ</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>新しいSSHタブ</value>
@@ -758,6 +782,7 @@
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>ポート</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>鍵ファイルへのパス</value>
@@ -770,24 +795,28 @@
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>高度な</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh ポート:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>ショートカットを保存</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>この変更を適用するためにはアプリケーションを再起動する必要があります。</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>無効な入力</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>ポート番号に0は使用できません。</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>ユーザーとホストは必須項目です。</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>ユーザ名は空にできません</value>
@@ -797,6 +826,7 @@
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>SSHポート番号には0以上の数値を設定してください。</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>Moshポートの値に0を設定することはできません</value>
@@ -818,15 +848,18 @@
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>新規出力</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>エラーのため終了しました</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>このプロファイルを消去してもよろしいですか?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>新規SSH ウィンドウ</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH プロファイル</value>
@@ -857,9 +890,11 @@
</data>
<data name="SettingsImported" xml:space="preserve">
<value>設定がインポートされました</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>鍵ファイルが存在しません</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>特に指定がない場合、SSH URL を開く際のユーザー名にWindowsのユーザー名を使用する</value>
@@ -878,6 +913,7 @@
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>ロケーションは必須項目です</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>ターミナルのビープ音を無効化する</value>
@@ -887,6 +923,7 @@
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>コマンド</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>サポートされていないコマンド</value>
@@ -902,6 +939,7 @@
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>新規クイックローンチウィンドウ</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>新規クイックタブ</value>
@@ -914,6 +952,7 @@
</data>
<data name="DropTabHere" xml:space="preserve">
<value>タブをここに移動</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>左のタブをすべて閉じる</value>
@@ -932,15 +971,19 @@
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>同じ名前を持った環境変数は定義できません。</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>名前がない環境変数は定義できません。</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>環境変数</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>検索をパネルを閉じる</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>次を検索</value>
@@ -950,15 +993,19 @@
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>検索キーワードを入力</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>検索</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>印字可能なもののみ出力する</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>デバッグ用ログ出力</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>テキスト区切り文字</value>
@@ -1030,18 +1077,54 @@
<value>ポリシーによる許可</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Background image</value>
<value>背景画像</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Use acrylic background</value>
<value>透過背景</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Are you sure you want to delete this background image?</value>
<value>この背景画像を削除してもよろしいですか?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Colors</value>
<value>色</value>
</data>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
<value>明色</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>リンクをコピー</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>正規表現</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>単語単位</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>大/小文字</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>選択部分のコピーあるいは貼り付け</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>スマートバッファを使用</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>再起動</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>セッションが切断されました</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>フォントサイズを拡大</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>フォントサイズを縮小</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>フォントサイズをリセット</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>タブを再接続</value>
</data>
</root>
+131 -52
View File
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>창을 닫기 전에 물어보기</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>탭을 닫기 전에 물어보기</value>
@@ -147,7 +148,8 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>비활성 탭 색상</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>복사</value>
@@ -160,7 +162,8 @@ Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>제목 편집</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>일반</value>
@@ -177,7 +180,8 @@ Fuzzy</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>프로그램을 다시 시작하여 설정 적용</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>새 탭</value>
@@ -193,7 +197,8 @@ Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>창</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>새 터미널을 다음으로 열기</value>
@@ -226,7 +231,8 @@ Fuzzy</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>설정</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>설정</value>
@@ -387,15 +393,18 @@ Fuzzy</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>글꼴 크기</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>가져오기</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>키보드 단축키</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>키보드 단축키</value>
@@ -419,7 +428,8 @@ Fuzzy</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>가운데 버튼 동작</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>마우스</value>
@@ -443,7 +453,8 @@ Fuzzy</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>여백</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>이름</value>
@@ -455,7 +466,8 @@ Fuzzy</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>테마</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>릴리즈 노트</value>
@@ -471,7 +483,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>스크롤 백 제한</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>자동 숨김</value>
@@ -483,7 +496,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>스크롤 바 모양</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>보이게</value>
@@ -535,59 +549,73 @@ Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>작업 디렉터리</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>정말 &quot;{0}&quot; 탭을 닫으시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>정말 이 창을 닫으시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>정말 이 키 설정을 삭제하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>정말 이 테마를 삭제하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>정말 모든 변경 사항을 취소하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>정말 기본 설정으로 복원하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>정말 키 설정을 기본값으로 복원하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>정말 마우스 설정을 복원하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>정말 이 프로필을 복원하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>정말 터미널 기본 설정을 복원하시겠습니까?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>정책에 의해 비활성화되었습니다.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>사용자에 의해 비활성화되었습니다. 작업 관리자의 시작 탭에서 다시 활성화해 주세요.</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>제목 편집</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>오류</value>
@@ -595,11 +623,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>다음 오류로 인해 작업을 완료할 수 없음:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>테마 가져오기 실패</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>적절한 파서를 찾지 못함</value>
@@ -614,9 +644,11 @@ Fuzzy</comment>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>지금 설정할 키를 입력하세요.</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>확인</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>초기화</value>
@@ -631,7 +663,8 @@ Fuzzy</comment>
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>탭 제목 변경</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>모두지움</value>
@@ -641,17 +674,10 @@ Fuzzy</comment>
<value>탭 닫기</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>설정 가능한 새 탭</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>설정 가능한 새 창</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>키 설정</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>삭제</value>
@@ -667,7 +693,8 @@ Fuzzy</comment>
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>새 창</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>다음 탭</value>
@@ -689,17 +716,10 @@ Fuzzy</comment>
<value>모두 선택</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>시작</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>프로필 선택</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>설정 표시</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>터미널 1로 전환</value>
@@ -739,14 +759,17 @@ Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>전체 화면 전환</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>창 전환</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>새 원격 탭</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>새 SSH 탭</value>
@@ -762,6 +785,7 @@ Fuzzy</comment>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>포트</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>아이덴티티 파일 경로</value>
@@ -775,24 +799,28 @@ Fuzzy</comment>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>고급</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh 포트:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>바로 가기 저장</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>변경 사항을 적용하려면 앱을 다시 시작해야 합니다.</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>잘못된 입력</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>포트는 0으로 설정할 수 없습니다.</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>사용자 및 호스트는 반드시 입력해야 합니다.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>사용자 이름은 비워둘 수 없습니다.</value>
@@ -802,6 +830,7 @@ Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>SSH 포트는 0보다 큰 값으로 설정해야 합니다.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>Mosh 포트는 0으로 설정할 수 없습니다.</value>
@@ -823,15 +852,18 @@ Fuzzy</comment>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>새 출력</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>오류로 인해 종료됨</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>정말 이 프로필을 삭제하시겠습니까?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>새 SSH 창</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH 프로필</value>
@@ -862,6 +894,7 @@ Fuzzy</comment>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>설정을 파일에서 불러왔습니다.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>아이덴티티 파일이 존재하지 않음</value>
@@ -895,6 +928,7 @@ Fuzzy</comment>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>명령어</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>지원되지 않는 명령어:</value>
@@ -910,6 +944,7 @@ Fuzzy</comment>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>새 빠른 실행 창</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>새 빠른 창</value>
@@ -922,6 +957,7 @@ Fuzzy</comment>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>여기에 탭 끌어다 놓기</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>좌측 탭 닫기</value>
@@ -940,15 +976,19 @@ Fuzzy</comment>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>같은 이름을 가진 환경 변수를 두개씩 정의할 수 없습니다.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>이름이 없는 환경 변수를 정의할 수 없습니다.</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>환경 변수</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>검색 패널 닫기</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>다음 찾기</value>
@@ -958,9 +998,11 @@ Fuzzy</comment>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>검색 단어 입력</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>검색</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>표시 가능한 출력만 기록</value>
@@ -968,6 +1010,7 @@ Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>출력을 로그에 기록 (디버깅용)</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>띄어쓰기 문자</value>
@@ -1053,4 +1096,40 @@ Fuzzy</comment>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Case sensitive</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session disconnected.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Increase font size</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Decrease font size</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Reset font size</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Reconnect tab</value>
</data>
</root>
+154 -133
View File
@@ -119,87 +119,90 @@
</resheader>
<data name="AboutDialog.Title" xml:space="preserve">
<value>Over</value>
<comment>MainPage.xaml
Fuzzy</comment>
<comment>MainPage.xaml</comment>
</data>
<data name="Background.Content" xml:space="preserve">
<value>Achtergrond</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="TabTheme.Blue" xml:space="preserve">
<value>Blauw</value>
<comment>TabBar.xaml
Fuzzy</comment>
<comment>TabBar.xaml</comment>
</data>
<data name="Close" xml:space="preserve">
<value>Sluit</value>
<comment>TabBar.xaml
Fuzzy</comment>
<comment>TabBar.xaml</comment>
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>Vraag voor het sluiten van alle window&apos;s</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
<value>Vraag voor het sluiten van alle vensters</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>Vraag voor het sluiten van een tab</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="Color.Text" xml:space="preserve">
<value>Kleur</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Kleuren in interactive tab&apos;s</value>
<comment>GeneralSettings.xaml</comment>
<value>Kleuren in interactieve tab&apos;s</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Kopiëren</value>
<comment>XtermTerminalView.xaml.cs
Fuzzy</comment>
<comment>XtermTerminalView.xaml.cs</comment>
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Laat de tab zijn title zien in de title balk</value>
<comment>GeneralSettings.xaml</comment>
<value>Toon de tab naam in de titelbalk</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Verander Title</value>
<comment>TabBar.xaml</comment>
<value>Verander Titel</value>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>Algemeen</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="TabTheme.Green" xml:space="preserve">
<value>Groen</value>
<comment>TabBar.xaml
Fuzzy</comment>
<comment>TabBar.xaml</comment>
</data>
<data name="IndicatorOutput.Header" xml:space="preserve">
<value>Laat de nieuwe output indicator zien op de achtergrond tab&apos;s</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>herstart is nodig om de settings toe te passen</value>
<comment>GeneralSettings.xaml</comment>
<value>herstart is nodig om de instellingen toe te passen</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>Nieuwe tab</value>
<comment>MainPage.xaml</comment>
<comment>MainPage.xaml
Fuzzy</comment>
</data>
<data name="TabTheme.None" xml:space="preserve">
<value>Geen</value>
<comment>TabBar.xaml
Fuzzy</comment>
<comment>TabBar.xaml</comment>
</data>
<data name="ONTA_Tabs.Content" xml:space="preserve">
<value>Tab&apos;s</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Window&apos;s</value>
<comment>GeneralSettings.xaml</comment>
<value>Vensters</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Open nieuwe terminal&apos;s als</value>
@@ -234,7 +237,7 @@ Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>Instellingen</value>
<value>Instelling</value>
<comment>SettingsPage.xaml.cs</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
@@ -397,15 +400,15 @@ Fuzzy</comment>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Letter grote</value>
<value>Letter grootte</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>Importerne</value>
<value>Importeren</value>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Keyboard shortcut</value>
<value>Sneltoets</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
@@ -429,7 +432,7 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Middle muisklik</value>
<value>Midden muisklik</value>
<comment>MouseSettings.xaml</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
@@ -454,7 +457,7 @@ Fuzzy</comment>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Padding</value>
<value>Vulling</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
@@ -466,7 +469,7 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Theme</value>
<value>Thema</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
@@ -482,7 +485,7 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>Terug scrollen liemiet</value>
<value>Terug scrollen limiet</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
@@ -494,7 +497,7 @@ Fuzzy</comment>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Scrollbar style</value>
<value>Scrollbar stijl</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
@@ -549,60 +552,60 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Working directory</value>
<value>Werkmap</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Weet je het zeker dat je tab &quot;{0}&quot; wil sluiten?</value>
<value>Weet je zeker dat je tab &quot;{0}&quot; wilt sluiten?</value>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Weet je zeker dat je deze window wil sluiten?</value>
<value>Weet je zeker dat je dit venster wilt sluiten?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Weet je zeker dat je deze keybinding wil verwijderen?</value>
<value>Weet je zeker dat je deze sneltoets wilt verwijderen?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Weet je zeker dat je deze thema wil verwijderen?</value>
<value>Weet je zeker dat je dit thema wilt verwijderen?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Weet je zeker dat je alle wijzigingen wil negeeren?</value>
<value>Weet je zeker dat je alle wijzigingen wilt negeren?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Weet je zeker dat je de algemene instellingen wil terug zetten naar de standaard instellingen?</value>
<value>Weet je zeker dat je de algemene instellingen wilt terug zetten naar de standaard instellingen?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Weet je zeker dat je de keybindings will terug zetten naar de standaard instellingen?</value>
<value>Weet je zeker dat je de keybindings wilt terug zetten naar de standaard instellingen?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Weet je zeker dat je de muis instellingen will terug zetten naar de standaard instellingen?</value>
<value>Weet je zeker dat je de muis instellingen wilt terug zetten naar de standaard instellingen?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Weet je zeker dat je dit profiel wil herstellen?</value>
<value>Weet je zeker dat je dit profiel wilt herstellen?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Weet je zeker dat je wil terug gaan naar de standaard terminal instellingen?</value>
<value>Weet je zeker dat je de standaard terminal instellingen wilt herstellen?</value>
<comment>ViewModel</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Uitgeschakeld door policy.</value>
<value>Uitgeschakeld door beleid.</value>
<comment>ViewModel</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Uit gezet door gebruiker. Activeer het opnieuw in de automaties starten tab in Taak Beheer.</value>
<value>Uitgezet door gebruiker. Activeer deze opnieuw in de automatisch starten tab in Taak Beheer.</value>
<comment>ViewModel</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Verander Title</value>
<value>Verander Titel</value>
<comment>ViewModel</comment>
</data>
<data name="Error" xml:space="preserve">
@@ -610,11 +613,11 @@ Fuzzy</comment>
<comment>ViewModel</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>De actie kan niet worden voltooid door de volgende error:</value>
<value>De actie kan niet worden voltooid door de volgende fout:</value>
<comment>ViewModel</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>Inporteren van theme mislukt</value>
<value>Inporteren van thema mislukt</value>
<comment>ViewModel</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
@@ -629,10 +632,10 @@ Fuzzy</comment>
<value>Annuleren</value>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Voer de keybinding nu in</value>
<value>Voer de sneltoets nu in</value>
</data>
<data name="OK" xml:space="preserve">
<value>Oke</value>
<value>Oké</value>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Reset</value>
@@ -647,7 +650,7 @@ Fuzzy</comment>
<comment>KeyBindingSettings.xaml</comment>
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>Verander tab title</value>
<value>Verander tab titel</value>
<comment>Command
Fuzzy</comment>
</data>
@@ -659,20 +662,10 @@ Fuzzy</comment>
<data name="Command.CloseTab" xml:space="preserve">
<value>Sluit tab</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Configureerbaare nieuwe tab</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Configureerbaar nieuwe window</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Keybindings</value>
<value>Sneltoetsen</value>
<comment>KeyBindingSettings.xaml</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
@@ -690,7 +683,7 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>Nieuwe window</value>
<value>Nieuw venster</value>
<comment>Command
Fuzzy</comment>
</data>
@@ -719,16 +712,8 @@ Fuzzy</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Start</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Selecteer Profiel</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Laat settings zien</value>
<value>Laat instellingen zien</value>
<comment>Command
Fuzzy</comment>
</data>
@@ -778,17 +763,17 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Schakel naar Fullscreen</value>
<value>Schakel naar volledig scherm</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Schakel naar window</value>
<value>Schakel naar venster</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>Nieuwe remote tab</value>
<value>Nieuwe externe tab</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
@@ -806,7 +791,7 @@ Fuzzy</comment>
<value>host</value>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>port</value>
<value>poort</value>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Identiteit bestand pad</value>
@@ -819,20 +804,20 @@ Fuzzy</comment>
<value>Gebruik Mosh</value>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Advanced</value>
<value>Geavanceerd</value>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Mosh poorten:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>Shortcut opslaan</value>
<value>Sneltoets opslaan</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>De applicatie moet herstarten om deze veranderingen in werking te stellen.</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>Ongeldige Input</value>
<value>Ongeldige Invoer</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
@@ -840,7 +825,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>Gebruiker en host azijn verplichte velden.</value>
<value>Gebruiker en host zijn verplichte velden.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
@@ -851,7 +836,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>SSH port moet meer dan nul zijn.</value>
<value>SSH poort moet groter dan nul zijn.</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
@@ -874,16 +859,16 @@ Fuzzy</comment>
<value>Geen</value>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>Nieuwe output</value>
<value>Nieuwe uitvoer</value>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Gestopt met een fout</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Weet je zeker dat je deze profiel wil verwijderen?</value>
<value>Weet je zeker dat je dit profiel wilt verwijderen?</value>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>Nieuwe SSH window</value>
<value>Nieuw SSH venster</value>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>SSH-profielen</value>
@@ -919,10 +904,10 @@ Fuzzy</comment>
<value>Instellingen zijn geëxporteerd naar bestand</value>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Instellingen zijn geimporteerd van bestand</value>
<value>Instellingen zijn geïmporteerd van bestand</value>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Identitijt bestaat niet, Identitijt bestand bestaat niet</value>
<value>Identiteit bestaat niet, Identiteit bestand bestaat niet</value>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Gebruik Windows gebruikersnaam bij het openen van SSH URLs die geen gebruikersnaam hebben</value>
@@ -940,7 +925,7 @@ Fuzzy</comment>
<value>Ongeldig command.</value>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>Locaatsie kan niet leeg zijn.</value>
<value>Locatie kan niet leeg zijn.</value>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Demp terminal geluiden</value>
@@ -949,7 +934,7 @@ Fuzzy</comment>
<value>Voer een commando (b.v. &apos;ssh gebruikersnaam@host&apos;)</value>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Command</value>
<value>Commando</value>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Niet ondersteund commando:</value>
@@ -965,7 +950,7 @@ Fuzzy</comment>
<value>Nieuwe snel uitvoeren tab</value>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>Nieuw snelle uitvoeren window</value>
<value>Nieuw snel uitvoeren venster</value>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>Snel nieuwe tab</value>
@@ -977,7 +962,7 @@ Fuzzy</comment>
<value>Ongeldige link.</value>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Drop tab here</value>
<value>Plaats tab hier</value>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Sluit alle tabs naar links</value>
@@ -995,16 +980,16 @@ Fuzzy</comment>
<value>Duplicaat</value>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Kan niet 2 envourment variables met dezelfde naam hebben.</value>
<value>Kan niet 2 omgeving variabelen met dezelfde naam hebben.</value>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Kan geen envourment variable aanmaken zonder een naam.</value>
<value>Kan geen omgeving variabele aanmaken zonder een naam.</value>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Environment variables</value>
<value>Omgeving variabelen</value>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Sluit zoek balk</value>
<value>Sluit zoekbalk</value>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Find volgende</value>
@@ -1013,17 +998,17 @@ Fuzzy</comment>
<value>Find vorige</value>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Enter zoek term</value>
<value>Voer zoekterm in</value>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Zoekken</value>
<value>Zoeken</value>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Print output alleen</value>
<value>Print alleen uitvoer</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Log output voor debugging</value>
<value>Log uitvoer voor debugging</value>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Woord scheidingstekens</value>
@@ -1033,81 +1018,117 @@ Fuzzy</comment>
<value>Recent</value>
</data>
<data name="NewTab_Description" xml:space="preserve">
<value>Opens default profile in a new tab.</value>
<value>Opent standaard profiel in een nieuw tab</value>
</data>
<data name="NewSshTab_Description" xml:space="preserve">
<value>Opens a new SSH or Mosh session in a new tab.</value>
</data>
<data name="NewQuickTab_Description" xml:space="preserve">
<value>Opens &quot;Quick Launch&quot; dialog and starts session in a new tab.</value>
<value>Opent &quot;Snel Laden&quot; dialoog en start een sessie in een nieuwe tab</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>Opens settings window.</value>
<value>Opent het instellingen venster</value>
</data>
<data name="About_Description" xml:space="preserve">
<value>Basic info about the app.</value>
<value>Basisinformatie over de applicatie.</value>
</data>
<data name="Recent_Description" xml:space="preserve">
<value>Recently opened sessions.</value>
<value>Recentelijk geopende sessies.</value>
</data>
<data name="MenuItem_DefaultProfile_Description" xml:space="preserve">
<value>Starts new terminal session based on the default profile.</value>
<value>Start een nieuwe Terminal sessie, gebaseerd op het standaard profiel.</value>
</data>
<data name="MenuItem_Remote_Text" xml:space="preserve">
<value>Remote Connect...</value>
<value>Extern verbinden...</value>
</data>
<data name="MenuItem_Remote_Description" xml:space="preserve">
<value>Opens a dialog for launching a new SSH or Mosh terminal session.</value>
<value>Opent een dialoog voor het starten van een nieuwe SSH of Mosh Terminal sessie.</value>
</data>
<data name="MenuItem_QuickLaunch_Text" xml:space="preserve">
<value>Quick Launch...</value>
<value>Snel Laden...</value>
</data>
<data name="MenuItem_QuickLaunch_Description" xml:space="preserve">
<value>Opens a &quot;Quick Launch&quot; dialog for starting a new terminal session.</value>
<value>Opent een &quot;Snel Laden&quot; dialoog om een nieuwe Terminal sessie te starten.</value>
</data>
<data name="MenuItem_NewWindow_Text" xml:space="preserve">
<value>New Window</value>
<value>Nieuw Venster</value>
</data>
<data name="MenuItem_NewTab_Text" xml:space="preserve">
<value>New Tab</value>
<value>Nieuwe Tab</value>
</data>
<data name="MenuItem_NewTab_Description" xml:space="preserve">
<value>Launches a session in a new tab.</value>
<value>Start een sessie in een nieuw tab</value>
</data>
<data name="MenuItem_NewWindow_Description" xml:space="preserve">
<value>Launches a session in a new window.</value>
<value>Start een sessie in een nieuw venster.</value>
</data>
<data name="AppMenuType.Text" xml:space="preserve">
<value>Application menu type</value>
<value>Applicatie menu type</value>
</data>
<data name="AppMenuType_Flat.Content" xml:space="preserve">
<value>Flat, honoring &quot;Open new terminals as&quot; setting</value>
<value>Plat, naar de &quot;Open nieuwe terminals als&quot; instelling</value>
</data>
<data name="AppMenuType_Cascading.Content" xml:space="preserve">
<value>&quot;New Tab&quot; / &quot;New Window&quot; cascading</value>
<value>&quot;Nieuw Tab&quot; / &quot;Nieuw Venster&quot; trapsgewijs</value>
</data>
<data name="Quit.Text" xml:space="preserve">
<value>Quit</value>
<value>Stop</value>
</data>
<data name="Quit.Description" xml:space="preserve">
<value>Quit Fluent Terminal</value>
<value>Stop Fluent Terminal</value>
</data>
<data name="EnabledByPolicy" xml:space="preserve">
<value>Enabled by policy.</value>
<value>Aangezet doot beleid.</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Background image</value>
<value>Achtergrond afbeelding</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Use acrylic background</value>
<value>Gebruik een acryl achtergrond</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Are you sure you want to delete this background image?</value>
<value>Weet je zeker dat je deze achtergrond wilt verwijderen?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Colors</value>
<value>Kleuren</value>
</data>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
<value>Felle kleuren</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Kopieer link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Heel woord</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Hoofdlettergevoelig</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Kopieer selectie of plak</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Gebruik slimme buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Herstart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Sessie verbroken.</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Verhoog lettertype grootte</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Verlaag lettertype grootte</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Herstel lettertype grootte</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Tab opnieuw verbinden</value>
</data>
</root>
+164 -82
View File
@@ -135,7 +135,8 @@
</data>
<data name="ConfirmWindowClosing.Header" xml:space="preserve">
<value>Pytaj przed zamknięciem okna</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmTabClosing.Header" xml:space="preserve">
<value>Pytaj przed zamknięciem kart</value>
@@ -147,20 +148,22 @@
</data>
<data name="ColorInactiveTabs.Text" xml:space="preserve">
<value>Kolor na nieaktywnych kartach</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Command.Copy" xml:space="preserve">
<value>Kopiuj</value>
<comment>XtermTerminalView.xaml.cs</comment>
</data>
<data name="CustomTitle.Header" xml:space="preserve">
<value>Pokaż</value>
<value>Pokaż niestandardowe tytuły kart także w pasku tytułu</value>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="EditTitle.Text" xml:space="preserve">
<value>Zmień tytuł</value>
<comment>TabBar.xaml</comment>
<comment>TabBar.xaml
Fuzzy</comment>
</data>
<data name="General.Text" xml:space="preserve">
<value>Ogólne</value>
@@ -176,7 +179,8 @@ Fuzzy</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Zrestartuj aplikację, aby zastosować zmiany</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
<value>Nowa karta</value>
@@ -192,7 +196,8 @@ Fuzzy</comment>
</data>
<data name="ONTA_Windows.Content" xml:space="preserve">
<value>Okna</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Otwórz nowe terminale jako</value>
@@ -224,7 +229,8 @@ Fuzzy</comment>
</data>
<data name="Setting" xml:space="preserve">
<value>Ustawienia</value>
<comment>SettingsPage.xaml.cs</comment>
<comment>SettingsPage.xaml.cs
Fuzzy</comment>
</data>
<data name="Settings.Text" xml:space="preserve">
<value>Ustawienia</value>
@@ -384,15 +390,18 @@ Fuzzy</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
<value>Rozmiar czcionki</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ImportTheme.Text" xml:space="preserve">
<value>Importuj</value>
<comment>ThemeSettings.xaml</comment>
<comment>ThemeSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut.Header" xml:space="preserve">
<value>Skróty klawsizowe</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="KeyboardShortcut1.Text" xml:space="preserve">
<value>Skróty klawiszowe</value>
@@ -416,7 +425,8 @@ Fuzzy</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Działanie środkowego klawisza myszy</value>
<comment>MouseSettings.xaml</comment>
<comment>MouseSettings.xaml
Fuzzy</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
<value>Mysz</value>
@@ -440,7 +450,8 @@ Fuzzy</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Odstęp wewnętrzny</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
<value>Nazwa</value>
@@ -452,7 +463,8 @@ Fuzzy</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
<value>Motyw</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ReleaseNotes.Text" xml:space="preserve">
<value>Informacje o wydaniu</value>
@@ -468,7 +480,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
<value>Limit przewijania</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>Autoukrywanie</value>
@@ -480,7 +493,8 @@ Fuzzy</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Styl paska nawigacyjnego</value>
<comment>TerminalSettings.xaml</comment>
<comment>TerminalSettings.xaml
Fuzzy</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
<value>Widoczny</value>
@@ -532,59 +546,73 @@ Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Katalog roboczy</value>
<comment>ShellProfileSettings.xaml</comment>
<comment>ShellProfileSettings.xaml
Fuzzy</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Czy chcesz zamknąć &quot;{0}&quot; kartę?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Czy chcesz zamknąć to okno?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Czy chcesz usunąć ten skrót klawiszowy?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Czy chcesz usunąć ten motyw?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Czy chcesz odrzucić wszystkie zmiany?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Czy chcesz przywrócić główne ustawienia?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Czy chcesz przywrócić domyślne skróty klawiszowe?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Czy chcesz przywrócić ustawienia myszy?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Czy na pewno chcesz zresetować ten profil?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Czy na pewno chcesz przywrócić wszystkie ustawienia do domyślnych?</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Wyłączone przez zasadę</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Wyłączone przez użytkownika. Aktywuj ponownie w karcie &quot;Uruchamianie&quot; Menedżera Zadań</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Edytuj tytuł</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="Error" xml:space="preserve">
<value>Błąd</value>
@@ -592,11 +620,13 @@ Fuzzy</comment>
</data>
<data name="ErrorString1" xml:space="preserve">
<value>Ta operacja nie powiodła się z powodu następującego błędu:</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>Błąd importu motywu</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
<value>Nie znaleziono odpowiedniego analizatora składni</value>
@@ -611,9 +641,11 @@ Fuzzy</comment>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Podaj swój skrót klawiszowy</value>
<comment>Fuzzy</comment>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
<comment>Fuzzy</comment>
</data>
<data name="ResetBtn.Content" xml:space="preserve">
<value>Reset</value>
@@ -628,7 +660,8 @@ Fuzzy</comment>
</data>
<data name="Command.ChangeTabTitle" xml:space="preserve">
<value>Zmień tytuł karty</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.Clear" xml:space="preserve">
<value>Wyczyść</value>
@@ -638,17 +671,10 @@ Fuzzy</comment>
<value>Zamknij kartę</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewTab" xml:space="preserve">
<value>Konfigurowalna nowa karta</value>
<comment>Command</comment>
</data>
<data name="Command.ConfigurableNewWindow" xml:space="preserve">
<value>Konfigurowalne nowe okno</value>
<comment>Command</comment>
</data>
<data name="Keybindings.Text" xml:space="preserve">
<value>Skróty klawiszowe</value>
<comment>KeyBindingSettings.xaml</comment>
<comment>KeyBindingSettings.xaml
Fuzzy</comment>
</data>
<data name="Delete.Content" xml:space="preserve">
<value>Usuń</value>
@@ -664,7 +690,8 @@ Fuzzy</comment>
</data>
<data name="Command.NewWindow" xml:space="preserve">
<value>Nowe okno</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.NextTab" xml:space="preserve">
<value>Następna karta</value>
@@ -686,17 +713,10 @@ Fuzzy</comment>
<value>Zaznacz wszysto</value>
<comment>Command</comment>
</data>
<data name="SelectProfileUI.PrimaryButtonText" xml:space="preserve">
<value>Start</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="SelectProfileUI.Title" xml:space="preserve">
<value>Wybierz profil</value>
<comment>ShellProfileSelectionDialog.xaml</comment>
</data>
<data name="Command.ShowSettings" xml:space="preserve">
<value>Pokaż ustawienia</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SwitchToTerm1" xml:space="preserve">
<value>Przełącz na terminal 1</value>
@@ -736,14 +756,17 @@ Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Włącz pełen ekran</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Przełącz okno</value>
<comment>Command</comment>
<comment>Command
Fuzzy</comment>
</data>
<data name="NewSshTab.Text" xml:space="preserve">
<value>Nowa zdalna karta</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>Nowa karta SSH</value>
@@ -759,6 +782,7 @@ Fuzzy</comment>
</data>
<data name="PortTextBox.PlaceholderText" xml:space="preserve">
<value>port</value>
<comment>Fuzzy</comment>
</data>
<data name="IdentityFileTextBox.PlaceholderText" xml:space="preserve">
<value>Ścieżka do pliku identyfikacyjnego</value>
@@ -771,33 +795,38 @@ Fuzzy</comment>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Zaawansowane</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPorts.Text" xml:space="preserve">
<value>Porty Mosh:</value>
</data>
<data name="SaveShortcutButton.Content" xml:space="preserve">
<value>Zapisz skrót</value>
<comment>Fuzzy</comment>
</data>
<data name="NeedsToRestart.Text" xml:space="preserve">
<value>Zrestartuj aplikację, aby ustawienia zaczęły obowiązywać</value>
</data>
<data name="InvalidInput" xml:space="preserve">
<value>Niepoprawne wejście</value>
<comment>Fuzzy</comment>
</data>
<data name="PortCannotBeZero" xml:space="preserve">
<value>Port nie może być 0</value>
</data>
<data name="UserAndHostMandatory" xml:space="preserve">
<value>Użytkownik i IP są niezbędne</value>
<value>Użytkownik i adres hosta są niezbędne</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>Nazwa użytkownika nie może być pusta</value>
</data>
<data name="SshConnectionInfoValidationResult.HostEmpty" xml:space="preserve">
<value>IP nie może być puste</value>
<value>Adres hosta nie może być pusty</value>
</data>
<data name="SshConnectionInfoValidationResult.SshPortZeroOrNegative" xml:space="preserve">
<value>Port SSH musi być większy od 0</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.MoshPortZeroOrNegative" xml:space="preserve">
<value>Port Mosh nie może być 0</value>
@@ -819,15 +848,18 @@ Fuzzy</comment>
</data>
<data name="NewOutput.ToolTipService.ToolTip" xml:space="preserve">
<value>Nowe wyjście</value>
<comment>Fuzzy</comment>
</data>
<data name="ExitedWithError.ToolTipService.ToolTip" xml:space="preserve">
<value>Zakończono z błędem</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Czy na pewno chcesz usunąć ten profil?</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>Nowe okno SSH</value>
<comment>Fuzzy</comment>
</data>
<data name="Setting_SShProfiles.Content" xml:space="preserve">
<value>Profile SSH</value>
@@ -858,9 +890,11 @@ Fuzzy</comment>
</data>
<data name="SettingsImported" xml:space="preserve">
<value>Zaimportowano ustawienia z pliku</value>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.IdentityFileDoesNotExist" xml:space="preserve">
<value>Plik identyfikacyjny nie istnieje</value>
<comment>Fuzzy</comment>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Użyj nazwy użytkownika Windows jeśli SSH URL nie ma jej zdefiniowanej</value>
@@ -879,6 +913,7 @@ Fuzzy</comment>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>Ścieżka nie może być pusta</value>
<comment>Fuzzy</comment>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Wycisz dźwięki terminala</value>
@@ -888,6 +923,7 @@ Fuzzy</comment>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Polecenie</value>
<comment>Fuzzy</comment>
</data>
<data name="UnsupportedCommand" xml:space="preserve">
<value>Niewspierane polecenie</value>
@@ -903,6 +939,7 @@ Fuzzy</comment>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>Nowe okno szybkiego uruchamiania</value>
<comment>Fuzzy</comment>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>Nowa szybka karta</value>
@@ -915,6 +952,7 @@ Fuzzy</comment>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Upuść kartę tutaj</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Zamknij karty po lewej</value>
@@ -933,15 +971,19 @@ Fuzzy</comment>
</data>
<data name="DuplicateEnvironmentVariable" xml:space="preserve">
<value>Nie można zdefiniować dwóch zmiennych o tej samej nazwie.</value>
<comment>Fuzzy</comment>
</data>
<data name="EmptyEnvironmentVariableName" xml:space="preserve">
<value>Nie można zdefiniować zmiennej bez jej nazwy</value>
<comment>Fuzzy</comment>
</data>
<data name="EnvironmentVariables.Text" xml:space="preserve">
<value>Zmienne środowiskowe</value>
<comment>Fuzzy</comment>
</data>
<data name="CloseSearchPanel.ToolTipService.ToolTip" xml:space="preserve">
<value>Zamknij panel wyszukiwania</value>
<comment>Fuzzy</comment>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Znajdź następne</value>
@@ -951,98 +993,138 @@ Fuzzy</comment>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Podaj frazę</value>
<comment>Fuzzy</comment>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Szukaj</value>
<comment>Fuzzy</comment>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Wyświetlaj tylko czytelne symbole</value>
<comment>Fuzzy</comment>
</data>
<data name="EnableLogging.Header" xml:space="preserve">
<value>Zapisuj dane wyjściowe dla debugowania</value>
<comment>Fuzzy</comment>
</data>
<data name="WordSeparator.Header" xml:space="preserve">
<value>Znaki seperujące słowa</value>
</data>
<data name="Recent.Text" xml:space="preserve">
<value>Recent</value>
<value>Ostatnie</value>
</data>
<data name="NewTab_Description" xml:space="preserve">
<value>Opens default profile in a new tab.</value>
<value>Otwórz domyślny profil w nowej karcie.</value>
</data>
<data name="NewSshTab_Description" xml:space="preserve">
<value>Opens a new SSH or Mosh session in a new tab.</value>
<value>Otwórz nową sesję SSH lub Mosh w nowej karcie.</value>
</data>
<data name="NewQuickTab_Description" xml:space="preserve">
<value>Opens &quot;Quick Launch&quot; dialog and starts session in a new tab.</value>
<value>Otwiera okno dialogowe &quot;Szybkie uruchomienie&quot; i rozpoczyna sesję w nowej karcie.</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>Opens settings window.</value>
<value>Otwórz okno ustawień.</value>
</data>
<data name="About_Description" xml:space="preserve">
<value>Basic info about the app.</value>
<value>Podstawowe informacje o aplikacji.</value>
</data>
<data name="Recent_Description" xml:space="preserve">
<value>Recently opened sessions.</value>
<value>Niedawno otwarte sesje.</value>
</data>
<data name="MenuItem_DefaultProfile_Description" xml:space="preserve">
<value>Starts new terminal session based on the default profile.</value>
<value>Rozpoczyna nowa sesję terminala bazującą na domyślnym profilu.</value>
</data>
<data name="MenuItem_Remote_Text" xml:space="preserve">
<value>Remote Connect...</value>
<value>Połącz zdalnie...</value>
</data>
<data name="MenuItem_Remote_Description" xml:space="preserve">
<value>Opens a dialog for launching a new SSH or Mosh terminal session.</value>
<value>Otwiera okno dialogowe do rozpoczynania nowej sesji terminala SSH lub Mosh.</value>
</data>
<data name="MenuItem_QuickLaunch_Text" xml:space="preserve">
<value>Quick Launch...</value>
<value>Szybkie uruchomienie...</value>
</data>
<data name="MenuItem_QuickLaunch_Description" xml:space="preserve">
<value>Opens a &quot;Quick Launch&quot; dialog for starting a new terminal session.</value>
<value>Otwiera okno dialogowe &quot;Szybkie uruchomienie&quot; aby rozpocząć nową sesje terminala.</value>
</data>
<data name="MenuItem_NewWindow_Text" xml:space="preserve">
<value>New Window</value>
<value>Nowe okno</value>
</data>
<data name="MenuItem_NewTab_Text" xml:space="preserve">
<value>New Tab</value>
<value>Nowa Karta</value>
</data>
<data name="MenuItem_NewTab_Description" xml:space="preserve">
<value>Launches a session in a new tab.</value>
<value>Otwiera sesję w nowej karcie.</value>
</data>
<data name="MenuItem_NewWindow_Description" xml:space="preserve">
<value>Launches a session in a new window.</value>
<value>Otwiera sesję w nowym oknie.</value>
</data>
<data name="AppMenuType.Text" xml:space="preserve">
<value>Application menu type</value>
<value>Typ menu aplikacji</value>
</data>
<data name="AppMenuType_Flat.Content" xml:space="preserve">
<value>Flat, honoring &quot;Open new terminals as&quot; setting</value>
<value>Płaskie, przestrzegające ustawienia &quot;Otwórz nowe terminale jako&quot;.</value>
</data>
<data name="AppMenuType_Cascading.Content" xml:space="preserve">
<value>&quot;New Tab&quot; / &quot;New Window&quot; cascading</value>
<value>&quot;Nowa karta&quot; / &quot;Nowe okno&quot; kaskadowo</value>
</data>
<data name="Quit.Text" xml:space="preserve">
<value>Quit</value>
<value>Zakończ</value>
</data>
<data name="Quit.Description" xml:space="preserve">
<value>Quit Fluent Terminal</value>
<value>Wyjdź z Fluent Terminal</value>
</data>
<data name="EnabledByPolicy" xml:space="preserve">
<value>Enabled by policy.</value>
<value>Włączone przez polityke.</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Background image</value>
<value>Obraz tła</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Use acrylic background</value>
<value>Użyj akrylowego tła</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Are you sure you want to delete this background image?</value>
<value>Czy na pewno chcesz usunąć ten obraz tła?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Colors</value>
<value>Kolory</value>
</data>
<data name="BrightColors.Text" xml:space="preserve">
<value>Bright colors</value>
<value>Jasne kolory</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Skopiuj łącze</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Całe słowo</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Uwzględnij wielkość liter</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Skopiuj zaznaczenie lub wklej</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Użyj inteligentnego buforowania</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Uruchom ponownie</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Sesja rozłączona</value>
</data>
<data name="Command.IncreaseFontSize" xml:space="preserve">
<value>Zwiększ rozmiar czcionki</value>
</data>
<data name="Command.DecreaseFontSize" xml:space="preserve">
<value>Zmniejsz rozmiar czcionki</value>
</data>
<data name="Command.ResetFontSize" xml:space="preserve">
<value>Zresetuj rozmiar czcionki</value>
</data>
<data name="Command.ReconnectTab" xml:space="preserve">
<value>Przełącz zakładke</value>
</data>
</root>
Loaded 100 of 289 files, more files were not shown because too many files have changed in this diff. Show more