opt.: ssh

This commit is contained in:
lollipopkit
2024-04-23 00:36:44 +08:00
parent 4044f43808
commit d312b783e9
15 changed files with 82 additions and 12 deletions

View File

@@ -119,7 +119,7 @@ enum VirtKey {
case VirtKey.clipboard:
return Icons.paste;
case VirtKey.ime:
return Icons.keyboard_hide;
return Icons.keyboard;
default:
return null;
}
@@ -165,16 +165,12 @@ enum VirtKey {
}
}
String? get help {
switch (this) {
case VirtKey.sftp:
return l10n.virtKeyHelpSFTP;
case VirtKey.clipboard:
return l10n.virtKeyHelpClipboard;
default:
return null;
}
}
String? get help => switch (this) {
VirtKey.sftp => l10n.virtKeyHelpSFTP,
VirtKey.clipboard => l10n.virtKeyHelpClipboard,
VirtKey.ime => l10n.virtKeyHelpIME,
_ => null,
};
}
enum VirtualKeyFunc { toggleIME, backspace, clipboard, snippet, file }

View File

@@ -267,6 +267,10 @@ class SettingStore extends PersistentStore {
late final editorSoftWrap = property('editorSoftWrap', isIOS);
late final sshTermHelpShown = property('sshTermHelpShown', false);
late final horizonVirtKey = property('horizonVirtKey', false);
// Never show these settings for users
//
// ------BEGIN------

View File

@@ -174,6 +174,7 @@
"noLineChart": "Verwenden Sie keine Liniendiagramme",
"noNotiPerm": "Keine Benachrichtigungsrechte, möglicherweise keine Fortschrittsanzeige beim Herunterladen von App-Updates.",
"noOptions": "Keine Optionen verfügbar",
"noPromptAgain": "Nicht mehr nachfragen",
"noResult": "Kein Ergebnis",
"noSavedPrivateKey": "Keine gespeicherten Private Keys",
"noSavedSnippet": "Keine gespeicherten Snippets.",
@@ -187,6 +188,7 @@
"nullToken": "Null token",
"ok": "OK",
"onServerDetailPage": "in Detailansicht des Servers",
"onlyOneLine": "Nur als eine Zeile anzeigen (scrollbar)",
"onlyWhenCoreBiggerThan8": "Wirksam nur, wenn die Anzahl der Kerne > 8 ist.",
"open": "Öffnen",
"openLastPath": "Öffnen Sie den letzten Pfad",
@@ -259,6 +261,7 @@
"softWrap": "Weicher Umbruch",
"speed": "Tempo",
"spentTime": "Benötigte Zeit: {time}",
"sshTermHelp": "Wenn das Terminal scrollbar ist, kann durch horizontales Ziehen Text ausgewählt werden. Durch Klicken auf die Tastentaste wird die Tastatur ein- oder ausgeschaltet. Das Dateisymbol öffnet den aktuellen Pfad SFTP. Die Zwischenablage-Schaltfläche kopiert den Inhalt, wenn Text ausgewählt ist, und fügt Inhalte aus der Zwischenablage in das Terminal ein, wenn kein Text ausgewählt ist und Inhalte in der Zwischenablage vorhanden sind. Das Codesymbol fügt Code-Schnipsel ins Terminal ein und führt sie aus.",
"sshTip": "Diese Funktion befindet sich jetzt in der Experimentierphase.\n\nBitte melde Bugs auf {url} oder mach mit bei der Entwicklung.",
"sshVirtualKeyAutoOff": "Automatische Umschaltung der virtuellen Tasten",
"start": "Start",
@@ -313,6 +316,7 @@
"view": "Ansicht",
"viewErr": "Fehler anzeigen",
"virtKeyHelpClipboard": "In die Zwischenablage kopieren, wenn das ausgewählte Terminal nicht leer ist, andernfalls den Inhalt der Zwischenablage in das Terminal einfügen.",
"virtKeyHelpIME": "Tastatur ein-/ausschalten",
"virtKeyHelpSFTP": "Aktuelles Verzeichnis in SFTP öffnen.",
"waitConnection": "Bitte warte, bis die Verbindung hergestellt wurde.",
"watchNotPaired": "Keine gekoppelte Apple Watch",

View File

@@ -174,6 +174,7 @@
"noLineChart": "Do not use line charts",
"noNotiPerm": "No notification permissions, possibly no progress indication when downloading app updates.",
"noOptions": "No options",
"noPromptAgain": "Do not prompt again",
"noResult": "No result",
"noSavedPrivateKey": "No saved private keys.",
"noSavedSnippet": "No saved snippets.",
@@ -187,6 +188,7 @@
"nullToken": "Null token",
"ok": "OK",
"onServerDetailPage": "On server detail page",
"onlyOneLine": "Only display as one line (scrollable)",
"onlyWhenCoreBiggerThan8": "Works only when the number of cores > 8",
"open": "Open",
"openLastPath": "Open the last path",
@@ -259,6 +261,7 @@
"softWrap": "Soft wrap",
"speed": "Speed",
"spentTime": "Spent time: {time}",
"sshTermHelp": "When the terminal is scrollable, dragging horizontally can select text. Clicking the keyboard button turns the keyboard on/off. The file icon opens the current path SFTP. The clipboard button copies the content when text is selected, and pastes content from the clipboard into the terminal when no text is selected and there is content on the clipboard. The code icon pastes code snippets into the terminal and executes them.",
"sshTip": "This function is now in the experimental stage.\n\nPlease report bugs on {url} or join our development.",
"sshVirtualKeyAutoOff": "Auto switching of virtual keys",
"start": "Start",
@@ -313,6 +316,7 @@
"view": "View",
"viewErr": "See error",
"virtKeyHelpClipboard": "Copy to the clipboard if terminal selected is not empty, otherwise paste the contents of the clipboard to the terminal.",
"virtKeyHelpIME": "Turn on/off the keyboard",
"virtKeyHelpSFTP": "Open current directory in SFTP.",
"waitConnection": "Please wait for the connection to be established.",
"watchNotPaired": "No paired Apple Watch",

View File

@@ -174,6 +174,7 @@
"noLineChart": "No utilice gráficos de líneas",
"noNotiPerm": "Sin permisos de notificación, posiblemente sin indicación de progreso al descargar actualizaciones de la aplicación.",
"noOptions": "Sin opciones disponibles",
"noPromptAgain": "No volver a preguntar",
"noResult": "Sin resultados",
"noSavedPrivateKey": "No hay llaves privadas guardadas.",
"noSavedSnippet": "No hay fragmentos de código guardados.",
@@ -187,6 +188,7 @@
"nullToken": "Token nulo",
"ok": "Ok",
"onServerDetailPage": "En la página de detalles del servidor",
"onlyOneLine": "Mostrar solo en una línea (desplazable)",
"onlyWhenCoreBiggerThan8": "Efectivo solo cuando el número de núcleos > 8",
"open": "Abrir",
"openLastPath": "Abrir el último camino",
@@ -259,6 +261,7 @@
"softWrap": "Salto de línea suave",
"speed": "Velocidad",
"spentTime": "Tiempo gastado: {time}",
"sshTermHelp": "Cuando el terminal es desplazable, arrastrar horizontalmente puede seleccionar texto. Hacer clic en el botón del teclado enciende/apaga el teclado. El icono de archivo abre el SFTP de la ruta actual. El botón del portapapeles copia el contenido cuando se selecciona texto y pega el contenido del portapapeles en el terminal cuando no se selecciona texto y hay contenido en el portapapeles. El icono de código pega fragmentos de código en el terminal y los ejecuta.",
"sshTip": "Esta función está en fase de pruebas.\n\nPor favor, informa los problemas en {url}, o únete a nuestro desarrollo.",
"sshVirtualKeyAutoOff": "Desactivación automática de teclas virtuales",
"start": "Iniciar",
@@ -313,6 +316,7 @@
"view": "Vista",
"viewErr": "Ver error",
"virtKeyHelpClipboard": "Si el terminal tiene caracteres seleccionados, entonces copiará los caracteres seleccionados al portapapeles, de lo contrario, pegará el contenido del portapapeles al terminal.",
"virtKeyHelpIME": "Encender/apagar el teclado",
"virtKeyHelpSFTP": "Abrir la ruta actual en SFTP.",
"waitConnection": "Por favor, espera a que la conexión se establezca",
"watchNotPaired": "No hay un Apple Watch emparejado",

View File

@@ -174,6 +174,7 @@
"noLineChart": "N'utilisez pas de graphiques en ligne",
"noNotiPerm": "Pas de permissions de notification, il est possible qu'il n'y ait pas de notification de progression lors du téléchargement des mises à jour des applications.",
"noOptions": "Aucune option",
"noPromptAgain": "Ne plus demander",
"noResult": "Aucun résultat",
"noSavedPrivateKey": "Aucune clé privée enregistrée.",
"noSavedSnippet": "Aucun extrait enregistré.",
@@ -187,6 +188,7 @@
"nullToken": "Jeton nul",
"ok": "OK",
"onServerDetailPage": "Sur la page de détails du serveur",
"onlyOneLine": "Afficher uniquement en une ligne (défilable)",
"onlyWhenCoreBiggerThan8": "Efficace seulement lorsque le nombre de cœurs > 8",
"open": "Ouvrir",
"openLastPath": "Ouvrir le dernier chemin",
@@ -259,6 +261,7 @@
"softWrap": "Retour à la ligne doux",
"speed": "Vitesse",
"spentTime": "Temps écoulé : {time}",
"sshTermHelp": "Lorsque le terminal est déroulant, faire glisser horizontalement peut sélectionner du texte. Cliquer sur le bouton du clavier active/désactive le clavier. L'icône de fichier ouvre le SFTP du chemin actuel. Le bouton du presse-papiers copie le contenu lorsque du texte est sélectionné et colle le contenu du presse-papiers dans le terminal lorsque aucun texte n'est sélectionné et qu'il y a du contenu dans le presse-papiers. L'icône de code colle des extraits de code dans le terminal et les exécute.",
"sshTip": "Cette fonction est actuellement au stade expérimental.\n\n Veuillez signaler les bogues sur {url} ou rejoignez notre développement.",
"sshVirtualKeyAutoOff": "Basculement automatique des touches virtuelles",
"start": "Démarrer",
@@ -313,6 +316,7 @@
"view": "Vue",
"viewErr": "Voir l'erreur",
"virtKeyHelpClipboard": "Copier dans le presse-papiers si le terminal sélectionné n'est pas vide, sinon coller le contenu du presse-papiers dans le terminal.",
"virtKeyHelpIME": "Allumer/éteindre le clavier",
"virtKeyHelpSFTP": "Ouvrir le répertoire actuel dans SFTP.",
"waitConnection": "Veuillez attendre l'établissement de la connexion.",
"watchNotPaired": "Aucune Apple Watch appairée",

View File

@@ -174,6 +174,7 @@
"noLineChart": "Jangan gunakan grafik garis",
"noNotiPerm": "Tidak ada izin notifikasi, mungkin tidak ada indikasi kemajuan saat mengunduh pembaruan aplikasi.",
"noOptions": "Tidak ada opsi",
"noPromptAgain": "Jangan tanya lagi",
"noResult": "Tidak ada hasil",
"noSavedPrivateKey": "Tidak ada kunci pribadi yang disimpan.",
"noSavedSnippet": "Tidak ada cuplikan yang disimpan.",
@@ -187,6 +188,7 @@
"nullToken": "Token NULL",
"ok": "OKE",
"onServerDetailPage": "Di halaman detail server",
"onlyOneLine": "Hanya tampilkan sebagai satu baris (dapat digulir)",
"onlyWhenCoreBiggerThan8": "Berlaku hanya ketika jumlah inti > 8",
"open": "Membuka",
"openLastPath": "Buka jalur terakhir",
@@ -259,6 +261,7 @@
"softWrap": "Pembungkus lembut",
"speed": "Kecepatan",
"spentTime": "Menghabiskan waktu: {time}",
"sshTermHelp": "Ketika terminal dapat digulirkan, menggeser secara horizontal dapat memilih teks. Mengklik tombol keyboard mengaktifkan/menonaktifkan keyboard. Ikon file membuka SFTP jalur saat ini. Tombol papan klip menyalin konten saat teks dipilih, dan menempelkan konten dari papan klip ke terminal saat tidak ada teks yang dipilih dan ada konten di papan klip. Ikon kode menempelkan potongan kode ke terminal dan mengeksekusinya.",
"sshTip": "Fungsi ini sekarang dalam tahap eksperimen.\n\nHarap laporkan bug di {url} atau bergabunglah dengan pengembangan kami.",
"sshVirtualKeyAutoOff": "Switching Otomatis Kunci Virtual",
"start": "Awal",
@@ -313,6 +316,7 @@
"view": "Tampilan",
"viewErr": "Lihat kesalahan",
"virtKeyHelpClipboard": "Salin ke clipboard jika terminal yang dipilih tidak kosong, jika tidak, tempel isi clipboard ke terminal.",
"virtKeyHelpIME": "Menyalakan/mematikan keyboard",
"virtKeyHelpSFTP": "Buka direktori saat ini di SFTP.",
"waitConnection": "Harap tunggu koneksi akan dibuat.",
"watchNotPaired": "Tidak ada Apple Watch yang dipasangkan",

View File

@@ -174,6 +174,7 @@
"noLineChart": "折れ線グラフを使用しない",
"noNotiPerm": "通知の権限がないため、アプリの更新のダウンロード中に進行状況が表示されない場合があります。",
"noOptions": "選択肢がありません",
"noPromptAgain": "再度確認しない",
"noResult": "結果なし",
"noSavedPrivateKey": "保存されたプライベートキーがありません。",
"noSavedSnippet": "保存されたスニペットがありません。",
@@ -187,6 +188,7 @@
"nullToken": "トークンなし",
"ok": "OK",
"onServerDetailPage": "サーバーの詳細ページで",
"onlyOneLine": "一行のみ表示(スクロール可能)",
"onlyWhenCoreBiggerThan8": "コア数が8より大きい場合にのみ有効",
"open": "開く",
"openLastPath": "最後のパスを開く",
@@ -259,6 +261,7 @@
"softWrap": "ソフトラップ",
"speed": "速度",
"spentTime": "時間を費やしました: {time}",
"sshTermHelp": "ターミナルがスクロール可能な場合、横にドラッグするとテキストを選択できます。キーボードボタンをクリックするとキーボードのオン/オフが切り替わります。ファイルアイコンは現在のパスSFTPを開きます。クリップボードボタンは、テキストが選択されているときに内容をコピーし、テキストが選択されておらずクリップボードに内容がある場合には、その内容をターミナルに貼り付けます。コードアイコンは、コードスニペットをターミナルに貼り付けて実行します。",
"sshTip": "この機能は現在テスト段階にあります。\n\n問題がある場合は、{url}でフィードバックしてください。",
"sshVirtualKeyAutoOff": "仮想キーの自動オフ",
"start": "開始",
@@ -313,6 +316,7 @@
"view": "ビュー",
"viewErr": "エラーを表示",
"virtKeyHelpClipboard": "端末に選択された文字がある場合は、選択された文字をクリップボードにコピーします。そうでない場合は、クリップボードの内容を端末に貼り付けます。",
"virtKeyHelpIME": "キーボードのオン/オフ",
"virtKeyHelpSFTP": "現在のパスでSFTPを開く。",
"waitConnection": "接続の確立を待ってください",
"watchNotPaired": "ペアリングされたApple Watchがありません",

View File

@@ -173,6 +173,7 @@
"noInterface": "Geen interface",
"noNotiPerm": "Geen meldingsmachtigingen, mogelijk geen voortgangsindicatie bij het downloaden van app-updates.",
"noOptions": "Geen opties",
"noPromptAgain": "Niet meer vragen",
"noResult": "Geen resultaat",
"noSavedPrivateKey": "Geen opgeslagen privésleutels.",
"noSavedSnippet": "Geen opgeslagen fragmenten.",
@@ -186,6 +187,7 @@
"nullToken": "Null-token",
"ok": "OK",
"onServerDetailPage": "Op serverdetailspagina",
"onlyOneLine": "Alleen als één regel weergeven (scrollbaar)",
"onlyWhenCoreBiggerThan8": "Alleen effectief wanneer het aantal cores > 8",
"open": "Openen",
"openLastPath": "Open het laatste pad",
@@ -258,6 +260,7 @@
"softWrap": "Zachte wrap",
"speed": "Snelheid",
"spentTime": "Gebruikte tijd: {time}",
"sshTermHelp": "Wanneer het terminal scrollbaar is, kan horizontaal slepen tekst selecteren. Klikken op de toetsenbordknop schakelt het toetsenbord aan/uit. Het bestandsicoon opent de huidige pad SFTP. De klembordknop kopieert de inhoud wanneer tekst is geselecteerd en plakt inhoud van het klembord in de terminal wanneer geen tekst is geselecteerd en er inhoud op het klembord staat. Het code-icoon plakt codefragmenten in de terminal en voert ze uit.",
"sshTip": "Deze functie bevindt zich momenteel in de experimentele fase.\n\nMeld alstublieft bugs op {url} of sluit je aan bij onze ontwikkeling.",
"sshVirtualKeyAutoOff": "Automatisch schakelen van virtuele toetsen",
"start": "Starten",
@@ -312,6 +315,7 @@
"view": "Weergave",
"viewErr": "Zie foutmelding",
"virtKeyHelpClipboard": "Kopiëren naar het klembord als de geselecteerde terminal niet leeg is, anders de inhoud van het klembord plakken in de terminal.",
"virtKeyHelpIME": "Toetsenbord aan/uit zetten",
"virtKeyHelpSFTP": "Huidige map openen in SFTP.",
"waitConnection": "Wacht alstublieft tot de verbinding tot stand is gebracht.",
"watchNotPaired": "Geen gekoppelde Apple Watch",

View File

@@ -174,6 +174,7 @@
"noLineChart": "Gebruik geen lijndiagrammen",
"noNotiPerm": "Sem permissão de notificação, possivelmente sem indicação de progresso ao baixar atualizações de aplicativos.",
"noOptions": "Sem opções",
"noPromptAgain": "Não perguntar novamente",
"noResult": "Sem resultados",
"noSavedPrivateKey": "Nenhuma chave privada salva.",
"noSavedSnippet": "Nenhum snippet de código salvo.",
@@ -187,6 +188,7 @@
"nullToken": "Token nulo",
"ok": "OK",
"onServerDetailPage": "Na página de detalhes do servidor",
"onlyOneLine": "Exibir apenas como uma linha (rolável)",
"onlyWhenCoreBiggerThan8": "Efetivo apenas quando o número de núcleos > 8",
"open": "Abrir",
"openLastPath": "Abrir o último caminho",
@@ -259,6 +261,7 @@
"softWrap": "Quebra de linha suave",
"speed": "Velocidade",
"spentTime": "Tempo gasto: {time}",
"sshTermHelp": "Quando o terminal é rolável, arrastar horizontalmente pode selecionar texto. Clicar no botão do teclado ativa/desativa o teclado. O ícone de arquivo abre o SFTP do caminho atual. O botão da área de transferência copia o conteúdo quando o texto é selecionado e cola o conteúdo da área de transferência no terminal quando nenhum texto é selecionado e há conteúdo na área de transferência. O ícone de código cola trechos de código no terminal e os executa.",
"sshTip": "Esta funcionalidade está em fase de teste.\n\nPor favor, reporte problemas em {url} ou junte-se a nós no desenvolvimento.",
"sshVirtualKeyAutoOff": "Desativação automática das teclas virtuais",
"start": "Iniciar",
@@ -313,6 +316,7 @@
"view": "Visualização",
"viewErr": "Ver erro",
"virtKeyHelpClipboard": "Se houver texto selecionado no terminal, copia para a área de transferência, caso contrário, cola o conteúdo da área de transferência no terminal.",
"virtKeyHelpIME": "Ligar/desligar o teclado",
"virtKeyHelpSFTP": "Abre o caminho atual em SFTP.",
"waitConnection": "Por favor, aguarde a conexão ser estabelecida",
"watchNotPaired": "Não há Apple Watch pareado",

View File

@@ -174,6 +174,7 @@
"noLineChart": "Não use gráficos de linha",
"noNotiPerm": "Нет разрешения на уведомления, возможно отсутствие индикации прогресса при загрузке обновлений приложений.",
"noOptions": "нет доступных опций",
"noPromptAgain": "Больше не спрашивать",
"noResult": "нет результатов",
"noSavedPrivateKey": "Нет сохраненных приватных ключей.",
"noSavedSnippet": "Нет сохраненных фрагментов кода.",
@@ -187,6 +188,7 @@
"nullToken": "нет токена",
"ok": "ок",
"onServerDetailPage": "на странице деталей сервера",
"onlyOneLine": "Отображать только в одной строке (прокручиваемо)",
"onlyWhenCoreBiggerThan8": "Действует только при количестве ядер > 8",
"open": "открыть",
"openLastPath": "открыть последний путь",
@@ -259,6 +261,7 @@
"softWrap": "Мягкий перенос",
"speed": "скорость",
"spentTime": "Затрачено времени: {time}",
"sshTermHelp": "Когда терминал можно прокручивать, горизонтальное перетаскивание позволяет выделить текст. Нажатие на кнопку клавиатуры включает/выключает клавиатуру. Иконка файла открывает текущий путь SFTP. Кнопка буфера обмена копирует содержимое, когда текст выделен, и вставляет содержимое из буфера обмена в терминал, когда текст не выделен, а в буфере есть содержимое. Иконка кода вставляет фрагменты кода в терминал и выполняет их.",
"sshTip": "Эта функция находится в стадии тестирования.\n\nПожалуйста, отправляйте отчеты о проблемах на {url} или присоединяйтесь к нашей разработке.",
"sshVirtualKeyAutoOff": "автоматическое отключение виртуальных клавиш",
"start": "старт",
@@ -313,6 +316,7 @@
"view": "Вид",
"viewErr": "просмотр ошибок",
"virtKeyHelpClipboard": "Если в терминале выделен текст, то он копируется в буфер обмена, в противном случае содержимое буфера вставляется в терминал.",
"virtKeyHelpIME": "Включить/выключить клавиатуру",
"virtKeyHelpSFTP": "Открыть текущий путь в SFTP.",
"waitConnection": "Пожалуйста, дождитесь установки соединения",
"watchNotPaired": "Apple Watch не сопряжены",

View File

@@ -174,6 +174,7 @@
"noLineChart": "不使用折线图",
"noNotiPerm": "无通知权限可能下载App更新时无进度提示。",
"noOptions": "无可选项",
"noPromptAgain": "不再提示",
"noResult": "无结果",
"noSavedPrivateKey": "没有已保存的私钥。",
"noSavedSnippet": "没有已保存的代码片段。",
@@ -187,6 +188,7 @@
"nullToken": "无Token",
"ok": "好",
"onServerDetailPage": "在服务器详情页",
"onlyOneLine": "仅显示为一行(可滚动)",
"onlyWhenCoreBiggerThan8": "仅当核心数>8时生效",
"open": "打开",
"openLastPath": "打开上次的路径",
@@ -259,6 +261,7 @@
"softWrap": "自动换行",
"speed": "速度",
"spentTime": "耗时: {time}",
"sshTermHelp": "在终端可滚动时,横向拖动可以选中文字。点击键盘按钮可以开启/关闭键盘。文件图标会打开当前路径SFTP。粘贴板按钮会在有选中文字时复制内容在未选中并且剪切板有内容时粘贴内容到终端。代码图标会粘贴代码片段到终端并执行。",
"sshTip": "该功能目前处于测试阶段。\n\n请在 {url} 反馈问题,或者加入我们开发。",
"sshVirtualKeyAutoOff": "虚拟按键自动切换",
"start": "开始",
@@ -313,6 +316,7 @@
"view": "视图",
"viewErr": "查看错误",
"virtKeyHelpClipboard": "如果终端有选中字符,则复制选中字符至剪切板,否则粘贴剪切板内容至终端。",
"virtKeyHelpIME": "打开/关闭键盘",
"virtKeyHelpSFTP": "在 SFTP 中打开当前路径。",
"waitConnection": "请等待连接建立",
"watchNotPaired": "没有已配对的 Apple Watch",

View File

@@ -174,6 +174,7 @@
"noLineChart": "不使用折線圖",
"noNotiPerm": "無通知權限,可能在下載應用程式更新時沒有進度提示。",
"noOptions": "無可選項",
"noPromptAgain": "不再提示",
"noResult": "無結果",
"noSavedPrivateKey": "沒有已保存的私鑰。",
"noSavedSnippet": "沒有已保存的程式片段。",
@@ -187,6 +188,7 @@
"nullToken": "無Token",
"ok": "好",
"onServerDetailPage": "在服務器詳情頁",
"onlyOneLine": "僅顯示為一行(可滾動)",
"onlyWhenCoreBiggerThan8": "僅當核心數>8時生效",
"open": "打開",
"openLastPath": "打開上次的路徑",
@@ -259,6 +261,7 @@
"softWrap": "軟換行",
"speed": "速度",
"spentTime": "耗時: {time}",
"sshTermHelp": "在終端可滾動時,橫向拖動可以選中文字。點擊鍵盤按鈕可以開啟/關閉鍵盤。文件圖標會打開當前路徑SFTP。剪貼板按鈕會在有選中文字時複製內容在未選中並且剪貼板有內容時貼上內容到終端。代碼圖標會貼上代碼片段到終端並執行。",
"sshTip": "該功能目前處於測試階段。\n\n請在 {url} 反饋問題,或者加入我們開發。",
"sshVirtualKeyAutoOff": "虛擬按鍵自動切換",
"start": "開始",
@@ -313,6 +316,7 @@
"view": "視圖",
"viewErr": "查看錯誤",
"virtKeyHelpClipboard": "如果終端有選中字符,則復製選中字符至剪切板,否則粘貼剪切板內容至終端。",
"virtKeyHelpIME": "打開/關閉鍵盤",
"virtKeyHelpSFTP": "在 SFTP 中打開當前路徑。",
"waitConnection": "請等待連接建立",
"watchNotPaired": "沒有已配對的 Apple Watch",

View File

@@ -138,6 +138,7 @@ class _HomePageState extends State<HomePage>
body: PageView.builder(
controller: _pageController,
itemCount: AppTab.values.length,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (_, index) => AppTab.values[index].page,
onPageChanged: (value) {
if (!_switchingPage) {

View File

@@ -54,6 +54,7 @@ class _SSHPageState extends State<SSHPage> with AutomaticKeepAliveClientMixin {
late final _terminal = Terminal(inputHandler: _keyboard);
final TerminalController _terminalController = TerminalController();
final List<List<VirtKey>> _virtKeysList = [];
final _focus = FocusNode();
late MediaQueryData _media;
late TerminalStyle _terminalStyle;
@@ -73,6 +74,7 @@ class _SSHPageState extends State<SSHPage> with AutomaticKeepAliveClientMixin {
_initVirtKeys();
Future.delayed(const Duration(milliseconds: 77), () async {
_showHelp();
await _initTerminal();
});
}
@@ -137,6 +139,7 @@ class _SSHPageState extends State<SSHPage> with AutomaticKeepAliveClientMixin {
child: TerminalView(
_terminal,
controller: _terminalController,
focusNode: _focus,
keyboardType: TextInputType.text,
enableSuggestions: true,
textStyle: _terminalStyle,
@@ -264,7 +267,11 @@ class _SSHPageState extends State<SSHPage> with AutomaticKeepAliveClientMixin {
Future<void> _doVirtualKeyFunc(VirtualKeyFunc type) async {
switch (type) {
case VirtualKeyFunc.toggleIME:
FocusScope.of(context).requestFocus(FocusNode());
if (!_focus.hasFocus) {
_focus.requestFocus();
} else {
_focus.unfocus();
}
break;
case VirtualKeyFunc.backspace:
_terminal.keyInput(TerminalKey.backspace);
@@ -488,6 +495,24 @@ class _SSHPageState extends State<SSHPage> with AutomaticKeepAliveClientMixin {
_terminalStyle = TerminalStyle.fromTextStyle(textStyle);
}
Future<void> _showHelp() async {
if (!Stores.setting.sshTermHelpShown.fetch()) {
await context.showRoundDialog(
title: Text(l10n.doc),
child: Text(l10n.sshTermHelp),
actions: [
TextButton(
onPressed: () {
Stores.setting.sshTermHelpShown.put(true);
context.pop();
},
child: Text(l10n.noPromptAgain),
),
],
);
}
}
}
Future<void> _onStart(ServiceInstance service) async {}