mirror of
https://github.com/Eugeny/tabby.git
synced 2025-07-23 20:08:01 +00:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c12b445ccd |
@@ -1283,33 +1283,6 @@
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Mxmilu666",
|
||||
"name": "Mxmilu",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/82694310?v=4",
|
||||
"profile": "https://5k.work/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "C41M50N",
|
||||
"name": "Charles Buffington",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/29805363?v=4",
|
||||
"profile": "https://cbuff.dev",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "GeminiLn",
|
||||
"name": "Yu Qin",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/12425057?v=4",
|
||||
"profile": "https://github.com/GeminiLn",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
|
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
- name: Installing Node
|
||||
uses: actions/setup-node@v3.7.0
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: 16
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -37,4 +37,3 @@ tabby-ssh/util/pagent.exe
|
||||
*.psd
|
||||
|
||||
crowdin.yml
|
||||
.crowdin.env
|
||||
|
@@ -23,8 +23,6 @@ sudo apt install libfontconfig-dev libsecret-1-dev libarchive-tools libnss3 liba
|
||||
yarn
|
||||
```
|
||||
|
||||
_⚠️Note: If you forked this repository, you may need to pull down the tags from this repository before installing node modules. `git pull --tags upstream master`_
|
||||
|
||||
Build Tabby:
|
||||
|
||||
```
|
||||
|
@@ -336,11 +336,6 @@ Dank geht an diese wunderbaren Menschen ([emoji key](https://allcontributors.org
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -338,11 +338,6 @@ Gracias a estas maravillosas personas ([emoji key](https://allcontributors.org/d
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -335,11 +335,6 @@ Terima kasih kepada mereka yang telah membantu ([emoji key](https://allcontribut
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -331,11 +331,6 @@ Grazie a queste persone meravigliose ([emoji key](https://allcontributors.org/do
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -346,11 +346,6 @@ Windows上では、`Tabby.exe`がある場所と同じ場所に`data`フォル
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -330,11 +330,6 @@ Pull requests and plugins are welcome!
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -352,11 +352,6 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -339,11 +339,6 @@ Obrigado vai para essas pessoas maravilhosas ([emoji key](https://allcontributor
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -29,7 +29,7 @@
|
||||
[**Tabby**](https://tabby.sh) (ранее **Terminus**) — широко конфигурируемый эмулятор терминала, SSH- и COM-клиент для Windows, macOS и Linux:
|
||||
|
||||
* Встроенный SSH- и Telnet-клиент и менеджер подключений;
|
||||
* Встроенный последовательный терминал;
|
||||
* Встроенный последовтаельный терминал;
|
||||
* Темы и цветовые схемы;
|
||||
* Полностью настраеваемые сочетания клавиш;
|
||||
* Панели;
|
||||
@@ -39,7 +39,7 @@
|
||||
* Полная поддержка Unicode, включая символы двойной ширины;
|
||||
* Не задыхается при быстром выводе;
|
||||
* Полноценный опыт работы с shell на Windows, включая дополнение слов и команд по Tab (при помощи Clink);
|
||||
* Встроенное защищённое хранилище для SSH-ключей и настроек;
|
||||
* Втроенное защищённое хранилище для SSH-ключей и настроек;
|
||||
* SSH-, SFTP- и Telnet-клиент доступен как [веб-приложение](https://tabby.sh/app) (также для [самостоятелньного хостинга](https://github.com/Eugeny/tabby-web)).
|
||||
|
||||
# Содержание <!-- omit in toc -->
|
||||
@@ -71,7 +71,7 @@
|
||||
* Деление окна на несколько панелей;
|
||||
* Вкладки на любой стороне окна;
|
||||
* Опционально закрепляемое окно с глобальной горячей клавишей для вызова («Quake console»);
|
||||
* Определение прогресса выполняемого процесса;
|
||||
* Определение прогресса процесса;
|
||||
* Уведомления о завершении процессов;
|
||||
* Защита от выполнения команд при вставке, предупреждения о вставке нескольких строк;
|
||||
* Лигатуры шрифтов;
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
* Сохранение соединений;
|
||||
* Поддержка ввода readline;
|
||||
* Опциональный побатный ввод HEX и вывод hexdump;
|
||||
* Опциональый побатный ввод HEX и вывод hexdump;
|
||||
* Преобразование newline;
|
||||
* Автоматическое восстановление соединения.
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
* [save-output](https://github.com/Eugeny/tabby-save-output) — запись вывода терминала в файл;
|
||||
* [sync-config](https://github.com/starxg/terminus-sync-config) — синхронизация конфига в Gist или Gitee;
|
||||
* [clippy](https://github.com/Eugeny/tabby-clippy) — плагин-пример, который постоянно будет вас бесить;
|
||||
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) — позволяет создавать пользовательские профили рабочего окружения на основе конфига;
|
||||
* [workspace-manager](https://github.com/composer404/tabby-workspace-manager) — позволяет создавать пользовательские провили рабочего окружеиня на основе конфига;
|
||||
* [search-in-browser](https://github.com/composer404/tabby-search-in-browser) — открывает браузер по умолчанию с текстом, выделенном во вкладке Tabby.
|
||||
* [sftp-tab](https://github.com/wljince007/tabby-sftp-tab) - открывает sftp вкладку для ssh соединения, похож на SecureCRT
|
||||
* [sftp-tab](https://github.com/wljince007/tabby-sftp-tab) - open sftp tab for ssh connection like SecureCRT
|
||||
|
||||
<a name="themes"></a>
|
||||
# Темы
|
||||
@@ -331,11 +331,6 @@ Pull-запросы и плагины приветствуются!
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -330,11 +330,6 @@
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ashneilson"><img src="https://avatars.githubusercontent.com/u/35913512?v=4?s=100" width="100px;" alt="Ash Neilson"/><br /><sub><b>Ash Neilson</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=ashneilson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cfs4819"><img src="https://avatars.githubusercontent.com/u/53071761?v=4?s=100" width="100px;" alt="Chen Fansong"/><br /><sub><b>Chen Fansong</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=cfs4819" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://5k.work/"><img src="https://avatars.githubusercontent.com/u/82694310?v=4?s=100" width="100px;" alt="Mxmilu"/><br /><sub><b>Mxmilu</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=Mxmilu666" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cbuff.dev"><img src="https://avatars.githubusercontent.com/u/29805363?v=4?s=100" width="100px;" alt="Charles Buffington"/><br /><sub><b>Charles Buffington</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=C41M50N" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeminiLn"><img src="https://avatars.githubusercontent.com/u/12425057?v=4?s=100" width="100px;" alt="Yu Qin"/><br /><sub><b>Yu Qin</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=GeminiLn" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -183,10 +183,9 @@ export class Application {
|
||||
}
|
||||
|
||||
enableTray (): void {
|
||||
if (!!this.tray || process.platform === 'linux' || (this.configStore.hideTray ?? false) === true) {
|
||||
if (!!this.tray || process.platform === 'linux') {
|
||||
return
|
||||
}
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
this.tray = new Tray(`${app.getAppPath()}/assets/tray-darwinTemplate.png`)
|
||||
this.tray.setPressedImage(`${app.getAppPath()}/assets/tray-darwinHighlightTemplate.png`)
|
||||
|
@@ -24,7 +24,6 @@
|
||||
"electron-updater": "^5.2.1",
|
||||
"fontmanager-redux": "1.1.0",
|
||||
"glasstron": "0.1.1",
|
||||
"node-powershell": "5.0.1",
|
||||
"js-yaml": "4.1.0",
|
||||
"keytar": "^7.9.0",
|
||||
"mz": "^2.7.0",
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
cat > '/usr/bin/${executable}' << END
|
||||
#!/bin/sh
|
||||
'/opt/${productFilename}/${executable}' --no-sandbox \$@
|
||||
'/opt/${productFilename}/${executable}' --no-sandbox $@
|
||||
END
|
||||
|
||||
chmod +x '/usr/bin/${executable}'
|
||||
|
@@ -76,6 +76,8 @@ snap:
|
||||
- system-observe
|
||||
deb:
|
||||
depends:
|
||||
- gconf2
|
||||
- gconf-service
|
||||
- gnome-keyring
|
||||
- libnotify4
|
||||
- libsecret-1-0
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
"Language: af_ZA\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Laat toe om 'n terminaal vinnig oop te maak in die geselekteerde vouer"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Altyd Donker"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Altyd Lig"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Agtergrond tipe"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Terugspasie-sleutelmodus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -284,7 +284,7 @@ msgstr "Maak terminaal skoon"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:58
|
||||
msgid "Clear terminal after connection"
|
||||
msgstr "Maak terminaal skoon na verbinding"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||
msgid "Clipboard"
|
||||
@@ -337,12 +337,12 @@ msgstr "Kleur skema"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Kleurskemas"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
msgid "Colors"
|
||||
msgstr "Kleure"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
@@ -362,7 +362,7 @@ msgstr "Bevele"
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "Kompak (erfenis)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
@@ -428,7 +428,7 @@ msgstr "Kontekskieslys"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
||||
msgid "Controls the amount of space between elements"
|
||||
msgstr "Beheer die hoeveelheid spasie tussen elemente"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:240
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:248
|
||||
@@ -449,7 +449,7 @@ msgstr "Kopieer huidige pad"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||
msgid "Copy full path"
|
||||
msgstr "Kopieer volle pad"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||
msgid "Copy on select"
|
||||
@@ -506,7 +506,7 @@ msgstr "Pasgemaakte CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Donker modus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Verminder die vertikale verdelingsgrootte"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Standaard \"Koppel aan\" tiepe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Standaard verbindingssoort gebruik deur die vinnige koppelingsfunksie (bv. SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Verstekprofiel vir nuwe oortjies"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Standaard profielgroepinstellings"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -594,7 +594,7 @@ msgstr "Skrap vorige woord"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||
msgid "Delete the config on the remote side?"
|
||||
msgstr "Verwyder die konfigurasie aan die afgeleë kant?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:226
|
||||
msgid "Delete the group's profiles?"
|
||||
@@ -651,7 +651,7 @@ msgstr "Ontkoppel"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Ontkoppel huidige oortjie (Serieel/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -757,7 +757,7 @@ msgstr "Aktiveer outomatiese installasie van opdaterings wanneer hulle beskikbaa
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:211
|
||||
msgid "Enable fluent background option"
|
||||
msgstr "Aktiveer vloeiende agtergrondopsie"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||
msgid "Enable font ligatures"
|
||||
@@ -806,7 +806,7 @@ msgstr "Voorbeeld:"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:212
|
||||
msgid "Experimental Windows 10 background style known to cause issues"
|
||||
msgstr "Eksperimentele Windows 10 agtergrondstyl wat bekend is om probleme te veroorsaak"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:28
|
||||
msgid "Export"
|
||||
@@ -894,7 +894,7 @@ msgstr "Fokus die ruit aan die regterkant"
|
||||
|
||||
#: tabby-core/src/theme.ts:34
|
||||
msgid "Follow the color scheme"
|
||||
msgstr "Volg die kleurskema"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:5
|
||||
msgid "Font"
|
||||
@@ -939,7 +939,7 @@ msgstr "Van kleurskema"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Van stelsel"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Heksadesimaal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Versteek"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1052,7 +1052,7 @@ msgstr "Sneltoetse"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:83
|
||||
msgid "How Tabby presents itself through environment vars"
|
||||
msgstr "Hoe Tabby homself deur omgewingsveranderlikes voorstel"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||
msgid "HTTP proxy"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Verhoog die vertikale verdelingsgrootte"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Invoer"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Laat die dop Meta-sleutel hanteer in plaas van BS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Ligte modus"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Inheems"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nuwe"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nuwe opstelling op {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nuwe groepnaam"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Nuwe profiel"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Nuwe profielgroep"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "Op GitHub-besprekings"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Sluit net die oortjie wanneer die sessie uitdruklik beëindig is"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1527,7 +1527,7 @@ msgstr "Panele"
|
||||
|
||||
#: tabby-core/src/theme.ts:26
|
||||
msgid "Paper (legacy)"
|
||||
msgstr "Papier (erfenis)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:38
|
||||
msgid "Parity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Gedeeltelike opstelling-sinkronisering is nie moontlik wanneer die opste
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Deurlaat"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Herkoppel"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Herkoppel huidige oortjie (Serieel/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Herbegin die toep om veranderinge toe te pas"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Herstel instellings na verstek ?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Herstel instellings na oorgeërfde verstekwaardes ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Dop Integrasies"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Wys"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2038,7 +2038,7 @@ msgstr "Show Serie verbindings"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:152
|
||||
msgid "Show tabs in fullscreen mode"
|
||||
msgstr "Wys oortjies in volskermmodus"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:62
|
||||
msgid "Show toolbar"
|
||||
@@ -2089,7 +2089,7 @@ msgstr "Bronkode"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:13
|
||||
msgid "Spaciness"
|
||||
msgstr "Ruimtelikheid"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:75
|
||||
msgid "Split"
|
||||
@@ -2135,7 +2135,7 @@ msgstr "SSH-wagwoord vir {user}@{host}:{port}"
|
||||
|
||||
#: tabby-core/src/theme.ts:8
|
||||
msgid "Standard (legacy)"
|
||||
msgstr "Standaard (erfenis)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:150
|
||||
msgid "Startup"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Plaasvervangers toegelaat."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Skakel kleurskema"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2264,7 +2264,7 @@ msgstr "Terminaal klok"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:82
|
||||
msgid "Terminal identification"
|
||||
msgstr "Terminale identifikasie"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||
msgid "Thank you for downloading Tabby!"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Dit is van toepassing op alle profiele van 'n gegewe tipe"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Dit is van toepassing op alle profiele van 'n gegewe tipe in hierdie groep"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Wat's nuut"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Wanneer 'n sessie eindig"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
@@ -2490,7 +2490,7 @@ msgstr "Of 'n pasgemaakte venster of 'n OS-inheemse venster gebruik moet word"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:141
|
||||
msgid "Will prevent the SSH greeting from showing up"
|
||||
msgstr "Sal voorkom dat die SSH-groet verskyn"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:30
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"Language: bg_BG\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Разрешава бързо отваряне на терминал в
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Винаги тъмно"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Винаги светло"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Тип на фона"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Режим на клавиша Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,12 +337,12 @@ msgstr "Цветови схеми"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Цветова схема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
msgid "Colors"
|
||||
msgstr "Цветове"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
@@ -362,7 +362,7 @@ msgstr "Команди"
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "Компактен (наследен)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
@@ -428,7 +428,7 @@ msgstr "Контекстно меню"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
||||
msgid "Controls the amount of space between elements"
|
||||
msgstr "Контролира разстоянието между елементите"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:240
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:248
|
||||
@@ -506,7 +506,7 @@ msgstr "Персонализиран CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Тъмен режим"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Намали размера на вертикалното разделя
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Тип по подразбиране \"Свързване към\""
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Тип връзка по подразбиране, използване на функцията за бързо свързване (например SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Профил по подразбиране за нов таб"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Настройки по подразбиране на групата профили"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Прекъсни"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Прекъсване на връзката с текущия tab (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -894,7 +894,7 @@ msgstr "Фокусирай десния панел"
|
||||
|
||||
#: tabby-core/src/theme.ts:34
|
||||
msgid "Follow the color scheme"
|
||||
msgstr "Следване на цветовата схема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:5
|
||||
msgid "Font"
|
||||
@@ -939,7 +939,7 @@ msgstr "От цветова схема"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "От система"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Шестнайсетичен"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Скрий"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Увеличи размера на вертикалното раздел
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Вход"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Позволява на shell да обработва мета клав
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Светъл режим"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Системна"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Нов"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Нова конфигурация на {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Име на нова група"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Нов профил"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Нов профил на групата"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "В GitHub Discussions"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Затваряне на tab само при изрично прекратяване на сесията"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1527,7 +1527,7 @@ msgstr "Панели"
|
||||
|
||||
#: tabby-core/src/theme.ts:26
|
||||
msgid "Paper (legacy)"
|
||||
msgstr "Хартия (наследена)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:38
|
||||
msgid "Parity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Частична синхронизация на конфигураци
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Пропускане"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Повторно свързване"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Повторно свързване на текущия раздел (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Рестартирайте приложението, за да прил
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Възстановяване на настройките по подразбиране ?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Възстановяване на унаследените настройки по подразбиране ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Shell интеграция"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Покажи"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2089,7 +2089,7 @@ msgstr "Програмен код"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:13
|
||||
msgid "Spaciness"
|
||||
msgstr "Пространство"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:75
|
||||
msgid "Split"
|
||||
@@ -2135,7 +2135,7 @@ msgstr "SSH парола за {user}@{host}:{port}"
|
||||
|
||||
#: tabby-core/src/theme.ts:8
|
||||
msgid "Standard (legacy)"
|
||||
msgstr "Стандартен (наследен)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:150
|
||||
msgid "Startup"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Заместванията са разрешени."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Промяна на цветовата схема"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Прилага се за всички профили от дадения
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Те се прилагат за всички профили от даден тип в тази група"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Какво ново"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Когато дадена сесия приключи"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
@@ -2490,7 +2490,7 @@ msgstr "Дали да се използва потребителски проз
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:141
|
||||
msgid "Will prevent the SSH greeting from showing up"
|
||||
msgstr "Ще предотврати появата на SSH поздрава"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:30
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Czech\n"
|
||||
"Language: cs_CZ\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -1935,7 +1935,7 @@ msgstr "Sériové připojení"
|
||||
|
||||
#: tabby-serial/src/profiles.ts:73
|
||||
msgid "Serial: {description}"
|
||||
msgstr "Sériový: {description}"
|
||||
msgstr "Seriální: {description}"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/setVaultPassphraseModal.component.html:2
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:5
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Danish\n"
|
||||
"Language: da_DK\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Tillader hurtigt at åbne en terminal i den valgte mappe"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Altid mørk"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Altid lys"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -272,7 +272,7 @@ msgstr "Ciphers"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||
msgid "Clear"
|
||||
msgstr "Ryd"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/services/profiles.service.ts:248
|
||||
msgid "Clear recent profiles"
|
||||
@@ -324,7 +324,7 @@ msgstr "Luk faner til højre"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:182
|
||||
msgid "Close the window after closing the last tab"
|
||||
msgstr "Luk vinduet efter lukningen af den sidste fane"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:33
|
||||
#: tabby-core/src/tabContextMenu.ts:132
|
||||
@@ -337,16 +337,16 @@ msgstr "Farvetema"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Farveskemaer"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
msgid "Colors"
|
||||
msgstr "Farver"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
msgstr "Kombinér alle faner til den aktuelle fane"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:4
|
||||
msgid "Command line"
|
||||
@@ -358,15 +358,15 @@ msgstr "Kommandoens stdin/stdout bruges i stedet for en netværksforbindelse"
|
||||
|
||||
#: tabby-core/src/services/commands.service.ts:105
|
||||
msgid "Commands"
|
||||
msgstr "Kommandoer"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "Kompakt (ældre)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
msgstr "Konfig slettet"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:108
|
||||
msgid "Config downloaded"
|
||||
@@ -428,7 +428,7 @@ msgstr "Kontekstmenu"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:14
|
||||
msgid "Controls the amount of space between elements"
|
||||
msgstr "Styrer mængden af mellemrum mellem elementer"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:240
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:248
|
||||
@@ -449,7 +449,7 @@ msgstr "Kopiér nuværende sti"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||
msgid "Copy full path"
|
||||
msgstr "Kopiér hele stien"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:97
|
||||
msgid "Copy on select"
|
||||
@@ -461,7 +461,7 @@ msgstr "Kopiér til udklipsholder"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:103
|
||||
msgid "Copy with formatting"
|
||||
msgstr "Kopiér med formatering"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/services/config.service.ts:425
|
||||
msgid "Could not decrypt config"
|
||||
@@ -469,12 +469,12 @@ msgstr "Kunne ikke dekryptere konfiguration"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpCreateDirectoryModal.component.html:9
|
||||
msgid "Create"
|
||||
msgstr "Opret"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:7
|
||||
#: tabby-ssh/src/sftpContextMenu.ts:29
|
||||
msgid "Create directory"
|
||||
msgstr "Opret mappe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:90
|
||||
msgid "Current"
|
||||
@@ -498,7 +498,7 @@ msgstr "Markørens form"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsForMode.component.html:46
|
||||
msgid "Custom"
|
||||
msgstr "Tilpasset"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:90
|
||||
msgid "Custom CSS"
|
||||
@@ -506,7 +506,7 @@ msgstr "Brugerdefineret CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Mørk tilstand"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -518,15 +518,15 @@ msgstr "Fejlfinding"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:256
|
||||
msgid "Decrease horizontal split size"
|
||||
msgstr "Reducér den vandrette splitstørrelse"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:248
|
||||
msgid "Decrease vertical split size"
|
||||
msgstr "Reducér den lodrette splitstørrelse"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Standard \"Forbind til\"-type"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
@@ -582,7 +582,7 @@ msgstr "Slet {fullPath}?"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:42
|
||||
msgid "Delete entire line"
|
||||
msgstr "Slet hele linjen"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:46
|
||||
msgid "Delete next word"
|
||||
@@ -594,7 +594,7 @@ msgstr "Slet forrige ord"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||
msgid "Delete the config on the remote side?"
|
||||
msgstr "Slet konfigurationen på fjernsiden?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:226
|
||||
msgid "Delete the group's profiles?"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de_DE\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -35,7 +35,7 @@ msgstr "Schlüssel akzeptieren und merken"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||
msgid "Accept just this once"
|
||||
msgstr "Nur diesmal akzeptieren"
|
||||
msgstr "Nur einmal akzeptieren"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||
msgid "Accessibility"
|
||||
@@ -100,12 +100,12 @@ msgstr "Ermöglicht das schnelle Öffnen eines Terminals im ausgewählten Ordner
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Immer dunkel"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Immer hell"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Hintergrundtyp"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Backspace-Tastenmodus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Teilweise Konfigurations-Synchronisation ist nicht möglich, wenn die Ko
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Pass-through"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1786,7 +1786,7 @@ msgstr "Standard Einstellungen wiederherstellen?"
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Standard Einstellungen wiederherstellen?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: English, United Kingdom\n"
|
||||
"Language: en_GB\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -337,7 +337,7 @@ msgstr "Colour scheme"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Colour schemes"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -2160,7 +2160,7 @@ msgstr ""
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Switch colour scheme"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Language: es_ES\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Permite abrir rápidamente un terminal en la carpeta seleccionada"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Siempre a oscuras"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Siempre ligero"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Tipo de fondo"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Modo de tecla de retroceso"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,7 +337,7 @@ msgstr "Esquema de color"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Esquemas de color"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "CSS personalizado"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Modo oscuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Reducir tamaño de división vertical"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Tipo predeterminado \"Conectar a\""
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Tipo de conexión predeterminado utilizado por la función de conexión rápida (por ejemplo, SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Perfil predeterminado para nuevas pestañas"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Configuración predeterminada del grupo de perfiles"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Desconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Desconectar pestaña actual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "Desde un color de esquema"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Del sistema"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Hexadecimal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Aumentar tamaño de división vertical"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Permita que la shell maneje la tecla Meta en lugar del sistema operativo
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Modo claro"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Nativo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nueva configuración en {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nuevo nombre del grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Nuevo perfil"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Nuevo grupo de perfiles"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "En discusiones de GitHub"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Cierre la pestaña solo cuando la sesión finalice explícitamente"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "La sincronización parcial de configuración no es posible cuando la con
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Pasado-por-clave"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Reconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Reconecta la pestaña actual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Reiniciar la aplicación para aplicar cambios"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "¿Restaurar los ajustes de fábrica?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "¿Restaurar los ajustes a los heredados por defecto?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Integración con la Shell"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Sustituciones permitidas."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Cambiar esquema de colores"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Estos se aplican a todos los perfiles de un tipo determinado"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Estos aplican a todos los perfiles de un tipo en este grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Qué hay de nuevo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Cuando una sesión finalice"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: French\n"
|
||||
"Language: fr_FR\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -526,7 +526,7 @@ msgstr "Diminuer la taille de la séparation verticale"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Type de connexion par défaut"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "La synchronisation partielle de la configuration n'est pas possible lors
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Passage à travers"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1786,7 +1786,7 @@ msgstr "Restaurer les paramètres par défaut ?"
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Restaurer les paramètres par défaut hérités ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Croatian\n"
|
||||
"Language: hr_HR\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Omogućuje brzo otvaranje terminala u odabranoj mapi"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Uvijek tamno"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Uvijek svijetlo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -337,7 +337,7 @@ msgstr "Shema boja"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Sheme boja"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "Prilagođeni CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Tamni modus"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -538,7 +538,7 @@ msgstr "Standardni profil za nove kartice"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Postavke standardnog profila grupe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Odspoji"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Odspoji trenutačnu karticu (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "Iz sheme boja"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Od sustava"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Heksadecimalni"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Sakrij"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Povećaj veličinu okomite podjele"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Unos"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Omogućuje ljusci baratanje meta-tipkom umjesto OS-a"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Svijetli modus"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Izvorni"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nova"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nova konfiguracija na {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Novo ime grupe"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Ponovo spoji"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Ponovo poveži trenutačnu karticu (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Za primjenu promjena ponovo pokreni program"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Obnoviti na standardne postavke?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Obnoviti postavke na naslijeđene standardne vrijednosti?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Integracija ljuske"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Prikaži"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Zamjene su dozvoljene."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Promijeni shemu boja"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Primjenjuju se na sve profile zadane vrste"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Primjenjuju se na sve profile zadane vrste u ovoj grupi"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Novosti"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Kada sesija završi"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"Language: id_ID\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -1762,11 +1762,11 @@ msgstr "Ukuran Semula"
|
||||
|
||||
#: tabby-serial/src/hotkeys.ts:14
|
||||
msgid "Restart current serial session"
|
||||
msgstr "Mulai ulang sesi serial saat ini"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/hotkeys.ts:10
|
||||
msgid "Restart current SSH session"
|
||||
msgstr "Mulai ulang sesi SSH saat ini"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-telnet/src/hotkeys.ts:10
|
||||
msgid "Restart current Telnet session"
|
||||
@@ -2401,7 +2401,7 @@ msgstr ""
|
||||
|
||||
#: tabby-ssh/src/session/ssh.ts:465
|
||||
msgid "Using preset password"
|
||||
msgstr "Gunakan kata sandi yang telah disetel sebelumnya"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:9
|
||||
msgid "Vault"
|
||||
|
246
locale/it-IT.po
246
locale/it-IT.po
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Italian\n"
|
||||
"Language: it_IT\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -23,7 +23,7 @@ msgstr "{name} copia"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:77
|
||||
msgid "A second font family used to display characters missing in the main font"
|
||||
msgstr "Una famiglia di font secondaria usata per visualizzare quelle mancanti nella font principale"
|
||||
msgstr "Un set di caratteri secondario usato per mostrare quelli mancanti nel principale"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||
msgid "Abort all"
|
||||
@@ -31,7 +31,7 @@ msgstr "Annulla tutto"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:24
|
||||
msgid "Accept and remember key"
|
||||
msgstr "Accetta e ricorda chiave"
|
||||
msgstr "Accetta e ricorda la chiave"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||
msgid "Accept just this once"
|
||||
@@ -43,7 +43,7 @@ msgstr "Accessibilità"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:27
|
||||
msgid "Acrylic background"
|
||||
msgstr "Sfondo acrilico"
|
||||
msgstr "Sfondo traslucido"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:24
|
||||
#: locale/tmp-html/tabby-local/src/components/environmentEditor.component.html:11
|
||||
@@ -79,19 +79,19 @@ msgstr "Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:134
|
||||
msgid "Agent forwarding"
|
||||
msgstr "Inoltro dell'agente"
|
||||
msgstr "Inoltro dell'Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:35
|
||||
msgid "Agent pipe path"
|
||||
msgstr "Percorso pipe agente"
|
||||
msgstr "Percorso pipe dell'Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:24
|
||||
msgid "Agent type"
|
||||
msgstr "Tipo di agente"
|
||||
msgstr "Tipo di Agente"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:169
|
||||
msgid "Allows opening .bat files in tabs, but breaks some shells"
|
||||
msgstr "Permetti l'apertura di file .bat nelle schede, potrebbe bloccare alcune shell"
|
||||
msgstr "Permette l'apertura di file .bat nelle schede, potrebbe bloccare alcune shell"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:60
|
||||
msgid "Allows quickly opening a terminal in the selected folder"
|
||||
@@ -122,8 +122,7 @@ msgstr "Impostazioni applicazione"
|
||||
|
||||
#: tabby-web/src/services/hostWindow.service.ts:19
|
||||
msgid "Are you sure you want to close Tabby? You can disable this prompt in Settings -> Window."
|
||||
msgstr "Sei sicuro di voler chiudere Tabby? \n"
|
||||
"Puoi disabilitare questo avviso in Impostazioni -> Finestra."
|
||||
msgstr "Sei sicuro di voler chiudere Tabby? Puoi disabilitare questo avviso in Impostazioni -> Finestra."
|
||||
|
||||
#: tabby-core/src/services/config.service.ts:440
|
||||
msgid "Are you sure?"
|
||||
@@ -225,7 +224,7 @@ msgstr "Incolla tra parentesi (richiede una shell che lo supporti)"
|
||||
|
||||
#: tabby-terminal/src/services/multifocus.service.ts:19
|
||||
msgid "Broadcast mode. Click anywhere to cancel."
|
||||
msgstr "Modalità broadcast. Fai clic ovunque per disabilitare."
|
||||
msgstr "Modalità broadcast. Clicca ovunque per annullare."
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:50
|
||||
#: tabby-core/src/services/profiles.service.ts:411
|
||||
@@ -273,7 +272,7 @@ msgstr "Crittografie"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSelector.component.html:5
|
||||
msgid "Clear"
|
||||
msgstr "Azzera"
|
||||
msgstr "Pulisci"
|
||||
|
||||
#: tabby-core/src/services/profiles.service.ts:248
|
||||
msgid "Clear recent profiles"
|
||||
@@ -281,11 +280,11 @@ msgstr "Cancella profili recenti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:50
|
||||
msgid "Clear terminal"
|
||||
msgstr "Azzera contenuto terminale"
|
||||
msgstr "Pulisci il terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:58
|
||||
msgid "Clear terminal after connection"
|
||||
msgstr "Azzera contenuto terminale dopo la connessione"
|
||||
msgstr "Pulisci il terminale dopo la connessione"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:94
|
||||
msgid "Clipboard"
|
||||
@@ -300,7 +299,7 @@ msgstr "Chiudi"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:45
|
||||
msgid "Close and never show again"
|
||||
msgstr "Chiudi e non visualizzare più"
|
||||
msgstr "Chiudi e non mostrare più"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:240
|
||||
msgid "Close focused pane"
|
||||
@@ -334,11 +333,11 @@ msgstr "Colore"
|
||||
|
||||
#: tabby-terminal/src/settings.ts:29
|
||||
msgid "Color scheme"
|
||||
msgstr "Tema terminale"
|
||||
msgstr "Tema del terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Schemi colore"
|
||||
msgstr "Tema del terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -347,7 +346,7 @@ msgstr "Colori"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:72
|
||||
msgid "Combine all tabs into the current tab"
|
||||
msgstr "Unisci tutte le schede all'interno della scheda attuale"
|
||||
msgstr "Unisci tutte le schede all'interno della scheda corrente"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/commandLineEditor.component.html:4
|
||||
msgid "Command line"
|
||||
@@ -355,7 +354,7 @@ msgstr "Riga di comando"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
||||
msgid "Command's stdin/stdout is used instead of a network connection"
|
||||
msgstr "Viene usato lo stdin/stdout invece di una connessione di rete"
|
||||
msgstr "Viene utilizzato lo stdin/stdout invece di una connessione di rete"
|
||||
|
||||
#: tabby-core/src/services/commands.service.ts:105
|
||||
msgid "Commands"
|
||||
@@ -376,7 +375,7 @@ msgstr "Configurazione scaricata"
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:115
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:120
|
||||
msgid "Config file"
|
||||
msgstr "File configurazione"
|
||||
msgstr "File di configurazione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:73
|
||||
@@ -446,7 +445,7 @@ msgstr "Copia"
|
||||
#: tabby-terminal/src/hotkeys.ts:70
|
||||
#: tabby-terminal/src/tabContextMenu.ts:70
|
||||
msgid "Copy current path"
|
||||
msgstr "Copia percorso attuale"
|
||||
msgstr "Copia percorso corrente"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:29
|
||||
msgid "Copy full path"
|
||||
@@ -487,11 +486,11 @@ msgstr "Tema in uso"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:17
|
||||
msgid "Current host key fingerprint"
|
||||
msgstr "Firma della chiave host attuale"
|
||||
msgstr "Firma della chiave host corrente"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:184
|
||||
msgid "Current process: {name}"
|
||||
msgstr "Processo attuale: {name}"
|
||||
msgstr "Processo corrente: {name}"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:51
|
||||
msgid "Cursor shape"
|
||||
@@ -507,7 +506,7 @@ msgstr "CSS personalizzato"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Tema scuro"
|
||||
msgstr "Modalità scura"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -531,7 +530,7 @@ msgstr "\"Connetti a\" predefinito"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Tipo di connessione predefinito usato dalla funzione di connessione rapida (es. SSH, Telnet)"
|
||||
msgstr "Tipo di connessione predefinito utilizzato dalla funzione di connessione rapida (es. SSH, Telnet)"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -575,11 +574,11 @@ msgstr "Elimina"
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:213
|
||||
#: tabby-terminal/src/components/colorSchemeSettingsForMode.component.ts:90
|
||||
msgid "Delete \"{name}\"?"
|
||||
msgstr "Vuoi eliminare \"{name}\"?"
|
||||
msgstr "Eliminare \"{name}\"?"
|
||||
|
||||
#: tabby-ssh/src/sftpContextMenu.ts:35
|
||||
msgid "Delete {fullPath}?"
|
||||
msgstr "Vuoi eliminare {fullPath}?"
|
||||
msgstr "Eliminare {fullPath}?"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:42
|
||||
msgid "Delete entire line"
|
||||
@@ -595,19 +594,19 @@ msgstr "Elimina parola precedente"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:114
|
||||
msgid "Delete the config on the remote side?"
|
||||
msgstr "Vuoi eliminare la configurazione sul dispositivo remoto?"
|
||||
msgstr "Eliminare la configurazione sul dispositivo remoto?"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:226
|
||||
msgid "Delete the group's profiles?"
|
||||
msgstr "Vuoi eliminare i profili del gruppo?"
|
||||
msgstr "Eliminare i profili del gruppo?"
|
||||
|
||||
#: tabby-terminal/src/components/loginScriptsSettings.component.ts:29
|
||||
msgid "Delete this script?"
|
||||
msgstr "Vuoi eliminare questo script?"
|
||||
msgstr "Eliminare questo script?"
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:50
|
||||
msgid "Delete vault contents?"
|
||||
msgstr "Vuoi eliminare il contenuto della cassaforte?"
|
||||
msgstr "Eliminare il contenuto della Cassaforte?"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpDeleteModal.component.html:3
|
||||
msgid "Deleting"
|
||||
@@ -652,12 +651,12 @@ msgstr "Disconnetti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Disconnetti la scheda attuale (serial/telnet/SSH)"
|
||||
msgstr "Disconnetti la scheda corrente (Serial/Telnet/SSH)"
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
msgid "Disconnect from {host}?"
|
||||
msgstr "Vuoi disconnetti da {host}?"
|
||||
msgstr "Disconnetti da {host}?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:30
|
||||
msgid "Display images via Sixel escape sequences"
|
||||
@@ -665,7 +664,7 @@ msgstr "Visualizza le immagini tramite sequenze di escape di Sixel"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:85
|
||||
msgid "Display on"
|
||||
msgstr "Visualizza in"
|
||||
msgstr "Mostra su"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:50
|
||||
msgid "Do not abort"
|
||||
@@ -683,7 +682,7 @@ msgstr "Non ricordare"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:97
|
||||
msgid "Dock always on top"
|
||||
msgstr "Visualizza sempre in primo piano"
|
||||
msgstr "Mostra sempre in primo piano"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:67
|
||||
msgid "Dock the terminal"
|
||||
@@ -707,7 +706,7 @@ msgstr "La selezione con doppio clic si fermerà a questi caratteri"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:79
|
||||
msgid "Down"
|
||||
msgstr "In basso"
|
||||
msgstr "Giù"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:43
|
||||
msgid "Download"
|
||||
@@ -754,15 +753,15 @@ msgstr "Abilita animazioni"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:74
|
||||
msgid "Enable automatic installation of updates when they become available."
|
||||
msgstr "Abilita l'installazione automatica degli aggiornamenti quando disponibili."
|
||||
msgstr "Abilita l'installazione automatica degli aggiornamenti quando sono disponibili."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:211
|
||||
msgid "Enable fluent background option"
|
||||
msgstr "Abilita opzione di sfondo fluente"
|
||||
msgstr "Abilita l'opzione di sfondo fluente"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:16
|
||||
msgid "Enable font ligatures"
|
||||
msgstr "Abilita le legature tra font"
|
||||
msgstr "Abilita le legature tra caratteri"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:39
|
||||
msgid "Enable global hotkey (Ctrl-Space)"
|
||||
@@ -791,7 +790,7 @@ msgstr "Cancella configurazione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:12
|
||||
msgid "Erase the Vault"
|
||||
msgstr "Cancella la cassaforte"
|
||||
msgstr "Cancella la Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:6
|
||||
msgid "Error in {plugin}:"
|
||||
@@ -895,7 +894,7 @@ msgstr "Evidenzia il riquadro a destra"
|
||||
|
||||
#: tabby-core/src/theme.ts:34
|
||||
msgid "Follow the color scheme"
|
||||
msgstr "Segui il tema di sistema"
|
||||
msgstr "Segui lo schema dei colori"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:5
|
||||
msgid "Font"
|
||||
@@ -919,7 +918,7 @@ msgstr "Forza LF"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
||||
msgid "Forces a specific SSH agent connection type."
|
||||
msgstr "Per la connessione SSH forza un tipo specifico di agente ."
|
||||
msgstr "Forza un tipo specifico di agente per la connessione SSH."
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:105
|
||||
msgid "Forget"
|
||||
@@ -978,7 +977,7 @@ msgstr "Dona alla finestra una trasparenza sfocata per lo sfondo"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:24
|
||||
msgid "Go up"
|
||||
msgstr "Livello superiore"
|
||||
msgstr "Vai su"
|
||||
|
||||
#: tabby-core/src/utils.ts:61
|
||||
msgid "Green"
|
||||
@@ -1031,7 +1030,7 @@ msgstr "Nasconde il terminale agganciato quando si fa click fuori."
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:26
|
||||
msgid "Homepage"
|
||||
msgstr "Pagina home"
|
||||
msgstr "Homepage"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:34
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:6
|
||||
@@ -1049,7 +1048,7 @@ msgstr "Verifica della chiave host"
|
||||
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:15
|
||||
msgid "Hotkeys"
|
||||
msgstr "Tasti scelta rapida"
|
||||
msgstr "Tasti di scelta rapida"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:83
|
||||
msgid "How Tabby presents itself through environment vars"
|
||||
@@ -1081,7 +1080,7 @@ msgstr "Se disabilitato, solo i profili personalizzati verranno visualizzati nel
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:23
|
||||
msgid "Immediately echoes your input locally"
|
||||
msgstr "Riporta immediatamente gli input locali"
|
||||
msgstr "Riporta immediatamente i tuoi input locali"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:252
|
||||
msgid "Increase horizontal split size"
|
||||
@@ -1107,7 +1106,7 @@ msgstr "Modalità di inserimento"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:15
|
||||
msgid "Input newlines"
|
||||
msgstr "Input ritorni a capo"
|
||||
msgstr "Input newlines"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:39
|
||||
msgid "Installed"
|
||||
@@ -1115,11 +1114,11 @@ msgstr "Installato"
|
||||
|
||||
#: tabby-electron/src/services/updater.service.ts:131
|
||||
msgid "Installing the update will close all tabs and restart Tabby."
|
||||
msgstr "L'installazione dell'aggiornamento chiuderà tutte le schede e riavvierà Tabby."
|
||||
msgstr "Installare l'aggiornamento chiuderà tutte le schede e riavvierà Tabby."
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:66
|
||||
msgid "Intelligent Ctrl-C (copy/abort)"
|
||||
msgstr "Ctrl-C intelligente (copia/annulla)"
|
||||
msgstr "Ctrl-C Intelligente (copia/annulla)"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:94
|
||||
msgid "Interactive"
|
||||
@@ -1156,7 +1155,7 @@ msgstr "Mantieni"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:154
|
||||
msgid "Keep Alive Interval (Milliseconds)"
|
||||
msgstr "Intervallo keep alive (Millisecondi)"
|
||||
msgstr "Keep Alive Interval (Millisecondi)"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:98
|
||||
msgid "Keep docked terminal always on top"
|
||||
@@ -1197,7 +1196,7 @@ msgstr "Avvia WinSCP"
|
||||
|
||||
#: tabby-ssh/src/hotkeys.ts:14
|
||||
msgid "Launch WinSCP for current SSH session"
|
||||
msgstr "Avvia WinSCP per la sessione SSH attuale"
|
||||
msgstr "Avvia WinSCP per la sessione SSH corrente"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:16
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:7
|
||||
@@ -1208,7 +1207,7 @@ msgstr "Scopri come consentire a Tabby di rilevare la cartella di lavoro della s
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:76
|
||||
#: tabby-core/src/tabContextMenu.ts:80
|
||||
msgid "Left"
|
||||
msgstr "A sinistra"
|
||||
msgstr "Sinistra"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:40
|
||||
msgid "Lets the shell handle Meta key instead of OS"
|
||||
@@ -1228,7 +1227,7 @@ msgstr "Editor in linea, l'input viene inviato dopo aver premuto Invio"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:83
|
||||
msgid "Line padding"
|
||||
msgstr "Riempimento riga"
|
||||
msgstr "Spessore della riga"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:21
|
||||
msgid "Loading"
|
||||
@@ -1255,11 +1254,11 @@ msgstr "Terminale locale"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:221
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:16
|
||||
msgid "Login scripts"
|
||||
msgstr "Script di accesso"
|
||||
msgstr "Script di login"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:57
|
||||
msgid "Long-click for context menu"
|
||||
msgstr "Clic prolungato per il menu contestuale"
|
||||
msgstr "Click prolungato per il menu contestuale"
|
||||
|
||||
#: tabby-core/src/services/profiles.service.ts:279
|
||||
msgid "Manage profiles"
|
||||
@@ -1267,7 +1266,7 @@ msgstr "Gestione profili"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:160
|
||||
msgid "Max Keep Alive Count"
|
||||
msgstr "Numero massimo keep Alive"
|
||||
msgstr "Numero massimo di Keep Alive"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:172
|
||||
msgid "Maximize the active pane"
|
||||
@@ -1330,11 +1329,11 @@ msgstr "Nuova scheda amministratore"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:58
|
||||
msgid "New config on {platform}"
|
||||
msgstr "Nuova configurazione IN {platform}"
|
||||
msgstr "Nuova configurazione su {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nome nuovo gruppo"
|
||||
msgstr "Nome del nuovo gruppo"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1404,7 +1403,7 @@ msgstr "Normale"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:22
|
||||
msgid "Normal font weight"
|
||||
msgstr "Peso font normale"
|
||||
msgstr "Peso del carattere normale"
|
||||
|
||||
#: tabby-terminal/src/components/searchPanel.component.ts:54
|
||||
#: tabby-terminal/src/components/searchPanel.component.ts:64
|
||||
@@ -1447,7 +1446,7 @@ msgstr "Opacità"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:82
|
||||
msgid "Open DevTools"
|
||||
msgstr "Apri strumenti di sviluppo"
|
||||
msgstr "Apri Strumenti di Sviluppo"
|
||||
|
||||
#: tabby-settings/src/hotkeys.ts:11
|
||||
msgid "Open Settings"
|
||||
@@ -1484,11 +1483,11 @@ msgstr "Predefinito del OS ({name})"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:46
|
||||
msgid "Output is shown as a hexdump"
|
||||
msgstr "L'output è visualizzato come un dump esadecimale"
|
||||
msgstr "L'output è mostrato come un hexdump"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:41
|
||||
msgid "Output is shown as it is received"
|
||||
msgstr "L'output è visualizzato come viene ricevuto"
|
||||
msgstr "L'output è mostrato come viene ricevuto"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:23
|
||||
msgid "Output mode"
|
||||
@@ -1496,7 +1495,7 @@ msgstr "Modalità di output"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/streamProcessingSettings.component.html:34
|
||||
msgid "Output newlines"
|
||||
msgstr "Output ritorni a capo"
|
||||
msgstr "Output newlines"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:42
|
||||
msgid "Override X11 display"
|
||||
@@ -1536,7 +1535,7 @@ msgstr "Parità"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:64
|
||||
msgid "Partial config sync is not possible when the config is encrypted via Vault."
|
||||
msgstr "La sincronizzazione parziale della configurazione non è possibile quando questa è cifrata all'interno della cassaforte."
|
||||
msgstr "La sincronizzazione parziale della configurazione non è possibile quando questa è cifrata all'interno della Cassaforte."
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
@@ -1567,7 +1566,7 @@ msgstr "Incolla quando non selezionato, altrimenti copia"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:528
|
||||
msgid "Paste multiple lines?"
|
||||
msgstr "Vuoi incollare righe multiple?"
|
||||
msgstr "Incollare righe multiple?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
||||
msgid "Paste on middle-click"
|
||||
@@ -1587,7 +1586,7 @@ msgstr "Plugin"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:4
|
||||
msgid "Plugins folder"
|
||||
msgstr "Cartella plugin"
|
||||
msgstr "Cartella dei plugin"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:38
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:10
|
||||
@@ -1605,7 +1604,7 @@ msgstr "Porte"
|
||||
|
||||
#: tabby-terminal/src/api/connectableTerminalTab.component.ts:87
|
||||
msgid "Press any key to reconnect"
|
||||
msgstr "Premi un tasto per riconnetterti"
|
||||
msgstr "Premi un tasto per riconnettersi"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/hotkeyInputModal.component.html:3
|
||||
msgid "Press the key now"
|
||||
@@ -1617,7 +1616,7 @@ msgstr "Previene la chiusura accidentale"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:110
|
||||
msgid "Prevents accidental execution of pasted commands"
|
||||
msgstr "Impedisci l'esecuzione accidentale di comandi incollati"
|
||||
msgstr "Impedisce l'esecuzione accidentale di comandi incollati"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:44
|
||||
msgid "Previous tab"
|
||||
@@ -1660,7 +1659,7 @@ msgstr "Viola"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:38
|
||||
msgid "Puts all of Tabby's configuration into the vault"
|
||||
msgstr "Trasferisci tutta la configurazione di Tabby all'interno della cassaforte"
|
||||
msgstr "Trasferisce tutta la configurazione di Tabby all'interno della Cassaforte"
|
||||
|
||||
#: tabby-core/src/index.ts:219
|
||||
#: tabby-core/src/services/profiles.service.ts:295
|
||||
@@ -1698,7 +1697,7 @@ msgstr "Riconetti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Riconnetti la scheda attuale (serial/telnet/SSH)"
|
||||
msgstr "Riconnetti la scheda corrente (Serial/Telnet/SSH)"
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1723,7 +1722,7 @@ msgstr "Remoto"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:124
|
||||
msgid "Remove whitespace and newlines around the copied text"
|
||||
msgstr "Rimuovi spazi bianchi e a riorni a capo dal testo copiato"
|
||||
msgstr "Rimuovi spazi bianchi e a capo dal testo copiato"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:26
|
||||
#: tabby-core/src/tabContextMenu.ts:120
|
||||
@@ -1755,7 +1754,7 @@ msgstr "Segnala un problema"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:81
|
||||
msgid "Require a key to click links"
|
||||
msgstr "Richiedi una chiave per fare clic sui collegamenti"
|
||||
msgstr "Richiede una chiave per fare clic sui collegamenti"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:62
|
||||
msgid "Reset zoom"
|
||||
@@ -1763,15 +1762,15 @@ msgstr "Reimposta zoom"
|
||||
|
||||
#: tabby-serial/src/hotkeys.ts:14
|
||||
msgid "Restart current serial session"
|
||||
msgstr "Riavvia la sessione seriale attuale"
|
||||
msgstr "Riavvia la sessione seriale corrente"
|
||||
|
||||
#: tabby-ssh/src/hotkeys.ts:10
|
||||
msgid "Restart current SSH session"
|
||||
msgstr "Riavvia la sessione SSH attuale"
|
||||
msgstr "Riavvia la sessione SSH corrente"
|
||||
|
||||
#: tabby-telnet/src/hotkeys.ts:10
|
||||
msgid "Restart current Telnet session"
|
||||
msgstr "Riavvia la sessione telnet attuale"
|
||||
msgstr "Riavvia la sessione Telnet corrente"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:64
|
||||
msgid "Restart tab"
|
||||
@@ -1783,11 +1782,11 @@ msgstr "Riavvia l'app per applicare le modifiche"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Vuoi ripristinare le impostazioni predefinite?"
|
||||
msgstr "Ripristinare le impostazioni predefinite?"
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Vuoi ripristinare le impostazioni predefinite ereditate?"
|
||||
msgstr "Ripristinare le impostazioni predefinite ereditate?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1795,17 +1794,17 @@ msgstr "Ripristina le schede del terminale all'avvio dell'app"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:147
|
||||
msgid "Reuse session for multiple tabs"
|
||||
msgstr "Riusa la sessione per più schede"
|
||||
msgstr "Riutilizzare la sessione per più schede"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:136
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:78
|
||||
#: tabby-core/src/tabContextMenu.ts:78
|
||||
msgid "Right"
|
||||
msgstr "A destra"
|
||||
msgstr "Destra"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:56
|
||||
msgid "Right click"
|
||||
msgstr "Clic destro"
|
||||
msgstr "Click destro"
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/localProfileSettings.component.html:5
|
||||
msgid "Run as administrator"
|
||||
@@ -1868,7 +1867,7 @@ msgstr "Scorrimento"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:47
|
||||
msgid "Scrolls the terminal to the bottom on user input"
|
||||
msgstr "Scorri il terminale in basso durante l'input utente"
|
||||
msgstr "Scorre il terminale in basso durante l'input dell'utente"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:74
|
||||
msgid "Search"
|
||||
@@ -1877,7 +1876,7 @@ msgstr "Cerca"
|
||||
#: tabby-terminal/src/components/colorSchemeSelector.component.ts:9
|
||||
#: tabby-terminal/src/components/colorSchemeSettingsForMode.component.ts:10
|
||||
msgid "Search color schemes"
|
||||
msgstr "Cerca tema terminale"
|
||||
msgstr "Ricerca tema del terminale"
|
||||
|
||||
#: tabby-settings/src/components/hotkeySettingsTab.component.ts:12
|
||||
msgid "Search hotkeys"
|
||||
@@ -1974,7 +1973,7 @@ msgstr "Shell"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:593
|
||||
msgid "Shell does not support current path detection"
|
||||
msgstr "La shell non supporta il rilevamento del percorso attuale"
|
||||
msgstr "La shell non supporta il rilevamento del percorso corrente"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:59
|
||||
msgid "Shell integration"
|
||||
@@ -1983,71 +1982,71 @@ msgstr "Integrazione shell"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Visualizza"
|
||||
msgstr "Mostra"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
msgstr "Visualizza il selettore profilo {type}"
|
||||
msgstr "Mostra il selettore profilo {type}"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
||||
msgid "Show a confirmation box when pasting multiple lines"
|
||||
msgstr "Visualizza una casella di conferma quando incolli più righe"
|
||||
msgstr "Mostra una casella di conferma quando incolli più righe"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:75
|
||||
msgid "Show built-in profiles in selector"
|
||||
msgstr "Visualizza profili integrati nel selettore"
|
||||
msgstr "Mostra profili integrati nel selettore"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:12
|
||||
msgid "Show command selector"
|
||||
msgstr "Visualizza selettore comandi"
|
||||
msgstr "Mostra selettore comandi"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:132
|
||||
msgid "Show config file"
|
||||
msgstr "Visualizza file di configurazione"
|
||||
msgstr "Mostra file di configurazione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:131
|
||||
msgid "Show defaults"
|
||||
msgstr "Visualizza predefiniti"
|
||||
msgstr "Mostra predefiniti"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:146
|
||||
msgid "Show Mixer"
|
||||
msgstr "Visualizza Mixer"
|
||||
msgstr "Mostra Mixer"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:56
|
||||
msgid "Show pane labels (for rearranging)"
|
||||
msgstr "Visualizza etichette riquadro (per riorganizzare)"
|
||||
msgstr "Mostra etichette riquadro (per riorganizzare)"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:164
|
||||
msgid "Show profile icon on tab"
|
||||
msgstr "Visualizza l'icona del profilo nella scheda"
|
||||
msgstr "Mostra l'icona del profilo nella scheda"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:16
|
||||
msgid "Show profile selector"
|
||||
msgstr "Visualizza selettore profilo"
|
||||
msgstr "Mostra selettore profilo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:68
|
||||
msgid "Show recent profiles in selector"
|
||||
msgstr "Visualizza i profili recenti nel selettore"
|
||||
msgstr "Mostra i profili recenti nel selettore"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:36
|
||||
msgid "Show release notes"
|
||||
msgstr "Visualizza note di rilascio"
|
||||
msgstr "Mostra note di rilascio"
|
||||
|
||||
#: tabby-serial/src/hotkeys.ts:10
|
||||
msgid "Show Serial connections"
|
||||
msgstr "Visualizza connessioni seriali"
|
||||
msgstr "Mostra connessioni seriali"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:152
|
||||
msgid "Show tabs in fullscreen mode"
|
||||
msgstr "Visualizza schede in modalità schermo intero"
|
||||
msgstr "Mostra schede in modalità schermo intero"
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:62
|
||||
msgid "Show toolbar"
|
||||
msgstr "Visualizza barra degli strumenti"
|
||||
msgstr "Mostra barra degli strumenti"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:45
|
||||
msgid "Show vault contents"
|
||||
msgstr "Visualizza contenuto della cassaforte"
|
||||
msgstr "Mostra contenuto della Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:29
|
||||
msgid "Sixel graphics support (experimental)"
|
||||
@@ -2144,7 +2143,7 @@ msgstr "Avvio"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:32
|
||||
msgid "Stop bits"
|
||||
msgstr "Bit stop"
|
||||
msgstr "Ferma i bit"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:52
|
||||
msgid "Strip"
|
||||
@@ -2193,7 +2192,7 @@ msgstr "Sincronizza tasti di scelta rapida"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:80
|
||||
msgid "Sync Vault"
|
||||
msgstr "Sincronizza cassaforte"
|
||||
msgstr "Sincronizza Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:74
|
||||
msgid "Sync window settings"
|
||||
@@ -2228,8 +2227,7 @@ msgstr "Attività della scheda"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/safeModeModal.component.html:3
|
||||
msgid "Tabby could not start with your plugins, so all third party plugins have been disabled in this session. The error was:"
|
||||
msgstr "Tabby non può avviarsi con i plugin, quindi tutti i plugin di terze parti sono stati disabilitati in questa sessione. \n"
|
||||
"L'errore era:"
|
||||
msgstr "Tabby non può avviarsi con i tuoi plugin, quindi tutti i plugin di terze parti sono stati disabilitati in questa sessione. L'errore era:"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:41
|
||||
msgid "Tabby news and updates on Twitter"
|
||||
@@ -2249,7 +2247,7 @@ msgstr "Larghezza schede"
|
||||
|
||||
#: tabby-telnet/src/profiles.ts:34
|
||||
msgid "Telnet session"
|
||||
msgstr "Sessione telnet"
|
||||
msgstr "Sessione Telnet"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:210
|
||||
#: tabby-terminal/src/settings.ts:43
|
||||
@@ -2282,7 +2280,7 @@ msgstr "Ci sono trasferimenti di file attivi"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||
msgid "There is a saved password for this connection"
|
||||
msgstr "Per questa connessione è presente una password salvata"
|
||||
msgstr "È presente una password salvata per questa connessione"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:102
|
||||
msgid "These apply to all profiles of a given type"
|
||||
@@ -2302,7 +2300,7 @@ msgstr "Seleziona se stai sperimentando aliasing, ghosting o altri problemi visi
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:20
|
||||
msgid "Toggle fullscreen mode"
|
||||
msgstr "Attiva/disattiva schermo intero"
|
||||
msgstr "Attiva/Disattiva schermo intero"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:36
|
||||
msgid "Toggle last tab"
|
||||
@@ -2310,11 +2308,11 @@ msgstr "Attiva/disattiva ultima scheda"
|
||||
|
||||
#: tabby-electron/src/hotkeys.ts:14
|
||||
msgid "Toggle terminal window"
|
||||
msgstr "Attiva/disattiva finestra terminale"
|
||||
msgstr "Attiva/disattiva finestra del terminale"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:40
|
||||
msgid "Toggles the Tabby window visibility"
|
||||
msgstr "Attiva/disattiva visibilità della finestra di Tabby"
|
||||
msgstr "Attiva/disattiva la visibilità della finestra di Tabby"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:130
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:74
|
||||
@@ -2360,7 +2358,7 @@ msgstr "Sgancia"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:81
|
||||
msgid "Up"
|
||||
msgstr "In alto"
|
||||
msgstr "Su"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:14
|
||||
#: tabby-electron/src/services/updater.service.ts:133
|
||||
@@ -2369,7 +2367,7 @@ msgstr "Aggiorna"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:52
|
||||
msgid "Upgrade to {version}"
|
||||
msgstr "Aggiorna alla {version}"
|
||||
msgstr "Aggiornamento alla {version}"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:42
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:10
|
||||
@@ -2403,7 +2401,7 @@ msgstr "Attraverso il metodo CONNECT"
|
||||
|
||||
#: tabby-ssh/src/session/ssh.ts:465
|
||||
msgid "Using preset password"
|
||||
msgstr "Usa password preimpostata"
|
||||
msgstr "Usare password preimpostata"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:9
|
||||
msgid "Vault"
|
||||
@@ -2411,11 +2409,11 @@ msgstr "Cassaforte"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:4
|
||||
msgid "Vault is an always-encrypted container for secrets such as SSH passwords and private key passphrases."
|
||||
msgstr "La cassaforte è un contenitore protetto da cifratura per proteggere password SSH e frasi segrete delle chiavi private."
|
||||
msgstr "La Cassaforte è un contenitore protetto da cifratura per proteggere password SSH e frasi segrete delle chiavi private."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:17
|
||||
msgid "Vault is empty"
|
||||
msgstr "La cassaforte è vuota"
|
||||
msgstr "La Cassaforte è vuota"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/unlockVaultModal.component.html:4
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:44
|
||||
@@ -2424,11 +2422,11 @@ msgstr "Cassaforte bloccata"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:3
|
||||
msgid "Vault is not configured"
|
||||
msgstr "La cassaforte non è configurata"
|
||||
msgstr "La Cassaforte non è configurata"
|
||||
|
||||
#: tabby-core/src/services/fileProviders.service.ts:40
|
||||
msgid "Vault master passphrase needs to be set to allow storing secrets"
|
||||
msgstr "Per consentire la memorizzazione di dati cifrati deve essere impostata la frase segreta principale della cassaforte"
|
||||
msgstr "La frase segreta principale della Cassaforte deve essere impostata per consentire la memorizzazione di dati cifrati"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:11
|
||||
msgid "Verify host keys when connecting"
|
||||
@@ -2452,11 +2450,11 @@ msgstr "Visive"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:116
|
||||
msgid "Warn on multi-line paste"
|
||||
msgstr "Avvisa prima di incollare righe multiple"
|
||||
msgstr "Avviso prima di incollare righe multiple"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:5
|
||||
msgid "Warn when closing active connections"
|
||||
msgstr "Avvisa quando chiudi le connessioni attive"
|
||||
msgstr "Avverti quando chiudi le connessioni attive"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:6
|
||||
msgid "Warning: remote host's key has suddenly changed!"
|
||||
@@ -2480,11 +2478,11 @@ msgstr "Quando termina una sessione"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
msgstr "Quando abilitato, i collegamentisono cliccabili solo tenendo premuto questo tasto"
|
||||
msgstr "Quando abilitato, i link sono cliccabili solo tenendo premuto questo tasto"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:18
|
||||
msgid "When WinSCP is detected, you can launch an SCP session from the context menu."
|
||||
msgstr "Quando viene rilevato WinSCP, è possibile avviare una sessione SCP dal menu contestuale."
|
||||
msgstr "Quando si rileva WinSCP, è possibile avviare una sessione SCP dal menu contestuale."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:53
|
||||
msgid "Whether a custom window or an OS native window should be used"
|
||||
@@ -2505,7 +2503,7 @@ msgstr "Dimensione finestra lungo il bordo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:105
|
||||
msgid "Window dimension away from the edge"
|
||||
msgstr "Dimensione finestra fuori dal bordo"
|
||||
msgstr "Dimensione della finestra fuori dal bordo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:52
|
||||
msgid "Window frame"
|
||||
@@ -2521,7 +2519,7 @@ msgstr "Windows 10 build 18309 o superiore è raccomandato per ConPTY"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:17
|
||||
msgid "WinSCP path"
|
||||
msgstr "Percorso WinSCP"
|
||||
msgstr "Posizione di WinSCP"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:74
|
||||
msgid "Word separators"
|
||||
@@ -2554,11 +2552,11 @@ msgstr "Giallo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/setVaultPassphraseModal.component.html:4
|
||||
msgid "You can change it later, but it's unrecoverable if forgotten."
|
||||
msgstr "Si può cambiare più tardi, ma è irrecuperabile se dimenticata."
|
||||
msgstr "Si può cambiare più tardi, ma è irrecuperabile se dimenticato."
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:7
|
||||
msgid "You could be under a man-in-the-middle attack right now, or the host key could have just been changed."
|
||||
msgstr "In questo momento potresti essere sotto un attacco man-in-the-middle, o la chiave dell'host potrebbe essere stata appena cambiata."
|
||||
msgstr "Potresti essere sotto un attacco man-in-the-middle in questo momento, o la chiave dell'host potrebbe essere stata appena cambiata."
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:54
|
||||
msgid "Zoom in"
|
||||
|
@@ -10,11 +10,11 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"Language: ja_JP\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
msgstr "\"{command}\"が実行中です。閉じてもよろしいですか?"
|
||||
msgstr "\"{command}\"が実行中です。閉じますか?"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:78
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:88
|
||||
@@ -23,7 +23,7 @@ msgstr "{name} コピー"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:77
|
||||
msgid "A second font family used to display characters missing in the main font"
|
||||
msgstr "メインフォントに不足している文字を表示する際に使用されます"
|
||||
msgstr "既定フォントに不足している文字を表示する際に使用されます"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:49
|
||||
msgid "Abort all"
|
||||
@@ -64,7 +64,7 @@ msgstr "追加..."
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:84
|
||||
msgid "Additional space between lines"
|
||||
msgstr "行と行の間隔を広げます"
|
||||
msgstr "行間にスペースを空けます"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:22
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:61
|
||||
@@ -79,15 +79,15 @@ msgstr "SSHエージェント"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:134
|
||||
msgid "Agent forwarding"
|
||||
msgstr "SSHエージェント転送"
|
||||
msgstr "SSHエージェントの転送"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:35
|
||||
msgid "Agent pipe path"
|
||||
msgstr "SSHエージェントのパイプ名"
|
||||
msgstr "SSHエージェントのパイプのパス"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:24
|
||||
msgid "Agent type"
|
||||
msgstr "SSHエージェントの指定"
|
||||
msgstr "SSHエージェントの種類"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:169
|
||||
msgid "Allows opening .bat files in tabs, but breaks some shells"
|
||||
@@ -354,7 +354,7 @@ msgstr "コマンドライン"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:13
|
||||
msgid "Command's stdin/stdout is used instead of a network connection"
|
||||
msgstr "ネットワーク接続の代わりにコマンドの stdin/stdout を使用します"
|
||||
msgstr "ネットワーク接続の代わりにコマンドの stdin/stdout が使用されます"
|
||||
|
||||
#: tabby-core/src/services/commands.service.ts:105
|
||||
msgid "Commands"
|
||||
@@ -486,7 +486,7 @@ msgstr "使用中の配色"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:17
|
||||
msgid "Current host key fingerprint"
|
||||
msgstr "現在のホスト鍵のフィンガープリント"
|
||||
msgstr "使用中のホストキーのフィンガープリント"
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:184
|
||||
msgid "Current process: {name}"
|
||||
@@ -618,7 +618,7 @@ msgstr "デバイス"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:10
|
||||
msgid "Direct"
|
||||
msgstr "直接接続"
|
||||
msgstr "直接"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:57
|
||||
msgid "Disable"
|
||||
@@ -1039,11 +1039,11 @@ msgstr "ホスト"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:206
|
||||
msgid "Host key"
|
||||
msgstr "ホスト鍵"
|
||||
msgstr "ホストキー"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:3
|
||||
msgid "Host key verification"
|
||||
msgstr "ホスト鍵の検証"
|
||||
msgstr "ホストキーの検証"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/hotkeySettingsTab.component.html:2
|
||||
#: tabby-settings/src/settings.ts:15
|
||||
@@ -1131,7 +1131,7 @@ msgstr "無効な構文"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:16
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:43
|
||||
msgid "Jump host"
|
||||
msgstr "踏み台サーバー"
|
||||
msgstr "ジャンプサーバー"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:34
|
||||
msgid "Jump to next word"
|
||||
@@ -1188,7 +1188,7 @@ msgstr "言語"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:11
|
||||
msgid "Last known host key fingerprint"
|
||||
msgstr "最後に使われたホスト鍵のフィンガープリント"
|
||||
msgstr "最後に使用したホストキーのフィンガープリント"
|
||||
|
||||
#: tabby-ssh/src/tabContextMenu.ts:32
|
||||
msgid "Launch WinSCP"
|
||||
@@ -1201,7 +1201,7 @@ msgstr "現在のSSHセッションでWinSCPを起動"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:16
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshTab.component.html:7
|
||||
msgid "Learn how to allow Tabby to detect remote shell's working directory."
|
||||
msgstr "リモート上の作業ディレクトリを自動検出する方法をご紹介します。"
|
||||
msgstr "Tabbyにリモート側の作業ディレクトリを検出させる方法をご紹介します。"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:134
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:76
|
||||
@@ -1227,7 +1227,7 @@ msgstr "Enterキーを押すと入力が送信されます"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:83
|
||||
msgid "Line padding"
|
||||
msgstr "行間"
|
||||
msgstr "行間の大きさ"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sftpPanel.component.html:21
|
||||
msgid "Loading"
|
||||
@@ -1325,7 +1325,7 @@ msgstr "新規"
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
msgstr "新しい管理者権限タブ"
|
||||
msgstr "新しい管理者タブ"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:58
|
||||
msgid "New config on {platform}"
|
||||
@@ -1511,11 +1511,11 @@ msgstr "リモートを上書きして同期"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:76
|
||||
msgid "Overwrite the config on the remote side and start syncing?"
|
||||
msgstr "リモート上の設定を上書きして、同期を開始しますか?"
|
||||
msgstr "リモート上の設定を上書きして同期を開始しますか?"
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:96
|
||||
msgid "Overwrite the local config and start syncing?"
|
||||
msgstr "現在のローカル上の設定を上書きして、同期を開始しますか?"
|
||||
msgstr "これまでのローカル上の設定を上書きして、同期を開始しますか?"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:189
|
||||
msgid "Pane resize step"
|
||||
@@ -1535,7 +1535,7 @@ msgstr "パリティ"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/configSyncSettingsTab.component.html:64
|
||||
msgid "Partial config sync is not possible when the config is encrypted via Vault."
|
||||
msgstr "Vaultによって設定ファイルを暗号化した場合、設定の一部だけを同期から外すことはできません。"
|
||||
msgstr "設定ファイルがVaultによって暗号化されている場合、部分的な設定の同期はできません。"
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
@@ -1562,11 +1562,11 @@ msgstr "クリップボードから貼り付け"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:63
|
||||
msgid "Paste if no selection, else copy"
|
||||
msgstr "通常は貼り付け、テキスト選択時のみコピー"
|
||||
msgstr "通常は貼り付け、テキスト選択時のみコピー、"
|
||||
|
||||
#: tabby-terminal/src/api/baseTerminalTab.component.ts:528
|
||||
msgid "Paste multiple lines?"
|
||||
msgstr "複数行貼り付けを実行してもよろしいですか?"
|
||||
msgstr "複数行の貼り付けを実行してもよろしいですか?"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:68
|
||||
msgid "Paste on middle-click"
|
||||
@@ -1960,7 +1960,7 @@ msgstr "最近使用したプロファイルをセレクターに表示しない
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:36
|
||||
msgid "Sets the SSH agent's named pipe path."
|
||||
msgstr "SSHエージェントの名前付きパイプのパスを指定します。"
|
||||
msgstr "SSHエージェントの名前付きパイプのパスを設定"
|
||||
|
||||
#: tabby-settings/src/buttonProvider.ts:28
|
||||
#: tabby-settings/src/components/settingsTab.component.ts:57
|
||||
@@ -1990,7 +1990,7 @@ msgstr "{type} プロファイルセレクターを表示"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:117
|
||||
msgid "Show a confirmation box when pasting multiple lines"
|
||||
msgstr "複数行の貼り付けをする際に確認画面を表示します"
|
||||
msgstr "複数行を貼り付ける際に確認ボックスを表示します"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:75
|
||||
msgid "Show built-in profiles in selector"
|
||||
@@ -2268,7 +2268,7 @@ msgstr "端末の識別情報"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||
msgid "Thank you for downloading Tabby!"
|
||||
msgstr "Tabbyをダウンロードしてくださり、ありがとうございます!"
|
||||
msgstr "Tabbyをダウンロードしていただきありがとうございます!"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:5
|
||||
msgid "Theme"
|
||||
@@ -2280,7 +2280,7 @@ msgstr "ファイル転送を使用中"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||
msgid "There is a saved password for this connection"
|
||||
msgstr "この接続に使用するパスワードを保存しています。"
|
||||
msgstr "この接続に利用可能なパスワードが保存されています。"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:102
|
||||
msgid "These apply to all profiles of a given type"
|
||||
@@ -2397,7 +2397,7 @@ msgstr "ユーザー名"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:25
|
||||
msgid "Using CONNECT method"
|
||||
msgstr "CONNECTメソッドを使用します"
|
||||
msgstr "CONNECTメソッドの使用"
|
||||
|
||||
#: tabby-ssh/src/session/ssh.ts:465
|
||||
msgid "Using preset password"
|
||||
@@ -2426,11 +2426,11 @@ msgstr "Vaultが設定されていません"
|
||||
|
||||
#: tabby-core/src/services/fileProviders.service.ts:40
|
||||
msgid "Vault master passphrase needs to be set to allow storing secrets"
|
||||
msgstr "機密性の高い情報を保存するには、Vaultにマスターパスフレーズを設定する必要があります"
|
||||
msgstr "機密性の高い情報を保存するには、Vaultのマスターパスフレーズを設定する必要があります"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:11
|
||||
msgid "Verify host keys when connecting"
|
||||
msgstr "接続時にホスト鍵を検証"
|
||||
msgstr "接続時にホストキーを確認"
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:75
|
||||
msgid "Version"
|
||||
@@ -2478,7 +2478,7 @@ msgstr "セッション終了時"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
msgstr "有効にすると、特定のキーを押しながらクリックした時のみリンクを開きます"
|
||||
msgstr "有効にすると、特定のキーを押しながらクリックした時のみリンクが開けるようになります"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:18
|
||||
msgid "When WinSCP is detected, you can launch an SCP session from the context menu."
|
||||
@@ -2556,7 +2556,7 @@ msgstr "後から変更できますが、忘れた場合復元することはで
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:7
|
||||
msgid "You could be under a man-in-the-middle attack right now, or the host key could have just been changed."
|
||||
msgstr "現在中間者攻撃を受けているか、もしくはホスト鍵が変更された可能性があります。"
|
||||
msgstr "現在中間者攻撃を受けているか、もしくは、ホストキーが変更された可能性があります。"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:54
|
||||
msgid "Zoom in"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Korean\n"
|
||||
"Language: ko_KR\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -362,7 +362,7 @@ msgstr "명령어"
|
||||
|
||||
#: tabby-core/src/theme.ts:16
|
||||
msgid "Compact (legacy)"
|
||||
msgstr "컴팩트 (레거시)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/configSyncSettingsTab.component.ts:126
|
||||
msgid "Config deleted"
|
||||
@@ -916,6 +916,14 @@ msgstr "CRLF 강제"
|
||||
msgid "Force LF"
|
||||
msgstr "LF 강제"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:56
|
||||
msgid "Implicit CR in every LF"
|
||||
msgstr "LF에만 CR 추가"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:57
|
||||
msgid "Implicit LF in every CR"
|
||||
msgstr "CR에만 LF 추가"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshSettingsTab.component.html:25
|
||||
msgid "Forces a specific SSH agent connection type."
|
||||
msgstr "특정 SSH 에이전트로 연결 유형 강제"
|
||||
@@ -1052,7 +1060,7 @@ msgstr "단축키"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:83
|
||||
msgid "How Tabby presents itself through environment vars"
|
||||
msgstr "Tabby가 환경 변수에서 표시되는 방식"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:24
|
||||
msgid "HTTP proxy"
|
||||
@@ -1088,13 +1096,13 @@ msgstr "가로 분할 크기 크게"
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:244
|
||||
msgid "Increase vertical split size"
|
||||
msgstr "세로 분할 크기 크게"
|
||||
msgstr "세로 분할 크기 작게"
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:91
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "입력"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1471,7 +1479,7 @@ msgstr "옵션"
|
||||
|
||||
#: tabby-core/src/utils.ts:62
|
||||
msgid "Orange"
|
||||
msgstr "주황색"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-electron/src/shells/macDefault.ts:25
|
||||
msgid "OS default"
|
||||
@@ -1527,7 +1535,7 @@ msgstr "패널"
|
||||
|
||||
#: tabby-core/src/theme.ts:26
|
||||
msgid "Paper (legacy)"
|
||||
msgstr "종이 (레거시)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:38
|
||||
msgid "Parity"
|
||||
@@ -1539,11 +1547,11 @@ msgstr "구성이 Vault를 통해 암호화된 경우 부분 구성 동기화를
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "왼쪽 글자 삭제"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
msgstr "해시 {hash} 의 개인 키(Private key) 암호..."
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:100
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:82
|
||||
@@ -1683,7 +1691,7 @@ msgstr "타임아웃 (밀리초)"
|
||||
#: tabby-core/src/services/profiles.service.ts:249
|
||||
#: tabby-electron/src/services/dockMenu.service.ts:28
|
||||
msgid "Recent"
|
||||
msgstr "최근"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialTab.component.html:5
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:52
|
||||
@@ -2010,11 +2018,11 @@ msgstr "기본값 표시"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:146
|
||||
msgid "Show Mixer"
|
||||
msgstr "믹서 표시"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:56
|
||||
msgid "Show pane labels (for rearranging)"
|
||||
msgstr "항목 라벨 표시 (재배열 용도)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:164
|
||||
msgid "Show profile icon on tab"
|
||||
@@ -2135,7 +2143,7 @@ msgstr "{user}@{host}:{port} 의 SSH 비밀번호"
|
||||
|
||||
#: tabby-core/src/theme.ts:8
|
||||
msgid "Standard (legacy)"
|
||||
msgstr "기본 (레거시)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:150
|
||||
msgid "Startup"
|
||||
@@ -2147,7 +2155,7 @@ msgstr "정지 비트"
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:52
|
||||
msgid "Strip"
|
||||
msgstr "스트립(Strip)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:41
|
||||
msgid "Subscribe to updates"
|
||||
@@ -2264,7 +2272,7 @@ msgstr "터미널 벨"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:82
|
||||
msgid "Terminal identification"
|
||||
msgstr "터미널 식별 방식"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:7
|
||||
msgid "Thank you for downloading Tabby!"
|
||||
@@ -2276,7 +2284,7 @@ msgstr "테마"
|
||||
|
||||
#: tabby-core/src/components/transfersMenu.component.ts:47
|
||||
msgid "There are active file transfers"
|
||||
msgstr "활성화된 파일 전송이 있습니다"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:102
|
||||
msgid "There is a saved password for this connection"
|
||||
@@ -2288,7 +2296,7 @@ msgstr "이와 같은 유형의 모든 프로필에 적용됩니다."
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "이 그룹의 해당 유형을 가진 모든 프로필에 적용됩니다"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2312,7 +2320,7 @@ msgstr "터미널 창 전환"
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:40
|
||||
msgid "Toggles the Tabby window visibility"
|
||||
msgstr "Tabby 창 표시 전환"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:130
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:74
|
||||
@@ -2350,7 +2358,7 @@ msgstr "알 수 없음"
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:98
|
||||
msgid "Unknown secret of type {type} for {key}"
|
||||
msgstr "{key} 에 대한 알 수 없는 타입 {type}"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalToolbar.component.html:4
|
||||
msgid "Unpin"
|
||||
@@ -2540,7 +2548,7 @@ msgstr "WSL 터미널의 벨은 오직 볼륨 믹서를 통해서만 음소거
|
||||
|
||||
#: locale/tmp-html/tabby-local/src/components/shellSettingsTab.component.html:14
|
||||
msgid "WSL terminal only supports TrueColor with ConPTY"
|
||||
msgstr "WSL terminal의 TrueColor는 ConPTY가 활성화 되어있을 때만 지원됨"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:128
|
||||
msgid "X11 forwarding"
|
||||
@@ -2570,5 +2578,5 @@ msgstr "축소"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshPortForwardingConfig.component.html:5
|
||||
msgctxt "[Dynamic] port forwarding"
|
||||
msgid "id.port-forwarding.dynamic"
|
||||
msgstr "동적"
|
||||
msgstr ""
|
||||
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Polish\n"
|
||||
"Language: pl_PL\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Pozwala na szybkie otwarcie terminalu w wybranym folderze"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Zawsze ciemny"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Zawsze jasny"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -538,7 +538,7 @@ msgstr "Domyślny profil dla nowych kart"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Domyślne ustawienia profilu grupy"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -745,7 +745,7 @@ msgstr "Włącz"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:32
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:66
|
||||
msgid "Enable analytics"
|
||||
msgstr "Włącz Analitykę"
|
||||
msgstr "Wyłącz Analitykę"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:87
|
||||
msgid "Enable animations"
|
||||
@@ -939,7 +939,7 @@ msgstr "Ze schematu kolorów"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Z systemu"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Natywna"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Nowy"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nowa konfiguracja na {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nazwa nowej grupy"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Nowy profil"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Nowy grupa profili"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Zresetuj aplikację, aby zastosować zmiany"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Przywrócić ustawienia domyślne?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Przywrócić ustawienia do odziedziczonych domyślnych?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Zastępstwa dozwolone."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Zmień schemat kolorów"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"Language: pt_BR\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Permite abrir rapidamente um terminal na pasta selecionada"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Sempre escuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Sempre claro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Tipo de fundo"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Modo botão Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,7 +337,7 @@ msgstr "Esquema de cores"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Esquema de cores"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "CSS Personalizado"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Modo escuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Diminuir tamanho de divisão horizontal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "Tipo de \"Conectar a \" padrão"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Tipo de conexão padrão usado pelo recurso de conexão rápida (ex. SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Perfil padrão para novas abas"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Configurações de grupo de perfil padrão"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Desconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Desconectar aba atual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "Do esquema de cores"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Do sistema"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Hexadecimal"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Ocultar"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Aumentar o tamanho da divisão vertical"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Permite que o shell manipule Meta key em vez de S.O"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Modo claro"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Nativo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Novo"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Nova configuração em {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Nome do novo grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Novo perfil"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Novo Grupo de Perfil"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "Nas discussões no GitHub"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Só fechar a aba quando a sessão for terminada explicitamente"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Sincronização parcial de configuração não é possível quando a con
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Passar"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Reconectar"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Reconectar a aba atual (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Reinicie o aplicativo para aplicar as alterações"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Restaurar as configurações para o padrão?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Restaurar configurações para padrões herdados ?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Integração com o Shell"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Substituições permitidas."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Alternar esquema de cores"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Estas se aplicam a todos os perfis de um determinado tipo"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Estas se aplicam a todos os perfis de um determinado tipo neste grupo"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Novidades"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Quando uma sessão termina"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"Language: pt_PT\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -39,7 +39,7 @@ msgstr "Aceitar apenas desta vez"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||
msgid "Accessibility"
|
||||
msgstr "acessibilidade"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:27
|
||||
msgid "Acrylic background"
|
||||
@@ -100,12 +100,12 @@ msgstr "Permite abrir um terminal rapidamente na pasta selecionada"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "sempre escuro"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Sempre luminoso"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -498,7 +498,7 @@ msgstr "Formato do cursor"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsForMode.component.html:46
|
||||
msgid "Custom"
|
||||
msgstr "Personalizado"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:90
|
||||
msgid "Custom CSS"
|
||||
@@ -538,7 +538,7 @@ msgstr "Perfil padrão para novas abas"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Parâmetros do grupo de perfis por defeito"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -736,7 +736,7 @@ msgstr "Editar"
|
||||
|
||||
#: tabby-electron/src/sftpContextMenu.ts:35
|
||||
msgid "Edit locally"
|
||||
msgstr "Editar localmente"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-plugin-manager/src/components/pluginsSettingsTab.component.html:58
|
||||
msgid "Enable"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru_RU\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Позволяет быстро открыть терминал в вы
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Всегда тёмная"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Всегда светлая"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Тип фона"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Режим работы клавиши Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -337,7 +337,7 @@ msgstr "Цветовая схема"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:2
|
||||
msgid "Color schemes"
|
||||
msgstr "Цветовая схема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:81
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:216
|
||||
@@ -506,7 +506,7 @@ msgstr "Пользовательский CSS"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:17
|
||||
msgid "Dark mode"
|
||||
msgstr "Тёмная тема"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:26
|
||||
msgid "Data bits"
|
||||
@@ -526,11 +526,11 @@ msgstr "Уменьшить размер разделения по вертика
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:92
|
||||
msgid "Default \"Connect to\" type"
|
||||
msgstr "«Подключиться к» по умолчанию"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Подключение по умолчанию, используемое быстрым подключением (например, SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Профиль по умолчанию для новых вкладок"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Настройки группы профилей по умолчанию"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Отсоединиться"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Отключиться в текущей вкладке (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "Из цветовой схемы"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "Системная"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1006,7 +1006,7 @@ msgstr "Шестнадцатеричный"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:49
|
||||
msgid "Hide"
|
||||
msgstr "Скрыть"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:176
|
||||
msgid "Hide tab close button"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Увеличить размер разделения по вертика
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Ввод"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1215,7 +1215,7 @@ msgstr "Позволяет оболочке обрабатывать клави
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:22
|
||||
msgid "Light mode"
|
||||
msgstr "Светлая тема"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:27
|
||||
msgid "Line by line"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Системная"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Новый"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Новая конфигурация на {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Имя новой группы"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Новый профиль"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Новая группа профилей"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "На GitHub Discussions"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Закрывать вкладки только при явном закрытии сеанса"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Частичная синхронизация конфигурации
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Пропускать насквозь"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Переподключение"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Переподключиться в текущей вкладке (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Перезапустите приложение, чтобы примен
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Восстановить настройки по умолчанию?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Восстановить унаследованные настройки по умолчанию?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -1982,7 +1982,7 @@ msgstr "Интеграция в систему"
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:50
|
||||
#: locale/tmp-html/tabby-settings/src/components/vaultSettingsTab.component.html:25
|
||||
msgid "Show"
|
||||
msgstr "Показать"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/hotkeys.ts:275
|
||||
msgid "Show {type} profile selector"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Допускаются подстановки."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Переключить цветовую схему"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Применяются для всех профилей данного
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "Они применяются ко всем профилям данного типа в группе"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Что нового"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "При завершении сеанса"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
2574
locale/sr-SP.po
2574
locale/sr-SP.po
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Swedish\n"
|
||||
"Language: sv_SE\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -35,7 +35,7 @@ msgstr "Acceptera och kom ihåg nyckel"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:25
|
||||
msgid "Accept just this once"
|
||||
msgstr "Acceptera bara den här gången"
|
||||
msgstr "Acceptera bara denna gång"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/settingsTab.component.html:84
|
||||
msgid "Accessibility"
|
||||
|
2575
locale/tr-TR.po
2575
locale/tr-TR.po
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"Language: uk_UA\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,12 +100,12 @@ msgstr "Дозволяє швидко відкрити термінал у ви
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "Завжди темно"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
msgid "Always light"
|
||||
msgstr "Завжди світити"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:2
|
||||
#: tabby-terminal/src/settings.ts:14
|
||||
@@ -185,7 +185,7 @@ msgstr "Тип фону"
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/inputProcessingSettings.component.html:4
|
||||
msgid "Backspace key mode"
|
||||
msgstr "Режим клавіші Backspace"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-serial/src/components/serialProfileSettings.component.html:14
|
||||
#: tabby-serial/src/components/serialTab.component.ts:93
|
||||
@@ -530,7 +530,7 @@ msgstr "За замовчуванням \"Під'єднатись до\" тип"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:93
|
||||
msgid "Default connection type used by quick connect feature (ex. SSH, Telnet)"
|
||||
msgstr "Тип підключення за замовчуванням використовується для швидкого з'єднання (напр., SSH, Telnet)"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:8
|
||||
msgid "Default profile for new tabs"
|
||||
@@ -538,7 +538,7 @@ msgstr "Зменшити розмір поділу по вертикалі"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:16
|
||||
msgid "Default profile group settings"
|
||||
msgstr "Налаштування групи за замовчуванням"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:101
|
||||
msgid "Default profile settings"
|
||||
@@ -651,7 +651,7 @@ msgstr "Від'єднатися"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:106
|
||||
msgid "Disconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Відключити поточну вкладку (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-ssh/src/components/sshTab.component.ts:198
|
||||
#: tabby-telnet/src/components/telnetTab.component.ts:81
|
||||
@@ -939,7 +939,7 @@ msgstr "З колірної схеми"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:23
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:9
|
||||
msgid "From system"
|
||||
msgstr "З системи"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/appearanceSettingsTab.component.html:44
|
||||
msgid "From theme"
|
||||
@@ -1094,7 +1094,7 @@ msgstr "Збільшити розмір поділу по вертикалі"
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:226
|
||||
#: locale/tmp-html/tabby-telnet/src/components/telnetProfileSettings.component.html:21
|
||||
msgid "Input"
|
||||
msgstr "Input"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/components/streamProcessingSettings.component.ts:18
|
||||
msgid "Input is sent as you type"
|
||||
@@ -1321,7 +1321,7 @@ msgstr "Рідний"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:21
|
||||
msgid "New"
|
||||
msgstr "Новий"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-local/src/tabContextMenu.ts:53
|
||||
msgid "New admin tab"
|
||||
@@ -1333,7 +1333,7 @@ msgstr "Нова конфігурація на {platform}"
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:144
|
||||
msgid "New group name"
|
||||
msgstr "Нова назва групи"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/loginScriptsSettings.component.html:16
|
||||
msgid "New item"
|
||||
@@ -1349,7 +1349,7 @@ msgstr "Новий профіль"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/profilesSettingsTab.component.html:24
|
||||
msgid "New profile Group"
|
||||
msgstr "Нова група профілів"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-terminal/src/tabContextMenu.ts:176
|
||||
msgid "New profile name"
|
||||
@@ -1438,7 +1438,7 @@ msgstr "На GitHub Discussions"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:47
|
||||
msgid "Only close the tab when session is explicitly terminated"
|
||||
msgstr "Закривати вкладку при явному припиненні сеансу"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:46
|
||||
msgid "Opacity"
|
||||
@@ -1539,7 +1539,7 @@ msgstr "Часткова синхронізація конфігурації н
|
||||
|
||||
#: tabby-terminal/src/components/inputProcessingSettings.component.ts:17
|
||||
msgid "Pass-through"
|
||||
msgstr "Дохід"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/vaultSettingsTab.component.ts:92
|
||||
msgid "Passphrase for a private key with hash {hash}..."
|
||||
@@ -1697,7 +1697,7 @@ msgstr "Відновити з'єднання"
|
||||
|
||||
#: tabby-terminal/src/hotkeys.ts:102
|
||||
msgid "Reconnect current tab (Serial/Telnet/SSH)"
|
||||
msgstr "Повторне підключення поточної вкладки (Serial/Telnet/SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/utils.ts:64
|
||||
msgid "Red"
|
||||
@@ -1782,11 +1782,11 @@ msgstr "Перезапустіть програму, щоб застосуват
|
||||
|
||||
#: tabby-settings/src/components/profilesSettingsTab.component.ts:316
|
||||
msgid "Restore settings to defaults ?"
|
||||
msgstr "Відновити налаштування за замовчуванням?"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-settings/src/components/editProfileGroupModal.component.ts:36
|
||||
msgid "Restore settings to inherited defaults ?"
|
||||
msgstr "Відновити параметри до типових значень?"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:159
|
||||
msgid "Restore terminal tabs on app start"
|
||||
@@ -2160,7 +2160,7 @@ msgstr "Допускаються заміни."
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:19
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:5
|
||||
msgid "Switch color scheme"
|
||||
msgstr "Переключити колірну схему"
|
||||
msgstr ""
|
||||
|
||||
#: tabby-core/src/tabContextMenu.ts:290
|
||||
msgid "Switch profile"
|
||||
@@ -2288,7 +2288,7 @@ msgstr "Це застосовується до всіх профілів зад
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileGroupModal.component.html:17
|
||||
msgid "These apply to all profiles of a given type in this group"
|
||||
msgstr "До всіх профілів даного типу в цій групі"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/windowSettingsTab.component.html:59
|
||||
msgid "Thin"
|
||||
@@ -2474,7 +2474,7 @@ msgstr "Що нового"
|
||||
|
||||
#: locale/tmp-html/tabby-settings/src/components/editProfileModal.component.html:46
|
||||
msgid "When a session ends"
|
||||
msgstr "Коли сесія закінчиться"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-terminal/src/components/terminalSettingsTab.component.html:82
|
||||
msgid "When enabled, links are only clickable while holding this key"
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"Language: zh_CN\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-10-06 11:30\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -100,7 +100,7 @@ msgstr "允许在选定的文件夹中快速打开终端"
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:25
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:11
|
||||
msgid "Always dark"
|
||||
msgstr "始终使用暗色"
|
||||
msgstr ""
|
||||
|
||||
#: locale/tmp-html/tabby-core/src/components/welcomeTab.component.html:27
|
||||
#: locale/tmp-html/tabby-terminal/src/components/colorSchemeSettingsTab.component.html:13
|
||||
|
@@ -10,7 +10,7 @@ msgstr ""
|
||||
"Project-Id-Version: tabby\n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"Language: zh_TW\n"
|
||||
"PO-Revision-Date: 2024-07-10 09:04\n"
|
||||
"PO-Revision-Date: 2023-11-04 21:09\n"
|
||||
|
||||
#: tabby-local/src/components/terminalTab.component.ts:113
|
||||
msgid "\"{command}\" is still running. Close?"
|
||||
@@ -1039,7 +1039,7 @@ msgstr "主機"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/sshProfileSettings.component.html:206
|
||||
msgid "Host key"
|
||||
msgstr "主機金鑰"
|
||||
msgstr "快速鍵"
|
||||
|
||||
#: locale/tmp-html/tabby-ssh/src/components/hostKeyPromptModal.component.html:3
|
||||
msgid "Host key verification"
|
||||
|
@@ -1,3 +1,4 @@
|
||||
import slugify from 'slugify'
|
||||
import { BaseTabComponent } from '../components/baseTab.component'
|
||||
import { MenuItemOptions } from './menu'
|
||||
import { ToolbarButton } from './toolbarButtonProvider'
|
||||
@@ -6,34 +7,33 @@ export enum CommandLocation {
|
||||
LeftToolbar = 'left-toolbar',
|
||||
RightToolbar = 'right-toolbar',
|
||||
StartPage = 'start-page',
|
||||
TabHeaderMenu = 'tab-header-menu',
|
||||
TabBodyMenu = 'tab-body-menu',
|
||||
}
|
||||
|
||||
export class Command {
|
||||
id?: string
|
||||
id: string
|
||||
label: string
|
||||
sublabel?: string
|
||||
locations?: CommandLocation[]
|
||||
run: () => Promise<void>
|
||||
fullLabel?: string
|
||||
locations: CommandLocation[]
|
||||
run?: () => Promise<any>
|
||||
|
||||
/**
|
||||
* Raw SVG icon code
|
||||
*/
|
||||
icon?: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar icon ID
|
||||
*/
|
||||
touchBarNSImage?: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar button label
|
||||
*/
|
||||
touchBarTitle?: string
|
||||
|
||||
weight?: number
|
||||
|
||||
parent?: string
|
||||
|
||||
group?: string
|
||||
|
||||
checked?: boolean
|
||||
|
||||
static fromToolbarButton (button: ToolbarButton): Command {
|
||||
const command = new Command()
|
||||
command.id = `legacy:${slugify(button.title)}`
|
||||
command.label = button.title
|
||||
command.run = async () => button.click?.()
|
||||
command.icon = button.icon
|
||||
@@ -44,18 +44,29 @@ export class Command {
|
||||
if ((button.weight ?? 0) > 0) {
|
||||
command.locations.push(CommandLocation.RightToolbar)
|
||||
}
|
||||
command.touchBarNSImage = button.touchBarNSImage
|
||||
command.touchBarTitle = button.touchBarTitle
|
||||
command.weight = button.weight
|
||||
return command
|
||||
}
|
||||
|
||||
static fromMenuItem (item: MenuItemOptions): Command {
|
||||
const command = new Command()
|
||||
command.label = item.commandLabel ?? item.label ?? ''
|
||||
command.sublabel = item.sublabel
|
||||
command.run = async () => item.click?.()
|
||||
return command
|
||||
static fromMenuItem (item: MenuItemOptions): Command[] {
|
||||
if (item.type === 'separator') {
|
||||
return []
|
||||
}
|
||||
const commands: Command[] = [{
|
||||
id: `legacy:${slugify(item.commandLabel ?? item.label).toLowerCase()}`,
|
||||
label: item.commandLabel ?? item.label,
|
||||
run: async () => item.click?.(),
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
checked: item.checked,
|
||||
}]
|
||||
for (const submenu of item.submenu ?? []) {
|
||||
commands.push(...Command.fromMenuItem(submenu).map(x => ({
|
||||
...x,
|
||||
id: `${commands[0].id}:${slugify(x.label).toLowerCase()}`,
|
||||
parent: commands[0].id,
|
||||
})))
|
||||
}
|
||||
return commands
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -37,6 +37,7 @@ export { UpdaterService } from '../services/updater.service'
|
||||
export { VaultService, Vault, VaultSecret, VaultFileSecret, VAULT_SECRET_TYPE_FILE, StoredVault, VaultSecretKey } from '../services/vault.service'
|
||||
export { FileProvidersService } from '../services/fileProviders.service'
|
||||
export { LocaleService } from '../services/locale.service'
|
||||
export { CommandService } from '../services/commands.service'
|
||||
export { TranslateService } from '@ngx-translate/core'
|
||||
export * from '../utils'
|
||||
export { UTF8Splitter } from '../utfSplitter'
|
||||
|
@@ -1,6 +1,4 @@
|
||||
export interface MenuItemOptions {
|
||||
type?: 'normal' | 'separator' | 'submenu' | 'checkbox' | 'radio'
|
||||
label?: string
|
||||
export type MenuItemOptions = {
|
||||
sublabel?: string
|
||||
enabled?: boolean
|
||||
checked?: boolean
|
||||
@@ -9,4 +7,10 @@ export interface MenuItemOptions {
|
||||
|
||||
/** @hidden */
|
||||
commandLabel?: string
|
||||
}
|
||||
} & ({
|
||||
type: 'separator',
|
||||
label?: string,
|
||||
} | {
|
||||
type?: 'normal' | 'submenu' | 'checkbox' | 'radio',
|
||||
label: string,
|
||||
})
|
||||
|
@@ -9,16 +9,6 @@ export interface ToolbarButton {
|
||||
|
||||
title: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar icon ID
|
||||
*/
|
||||
touchBarNSImage?: string
|
||||
|
||||
/**
|
||||
* Optional Touch Bar button label
|
||||
*/
|
||||
touchBarTitle?: string
|
||||
|
||||
weight?: number
|
||||
|
||||
click?: () => void
|
||||
|
@@ -1,10 +1,20 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Injectable } from '@angular/core'
|
||||
import { TranslateService } from '@ngx-translate/core'
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
|
||||
import { HostAppService, Platform } from './api/hostApp'
|
||||
import { ProfilesService } from './services/profiles.service'
|
||||
import { CommandProvider, Command, CommandLocation } from './api/commands'
|
||||
import { AppService } from './services/app.service'
|
||||
import { CommandProvider, Command, CommandLocation, CommandContext } from './api/commands'
|
||||
import { SplitDirection, SplitTabComponent } from './components/splitTab.component'
|
||||
import { BaseTabComponent } from './components/baseTab.component'
|
||||
import { PromptModalComponent } from './components/promptModal.component'
|
||||
import { HotkeysService } from './services/hotkeys.service'
|
||||
import { TabsService } from './services/tabs.service'
|
||||
import { SplitLayoutProfilesService } from './profiles'
|
||||
import { TAB_COLORS } from './utils'
|
||||
import { Subscription } from 'rxjs'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable({ providedIn: 'root' })
|
||||
@@ -13,38 +23,327 @@ export class CoreCommandProvider extends CommandProvider {
|
||||
private hostApp: HostAppService,
|
||||
private profilesService: ProfilesService,
|
||||
private translate: TranslateService,
|
||||
private app: AppService,
|
||||
private splitLayoutProfilesService: SplitLayoutProfilesService,
|
||||
private ngbModal: NgbModal,
|
||||
private tabsService: TabsService,
|
||||
hotkeys: HotkeysService,
|
||||
) {
|
||||
super()
|
||||
hotkeys.hotkey$.subscribe(hotkey => {
|
||||
if (hotkey === 'switch-profile') {
|
||||
let tab = this.app.activeTab
|
||||
if (tab instanceof SplitTabComponent) {
|
||||
tab = tab.getFocusedTab()
|
||||
if (tab) {
|
||||
this.switchTabProfile(tab)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async activate () {
|
||||
async switchTabProfile (tab: BaseTabComponent) {
|
||||
const profile = await this.profilesService.showProfileSelector().catch(() => null)
|
||||
if (!profile) {
|
||||
return
|
||||
}
|
||||
|
||||
const params = await this.profilesService.newTabParametersForProfile(profile)
|
||||
if (!params) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!await tab.canClose()) {
|
||||
return
|
||||
}
|
||||
|
||||
const newTab = this.tabsService.create(params)
|
||||
;(tab.parent as SplitTabComponent).replaceTab(tab, newTab)
|
||||
|
||||
tab.destroy()
|
||||
}
|
||||
|
||||
async showProfileSelector () {
|
||||
const profile = await this.profilesService.showProfileSelector().catch(() => null)
|
||||
if (profile) {
|
||||
this.profilesService.launchProfile(profile)
|
||||
}
|
||||
}
|
||||
|
||||
async provide (): Promise<Command[]> {
|
||||
return [
|
||||
async provide (context: CommandContext): Promise<Command[]> {
|
||||
const commands: Command[] = [
|
||||
{
|
||||
id: 'core:profile-selector',
|
||||
locations: [CommandLocation.LeftToolbar, CommandLocation.StartPage],
|
||||
label: this.translate.instant('Profiles & connections'),
|
||||
weight: 12,
|
||||
icon: this.hostApp.platform === Platform.Web
|
||||
? require('./icons/plus.svg')
|
||||
: require('./icons/profiles.svg'),
|
||||
run: async () => this.activate(),
|
||||
run: async () => this.showProfileSelector(),
|
||||
},
|
||||
...this.profilesService.getRecentProfiles().map((profile, index) => ({
|
||||
id: `core:recent-profile-${index}`,
|
||||
label: profile.name,
|
||||
locations: [CommandLocation.StartPage],
|
||||
icon: require('./icons/history.svg'),
|
||||
weight: 20,
|
||||
run: async () => {
|
||||
const p = (await this.profilesService.getProfiles()).find(x => x.id === profile.id) ?? profile
|
||||
this.profilesService.launchProfile(p)
|
||||
},
|
||||
})),
|
||||
]
|
||||
|
||||
if (context.tab) {
|
||||
const tab = context.tab
|
||||
|
||||
commands.push({
|
||||
id: `core:close-tab`,
|
||||
label: this.translate.instant('Close tab'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -35,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
if (this.app.tabs.includes(tab)) {
|
||||
this.app.closeTab(tab, true)
|
||||
} else {
|
||||
tab.destroy()
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
commands.push({
|
||||
id: `core:close`,
|
||||
label: this.translate.instant('Close'),
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
weight: 99,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
tab.destroy()
|
||||
},
|
||||
})
|
||||
|
||||
if (!context.tab.parent) {
|
||||
commands.push(...[{
|
||||
id: 'core:close-other-tabs',
|
||||
label: this.translate.instant('Close other tabs'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -34,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
for (const t of this.app.tabs.filter(x => x !== tab)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'core:close-tabs-to-the-right',
|
||||
label: this.translate.instant('Close tabs to the right'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -33,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
for (const t of this.app.tabs.slice(this.app.tabs.indexOf(tab) + 1)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'core:close-tabs-to-the-left',
|
||||
label: this.translate.instant('Close tabs to the left'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -32,
|
||||
group: 'core:close',
|
||||
run: async () => {
|
||||
for (const t of this.app.tabs.slice(0, this.app.tabs.indexOf(tab))) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
}])
|
||||
}
|
||||
|
||||
commands.push({
|
||||
id: 'core:rename-tab',
|
||||
label: this.translate.instant('Rename tab'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
group: 'core:common',
|
||||
weight: -13,
|
||||
run: async () => this.app.renameTab(tab),
|
||||
})
|
||||
commands.push({
|
||||
id: 'core:duplicate-tab',
|
||||
label: this.translate.instant('Duplicate tab'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
group: 'core:common',
|
||||
weight: -12,
|
||||
run: async () => this.app.duplicateTab(tab),
|
||||
})
|
||||
commands.push({
|
||||
id: 'core:tab-color',
|
||||
label: this.translate.instant('Color'),
|
||||
group: 'core:common',
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: -11,
|
||||
})
|
||||
for (const color of TAB_COLORS) {
|
||||
commands.push({
|
||||
id: `core:tab-color-${color.name.toLowerCase()}`,
|
||||
parent: 'core:tab-color',
|
||||
label: this.translate.instant(color.name) ?? color.name,
|
||||
fullLabel: this.translate.instant('Set tab color to {color}', { color: this.translate.instant(color.name) }),
|
||||
checked: tab.color === color.value,
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
tab.color = color.value
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (tab.parent instanceof SplitTabComponent) {
|
||||
const directions: SplitDirection[] = ['r', 'b', 'l', 't']
|
||||
commands.push({
|
||||
id: 'core:split',
|
||||
label: this.translate.instant('Split'),
|
||||
group: 'core:panes',
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
})
|
||||
for (const dir of directions) {
|
||||
commands.push({
|
||||
id: `core:split-${dir}`,
|
||||
label: {
|
||||
r: this.translate.instant('Right'),
|
||||
b: this.translate.instant('Down'),
|
||||
l: this.translate.instant('Left'),
|
||||
t: this.translate.instant('Up'),
|
||||
}[dir],
|
||||
fullLabel: {
|
||||
r: this.translate.instant('Split to the right'),
|
||||
b: this.translate.instant('Split to the down'),
|
||||
l: this.translate.instant('Split to the left'),
|
||||
t: this.translate.instant('Split to the up'),
|
||||
}[dir],
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
parent: 'core:split',
|
||||
run: async () => {
|
||||
(tab.parent as SplitTabComponent).splitTab(tab, dir)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
commands.push({
|
||||
id: 'core:switch-profile',
|
||||
label: this.translate.instant('Switch profile'),
|
||||
group: 'core:common',
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
run: async () => this.switchTabProfile(tab),
|
||||
})
|
||||
}
|
||||
|
||||
if (tab instanceof SplitTabComponent && tab.getAllTabs().length > 1) {
|
||||
commands.push({
|
||||
id: 'core:save-split-tab-as-profile',
|
||||
label: this.translate.instant('Save layout as profile'),
|
||||
group: 'core:common',
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
const modal = this.ngbModal.open(PromptModalComponent)
|
||||
modal.componentInstance.prompt = this.translate.instant('Profile name')
|
||||
const name = (await modal.result.catch(() => null))?.value
|
||||
if (!name) {
|
||||
return
|
||||
}
|
||||
this.splitLayoutProfilesService.createProfile(tab, name)
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return commands
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class TaskCompletionCommandProvider extends CommandProvider {
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async provide (context: CommandContext): Promise<Command[]> {
|
||||
if (!context.tab) {
|
||||
return []
|
||||
}
|
||||
|
||||
const process = await context.tab.getCurrentProcess()
|
||||
const items: Command[] = []
|
||||
|
||||
const extTab: (BaseTabComponent & { __completionNotificationEnabled?: boolean, __outputNotificationSubscription?: Subscription|null }) = context.tab
|
||||
|
||||
if (process) {
|
||||
items.push({
|
||||
id: 'core:process-name',
|
||||
label: this.translate.instant('Current process: {name}', process),
|
||||
group: 'core:process',
|
||||
weight: -1,
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
})
|
||||
items.push({
|
||||
id: 'core:notify-when-done',
|
||||
label: this.translate.instant('Notify when done'),
|
||||
group: 'core:process',
|
||||
weight: 0,
|
||||
checked: extTab.__completionNotificationEnabled,
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
extTab.__completionNotificationEnabled = !extTab.__completionNotificationEnabled
|
||||
|
||||
if (extTab.__completionNotificationEnabled) {
|
||||
this.app.observeTabCompletion(extTab).subscribe(() => {
|
||||
new Notification(this.translate.instant('Process completed'), {
|
||||
body: process.name,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(extTab)
|
||||
})
|
||||
extTab.__completionNotificationEnabled = false
|
||||
})
|
||||
} else {
|
||||
this.app.stopObservingTabCompletion(extTab)
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
items.push({
|
||||
id: 'core:notify-on-activity',
|
||||
label: this.translate.instant('Notify on activity'),
|
||||
group: 'core:process',
|
||||
checked: !!extTab.__outputNotificationSubscription,
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
extTab.clearActivity()
|
||||
|
||||
if (extTab.__outputNotificationSubscription) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
} else {
|
||||
extTab.__outputNotificationSubscription = extTab.activity$.subscribe(active => {
|
||||
if (extTab.__outputNotificationSubscription && active) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
new Notification(this.translate.instant('Tab activity'), {
|
||||
body: extTab.title,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(extTab)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
@@ -238,7 +238,7 @@ export class AppRootComponent {
|
||||
|
||||
private async getToolbarButtons (aboveZero: boolean): Promise<Command[]> {
|
||||
return (await this.commands.getCommands({ tab: this.app.activeTab ?? undefined }))
|
||||
.filter(x => x.locations?.includes(aboveZero ? CommandLocation.RightToolbar : CommandLocation.LeftToolbar))
|
||||
.filter(x => x.locations.includes(aboveZero ? CommandLocation.RightToolbar : CommandLocation.LeftToolbar))
|
||||
}
|
||||
|
||||
toggleMaximize (): void {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { Observable, Subject, BehaviorSubject, distinctUntilChanged, filter, debounceTime } from 'rxjs'
|
||||
import { Observable, Subject, distinctUntilChanged, filter, debounceTime } from 'rxjs'
|
||||
import { EmbeddedViewRef, Injector, ViewContainerRef, ViewRef } from '@angular/core'
|
||||
import { RecoveryToken } from '../api/tabRecovery'
|
||||
import { BaseComponent } from './base.component'
|
||||
@@ -75,9 +75,9 @@ export abstract class BaseTabComponent extends BaseComponent {
|
||||
private titleChange = new Subject<string>()
|
||||
private focused = new Subject<void>()
|
||||
private blurred = new Subject<void>()
|
||||
protected visibility = new BehaviorSubject<boolean>(false)
|
||||
protected progress = new BehaviorSubject<number|null>(null)
|
||||
protected activity = new BehaviorSubject<boolean>(false)
|
||||
private visibility = new Subject<boolean>()
|
||||
private progress = new Subject<number|null>()
|
||||
private activity = new Subject<boolean>()
|
||||
private destroyed = new Subject<void>()
|
||||
|
||||
private _destroyCalled = false
|
||||
@@ -195,10 +195,7 @@ export abstract class BaseTabComponent extends BaseComponent {
|
||||
if (!this.viewContainer || !this.viewContainerEmbeddedRef) {
|
||||
return
|
||||
}
|
||||
const viewIndex = this.viewContainer.indexOf(this.viewContainerEmbeddedRef)
|
||||
if (viewIndex !== -1) {
|
||||
this.viewContainer.detach(viewIndex)
|
||||
}
|
||||
this.viewContainer.detach(this.viewContainer.indexOf(this.viewContainerEmbeddedRef))
|
||||
this.viewContainerEmbeddedRef = undefined
|
||||
this.viewContainer = undefined
|
||||
}
|
||||
@@ -229,6 +226,7 @@ export abstract class BaseTabComponent extends BaseComponent {
|
||||
this.destroyed.next()
|
||||
}
|
||||
this.destroyed.complete()
|
||||
this.hostView.destroy()
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
|
@@ -1,11 +1,7 @@
|
||||
.icon(
|
||||
[fastHtmlBind]='pngPath',
|
||||
*ngIf='!isHTML && isPNG'
|
||||
)
|
||||
i.icon(
|
||||
class='fa-fw {{icon}}',
|
||||
[style.color]='color',
|
||||
*ngIf='!isHTML && !isPNG'
|
||||
*ngIf='!isHTML'
|
||||
)
|
||||
.icon(
|
||||
[fastHtmlBind]='icon',
|
||||
|
@@ -12,15 +12,7 @@ export class ProfileIconComponent extends BaseComponent {
|
||||
@Input() icon?: string
|
||||
@Input() color?: string
|
||||
|
||||
get pngPath (): string {
|
||||
return `<img src="${this.icon?.trim()}" width="16" height="16" />`
|
||||
}
|
||||
|
||||
get isHTML (): boolean {
|
||||
return this.icon?.startsWith('<') ?? false
|
||||
}
|
||||
|
||||
get isPNG (): boolean {
|
||||
return this.icon?.endsWith('.png') ?? false
|
||||
}
|
||||
}
|
||||
|
@@ -471,8 +471,6 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
}
|
||||
tab.removeFromContainer()
|
||||
tab.parent = this
|
||||
|
||||
tab.emitVisibility(this.visibility.value)
|
||||
}
|
||||
|
||||
let target = relative ? this.getParentOf(relative) : null
|
||||
@@ -769,10 +767,10 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
}
|
||||
|
||||
destroy (): void {
|
||||
super.destroy()
|
||||
for (const x of this.getAllTabs()) {
|
||||
x.destroy()
|
||||
}
|
||||
super.destroy()
|
||||
}
|
||||
|
||||
layout (): void {
|
||||
@@ -843,7 +841,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
|
||||
tab.subscribeUntilDestroyed(tab.recoveryStateChangedHint$, () => {
|
||||
this.recoveryStateChangedHint.next()
|
||||
})
|
||||
tab.destroyed$.subscribe(() => {
|
||||
tab.subscribeUntilDestroyed(tab.destroyed$, () => {
|
||||
this.removeTab(tab)
|
||||
})
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
import { Component } from '@angular/core'
|
||||
import { DomSanitizer } from '@angular/platform-browser'
|
||||
import { firstBy } from 'thenby'
|
||||
import { HomeBaseService } from '../services/homeBase.service'
|
||||
import { CommandService } from '../services/commands.service'
|
||||
import { Command, CommandLocation } from '../api/commands'
|
||||
@@ -20,7 +21,8 @@ export class StartPageComponent {
|
||||
commands: CommandService,
|
||||
) {
|
||||
commands.getCommands({}).then(c => {
|
||||
this.commands = c.filter(x => x.locations?.includes(CommandLocation.StartPage))
|
||||
this.commands = c.filter(x => x.locations.includes(CommandLocation.StartPage))
|
||||
this.commands.sort(firstBy(x => x.weight ?? 0))
|
||||
})
|
||||
}
|
||||
|
||||
|
@@ -1,16 +1,19 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Component, Input, Optional, Inject, HostBinding, HostListener, NgZone } from '@angular/core'
|
||||
import { Component, Input, HostBinding, HostListener, NgZone } from '@angular/core'
|
||||
import { auditTime } from 'rxjs'
|
||||
import { TabContextMenuItemProvider } from '../api/tabContextMenuProvider'
|
||||
|
||||
import { BaseTabComponent } from './baseTab.component'
|
||||
import { SplitTabComponent } from './splitTab.component'
|
||||
import { HotkeysService } from '../services/hotkeys.service'
|
||||
import { AppService } from '../services/app.service'
|
||||
import { HostAppService, Platform } from '../api/hostApp'
|
||||
import { ConfigService } from '../services/config.service'
|
||||
import { BaseComponent } from './base.component'
|
||||
import { CommandService } from '../services/commands.service'
|
||||
import { MenuItemOptions } from '../api/menu'
|
||||
import { PlatformService } from '../api/platform'
|
||||
import { CommandContext, CommandLocation } from '../api/commands'
|
||||
|
||||
import { BaseComponent } from './base.component'
|
||||
import { SplitTabComponent } from './splitTab.component'
|
||||
|
||||
/** @hidden */
|
||||
@Component({
|
||||
@@ -31,8 +34,8 @@ export class TabHeaderComponent extends BaseComponent {
|
||||
public hostApp: HostAppService,
|
||||
private hotkeys: HotkeysService,
|
||||
private platform: PlatformService,
|
||||
private commands: CommandService,
|
||||
private zone: NgZone,
|
||||
@Optional() @Inject(TabContextMenuItemProvider) protected contextMenuProviders: TabContextMenuItemProvider[],
|
||||
) {
|
||||
super()
|
||||
this.subscribeUntilDestroyed(this.hotkeys.hotkey$, (hotkey) => {
|
||||
@@ -42,7 +45,6 @@ export class TabHeaderComponent extends BaseComponent {
|
||||
}
|
||||
}
|
||||
})
|
||||
this.contextMenuProviders.sort((a, b) => a.weight - b.weight)
|
||||
}
|
||||
|
||||
ngOnInit () {
|
||||
@@ -56,26 +58,17 @@ export class TabHeaderComponent extends BaseComponent {
|
||||
}
|
||||
|
||||
async buildContextMenu (): Promise<MenuItemOptions[]> {
|
||||
let items: MenuItemOptions[] = []
|
||||
const contexts: CommandContext[] = [{ tab: this.tab }]
|
||||
|
||||
// Top-level tab menu
|
||||
for (const section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(this.tab, true)))) {
|
||||
items.push({ type: 'separator' })
|
||||
items = items.concat(section)
|
||||
}
|
||||
if (this.tab instanceof SplitTabComponent) {
|
||||
const tab = this.tab.getFocusedTab()
|
||||
if (tab) {
|
||||
for (let section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(tab, true)))) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
section = section.filter(item => !items.some(ex => ex.label === item.label))
|
||||
if (section.length) {
|
||||
items.push({ type: 'separator' })
|
||||
items = items.concat(section)
|
||||
}
|
||||
}
|
||||
contexts.push({ tab })
|
||||
}
|
||||
}
|
||||
return items.slice(1)
|
||||
|
||||
return this.commands.buildContextMenu(contexts, CommandLocation.TabHeaderMenu)
|
||||
}
|
||||
|
||||
onTabDragStart (tab: BaseTabComponent) {
|
||||
|
@@ -43,7 +43,6 @@ enableWelcomeTab: true
|
||||
electronFlags:
|
||||
- ['force_discrete_gpu', '0']
|
||||
enableAutomaticUpdates: true
|
||||
hideTray: false
|
||||
version: 1
|
||||
vault: null
|
||||
encrypted: false
|
||||
|
@@ -37,7 +37,7 @@ import { FastHtmlBindDirective } from './directives/fastHtmlBind.directive'
|
||||
import { DropZoneDirective } from './directives/dropZone.directive'
|
||||
import { CdkAutoDropGroup } from './directives/cdkAutoDropGroup.directive'
|
||||
|
||||
import { Theme, CLIHandler, TabContextMenuItemProvider, TabRecoveryProvider, HotkeyProvider, ConfigProvider, PlatformService, FileProvider, ProfilesService, ProfileProvider, QuickConnectProfileProvider, SelectorOption, Profile, SelectorService, CommandProvider } from './api'
|
||||
import { Theme, CLIHandler, TabRecoveryProvider, HotkeyProvider, ConfigProvider, PlatformService, FileProvider, ProfilesService, ProfileProvider, QuickConnectProfileProvider, SelectorOption, Profile, SelectorService, CommandProvider } from './api'
|
||||
|
||||
import { AppService } from './services/app.service'
|
||||
import { ConfigService } from './services/config.service'
|
||||
@@ -49,10 +49,9 @@ import { CommandService } from './services/commands.service'
|
||||
import { StandardTheme, StandardCompactTheme, PaperTheme, NewTheme } from './theme'
|
||||
import { CoreConfigProvider } from './config'
|
||||
import { AppHotkeyProvider } from './hotkeys'
|
||||
import { TaskCompletionContextMenu, CommonOptionsContextMenu, TabManagementContextMenu, ProfilesContextMenu } from './tabContextMenu'
|
||||
import { LastCLIHandler, ProfileCLIHandler } from './cli'
|
||||
import { SplitLayoutProfilesService } from './profiles'
|
||||
import { CoreCommandProvider } from './commands'
|
||||
import { CoreCommandProvider, TaskCompletionCommandProvider } from './commands'
|
||||
|
||||
export function TranslateMessageFormatCompilerFactory (): TranslateMessageFormatCompiler {
|
||||
return new TranslateMessageFormatCompiler()
|
||||
@@ -65,16 +64,13 @@ const PROVIDERS = [
|
||||
{ provide: Theme, useClass: PaperTheme, multi: true },
|
||||
{ provide: Theme, useClass: NewTheme, multi: true },
|
||||
{ provide: ConfigProvider, useClass: CoreConfigProvider, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: CommonOptionsContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: TabManagementContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: TaskCompletionContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: ProfilesContextMenu, multi: true },
|
||||
{ provide: TabRecoveryProvider, useExisting: SplitTabRecoveryProvider, multi: true },
|
||||
{ provide: CLIHandler, useClass: ProfileCLIHandler, multi: true },
|
||||
{ provide: CLIHandler, useClass: LastCLIHandler, multi: true },
|
||||
{ provide: FileProvider, useClass: VaultFileProvider, multi: true },
|
||||
{ provide: ProfileProvider, useExisting: SplitLayoutProfilesService, multi: true },
|
||||
{ provide: CommandProvider, useExisting: CoreCommandProvider, multi: true },
|
||||
{ provide: CommandProvider, useExisting: TaskCompletionCommandProvider, multi: true },
|
||||
{
|
||||
provide: LOCALE_ID,
|
||||
deps: [LocaleService],
|
||||
|
@@ -1,6 +1,10 @@
|
||||
import { Inject, Injectable, Optional } from '@angular/core'
|
||||
import { AppService, Command, CommandContext, CommandProvider, ConfigService, MenuItemOptions, SplitTabComponent, TabContextMenuItemProvider, ToolbarButton, ToolbarButtonProvider, TranslateService } from '../api'
|
||||
import { TranslateService } from '@ngx-translate/core'
|
||||
import { Command, CommandContext, CommandLocation, CommandProvider, MenuItemOptions, SplitTabComponent, TabContextMenuItemProvider, ToolbarButton, ToolbarButtonProvider } from '../api'
|
||||
import { AppService } from './app.service'
|
||||
import { ConfigService } from './config.service'
|
||||
import { SelectorService } from './selector.service'
|
||||
import { firstBy } from 'thenby'
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class CommandService {
|
||||
@@ -11,11 +15,11 @@ export class CommandService {
|
||||
private config: ConfigService,
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
@Optional() @Inject(TabContextMenuItemProvider) protected contextMenuProviders: TabContextMenuItemProvider[],
|
||||
@Optional() @Inject(TabContextMenuItemProvider) protected contextMenuProviders: TabContextMenuItemProvider[]|null,
|
||||
@Optional() @Inject(ToolbarButtonProvider) private toolbarButtonProviders: ToolbarButtonProvider[],
|
||||
@Inject(CommandProvider) private commandProviders: CommandProvider[],
|
||||
) {
|
||||
this.contextMenuProviders.sort((a, b) => a.weight - b.weight)
|
||||
this.contextMenuProviders?.sort((a, b) => a.weight - b.weight)
|
||||
}
|
||||
|
||||
async getCommands (context: CommandContext): Promise<Command[]> {
|
||||
@@ -29,8 +33,8 @@ export class CommandService {
|
||||
let items: MenuItemOptions[] = []
|
||||
if (context.tab) {
|
||||
for (const tabHeader of [false, true]) {
|
||||
// Top-level tab menu
|
||||
for (let section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(context.tab!, tabHeader)))) {
|
||||
// Top-level tab menu
|
||||
for (let section of await Promise.all(this.contextMenuProviders?.map(x => x.getItems(context.tab!, tabHeader)) ?? [])) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
section = section.filter(item => !items.some(ex => ex.label === item.label))
|
||||
items = items.concat(section)
|
||||
@@ -38,7 +42,7 @@ export class CommandService {
|
||||
if (context.tab instanceof SplitTabComponent) {
|
||||
const tab = context.tab.getFocusedTab()
|
||||
if (tab) {
|
||||
for (let section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(tab, tabHeader)))) {
|
||||
for (let section of await Promise.all(this.contextMenuProviders?.map(x => x.getItems(tab, tabHeader)) ?? [])) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
section = section.filter(item => !items.some(ex => ex.label === item.label))
|
||||
items = items.concat(section)
|
||||
@@ -50,21 +54,10 @@ export class CommandService {
|
||||
|
||||
items = items.filter(x => (x.enabled ?? true) && x.type !== 'separator')
|
||||
|
||||
const flatItems: MenuItemOptions[] = []
|
||||
function flattenItem (item: MenuItemOptions, prefix?: string): void {
|
||||
if (item.submenu) {
|
||||
item.submenu.forEach(x => flattenItem(x, (prefix ? `${prefix} > ` : '') + (item.commandLabel ?? item.label)))
|
||||
} else {
|
||||
flatItems.push({
|
||||
...item,
|
||||
label: (prefix ? `${prefix} > ` : '') + (item.commandLabel ?? item.label),
|
||||
})
|
||||
}
|
||||
}
|
||||
items.forEach(x => flattenItem(x))
|
||||
|
||||
const commands = buttons.map(x => Command.fromToolbarButton(x))
|
||||
commands.push(...flatItems.map(x => Command.fromMenuItem(x)))
|
||||
const commands = [
|
||||
...buttons.map(x => Command.fromToolbarButton(x)),
|
||||
...items.map(x => Command.fromMenuItem(x)).flat(),
|
||||
]
|
||||
|
||||
for (const provider of this.config.enabledServices(this.commandProviders)) {
|
||||
commands.push(...await provider.provide(context))
|
||||
@@ -74,20 +67,36 @@ export class CommandService {
|
||||
.filter(c => !this.config.store.commandBlacklist.includes(c.id))
|
||||
.sort((a, b) => (a.weight ?? 0) - (b.weight ?? 0))
|
||||
.map(command => {
|
||||
const run = command.run
|
||||
command.run = async () => {
|
||||
// Serialize execution
|
||||
this.lastCommand = this.lastCommand.finally(run)
|
||||
await this.lastCommand
|
||||
if (command.run) {
|
||||
const run = command.run
|
||||
command.run = async () => {
|
||||
// Serialize execution
|
||||
this.lastCommand = this.lastCommand.finally(run)
|
||||
await this.lastCommand
|
||||
}
|
||||
}
|
||||
return command
|
||||
})
|
||||
}
|
||||
|
||||
async getCommandsWithContexts (context: CommandContext[]): Promise<Command[]> {
|
||||
let commands: Command[] = []
|
||||
|
||||
for (const commandSet of await Promise.all(context.map(x => this.getCommands(x)))) {
|
||||
for (const command of commandSet) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
commands = commands.filter(x => x.id !== command.id)
|
||||
commands.push(command)
|
||||
}
|
||||
}
|
||||
|
||||
return commands
|
||||
}
|
||||
|
||||
async run (id: string, context: CommandContext): Promise<void> {
|
||||
const commands = await this.getCommands(context)
|
||||
const command = commands.find(x => x.id === id)
|
||||
await command?.run()
|
||||
await command?.run?.()
|
||||
}
|
||||
|
||||
async showSelector (): Promise<void> {
|
||||
@@ -95,20 +104,80 @@ export class CommandService {
|
||||
return
|
||||
}
|
||||
|
||||
const context: CommandContext = {}
|
||||
const tab = this.app.activeTab
|
||||
if (tab instanceof SplitTabComponent) {
|
||||
context.tab = tab.getFocusedTab() ?? undefined
|
||||
const contexts: CommandContext[] = [{}]
|
||||
if (this.app.activeTab) {
|
||||
contexts.push({ tab: this.app.activeTab })
|
||||
}
|
||||
const commands = await this.getCommands(context)
|
||||
if (this.app.activeTab instanceof SplitTabComponent) {
|
||||
const tab = this.app.activeTab.getFocusedTab()
|
||||
if (tab) {
|
||||
contexts.push({ tab })
|
||||
}
|
||||
}
|
||||
|
||||
const commands = (await this.getCommandsWithContexts(contexts))
|
||||
.filter(x => x.run)
|
||||
.sort(firstBy(x => x.weight ?? 0))
|
||||
|
||||
return this.selector.show(
|
||||
this.translate.instant('Commands'),
|
||||
commands.map(c => ({
|
||||
name: c.label,
|
||||
name: c.fullLabel ?? c.label,
|
||||
callback: c.run,
|
||||
description: c.sublabel,
|
||||
icon: c.icon,
|
||||
})),
|
||||
)
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
async buildContextMenu (contexts: CommandContext[], location: CommandLocation): Promise<MenuItemOptions[]> {
|
||||
let commands = await this.getCommandsWithContexts(contexts)
|
||||
|
||||
commands = commands.filter(x => x.locations.includes(location))
|
||||
commands.sort(firstBy(x => x.weight ?? 0))
|
||||
|
||||
interface Group {
|
||||
id?: string
|
||||
weight: number
|
||||
commands: Command[]
|
||||
}
|
||||
|
||||
const groups: Group[] = []
|
||||
|
||||
for (const command of commands.filter(x => !x.parent)) {
|
||||
let group = groups.find(x => x.id === command.group)
|
||||
if (!group) {
|
||||
group = {
|
||||
id: command.group,
|
||||
weight: 0,
|
||||
commands: [],
|
||||
}
|
||||
groups.push(group)
|
||||
}
|
||||
group.weight += command.weight ?? 0
|
||||
group.commands.push(command)
|
||||
}
|
||||
|
||||
groups.sort(firstBy(x => x.weight / x.commands.length))
|
||||
|
||||
function mapCommand (command: Command): MenuItemOptions {
|
||||
const submenu = command.id ? commands.filter(x => x.parent === command.id).map(mapCommand) : []
|
||||
return {
|
||||
label: command.label,
|
||||
submenu: submenu.length ? submenu : undefined,
|
||||
checked: command.checked,
|
||||
enabled: !!command.run || !!submenu.length,
|
||||
type: command.checked ? 'checkbox' : undefined,
|
||||
click: () => command.run?.(),
|
||||
}
|
||||
}
|
||||
|
||||
const items: MenuItemOptions[] = []
|
||||
for (const group of groups) {
|
||||
items.push({ type: 'separator' })
|
||||
items.push(...group.commands.map(mapCommand))
|
||||
}
|
||||
|
||||
return items.slice(1)
|
||||
}
|
||||
}
|
||||
|
@@ -20,9 +20,7 @@ import localeKO from '@angular/common/locales/ko'
|
||||
import localePL from '@angular/common/locales/pl'
|
||||
import localePT from '@angular/common/locales/pt'
|
||||
import localeRU from '@angular/common/locales/ru'
|
||||
import localeSRSP from '@angular/common/locales/sr-Cyrl'
|
||||
import localeSV from '@angular/common/locales/sv'
|
||||
import localeTR from '@angular/common/locales/tr'
|
||||
import localeUK from '@angular/common/locales/uk'
|
||||
import localeZH from '@angular/common/locales/zh'
|
||||
import { Observable, Subject } from 'rxjs'
|
||||
@@ -47,9 +45,7 @@ registerLocaleData(localeKO)
|
||||
registerLocaleData(localePL)
|
||||
registerLocaleData(localePT)
|
||||
registerLocaleData(localeRU)
|
||||
registerLocaleData(localeSRSP)
|
||||
registerLocaleData(localeSV)
|
||||
registerLocaleData(localeTR)
|
||||
registerLocaleData(localeUK)
|
||||
registerLocaleData(localeZH)
|
||||
|
||||
@@ -140,10 +136,6 @@ export class LocaleService {
|
||||
code: 'sv-SE',
|
||||
name: 'Svenska',
|
||||
},
|
||||
{
|
||||
code: 'tr-TR',
|
||||
name: 'Türkçe',
|
||||
},
|
||||
{
|
||||
code: 'bg-BG',
|
||||
name: 'Български',
|
||||
@@ -152,10 +144,6 @@ export class LocaleService {
|
||||
code: 'ru-RU',
|
||||
name: 'Русский',
|
||||
},
|
||||
{
|
||||
code: 'sr-SP',
|
||||
name: 'Српски',
|
||||
},
|
||||
{
|
||||
code: 'uk-UA',
|
||||
name: 'Українська',
|
||||
|
@@ -37,7 +37,6 @@ export class TabsService {
|
||||
const componentRef = componentFactory.create(this.injector)
|
||||
const tab = componentRef.instance
|
||||
tab.hostView = componentRef.hostView
|
||||
tab.destroyed$.subscribe(() => componentRef.destroy())
|
||||
Object.assign(tab, params.inputs ?? {})
|
||||
return tab
|
||||
}
|
||||
|
@@ -1,298 +0,0 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Injectable } from '@angular/core'
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { TranslateService } from '@ngx-translate/core'
|
||||
import { Subscription } from 'rxjs'
|
||||
import { AppService } from './services/app.service'
|
||||
import { BaseTabComponent } from './components/baseTab.component'
|
||||
import { SplitTabComponent, SplitDirection } from './components/splitTab.component'
|
||||
import { TabContextMenuItemProvider } from './api/tabContextMenuProvider'
|
||||
import { MenuItemOptions } from './api/menu'
|
||||
import { ProfilesService } from './services/profiles.service'
|
||||
import { TabsService } from './services/tabs.service'
|
||||
import { HotkeysService } from './services/hotkeys.service'
|
||||
import { PromptModalComponent } from './components/promptModal.component'
|
||||
import { SplitLayoutProfilesService } from './profiles'
|
||||
import { TAB_COLORS } from './utils'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class TabManagementContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 99
|
||||
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
let items: MenuItemOptions[] = [
|
||||
{
|
||||
label: this.translate.instant('Close'),
|
||||
commandLabel: this.translate.instant('Close tab'),
|
||||
click: () => {
|
||||
if (this.app.tabs.includes(tab)) {
|
||||
this.app.closeTab(tab, true)
|
||||
} else {
|
||||
tab.destroy()
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
||||
if (!tab.parent) {
|
||||
items = [
|
||||
...items,
|
||||
{
|
||||
label: this.translate.instant('Close other tabs'),
|
||||
click: () => {
|
||||
for (const t of this.app.tabs.filter(x => x !== tab)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Close tabs to the right'),
|
||||
click: () => {
|
||||
for (const t of this.app.tabs.slice(this.app.tabs.indexOf(tab) + 1)) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Close tabs to the left'),
|
||||
click: () => {
|
||||
for (const t of this.app.tabs.slice(0, this.app.tabs.indexOf(tab))) {
|
||||
this.app.closeTab(t, true)
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
||||
} else if (tab.parent instanceof SplitTabComponent) {
|
||||
const directions: SplitDirection[] = ['r', 'b', 'l', 't']
|
||||
items.push({
|
||||
label: this.translate.instant('Split'),
|
||||
submenu: directions.map(dir => ({
|
||||
label: {
|
||||
r: this.translate.instant('Right'),
|
||||
b: this.translate.instant('Down'),
|
||||
l: this.translate.instant('Left'),
|
||||
t: this.translate.instant('Up'),
|
||||
}[dir],
|
||||
commandLabel: {
|
||||
r: this.translate.instant('Split to the right'),
|
||||
b: this.translate.instant('Split to the down'),
|
||||
l: this.translate.instant('Split to the left'),
|
||||
t: this.translate.instant('Split to the up'),
|
||||
}[dir],
|
||||
click: () => {
|
||||
(tab.parent as SplitTabComponent).splitTab(tab, dir)
|
||||
},
|
||||
})) as MenuItemOptions[],
|
||||
})
|
||||
}
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class CommonOptionsContextMenu extends TabContextMenuItemProvider {
|
||||
weight = -1
|
||||
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private ngbModal: NgbModal,
|
||||
private splitLayoutProfilesService: SplitLayoutProfilesService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent, tabHeader?: boolean): Promise<MenuItemOptions[]> {
|
||||
let items: MenuItemOptions[] = []
|
||||
if (tabHeader) {
|
||||
const currentColor = TAB_COLORS.find(x => x.value === tab.color)?.name
|
||||
items = [
|
||||
...items,
|
||||
{
|
||||
label: this.translate.instant('Rename'),
|
||||
commandLabel: this.translate.instant('Rename tab'),
|
||||
click: () => {
|
||||
this.app.renameTab(tab)
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Duplicate'),
|
||||
commandLabel: this.translate.instant('Duplicate tab'),
|
||||
click: () => this.app.duplicateTab(tab),
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Color'),
|
||||
commandLabel: this.translate.instant('Change tab color'),
|
||||
sublabel: currentColor ? this.translate.instant(currentColor) : undefined,
|
||||
submenu: TAB_COLORS.map(color => ({
|
||||
label: this.translate.instant(color.name) ?? color.name,
|
||||
type: 'radio',
|
||||
checked: tab.color === color.value,
|
||||
click: () => {
|
||||
tab.color = color.value
|
||||
},
|
||||
})) as MenuItemOptions[],
|
||||
},
|
||||
]
|
||||
|
||||
if (tab instanceof SplitTabComponent && tab.getAllTabs().length > 1) {
|
||||
items.push({
|
||||
label: this.translate.instant('Save layout as profile'),
|
||||
click: async () => {
|
||||
const modal = this.ngbModal.open(PromptModalComponent)
|
||||
modal.componentInstance.prompt = this.translate.instant('Profile name')
|
||||
const name = (await modal.result.catch(() => null))?.value
|
||||
if (!name) {
|
||||
return
|
||||
}
|
||||
this.splitLayoutProfilesService.createProfile(tab, name)
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class TaskCompletionContextMenu extends TabContextMenuItemProvider {
|
||||
constructor (
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
const process = await tab.getCurrentProcess()
|
||||
const items: MenuItemOptions[] = []
|
||||
|
||||
const extTab: (BaseTabComponent & { __completionNotificationEnabled?: boolean, __outputNotificationSubscription?: Subscription|null }) = tab
|
||||
|
||||
if (process) {
|
||||
items.push({
|
||||
enabled: false,
|
||||
label: this.translate.instant('Current process: {name}', process),
|
||||
})
|
||||
items.push({
|
||||
label: this.translate.instant('Notify when done'),
|
||||
type: 'checkbox',
|
||||
checked: extTab.__completionNotificationEnabled,
|
||||
click: () => {
|
||||
extTab.__completionNotificationEnabled = !extTab.__completionNotificationEnabled
|
||||
|
||||
if (extTab.__completionNotificationEnabled) {
|
||||
this.app.observeTabCompletion(tab).subscribe(() => {
|
||||
new Notification(this.translate.instant('Process completed'), {
|
||||
body: process.name,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(tab)
|
||||
})
|
||||
extTab.__completionNotificationEnabled = false
|
||||
})
|
||||
} else {
|
||||
this.app.stopObservingTabCompletion(tab)
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
items.push({
|
||||
label: this.translate.instant('Notify on activity'),
|
||||
type: 'checkbox',
|
||||
checked: !!extTab.__outputNotificationSubscription,
|
||||
click: () => {
|
||||
tab.clearActivity()
|
||||
|
||||
if (extTab.__outputNotificationSubscription) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
} else {
|
||||
extTab.__outputNotificationSubscription = tab.activity$.subscribe(active => {
|
||||
if (extTab.__outputNotificationSubscription && active) {
|
||||
extTab.__outputNotificationSubscription.unsubscribe()
|
||||
extTab.__outputNotificationSubscription = null
|
||||
new Notification(this.translate.instant('Tab activity'), {
|
||||
body: tab.title,
|
||||
}).addEventListener('click', () => {
|
||||
this.app.selectTab(tab)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class ProfilesContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 10
|
||||
|
||||
constructor (
|
||||
private profilesService: ProfilesService,
|
||||
private tabsService: TabsService,
|
||||
private app: AppService,
|
||||
private translate: TranslateService,
|
||||
hotkeys: HotkeysService,
|
||||
) {
|
||||
super()
|
||||
hotkeys.hotkey$.subscribe(hotkey => {
|
||||
if (hotkey === 'switch-profile') {
|
||||
let tab = this.app.activeTab
|
||||
if (tab instanceof SplitTabComponent) {
|
||||
tab = tab.getFocusedTab()
|
||||
if (tab) {
|
||||
this.switchTabProfile(tab)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async switchTabProfile (tab: BaseTabComponent) {
|
||||
const profile = await this.profilesService.showProfileSelector().catch(() => null)
|
||||
if (!profile) {
|
||||
return
|
||||
}
|
||||
|
||||
const params = await this.profilesService.newTabParametersForProfile(profile)
|
||||
if (!params) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!await tab.canClose()) {
|
||||
return
|
||||
}
|
||||
|
||||
const newTab = this.tabsService.create(params)
|
||||
;(tab.parent as SplitTabComponent).replaceTab(tab, newTab)
|
||||
|
||||
tab.destroy()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
|
||||
if (tab.parent instanceof SplitTabComponent && tab.parent.getAllTabs().length > 1) {
|
||||
return [
|
||||
{
|
||||
label: this.translate.instant('Switch profile'),
|
||||
click: () => this.switchTabProfile(tab),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
return []
|
||||
}
|
||||
}
|
@@ -6,8 +6,6 @@ import { HostAppService, Platform, isWindowsBuild, WIN_BUILD_WSL_EXE_DISTRO_FLAG
|
||||
|
||||
import { ShellProvider, Shell } from 'tabby-local'
|
||||
|
||||
import { PowerShell } from 'node-powershell'
|
||||
|
||||
/* eslint-disable block-scoped-var */
|
||||
|
||||
try {
|
||||
@@ -40,42 +38,10 @@ const wslIconMap: Record<string, string> = {
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class WSLShellProvider extends ShellProvider {
|
||||
private _pwsh: PowerShell
|
||||
|
||||
constructor (
|
||||
private hostApp: HostAppService,
|
||||
) {
|
||||
super()
|
||||
|
||||
// make sure that this will not use the powershell profile
|
||||
// that may take a long time to load
|
||||
this._pwsh = new PowerShell({
|
||||
executableOptions: {
|
||||
'-NoProfile': true,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
private async _resolveIcon (defaultDistKey: any): Promise<string> {
|
||||
let _icon = wslIconMap.Linux
|
||||
|
||||
// check if the register has PackageFamilyName
|
||||
if (defaultDistKey.PackageFamilyName) {
|
||||
// get the icon from the package family name
|
||||
const packageFamilyName = (defaultDistKey.PackageFamilyName.value as string).split('_')[0]
|
||||
|
||||
if (packageFamilyName) {
|
||||
const _ret = await this._pwsh.invoke(`Get-AppxPackage ${packageFamilyName} | ConvertTo-Json`)
|
||||
|
||||
if (!_ret.hadErrors && _ret.stdout?.toString() !== undefined && _ret.stdout.toString() !== '') {
|
||||
const appx = JSON.parse(_ret.stdout.toString())
|
||||
const installationLocation = appx.InstallLocation
|
||||
_icon = `${installationLocation}\\Assets\\Square44x44Logo.targetsize-16.png`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _icon
|
||||
}
|
||||
|
||||
async provide (): Promise<Shell[]> {
|
||||
@@ -93,7 +59,6 @@ export class WSLShellProvider extends ShellProvider {
|
||||
if (lxss?.DefaultDistribution) {
|
||||
const defaultDistKey = wnr.getRegistryKey(wnr.HK.CU, lxssPath + '\\' + String(lxss.DefaultDistribution.value))
|
||||
if (defaultDistKey?.DistributionName) {
|
||||
const _icon = await this._resolveIcon(defaultDistKey)
|
||||
const shell: Shell = {
|
||||
id: 'wsl',
|
||||
name: 'WSL / Default distro',
|
||||
@@ -103,7 +68,7 @@ export class WSLShellProvider extends ShellProvider {
|
||||
COLORTERM: 'truecolor',
|
||||
},
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
icon: wslIconMap[defaultDistKey.DistributionName.value] ?? _icon,
|
||||
icon: wslIconMap[defaultDistKey.DistributionName.value] ?? wslIconMap.Linux,
|
||||
}
|
||||
shells.push(shell)
|
||||
}
|
||||
@@ -125,14 +90,11 @@ export class WSLShellProvider extends ShellProvider {
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
for (const child of wnr.listRegistrySubkeys(wnr.HK.CU, lxssPath) as string[]) {
|
||||
const childKey = wnr.getRegistryKey(wnr.HK.CU, lxssPath + '\\' + child)
|
||||
if (!childKey.DistributionName || !childKey.BasePath) {
|
||||
continue
|
||||
}
|
||||
|
||||
const _icon = await this._resolveIcon(childKey)
|
||||
const wslVersion = (childKey.Flags?.value || 0) & 8 ? 2 : 1
|
||||
const name = childKey.DistributionName.value
|
||||
const fsBase = wslVersion === 2 ? `\\\\wsl$\\${name}` : childKey.BasePath.value as string + '\\rootfs'
|
||||
@@ -148,7 +110,7 @@ export class WSLShellProvider extends ShellProvider {
|
||||
COLORTERM: 'truecolor',
|
||||
},
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
icon: wslIconMap[name] ?? _icon,
|
||||
icon: wslIconMap[name] ?? wslIconMap.Linux,
|
||||
}
|
||||
shells.push(shell)
|
||||
}
|
||||
|
@@ -18,7 +18,7 @@
|
||||
"author": "Eugene Pankov",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@xterm/addon-web-links": "^0.10.0",
|
||||
"untildify": "^4.0.0"
|
||||
"untildify": "^4.0.0",
|
||||
"xterm-addon-web-links": "^0.7.0"
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import { Inject, Injectable } from '@angular/core'
|
||||
import { ConfigService, PlatformService } from 'tabby-core'
|
||||
import { TerminalDecorator, BaseTerminalTabComponent, XTermFrontend } from 'tabby-terminal'
|
||||
import { WebLinksAddon } from '@xterm/addon-web-links'
|
||||
import { WebLinksAddon } from 'xterm-addon-web-links'
|
||||
import { LinkHandler } from './api'
|
||||
|
||||
@Injectable()
|
||||
|
@@ -2,11 +2,6 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@xterm/addon-web-links@^0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-web-links/-/addon-web-links-0.10.0.tgz#be3eccaf1cbd4063161458205cd4bbee2b0f34f9"
|
||||
integrity sha512-QhrHCUr8w6ATGviyXwcAIM1qN3nD1hdxwMC8fsW7z/6aaQlb2nt7zmByJt4eOn7ZzrHOzczljqV5S2pkdQp2xw==
|
||||
|
||||
untildify@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
|
||||
|
@@ -1,28 +0,0 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Injectable } from '@angular/core'
|
||||
import { ToolbarButtonProvider, ToolbarButton, TranslateService } from 'tabby-core'
|
||||
import { TerminalService } from './services/terminal.service'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class ButtonProvider extends ToolbarButtonProvider {
|
||||
constructor (
|
||||
private terminal: TerminalService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
provide (): ToolbarButton[] {
|
||||
return [
|
||||
{
|
||||
icon: require('./icons/plus.svg'),
|
||||
title: this.translate.instant('New terminal'),
|
||||
touchBarNSImage: 'NSTouchBarAddDetailTemplate',
|
||||
click: () => {
|
||||
this.terminal.openTab()
|
||||
},
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
@@ -132,9 +132,7 @@ export class AutoOpenTabCLIHandler extends CLIHandler {
|
||||
async handle (event: CLIEvent): Promise<boolean> {
|
||||
if (!event.secondInstance && this.config.store.terminal.autoOpen && !this.config.store.enableWelcomeTab) {
|
||||
this.app.ready$.subscribe(() => {
|
||||
if (this.app.tabs.length === 0) {
|
||||
this.terminal.openTab()
|
||||
}
|
||||
this.terminal.openTab()
|
||||
})
|
||||
return true
|
||||
}
|
||||
|
123
tabby-local/src/commands.ts
Normal file
123
tabby-local/src/commands.ts
Normal file
@@ -0,0 +1,123 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Inject, Injectable, Optional } from '@angular/core'
|
||||
|
||||
import { CommandProvider, Command, CommandLocation, TranslateService, CommandContext, ProfilesService } from 'tabby-core'
|
||||
|
||||
import { TerminalTabComponent } from './components/terminalTab.component'
|
||||
import { TerminalService } from './services/terminal.service'
|
||||
import { LocalProfile, UACService } from './api'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class LocalCommandProvider extends CommandProvider {
|
||||
constructor (
|
||||
private terminal: TerminalService,
|
||||
private profilesService: ProfilesService,
|
||||
private translate: TranslateService,
|
||||
@Optional() @Inject(UACService) private uac: UACService|undefined,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async provide (context: CommandContext): Promise<Command[]> {
|
||||
const profiles = (await this.profilesService.getProfiles()).filter(x => x.type === 'local') as LocalProfile[]
|
||||
|
||||
const commands: Command[] = [
|
||||
{
|
||||
id: 'local:new-tab',
|
||||
group: 'local:new-tab',
|
||||
label: this.translate.instant('New terminal'),
|
||||
locations: [CommandLocation.LeftToolbar, CommandLocation.StartPage, CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
weight: 11,
|
||||
icon: require('./icons/plus.svg'),
|
||||
run: async () => this.runOpenTab(context),
|
||||
},
|
||||
]
|
||||
|
||||
commands.push({
|
||||
id: 'local:new-tab-with-profile',
|
||||
group: 'local:new-tab',
|
||||
label: this.translate.instant('New with profile'),
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
weight: 12,
|
||||
})
|
||||
|
||||
for (const profile of profiles) {
|
||||
commands.push({
|
||||
id: `local:new-tab-with-profile:${profile.id}`,
|
||||
group: 'local:new-tab',
|
||||
parent: 'local:new-tab-with-profile',
|
||||
label: profile.name,
|
||||
fullLabel: this.translate.instant('New terminal with profile: {profile}', { profile: profile.name }),
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
run: async () => {
|
||||
let workingDirectory = profile.options.cwd
|
||||
if (!workingDirectory && context.tab instanceof TerminalTabComponent) {
|
||||
workingDirectory = await context.tab.session?.getWorkingDirectory() ?? undefined
|
||||
}
|
||||
await this.terminal.openTab(profile, workingDirectory)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (this.uac?.isAvailable) {
|
||||
commands.push({
|
||||
id: 'local:new-tab-as-administrator-with-profile',
|
||||
group: 'local:new-tab',
|
||||
label: this.translate.instant('New admin tab'),
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
weight: 13,
|
||||
})
|
||||
|
||||
for (const profile of profiles) {
|
||||
commands.push({
|
||||
id: `local:new-tab-as-administrator-with-profile:${profile.id}`,
|
||||
group: 'local:new-tab',
|
||||
label: profile.name,
|
||||
fullLabel: this.translate.instant('New admin tab with profile: {profile}', { profile: profile.name }),
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
this.profilesService.openNewTabForProfile({
|
||||
...profile,
|
||||
options: {
|
||||
...profile.options,
|
||||
runAsAdministrator: true,
|
||||
},
|
||||
})
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (context.tab && context.tab instanceof TerminalTabComponent) {
|
||||
const terminalTab = context.tab
|
||||
commands.push({
|
||||
id: 'local:duplicate-tab-as-administrator',
|
||||
group: 'local:new-tab',
|
||||
label: this.translate.instant('Duplicate as administrator'),
|
||||
locations: [CommandLocation.TabHeaderMenu],
|
||||
weight: 14,
|
||||
run: async () => {
|
||||
this.profilesService.openNewTabForProfile({
|
||||
...terminalTab.profile,
|
||||
options: {
|
||||
...terminalTab.profile.options,
|
||||
runAsAdministrator: true,
|
||||
},
|
||||
})
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return commands
|
||||
}
|
||||
|
||||
runOpenTab (context: CommandContext) {
|
||||
if (context.tab && context.tab instanceof TerminalTabComponent) {
|
||||
this.profilesService.openNewTabForProfile(context.tab.profile)
|
||||
} else {
|
||||
this.terminal.openTab()
|
||||
}
|
||||
}
|
||||
}
|
@@ -4,7 +4,7 @@ import { FormsModule } from '@angular/forms'
|
||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { ToastrModule } from 'ngx-toastr'
|
||||
|
||||
import TabbyCorePlugin, { HostAppService, ToolbarButtonProvider, TabRecoveryProvider, ConfigProvider, HotkeysService, HotkeyProvider, TabContextMenuItemProvider, CLIHandler, ProfileProvider } from 'tabby-core'
|
||||
import TabbyCorePlugin, { HostAppService, TabRecoveryProvider, ConfigProvider, HotkeysService, HotkeyProvider, CLIHandler, ProfileProvider, CommandProvider } from 'tabby-core'
|
||||
import TabbyTerminalModule from 'tabby-terminal'
|
||||
import { SettingsTabProvider } from 'tabby-settings'
|
||||
|
||||
@@ -16,15 +16,14 @@ import { CommandLineEditorComponent } from './components/commandLineEditor.compo
|
||||
|
||||
import { TerminalService } from './services/terminal.service'
|
||||
|
||||
import { ButtonProvider } from './buttonProvider'
|
||||
import { RecoveryProvider } from './recoveryProvider'
|
||||
import { ShellSettingsTabProvider } from './settings'
|
||||
import { TerminalConfigProvider } from './config'
|
||||
import { LocalTerminalHotkeyProvider } from './hotkeys'
|
||||
import { NewTabContextMenu } from './tabContextMenu'
|
||||
|
||||
import { AutoOpenTabCLIHandler, OpenPathCLIHandler, TerminalCLIHandler } from './cli'
|
||||
import { LocalProfilesService } from './profiles'
|
||||
import { LocalCommandProvider } from './commands'
|
||||
|
||||
/** @hidden */
|
||||
@NgModule({
|
||||
@@ -39,15 +38,13 @@ import { LocalProfilesService } from './profiles'
|
||||
providers: [
|
||||
{ provide: SettingsTabProvider, useClass: ShellSettingsTabProvider, multi: true },
|
||||
|
||||
{ provide: ToolbarButtonProvider, useClass: ButtonProvider, multi: true },
|
||||
{ provide: CommandProvider, useExisting: LocalCommandProvider, multi: true },
|
||||
{ provide: TabRecoveryProvider, useClass: RecoveryProvider, multi: true },
|
||||
{ provide: ConfigProvider, useClass: TerminalConfigProvider, multi: true },
|
||||
{ provide: HotkeyProvider, useClass: LocalTerminalHotkeyProvider, multi: true },
|
||||
|
||||
{ provide: ProfileProvider, useClass: LocalProfilesService, multi: true },
|
||||
|
||||
{ provide: TabContextMenuItemProvider, useClass: NewTabContextMenu, multi: true },
|
||||
|
||||
{ provide: CLIHandler, useClass: TerminalCLIHandler, multi: true },
|
||||
{ provide: CLIHandler, useClass: OpenPathCLIHandler, multi: true },
|
||||
{ provide: CLIHandler, useClass: AutoOpenTabCLIHandler, multi: true },
|
||||
|
@@ -1,87 +0,0 @@
|
||||
import { Inject, Injectable, Optional } from '@angular/core'
|
||||
import { ConfigService, BaseTabComponent, TabContextMenuItemProvider, MenuItemOptions, ProfilesService, TranslateService } from 'tabby-core'
|
||||
import { TerminalTabComponent } from './components/terminalTab.component'
|
||||
import { TerminalService } from './services/terminal.service'
|
||||
import { LocalProfile, UACService } from './api'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class NewTabContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 10
|
||||
|
||||
constructor (
|
||||
public config: ConfigService,
|
||||
private profilesService: ProfilesService,
|
||||
private terminalService: TerminalService,
|
||||
@Optional() @Inject(UACService) private uac: UACService|undefined,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent, tabHeader?: boolean): Promise<MenuItemOptions[]> {
|
||||
const profiles = (await this.profilesService.getProfiles()).filter(x => x.type === 'local') as LocalProfile[]
|
||||
|
||||
const items: MenuItemOptions[] = [
|
||||
{
|
||||
label: this.translate.instant('New terminal'),
|
||||
click: () => {
|
||||
if (tab instanceof TerminalTabComponent) {
|
||||
this.profilesService.openNewTabForProfile(tab.profile)
|
||||
} else {
|
||||
this.terminalService.openTab()
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('New with profile'),
|
||||
submenu: profiles.map(profile => ({
|
||||
label: profile.name,
|
||||
click: async () => {
|
||||
let workingDirectory = profile.options.cwd
|
||||
if (!workingDirectory && tab instanceof TerminalTabComponent) {
|
||||
workingDirectory = await tab.session?.getWorkingDirectory() ?? undefined
|
||||
}
|
||||
await this.terminalService.openTab(profile, workingDirectory)
|
||||
},
|
||||
})),
|
||||
},
|
||||
]
|
||||
|
||||
if (this.uac?.isAvailable) {
|
||||
items.push({
|
||||
label: this.translate.instant('New admin tab'),
|
||||
submenu: profiles.map(profile => ({
|
||||
label: profile.name,
|
||||
click: () => {
|
||||
this.profilesService.openNewTabForProfile({
|
||||
...profile,
|
||||
options: {
|
||||
...profile.options,
|
||||
runAsAdministrator: true,
|
||||
},
|
||||
})
|
||||
},
|
||||
})),
|
||||
})
|
||||
}
|
||||
|
||||
if (tab instanceof TerminalTabComponent && tabHeader && this.uac?.isAvailable) {
|
||||
const terminalTab = tab
|
||||
items.push({
|
||||
label: this.translate.instant('Duplicate as administrator'),
|
||||
click: () => {
|
||||
this.profilesService.openNewTabForProfile({
|
||||
...terminalTab.profile,
|
||||
options: {
|
||||
...terminalTab.profile.options,
|
||||
runAsAdministrator: true,
|
||||
},
|
||||
})
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
return items
|
||||
}
|
||||
}
|
@@ -1,11 +1,11 @@
|
||||
import { Injectable } from '@angular/core'
|
||||
import { ToolbarButtonProvider, ToolbarButton, AppService, HostAppService, HotkeysService, TranslateService } from 'tabby-core'
|
||||
import { CommandProvider, AppService, HostAppService, HotkeysService, TranslateService, Command, CommandLocation } from 'tabby-core'
|
||||
|
||||
import { SettingsTabComponent } from './components/settingsTab.component'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class ButtonProvider extends ToolbarButtonProvider {
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class SettingsCommandProvider extends CommandProvider {
|
||||
constructor (
|
||||
hostApp: HostAppService,
|
||||
hotkeys: HotkeysService,
|
||||
@@ -22,13 +22,14 @@ export class ButtonProvider extends ToolbarButtonProvider {
|
||||
})
|
||||
}
|
||||
|
||||
provide (): ToolbarButton[] {
|
||||
async provide (): Promise<Command[]> {
|
||||
return [{
|
||||
id: 'settings:open',
|
||||
icon: require('./icons/cog.svg'),
|
||||
title: this.translate.instant('Settings'),
|
||||
touchBarNSImage: 'NSTouchBarComposeTemplate',
|
||||
weight: 10,
|
||||
click: (): void => this.open(),
|
||||
label: this.translate.instant('Settings'),
|
||||
weight: 99,
|
||||
locations: [CommandLocation.RightToolbar, CommandLocation.StartPage],
|
||||
run: async () => this.open(),
|
||||
}]
|
||||
}
|
||||
|
@@ -121,15 +121,6 @@ h3.mb-3(translate) Window
|
||||
label.btn.btn-secondary(for='frameFull')
|
||||
span(translate) Full
|
||||
|
||||
.form-line(*ngIf='hostApp.platform !== Platform.Web && hostApp.platform !== Platform.Linux')
|
||||
.header
|
||||
.title(translate) Hide tray
|
||||
.description(translate) Hide Tabby in tray or menu bar.
|
||||
toggle(
|
||||
[(ngModel)]='config.store.hideTray',
|
||||
(ngModelChange)='saveConfiguration(true)'
|
||||
)
|
||||
|
||||
h3.mt-4(translate) Docking
|
||||
|
||||
.form-line(*ngIf='docking')
|
||||
|
@@ -4,7 +4,7 @@ import { FormsModule } from '@angular/forms'
|
||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { InfiniteScrollModule } from 'ngx-infinite-scroll'
|
||||
|
||||
import TabbyCorePlugin, { ToolbarButtonProvider, HotkeyProvider, ConfigProvider, HotkeysService, AppService } from 'tabby-core'
|
||||
import TabbyCorePlugin, { HotkeyProvider, ConfigProvider, HotkeysService, AppService, CommandProvider } from 'tabby-core'
|
||||
|
||||
import { EditProfileModalComponent } from './components/editProfileModal.component'
|
||||
import { EditProfileGroupModalComponent } from './components/editProfileGroupModal.component'
|
||||
@@ -24,7 +24,7 @@ import { ShowSecretModalComponent } from './components/showSecretModal.component
|
||||
import { ConfigSyncService } from './services/configSync.service'
|
||||
|
||||
import { SettingsTabProvider } from './api'
|
||||
import { ButtonProvider } from './buttonProvider'
|
||||
import { SettingsCommandProvider } from './commands'
|
||||
import { SettingsHotkeyProvider } from './hotkeys'
|
||||
import { SettingsConfigProvider } from './config'
|
||||
import { HotkeySettingsTabProvider, WindowSettingsTabProvider, VaultSettingsTabProvider, ProfilesSettingsTabProvider, ConfigSyncSettingsTabProvider } from './settings'
|
||||
@@ -39,7 +39,7 @@ import { HotkeySettingsTabProvider, WindowSettingsTabProvider, VaultSettingsTabP
|
||||
InfiniteScrollModule,
|
||||
],
|
||||
providers: [
|
||||
{ provide: ToolbarButtonProvider, useClass: ButtonProvider, multi: true },
|
||||
{ provide: CommandProvider, useExisting: SettingsCommandProvider, multi: true },
|
||||
{ provide: ConfigProvider, useClass: SettingsConfigProvider, multi: true },
|
||||
{ provide: HotkeyProvider, useClass: SettingsHotkeyProvider, multi: true },
|
||||
{ provide: SettingsTabProvider, useClass: HotkeySettingsTabProvider, multi: true },
|
||||
|
@@ -184,17 +184,13 @@ export class ConfigSyncService {
|
||||
|
||||
private async autoSync () {
|
||||
while (true) {
|
||||
try {
|
||||
if (this.isEnabled() && this.config.store.configSync.auto) {
|
||||
const cfg = await this.getConfig(this.config.store.configSync.configID)
|
||||
if (new Date(cfg.modified_at) > this.lastRemoteChange) {
|
||||
this.logger.info('Remote config changed, downloading')
|
||||
this.download()
|
||||
this.lastRemoteChange = new Date(cfg.modified_at)
|
||||
}
|
||||
if (this.isEnabled() && this.config.store.configSync.auto) {
|
||||
const cfg = await this.getConfig(this.config.store.configSync.configID)
|
||||
if (new Date(cfg.modified_at) > this.lastRemoteChange) {
|
||||
this.logger.info('Remote config changed, downloading')
|
||||
this.download()
|
||||
this.lastRemoteChange = new Date(cfg.modified_at)
|
||||
}
|
||||
} catch (error) {
|
||||
this.logger.debug('Recovering from autoSync network error')
|
||||
}
|
||||
await new Promise(resolve => setTimeout(resolve, 60000))
|
||||
}
|
||||
|
@@ -2,4 +2,3 @@ export * from './contextMenu'
|
||||
export * from './interfaces'
|
||||
export * from './importer'
|
||||
export * from './proxyStream'
|
||||
export { SSHMultiplexerService } from '../services/sshMultiplexer.service'
|
||||
|
44
tabby-ssh/src/commands.ts
Normal file
44
tabby-ssh/src/commands.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Injectable } from '@angular/core'
|
||||
|
||||
import { CommandProvider, Command, CommandLocation, TranslateService, CommandContext, Platform, HostAppService } from 'tabby-core'
|
||||
|
||||
import { SSHTabComponent } from './components/sshTab.component'
|
||||
import { SSHService } from './services/ssh.service'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class SSHCommandProvider extends CommandProvider {
|
||||
constructor (
|
||||
private hostApp: HostAppService,
|
||||
private ssh: SSHService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async provide (context: CommandContext): Promise<Command[]> {
|
||||
const tab = context.tab
|
||||
if (!tab || !(tab instanceof SSHTabComponent)) {
|
||||
return []
|
||||
}
|
||||
|
||||
const commands: Command[] = [{
|
||||
id: 'ssh:open-sftp-panel',
|
||||
group: 'ssh:sftp',
|
||||
label: this.translate.instant('Open SFTP panel'),
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => tab.openSFTP(),
|
||||
}]
|
||||
if (this.hostApp.platform === Platform.Windows && this.ssh.getWinSCPPath()) {
|
||||
commands.push({
|
||||
id: 'ssh:open-winscp',
|
||||
group: 'ssh:sftp',
|
||||
label: this.translate.instant('Launch WinSCP'),
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => this.ssh.launchWinSCP(tab.sshSession!),
|
||||
})
|
||||
}
|
||||
return commands
|
||||
}
|
||||
}
|
@@ -1,10 +1,7 @@
|
||||
terminal-toolbar([tab]='this')
|
||||
i.fas.fa-xs.fa-circle.text-success.me-2(*ngIf='session && session.open')
|
||||
i.fas.fa-xs.fa-circle.text-danger.me-2(*ngIf='!session || !session.open')
|
||||
strong.me-auto(
|
||||
style='user-select: text; cursor: text;'
|
||||
onclick='event.stopPropagation()'
|
||||
) {{profile.options.user}}@{{profile.options.host}}:{{profile.options.port}}
|
||||
strong.me-auto {{profile.options.user}}@{{profile.options.host}}:{{profile.options.port}}
|
||||
|
||||
.me-2(
|
||||
ngbDropdown,
|
||||
|
@@ -6,7 +6,7 @@ import { FormsModule } from '@angular/forms'
|
||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { ToastrModule } from 'ngx-toastr'
|
||||
import { NgxFilesizeModule } from 'ngx-filesize'
|
||||
import TabbyCoreModule, { ConfigProvider, TabRecoveryProvider, HotkeyProvider, TabContextMenuItemProvider, ProfileProvider } from 'tabby-core'
|
||||
import TabbyCoreModule, { ConfigProvider, TabRecoveryProvider, HotkeyProvider, ProfileProvider, CommandProvider } from 'tabby-core'
|
||||
import { SettingsTabProvider } from 'tabby-settings'
|
||||
import TabbyTerminalModule from 'tabby-terminal'
|
||||
|
||||
@@ -24,11 +24,11 @@ import { SSHConfigProvider } from './config'
|
||||
import { SSHSettingsTabProvider } from './settings'
|
||||
import { RecoveryProvider } from './recoveryProvider'
|
||||
import { SSHHotkeyProvider } from './hotkeys'
|
||||
import { SFTPContextMenu } from './tabContextMenu'
|
||||
import { SSHProfilesService } from './profiles'
|
||||
import { SFTPContextMenuItemProvider } from './api/contextMenu'
|
||||
import { CommonSFTPContextMenu } from './sftpContextMenu'
|
||||
import { SFTPCreateDirectoryModalComponent } from './components/sftpCreateDirectoryModal.component'
|
||||
import { SSHCommandProvider } from './commands'
|
||||
|
||||
/** @hidden */
|
||||
@NgModule({
|
||||
@@ -46,7 +46,7 @@ import { SFTPCreateDirectoryModalComponent } from './components/sftpCreateDirect
|
||||
{ provide: SettingsTabProvider, useClass: SSHSettingsTabProvider, multi: true },
|
||||
{ provide: TabRecoveryProvider, useClass: RecoveryProvider, multi: true },
|
||||
{ provide: HotkeyProvider, useClass: SSHHotkeyProvider, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: SFTPContextMenu, multi: true },
|
||||
{ provide: CommandProvider, useExisting: SSHCommandProvider, multi: true },
|
||||
{ provide: ProfileProvider, useExisting: SSHProfilesService, multi: true },
|
||||
{ provide: SFTPContextMenuItemProvider, useClass: CommonSFTPContextMenu, multi: true },
|
||||
],
|
||||
|
@@ -1,12 +1,4 @@
|
||||
import 'ssh2'
|
||||
const nodeCrypto = require('crypto')
|
||||
const browserDH = require('diffie-hellman/browser')
|
||||
nodeCrypto.createDiffieHellmanGroup = browserDH.createDiffieHellmanGroup
|
||||
nodeCrypto.createDiffieHellman = browserDH.createDiffieHellman
|
||||
|
||||
// Declare function missing from @types
|
||||
declare module 'ssh2' {
|
||||
interface Client {
|
||||
setNoDelay: (enable?: boolean) => this
|
||||
}
|
||||
}
|
||||
|
@@ -218,8 +218,6 @@ export class SSHSession {
|
||||
const resultPromise: Promise<void> = new Promise(async (resolve, reject) => {
|
||||
ssh.on('ready', () => {
|
||||
connected = true
|
||||
// Fix SSH Lagging
|
||||
ssh.setNoDelay(true)
|
||||
if (this.savedPassword) {
|
||||
this.passwordStorage.savePassword(this.profile, this.savedPassword)
|
||||
}
|
||||
|
@@ -1,40 +0,0 @@
|
||||
import { Injectable } from '@angular/core'
|
||||
import { BaseTabComponent, TabContextMenuItemProvider, HostAppService, Platform, MenuItemOptions, TranslateService } from 'tabby-core'
|
||||
import { SSHTabComponent } from './components/sshTab.component'
|
||||
import { SSHService } from './services/ssh.service'
|
||||
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class SFTPContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 10
|
||||
|
||||
constructor (
|
||||
private hostApp: HostAppService,
|
||||
private ssh: SSHService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
if (!(tab instanceof SSHTabComponent)) {
|
||||
return []
|
||||
}
|
||||
const items = [{
|
||||
label: this.translate.instant('Open SFTP panel'),
|
||||
click: () => {
|
||||
tab.openSFTP()
|
||||
},
|
||||
}]
|
||||
if (this.hostApp.platform === Platform.Windows && this.ssh.getWinSCPPath()) {
|
||||
items.push({
|
||||
label: this.translate.instant('Launch WinSCP'),
|
||||
click: (): void => {
|
||||
this.ssh.launchWinSCP(tab.sshSession!)
|
||||
},
|
||||
})
|
||||
}
|
||||
return items
|
||||
}
|
||||
}
|
@@ -19,15 +19,6 @@
|
||||
"author": "Eugene Pankov",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@xterm/addon-canvas": "^0.6.0",
|
||||
"@xterm/addon-fit": "^0.9.0",
|
||||
"@xterm/addon-image": "^0.7.0",
|
||||
"@xterm/addon-ligatures": "^0.8.0",
|
||||
"@xterm/addon-search": "^0.14.0",
|
||||
"@xterm/addon-serialize": "^0.12.0",
|
||||
"@xterm/addon-unicode11": "^0.7.0",
|
||||
"@xterm/addon-webgl": "^0.17.0",
|
||||
"@xterm/xterm": "^5.4.0",
|
||||
"ansi-colors": "^4.1.1",
|
||||
"binstring": "^0.2.1",
|
||||
"buffer-replace": "^1.0.0",
|
||||
@@ -37,6 +28,15 @@
|
||||
"ngx-colors": "^3.4.0",
|
||||
"patch-package": "^6.5.0",
|
||||
"runes": "^0.4.2",
|
||||
"xterm": "^5.3.0",
|
||||
"xterm-addon-canvas": "^0.5.0",
|
||||
"xterm-addon-fit": "^0.8.0",
|
||||
"xterm-addon-image": "^0.5.0",
|
||||
"xterm-addon-ligatures": "^0.7.0",
|
||||
"xterm-addon-search": "^0.13.0",
|
||||
"xterm-addon-serialize": "^0.11.0",
|
||||
"xterm-addon-unicode11": "^0.6.0",
|
||||
"xterm-addon-webgl": "^0.16.0",
|
||||
"zmodem.js": "^0.1.9"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
@@ -3,7 +3,7 @@ import { Spinner } from 'cli-spinner'
|
||||
import colors from 'ansi-colors'
|
||||
import { NgZone, OnInit, OnDestroy, Injector, ViewChild, HostBinding, Input, ElementRef, InjectFlags, Component } from '@angular/core'
|
||||
import { trigger, transition, style, animate, AnimationTriggerMetadata } from '@angular/animations'
|
||||
import { AppService, ConfigService, BaseTabComponent, HostAppService, HotkeysService, NotificationsService, Platform, LogService, Logger, TabContextMenuItemProvider, SplitTabComponent, SubscriptionContainer, MenuItemOptions, PlatformService, HostWindowService, ResettableTimeout, TranslateService, ThemesService } from 'tabby-core'
|
||||
import { AppService, ConfigService, BaseTabComponent, HostAppService, HotkeysService, NotificationsService, Platform, LogService, Logger, SplitTabComponent, SubscriptionContainer, MenuItemOptions, PlatformService, HostWindowService, ResettableTimeout, TranslateService, ThemesService, CommandContext, CommandLocation, CommandService } from 'tabby-core'
|
||||
|
||||
import { BaseSession } from '../session'
|
||||
|
||||
@@ -121,11 +121,11 @@ export class BaseTerminalTabComponent<P extends BaseTerminalProfile> extends Bas
|
||||
protected notifications: NotificationsService
|
||||
protected log: LogService
|
||||
protected decorators: TerminalDecorator[] = []
|
||||
protected contextMenuProviders: TabContextMenuItemProvider[]
|
||||
protected hostWindow: HostWindowService
|
||||
protected translate: TranslateService
|
||||
protected multifocus: MultifocusService
|
||||
protected themes: ThemesService
|
||||
protected commands: CommandService
|
||||
// Deps end
|
||||
|
||||
protected logger: Logger
|
||||
@@ -200,11 +200,11 @@ export class BaseTerminalTabComponent<P extends BaseTerminalProfile> extends Bas
|
||||
this.notifications = injector.get(NotificationsService)
|
||||
this.log = injector.get(LogService)
|
||||
this.decorators = injector.get<any>(TerminalDecorator, null, InjectFlags.Optional) as TerminalDecorator[]
|
||||
this.contextMenuProviders = injector.get<any>(TabContextMenuItemProvider, null, InjectFlags.Optional) as TabContextMenuItemProvider[]
|
||||
this.hostWindow = injector.get(HostWindowService)
|
||||
this.translate = injector.get(TranslateService)
|
||||
this.multifocus = injector.get(MultifocusService)
|
||||
this.themes = injector.get(ThemesService)
|
||||
this.commands = injector.get(CommandService)
|
||||
|
||||
this.logger = this.log.create('baseTerminalTab')
|
||||
this.setTitle(this.translate.instant('Terminal'))
|
||||
@@ -323,8 +323,6 @@ export class BaseTerminalTabComponent<P extends BaseTerminalProfile> extends Bas
|
||||
this.bellPlayer = document.createElement('audio')
|
||||
this.bellPlayer.src = require<string>('../bell.ogg')
|
||||
this.bellPlayer.load()
|
||||
|
||||
this.contextMenuProviders.sort((a, b) => a.weight - b.weight)
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@@ -470,13 +468,14 @@ export class BaseTerminalTabComponent<P extends BaseTerminalProfile> extends Bas
|
||||
}
|
||||
|
||||
async buildContextMenu (): Promise<MenuItemOptions[]> {
|
||||
let items: MenuItemOptions[] = []
|
||||
for (const section of await Promise.all(this.contextMenuProviders.map(x => x.getItems(this)))) {
|
||||
items = items.concat(section)
|
||||
items.push({ type: 'separator' })
|
||||
const contexts: CommandContext[] = [{ tab: this }]
|
||||
|
||||
// Top-level tab menu
|
||||
if (this.parent) {
|
||||
contexts.unshift({ tab: this.parent })
|
||||
}
|
||||
items.splice(items.length - 1, 1)
|
||||
return items
|
||||
|
||||
return this.commands.buildContextMenu(contexts, CommandLocation.TabBodyMenu)
|
||||
}
|
||||
|
||||
/**
|
||||
|
180
tabby-terminal/src/commands.ts
Normal file
180
tabby-terminal/src/commands.ts
Normal file
@@ -0,0 +1,180 @@
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
import { Injectable } from '@angular/core'
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import slugify from 'slugify'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
|
||||
import { CommandProvider, Command, CommandLocation, TranslateService, CommandContext, PromptModalComponent, PartialProfile, Profile, ConfigService, NotificationsService, SplitTabComponent } from 'tabby-core'
|
||||
|
||||
import { ConnectableTerminalTabComponent } from './api/connectableTerminalTab.component'
|
||||
import { BaseTerminalTabComponent } from './api/baseTerminalTab.component'
|
||||
import { MultifocusService } from './services/multifocus.service'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class TerminalCommandProvider extends CommandProvider {
|
||||
constructor (
|
||||
private config: ConfigService,
|
||||
private ngbModal: NgbModal,
|
||||
private notifications: NotificationsService,
|
||||
private translate: TranslateService,
|
||||
private multifocus: MultifocusService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async provide (context: CommandContext): Promise<Command[]> {
|
||||
const commands: Command[] = []
|
||||
const tab = context.tab
|
||||
if (!tab) {
|
||||
return []
|
||||
}
|
||||
|
||||
if (tab instanceof BaseTerminalTabComponent && tab.enableToolbar && !tab.pinToolbar) {
|
||||
commands.push({
|
||||
id: 'terminal:show-toolbar',
|
||||
group: 'terminal:misc',
|
||||
label: this.translate.instant('Show toolbar'),
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => {
|
||||
tab.pinToolbar = true
|
||||
},
|
||||
})
|
||||
}
|
||||
if (tab instanceof BaseTerminalTabComponent && tab.session?.supportsWorkingDirectory()) {
|
||||
commands.push({
|
||||
id: 'terminal:copy-current-path',
|
||||
group: 'terminal:misc',
|
||||
label: this.translate.instant('Copy current path'),
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => tab.copyCurrentPath(),
|
||||
})
|
||||
}
|
||||
commands.push({
|
||||
id: 'terminal:focus-all-tabs',
|
||||
group: 'core:panes',
|
||||
label: this.translate.instant('Focus all tabs'),
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => {
|
||||
this.multifocus.focusAllTabs()
|
||||
},
|
||||
})
|
||||
|
||||
let splitTab: SplitTabComponent|null = null
|
||||
if (tab.parent instanceof SplitTabComponent) {
|
||||
splitTab = tab.parent
|
||||
}
|
||||
if (tab instanceof SplitTabComponent) {
|
||||
splitTab = tab
|
||||
}
|
||||
|
||||
if (splitTab && splitTab.getAllTabs().length > 1) {
|
||||
commands.push({
|
||||
id: 'terminal:focus-all-panes',
|
||||
group: 'terminal:misc',
|
||||
label: this.translate.instant('Focus all panes'),
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => {
|
||||
this.multifocus.focusAllPanes()
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (tab instanceof BaseTerminalTabComponent) {
|
||||
commands.push({
|
||||
id: 'terminal:save-as-profile',
|
||||
group: 'terminal:misc',
|
||||
label: this.translate.instant('Save as profile'),
|
||||
locations: [CommandLocation.TabBodyMenu, CommandLocation.TabHeaderMenu],
|
||||
run: async () => {
|
||||
const modal = this.ngbModal.open(PromptModalComponent)
|
||||
modal.componentInstance.prompt = this.translate.instant('New profile name')
|
||||
modal.componentInstance.value = tab.profile.name
|
||||
const name = (await modal.result.catch(() => null))?.value
|
||||
if (!name) {
|
||||
return
|
||||
}
|
||||
|
||||
const options = {
|
||||
...tab.profile.options,
|
||||
}
|
||||
|
||||
const cwd = await tab.session?.getWorkingDirectory() ?? tab.profile.options.cwd
|
||||
if (cwd) {
|
||||
options.cwd = cwd
|
||||
}
|
||||
|
||||
const profile: PartialProfile<Profile> = {
|
||||
type: tab.profile.type,
|
||||
name,
|
||||
options,
|
||||
}
|
||||
|
||||
profile.id = `${profile.type}:custom:${slugify(name)}:${uuidv4()}`
|
||||
profile.group = tab.profile.group
|
||||
profile.icon = tab.profile.icon
|
||||
profile.color = tab.profile.color
|
||||
profile.disableDynamicTitle = tab.profile.disableDynamicTitle
|
||||
profile.behaviorOnSessionEnd = tab.profile.behaviorOnSessionEnd
|
||||
|
||||
this.config.store.profiles = [
|
||||
...this.config.store.profiles,
|
||||
profile,
|
||||
]
|
||||
this.config.save()
|
||||
this.notifications.info(this.translate.instant('Saved'))
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (tab instanceof ConnectableTerminalTabComponent) {
|
||||
commands.push({
|
||||
id: 'terminal:disconnect',
|
||||
label: this.translate.instant('Disconnect'),
|
||||
group: 'terminal:connection',
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => {
|
||||
setTimeout(() => {
|
||||
tab.disconnect()
|
||||
this.notifications.notice(this.translate.instant('Disconnect'))
|
||||
})
|
||||
},
|
||||
})
|
||||
commands.push({
|
||||
id: 'terminal:reconnect',
|
||||
label: this.translate.instant('Reconnect'),
|
||||
group: 'terminal:connection',
|
||||
locations: [CommandLocation.TabHeaderMenu, CommandLocation.TabBodyMenu],
|
||||
run: async () => {
|
||||
setTimeout(() => {
|
||||
tab.reconnect()
|
||||
this.notifications.notice(this.translate.instant('Reconnect'))
|
||||
})
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (tab instanceof BaseTerminalTabComponent) {
|
||||
commands.push({
|
||||
id: 'terminal:copy',
|
||||
label: this.translate.instant('Copy'),
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
weight: -2,
|
||||
run: async () => {
|
||||
setTimeout(() => {
|
||||
tab.frontend?.copySelection()
|
||||
this.notifications.notice(this.translate.instant('Copied'))
|
||||
})
|
||||
},
|
||||
})
|
||||
commands.push({
|
||||
id: 'terminal:paste',
|
||||
label: this.translate.instant('Paste'),
|
||||
locations: [CommandLocation.TabBodyMenu],
|
||||
weight: -1,
|
||||
run: async () => tab.paste(),
|
||||
})
|
||||
}
|
||||
return commands
|
||||
}
|
||||
}
|
@@ -3,7 +3,6 @@
|
||||
width: 600px;
|
||||
max-width: 80vw;
|
||||
right: 40px;
|
||||
height: 36px;
|
||||
z-index: 5;
|
||||
border-radius: 0 0 5px 5px;
|
||||
background: rgba(0, 0, 0, .95);
|
||||
@@ -23,6 +22,6 @@
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
:host ::ng-deep svg {
|
||||
::ng-deep svg {
|
||||
height: 16px;
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
@import url("../../node_modules/@xterm/xterm/css/xterm.css");
|
||||
@import url("../../node_modules/xterm/css/xterm.css");
|
||||
|
||||
@font-face {
|
||||
font-family: "monospace-fallback";
|
||||
|
@@ -2,15 +2,15 @@ import { BehaviorSubject, filter, firstValueFrom, takeUntil } from 'rxjs'
|
||||
import { Injector } from '@angular/core'
|
||||
import { ConfigService, getCSSFontFamily, getWindows10Build, HostAppService, HotkeysService, Platform, PlatformService, ThemesService } from 'tabby-core'
|
||||
import { Frontend, SearchOptions, SearchState } from './frontend'
|
||||
import { Terminal, ITheme } from '@xterm/xterm'
|
||||
import { FitAddon } from '@xterm/addon-fit'
|
||||
import { LigaturesAddon } from '@xterm/addon-ligatures'
|
||||
import { ISearchOptions, SearchAddon } from '@xterm/addon-search'
|
||||
import { WebglAddon } from '@xterm/addon-webgl'
|
||||
import { Unicode11Addon } from '@xterm/addon-unicode11'
|
||||
import { SerializeAddon } from '@xterm/addon-serialize'
|
||||
import { ImageAddon } from '@xterm/addon-image'
|
||||
import { CanvasAddon } from '@xterm/addon-canvas'
|
||||
import { Terminal, ITheme } from 'xterm'
|
||||
import { FitAddon } from 'xterm-addon-fit'
|
||||
import { LigaturesAddon } from 'xterm-addon-ligatures'
|
||||
import { ISearchOptions, SearchAddon } from 'xterm-addon-search'
|
||||
import { WebglAddon } from 'xterm-addon-webgl'
|
||||
import { Unicode11Addon } from 'xterm-addon-unicode11'
|
||||
import { SerializeAddon } from 'xterm-addon-serialize'
|
||||
import { ImageAddon } from 'xterm-addon-image'
|
||||
import { CanvasAddon } from 'xterm-addon-canvas'
|
||||
import './xterm.css'
|
||||
import deepEqual from 'deep-equal'
|
||||
import { BaseTerminalProfile, TerminalColorScheme } from '../api/interfaces'
|
||||
|
@@ -5,7 +5,7 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { ToastrModule } from 'ngx-toastr'
|
||||
import { NgxColorsModule } from 'ngx-colors'
|
||||
|
||||
import TabbyCorePlugin, { ConfigProvider, HotkeyProvider, TabContextMenuItemProvider, CLIHandler } from 'tabby-core'
|
||||
import TabbyCorePlugin, { ConfigProvider, HotkeyProvider, CLIHandler, CommandProvider } from 'tabby-core'
|
||||
import { SettingsTabProvider } from 'tabby-settings'
|
||||
|
||||
import { AppearanceSettingsTabComponent } from './components/appearanceSettingsTab.component'
|
||||
@@ -30,7 +30,7 @@ import { PathDropDecorator } from './features/pathDrop'
|
||||
import { ZModemDecorator } from './features/zmodem'
|
||||
import { TerminalConfigProvider } from './config'
|
||||
import { TerminalHotkeyProvider } from './hotkeys'
|
||||
import { CopyPasteContextMenu, MiscContextMenu, LegacyContextMenu, ReconnectContextMenu, SaveAsProfileContextMenu } from './tabContextMenu'
|
||||
import { TerminalCommandProvider } from './commands'
|
||||
|
||||
import { Frontend } from './frontends/frontend'
|
||||
import { XTermFrontend, XTermWebGLFrontend } from './frontends/xtermFrontend'
|
||||
@@ -58,11 +58,7 @@ import { DefaultColorSchemes } from './colorSchemes'
|
||||
{ provide: TerminalDecorator, useClass: ZModemDecorator, multi: true },
|
||||
{ provide: TerminalDecorator, useClass: DebugDecorator, multi: true },
|
||||
|
||||
{ provide: TabContextMenuItemProvider, useClass: CopyPasteContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: MiscContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: LegacyContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: ReconnectContextMenu, multi: true },
|
||||
{ provide: TabContextMenuItemProvider, useClass: SaveAsProfileContextMenu, multi: true },
|
||||
{ provide: CommandProvider, useExisting: TerminalCommandProvider, multi: true },
|
||||
|
||||
{ provide: CLIHandler, useClass: TerminalCLIHandler, multi: true },
|
||||
{ provide: TerminalColorSchemeProvider, useClass: DefaultColorSchemes, multi: true },
|
||||
|
@@ -1,218 +0,0 @@
|
||||
import { Injectable, Optional, Inject } from '@angular/core'
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { BaseTabComponent, TabContextMenuItemProvider, NotificationsService, MenuItemOptions, TranslateService, SplitTabComponent, PromptModalComponent, ConfigService, PartialProfile, Profile } from 'tabby-core'
|
||||
import { BaseTerminalTabComponent } from './api/baseTerminalTab.component'
|
||||
import { TerminalContextMenuItemProvider } from './api/contextMenuProvider'
|
||||
import { MultifocusService } from './services/multifocus.service'
|
||||
import { ConnectableTerminalTabComponent } from './api/connectableTerminalTab.component'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import slugify from 'slugify'
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class CopyPasteContextMenu extends TabContextMenuItemProvider {
|
||||
weight = -10
|
||||
|
||||
constructor (
|
||||
private notifications: NotificationsService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent, tabHeader?: boolean): Promise<MenuItemOptions[]> {
|
||||
if (tabHeader) {
|
||||
return []
|
||||
}
|
||||
if (tab instanceof BaseTerminalTabComponent) {
|
||||
return [
|
||||
{
|
||||
label: this.translate.instant('Copy'),
|
||||
click: (): void => {
|
||||
setTimeout(() => {
|
||||
tab.frontend?.copySelection()
|
||||
this.notifications.notice(this.translate.instant('Copied'))
|
||||
})
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Paste'),
|
||||
click: () => tab.paste(),
|
||||
},
|
||||
]
|
||||
}
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class MiscContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 1
|
||||
|
||||
constructor (
|
||||
private translate: TranslateService,
|
||||
private multifocus: MultifocusService,
|
||||
) { super() }
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
const items: MenuItemOptions[] = []
|
||||
if (tab instanceof BaseTerminalTabComponent && tab.enableToolbar && !tab.pinToolbar) {
|
||||
items.push({
|
||||
label: this.translate.instant('Show toolbar'),
|
||||
click: () => {
|
||||
tab.pinToolbar = true
|
||||
},
|
||||
})
|
||||
}
|
||||
if (tab instanceof BaseTerminalTabComponent && tab.session?.supportsWorkingDirectory()) {
|
||||
items.push({
|
||||
label: this.translate.instant('Copy current path'),
|
||||
click: () => tab.copyCurrentPath(),
|
||||
})
|
||||
}
|
||||
items.push({
|
||||
label: this.translate.instant('Focus all tabs'),
|
||||
click: () => {
|
||||
this.multifocus.focusAllTabs()
|
||||
},
|
||||
})
|
||||
if (tab.parent instanceof SplitTabComponent && tab.parent.getAllTabs().length > 1) {
|
||||
items.push({
|
||||
label: this.translate.instant('Focus all panes'),
|
||||
click: () => {
|
||||
this.multifocus.focusAllPanes()
|
||||
},
|
||||
})
|
||||
}
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class ReconnectContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 1
|
||||
|
||||
constructor (
|
||||
private translate: TranslateService,
|
||||
private notifications: NotificationsService,
|
||||
) { super() }
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
if (tab instanceof ConnectableTerminalTabComponent) {
|
||||
return [
|
||||
{
|
||||
label: this.translate.instant('Disconnect'),
|
||||
click: (): void => {
|
||||
setTimeout(() => {
|
||||
tab.disconnect()
|
||||
this.notifications.notice(this.translate.instant('Disconnect'))
|
||||
})
|
||||
},
|
||||
},
|
||||
{
|
||||
label: this.translate.instant('Reconnect'),
|
||||
click: (): void => {
|
||||
setTimeout(() => {
|
||||
tab.reconnect()
|
||||
this.notifications.notice(this.translate.instant('Reconnect'))
|
||||
})
|
||||
},
|
||||
},
|
||||
]
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class LegacyContextMenu extends TabContextMenuItemProvider {
|
||||
weight = 1
|
||||
|
||||
constructor (
|
||||
@Optional() @Inject(TerminalContextMenuItemProvider) protected contextMenuProviders: TerminalContextMenuItemProvider[]|null,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
if (!this.contextMenuProviders) {
|
||||
return []
|
||||
}
|
||||
if (tab instanceof BaseTerminalTabComponent) {
|
||||
let items: MenuItemOptions[] = []
|
||||
for (const p of this.contextMenuProviders) {
|
||||
items = items.concat(await p.getItems(tab))
|
||||
}
|
||||
return items
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** @hidden */
|
||||
@Injectable()
|
||||
export class SaveAsProfileContextMenu extends TabContextMenuItemProvider {
|
||||
constructor (
|
||||
private config: ConfigService,
|
||||
private ngbModal: NgbModal,
|
||||
private notifications: NotificationsService,
|
||||
private translate: TranslateService,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
async getItems (tab: BaseTabComponent): Promise<MenuItemOptions[]> {
|
||||
if (tab instanceof BaseTerminalTabComponent) {
|
||||
return [
|
||||
{
|
||||
label: this.translate.instant('Save as profile'),
|
||||
click: async () => {
|
||||
const modal = this.ngbModal.open(PromptModalComponent)
|
||||
modal.componentInstance.prompt = this.translate.instant('New profile name')
|
||||
modal.componentInstance.value = tab.profile.name
|
||||
const name = (await modal.result.catch(() => null))?.value
|
||||
if (!name) {
|
||||
return
|
||||
}
|
||||
|
||||
const options = {
|
||||
...tab.profile.options,
|
||||
}
|
||||
|
||||
const cwd = await tab.session?.getWorkingDirectory() ?? tab.profile.options.cwd
|
||||
if (cwd) {
|
||||
options.cwd = cwd
|
||||
}
|
||||
|
||||
const profile: PartialProfile<Profile> = {
|
||||
type: tab.profile.type,
|
||||
name,
|
||||
options,
|
||||
}
|
||||
|
||||
profile.id = `${profile.type}:custom:${slugify(name)}:${uuidv4()}`
|
||||
profile.group = tab.profile.group
|
||||
profile.icon = tab.profile.icon
|
||||
profile.color = tab.profile.color
|
||||
profile.disableDynamicTitle = tab.profile.disableDynamicTitle
|
||||
profile.behaviorOnSessionEnd = tab.profile.behaviorOnSessionEnd
|
||||
|
||||
this.config.store.profiles = [
|
||||
...this.config.store.profiles,
|
||||
profile,
|
||||
]
|
||||
this.config.save()
|
||||
this.notifications.info(this.translate.instant('Saved'))
|
||||
},
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
return []
|
||||
}
|
||||
}
|
@@ -2,54 +2,6 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@xterm/addon-canvas@^0.6.0":
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-canvas/-/addon-canvas-0.6.0.tgz#08b2af252b8e4c5af3870820576a9a6ca18d517e"
|
||||
integrity sha512-+nj2x595vItxfuAFxzXp46Izrh4EnEyS0Z60hX1iy6OFliP5OQu8Wu7n59m7m1vT6Q4nIWoN1WiH+VLAk4D9jQ==
|
||||
|
||||
"@xterm/addon-fit@^0.9.0":
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-fit/-/addon-fit-0.9.0.tgz#29846f08782c51ad85b949528c45b84ad4ec45d7"
|
||||
integrity sha512-hDlPPbTVPYyvwXu/asW8HbJkI/2RMi0cMaJnBZYVeJB0SWP2NeESMCNr+I7CvBlyI0sAxpxOg8Wk4OMkxBz9WA==
|
||||
|
||||
"@xterm/addon-image@^0.7.0":
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.7.0.tgz#86e7342a3fe3fac6ba42944054e660916ec44953"
|
||||
integrity sha512-OXJvmWXhJ5tdqSFX9yR2/d9AXwOz8+lJOghEPu2lSuwgLlMcOZ2YA+YuxPrisXIB2UctEHPAvVDGLbS9cESbzg==
|
||||
|
||||
"@xterm/addon-ligatures@^0.8.0":
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-ligatures/-/addon-ligatures-0.8.0.tgz#d7f196c09edad0e7e45c691dce74f28bab683c37"
|
||||
integrity sha512-hvClRA4a4saHXJV+Svxo6tC9NLN17coKbbFChhaQFvTe+TAx+G+LI1NytI8rmSIosOhg9m4uYB3J9o3Qyj4qxA==
|
||||
dependencies:
|
||||
font-finder "^1.1.0"
|
||||
font-ligatures "^1.4.1"
|
||||
|
||||
"@xterm/addon-search@^0.14.0":
|
||||
version "0.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.14.0.tgz#783c1a3fb301a98f0d0598453bd80d22cb0863ed"
|
||||
integrity sha512-gyKIjC1c2bqxBevPmWlMWRsHqiufUgl3HjN3OYim6YPClqNRUlTab7l8aW8i3W83XzU9q0gmAfIOe4KDmo0GfQ==
|
||||
|
||||
"@xterm/addon-serialize@^0.12.0":
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.12.0.tgz#e83e8c21722dac7970521ade2df3ea07dbc2fd30"
|
||||
integrity sha512-VJGfiTYfWJ1MC+eBBm7lY29+EMxnwpl2i6GecEwqe/7oXr2OEdMofdrpeXMa8OtlMd9bqjfdIfOoSZMmAzBm3w==
|
||||
|
||||
"@xterm/addon-unicode11@^0.7.0":
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.7.0.tgz#cf4fa4da58b0cbcad3666e03d642184f76fe7d27"
|
||||
integrity sha512-HIhQpRenrslPn6GlUmCYZcSXvdU0JkTgXQ66dx9QwXEzgNhoh70b7hXPZDBoMD/bH/7DYlseeGO7qKQlFzyhbA==
|
||||
|
||||
"@xterm/addon-webgl@^0.17.0":
|
||||
version "0.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.17.0.tgz#1da534456b7971ebb2f08c381d4732d1f104d7d8"
|
||||
integrity sha512-KUH//EZCz7j1+IekW8sZzmcj/y9gOLf/HMcsWXjg0Xr5cT1lIBIIbbBlbf5kZ+XnA/8c1IuBm1vx+blzlfPk0g==
|
||||
|
||||
"@xterm/xterm@^5.4.0":
|
||||
version "5.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.4.0.tgz#a35b585750ca492cbf2a4c99472c480d8c122840"
|
||||
integrity sha512-GlyzcZZ7LJjhFevthHtikhiDIl8lnTSgol6eTM4aoSNLcuXu3OEhnbqdCVIjtIil3jjabf3gDtb1S8FGahsuEw==
|
||||
|
||||
"@yarnpkg/lockfile@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
|
||||
@@ -512,6 +464,54 @@ xtend@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
||||
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
||||
|
||||
xterm-addon-canvas@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.5.0.tgz#95d056cec6da42a51b2c47746a011409020c388c"
|
||||
integrity sha512-QOo/eZCMrCleAgMimfdbaZCgmQRWOml63Ued6RwQ+UTPvQj3Av9QKx3xksmyYrDGRO/AVRXa9oNuzlYvLdmoLQ==
|
||||
|
||||
xterm-addon-fit@^0.8.0:
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.8.0.tgz#48ca99015385141918f955ca7819e85f3691d35f"
|
||||
integrity sha512-yj3Np7XlvxxhYF/EJ7p3KHaMt6OdwQ+HDu573Vx1lRXsVxOcnVJs51RgjZOouIZOczTsskaS+CpXspK81/DLqw==
|
||||
|
||||
xterm-addon-image@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.5.0.tgz#3c9bb332a3de55ab200dbefd3411e3b0d985314f"
|
||||
integrity sha512-bWXUBeDzhisYh0clVKx4JgQrZjpn+/QRMRwNsfnRpjCMhgmZ+SL3Bivktd7q03O4uKMMcAOe6bSmppwP9/um0Q==
|
||||
|
||||
xterm-addon-ligatures@^0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-ligatures/-/xterm-addon-ligatures-0.7.0.tgz#28e24744fc06e83b0e3dad51f96823b036714ab3"
|
||||
integrity sha512-5HXKCN5vB8KkqLIloItZkYAwMWF4Y2yOQsc4oFUXOjV3GnZskZpH0W+8rJH+80wxLNym7OMpdmg3a/Vd/+owDg==
|
||||
dependencies:
|
||||
font-finder "^1.1.0"
|
||||
font-ligatures "^1.4.1"
|
||||
|
||||
xterm-addon-search@^0.13.0:
|
||||
version "0.13.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.13.0.tgz#21286f4db48aa949fbefce34bb8bc0c9d3cec627"
|
||||
integrity sha512-sDUwG4CnqxUjSEFh676DlS3gsh3XYCzAvBPSvJ5OPgF3MRL3iHLPfsb06doRicLC2xXNpeG2cWk8x1qpESWJMA==
|
||||
|
||||
xterm-addon-serialize@^0.11.0:
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-serialize/-/xterm-addon-serialize-0.11.0.tgz#e8b34a3618750a9e132562a6459627059c031226"
|
||||
integrity sha512-2CNDnmLdLkNWfsxNFkGsI5FE9W/BbsMzeOrbu59yNqH9L6k1gmL+Ab6VXxEp2NQUJSzaiqi6t0nFR5k5EDkVIg==
|
||||
|
||||
xterm-addon-unicode11@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.6.0.tgz#733fd17bdf2ae6e818493db1d41241c999de0786"
|
||||
integrity sha512-5pkb8YoS/deRtNqQRw8t640mu+Ga8B2MG3RXGQu0bwgcfr8XiXIRI880TWM49ICAHhTmnOLPzIIBIjEnCq7k2A==
|
||||
|
||||
xterm-addon-webgl@^0.16.0:
|
||||
version "0.16.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.16.0.tgz#9872d08a64136f893b27ef9a6412136d3bf563c4"
|
||||
integrity sha512-E8cq1AiqNOv0M/FghPT+zPAEnvIQRDbAbkb04rRYSxUym69elPWVJ4sv22FCLBqM/3LcrmBLl/pELnBebVFKgA==
|
||||
|
||||
xterm@^5.3.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.3.0.tgz#867daf9cc826f3d45b5377320aabd996cb0fce46"
|
||||
integrity sha512-8QqjlekLUFTrU6x7xck1MsPzPA571K5zNqWm0M0oroYEWVOptZ0+ubQSkQ3uxIEhcIHRujJy6emDWX4A7qyFzg==
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||
|
Reference in New Issue
Block a user