feat: ask ai (#936)

* feat: ask ai in ssh terminal
Fixes #934

* new(ask_ai): settings

* fix: app hot reload

* new: l10n

* chore: deps.

* opt.
This commit is contained in:
lollipopkit🏳️‍⚧️
2025-10-18 01:15:43 +08:00
committed by GitHub
parent 860c11d4a8
commit 729b76177e
40 changed files with 2050 additions and 108 deletions

View File

@@ -284,5 +284,21 @@
"wolTip": "Nach der Konfiguration von WOL (Wake-on-LAN) wird jedes Mal, wenn der Server verbunden wird, eine WOL-Anfrage gesendet.",
"write": "Schreiben",
"writeScriptFailTip": "Das Schreiben des Skripts ist fehlgeschlagen, möglicherweise aufgrund fehlender Berechtigungen oder das Verzeichnis existiert nicht.",
"writeScriptTip": "Nach der Verbindung mit dem Server wird ein Skript in `~/.config/server_box` \n | `/tmp/server_box` geschrieben, um den Systemstatus zu überwachen. Sie können den Skriptinhalt überprüfen."
}
"writeScriptTip": "Nach der Verbindung mit dem Server wird ein Skript in `~/.config/server_box` \n | `/tmp/server_box` geschrieben, um den Systemstatus zu überwachen. Sie können den Skriptinhalt überprüfen.",
"askAi": "KI fragen",
"askAiUsageHint": "Verwendet im SSH-Terminal",
"askAiBaseUrl": "Basis-URL",
"askAiModel": "Modell",
"askAiApiKey": "API-Schlüssel",
"askAiConfigMissing": "Bitte konfigurieren Sie {fields} in den Einstellungen.",
"askAiConfirmExecute": "Vor Ausführung bestätigen",
"askAiCommandInserted": "Befehl ins Terminal eingefügt",
"askAiAwaitingResponse": "Warte auf KI-Antwort...",
"askAiNoResponse": "Keine Antwort",
"askAiRecommendedCommand": "KI-empfohlener Befehl",
"askAiInsertTerminal": "In Terminal einfügen",
"askAiSelectedContent": "Ausgewählter Inhalt",
"askAiConversation": "KI-Unterhaltung",
"askAiFollowUpHint": "Weitere Frage stellen...",
"askAiSend": "Senden"
}

View File

@@ -284,5 +284,28 @@
"wolTip": "After configuring WOL (Wake-on-LAN), a WOL request is sent each time the server is connected.",
"write": "Write",
"writeScriptFailTip": "Writing to the script failed, possibly due to lack of permissions or the directory does not exist.",
"writeScriptTip": "After connecting to the server, a script will be written to `~/.config/server_box` \n | `/tmp/server_box` to monitor the system status. You can review the script content."
}
"writeScriptTip": "After connecting to the server, a script will be written to `~/.config/server_box` \n | `/tmp/server_box` to monitor the system status. You can review the script content.",
"@askAiConfigMissing": {
"placeholders": {
"fields": {
"type": "String"
}
}
},
"askAi": "Ask AI",
"askAiUsageHint": "Used in SSH Terminal",
"askAiBaseUrl": "Base URL",
"askAiModel": "Model",
"askAiApiKey": "API Key",
"askAiConfigMissing": "Please configure {fields} in Settings.",
"askAiConfirmExecute": "Confirm before executing",
"askAiCommandInserted": "Command inserted into terminal",
"askAiAwaitingResponse": "Waiting for AI response...",
"askAiNoResponse": "No response",
"askAiRecommendedCommand": "AI suggested command",
"askAiInsertTerminal": "Insert into terminal",
"askAiSelectedContent": "Selected content",
"askAiConversation": "AI conversation",
"askAiFollowUpHint": "Ask a follow-up...",
"askAiSend": "Send"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "Después de configurar WOL (Wake-on-LAN), se envía una solicitud de WOL cada vez que se conecta el servidor.",
"write": "Escribir",
"writeScriptFailTip": "La escritura en el script falló, posiblemente por falta de permisos o porque el directorio no existe.",
"writeScriptTip": "Después de conectarse al servidor, se escribirá un script en `~/.config/server_box` \n | `/tmp/server_box` para monitorear el estado del sistema. Puedes revisar el contenido del script."
}
"writeScriptTip": "Después de conectarse al servidor, se escribirá un script en `~/.config/server_box` \n | `/tmp/server_box` para monitorear el estado del sistema. Puedes revisar el contenido del script.",
"askAi": "Preguntar a la IA",
"askAiUsageHint": "Usado en el terminal SSH",
"askAiBaseUrl": "URL base",
"askAiModel": "Modelo",
"askAiApiKey": "Clave API",
"askAiConfigMissing": "Configura {fields} en Ajustes.",
"askAiConfirmExecute": "Confirmar antes de ejecutar",
"askAiCommandInserted": "Comando insertado en el terminal",
"askAiAwaitingResponse": "Esperando la respuesta de la IA...",
"askAiNoResponse": "Sin respuesta",
"askAiRecommendedCommand": "Comando sugerido por la IA",
"askAiInsertTerminal": "Insertar en el terminal",
"askAiSelectedContent": "Contenido seleccionado",
"askAiConversation": "Conversación con la IA",
"askAiFollowUpHint": "Haz una pregunta adicional...",
"askAiSend": "Enviar"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "Après avoir configuré le WOL (Wake-on-LAN), une requête WOL est envoyée chaque fois que le serveur est connecté.",
"write": "Écrire",
"writeScriptFailTip": "Échec de l'écriture dans le script, probablement en raison d'un manque de permissions ou que le répertoire n'existe pas.",
"writeScriptTip": "Après la connexion au serveur, un script sera écrit dans `~/.config/server_box` \n | `/tmp/server_box` pour surveiller l'état du système. Vous pouvez examiner le contenu du script."
}
"writeScriptTip": "Après la connexion au serveur, un script sera écrit dans `~/.config/server_box` \n | `/tmp/server_box` pour surveiller l'état du système. Vous pouvez examiner le contenu du script.",
"askAi": "Demander à l'IA",
"askAiUsageHint": "Utilisé dans le terminal SSH",
"askAiBaseUrl": "URL de base",
"askAiModel": "Modèle",
"askAiApiKey": "Clé API",
"askAiConfigMissing": "Veuillez configurer {fields} dans les paramètres.",
"askAiConfirmExecute": "Confirmer avant d'exécuter",
"askAiCommandInserted": "Commande insérée dans le terminal",
"askAiAwaitingResponse": "En attente de la réponse de l'IA...",
"askAiNoResponse": "Aucune réponse",
"askAiRecommendedCommand": "Commande suggérée par l'IA",
"askAiInsertTerminal": "Insérer dans le terminal",
"askAiSelectedContent": "Contenu sélectionné",
"askAiConversation": "Conversation avec l'IA",
"askAiFollowUpHint": "Poser une question supplémentaire...",
"askAiSend": "Envoyer"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "Setelah mengonfigurasi WOL (Wake-on-LAN), permintaan WOL dikirim setiap kali server terhubung.",
"write": "Tulis",
"writeScriptFailTip": "Penulisan ke skrip gagal, mungkin karena tidak ada izin atau direktori tidak ada.",
"writeScriptTip": "Setelah terhubung ke server, sebuah skrip akan ditulis ke `~/.config/server_box` \n | `/tmp/server_box` untuk memantau status sistem. Anda dapat meninjau konten skrip tersebut."
}
"writeScriptTip": "Setelah terhubung ke server, sebuah skrip akan ditulis ke `~/.config/server_box` \n | `/tmp/server_box` untuk memantau status sistem. Anda dapat meninjau konten skrip tersebut.",
"askAi": "Tanya AI",
"askAiUsageHint": "Digunakan di Terminal SSH",
"askAiBaseUrl": "URL dasar",
"askAiModel": "Model",
"askAiApiKey": "Kunci API",
"askAiConfigMissing": "Harap konfigurasikan {fields} di Pengaturan.",
"askAiConfirmExecute": "Konfirmasi sebelum menjalankan",
"askAiCommandInserted": "Perintah dimasukkan ke terminal",
"askAiAwaitingResponse": "Menunggu respons AI...",
"askAiNoResponse": "Tidak ada respons",
"askAiRecommendedCommand": "Perintah yang disarankan AI",
"askAiInsertTerminal": "Masukkan ke terminal",
"askAiSelectedContent": "Konten yang dipilih",
"askAiConversation": "Percakapan AI",
"askAiFollowUpHint": "Ajukan pertanyaan lanjutan...",
"askAiSend": "Kirim"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "WOLWake-on-LANを設定した後、サーバーに接続するたびにWOLリクエストが送信されます。",
"write": "書き込み",
"writeScriptFailTip": "スクリプトの書き込みに失敗しました。権限がないかディレクトリが存在しない可能性があります。",
"writeScriptTip": "サーバーに接続すると、システムの状態を監視するためのスクリプトが `~/.config/server_box` \n | `/tmp/server_box` に書き込まれます。スクリプトの内容を確認できます。"
}
"writeScriptTip": "サーバーに接続すると、システムの状態を監視するためのスクリプトが `~/.config/server_box` \n | `/tmp/server_box` に書き込まれます。スクリプトの内容を確認できます。",
"askAi": "AI に質問",
"askAiUsageHint": "SSH ターミナルで使用",
"askAiBaseUrl": "ベース URL",
"askAiModel": "モデル",
"askAiApiKey": "API キー",
"askAiConfigMissing": "設定で {fields} を構成してください。",
"askAiConfirmExecute": "実行前に確認",
"askAiCommandInserted": "コマンドをターミナルに挿入しました",
"askAiAwaitingResponse": "AI の応答を待機中...",
"askAiNoResponse": "応答なし",
"askAiRecommendedCommand": "AI 推奨コマンド",
"askAiInsertTerminal": "ターミナルに挿入",
"askAiSelectedContent": "選択した内容",
"askAiConversation": "AI 会話",
"askAiFollowUpHint": "追質問をする...",
"askAiSend": "送信"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "Na het configureren van WOL (Wake-on-LAN), wordt elke keer dat de server wordt verbonden een WOL-verzoek verzonden.",
"write": "Schrijven",
"writeScriptFailTip": "Het schrijven naar het script is mislukt, mogelijk door gebrek aan rechten of omdat de map niet bestaat.",
"writeScriptTip": "Na het verbinden met de server wordt een script geschreven naar `~/.config/server_box` \n | `/tmp/server_box` om de systeemstatus te monitoren. U kunt de inhoud van het script controleren."
}
"writeScriptTip": "Na het verbinden met de server wordt een script geschreven naar `~/.config/server_box` \n | `/tmp/server_box` om de systeemstatus te monitoren. U kunt de inhoud van het script controleren.",
"askAi": "AI vragen",
"askAiUsageHint": "Gebruikt in de SSH-terminal",
"askAiBaseUrl": "Basis-URL",
"askAiModel": "Model",
"askAiApiKey": "API-sleutel",
"askAiConfigMissing": "Configureer {fields} in de instellingen.",
"askAiConfirmExecute": "Bevestigen voor uitvoeren",
"askAiCommandInserted": "Commando in terminal ingevoegd",
"askAiAwaitingResponse": "Wachten op AI-reactie...",
"askAiNoResponse": "Geen reactie",
"askAiRecommendedCommand": "Door AI voorgestelde opdracht",
"askAiInsertTerminal": "In terminal invoegen",
"askAiSelectedContent": "Geselecteerde inhoud",
"askAiConversation": "AI-gesprek",
"askAiFollowUpHint": "Stel een vervolgvraag...",
"askAiSend": "Verzenden"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "Após configurar o WOL (Wake-on-LAN), um pedido de WOL é enviado cada vez que o servidor é conectado.",
"write": "Escrita",
"writeScriptFailTip": "Falha ao escrever no script, possivelmente devido à falta de permissões ou o diretório não existe.",
"writeScriptTip": "Após conectar ao servidor, um script será escrito em `~/.config/server_box` \n | `/tmp/server_box` para monitorar o status do sistema. Você pode revisar o conteúdo do script."
}
"writeScriptTip": "Após conectar ao servidor, um script será escrito em `~/.config/server_box` \n | `/tmp/server_box` para monitorar o status do sistema. Você pode revisar o conteúdo do script.",
"askAi": "Perguntar à IA",
"askAiUsageHint": "Usado no terminal SSH",
"askAiBaseUrl": "URL base",
"askAiModel": "Modelo",
"askAiApiKey": "Chave de API",
"askAiConfigMissing": "Configure {fields} nas configurações.",
"askAiConfirmExecute": "Confirmar antes de executar",
"askAiCommandInserted": "Comando inserido no terminal",
"askAiAwaitingResponse": "Aguardando resposta da IA...",
"askAiNoResponse": "Sem resposta",
"askAiRecommendedCommand": "Comando sugerido pela IA",
"askAiInsertTerminal": "Inserir no terminal",
"askAiSelectedContent": "Conteúdo selecionado",
"askAiConversation": "Conversa com a IA",
"askAiFollowUpHint": "Faça uma pergunta adicional...",
"askAiSend": "Enviar"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "После настройки WOL (Wake-on-LAN) при каждом подключении к серверу отправляется запрос WOL.",
"write": "Запись",
"writeScriptFailTip": "Запись скрипта не удалась, возможно, из-за отсутствия прав или потому что, директории не существует.",
"writeScriptTip": "После подключения к серверу скрипт будет записан в `~/.config/server_box` \n | `/tmp/server_box` для мониторинга состояния системы. Вы можете проверить содержимое скрипта."
}
"writeScriptTip": "После подключения к серверу скрипт будет записан в `~/.config/server_box` \n | `/tmp/server_box` для мониторинга состояния системы. Вы можете проверить содержимое скрипта.",
"askAi": "Спросить ИИ",
"askAiUsageHint": "Используется в SSH-терминале",
"askAiBaseUrl": "Базовый URL",
"askAiModel": "Модель",
"askAiApiKey": "Ключ API",
"askAiConfigMissing": "Настройте {fields} в настройках.",
"askAiConfirmExecute": "Подтвердите перед выполнением",
"askAiCommandInserted": "Команда вставлена в терминал",
"askAiAwaitingResponse": "Ожидание ответа ИИ...",
"askAiNoResponse": "Нет ответа",
"askAiRecommendedCommand": "Команда, предложенная ИИ",
"askAiInsertTerminal": "Вставить в терминал",
"askAiSelectedContent": "Выбранное содержимое",
"askAiConversation": "Разговор с ИИ",
"askAiFollowUpHint": "Задайте дополнительный вопрос...",
"askAiSend": "Отправить"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "WOL (Wake-on-LAN) yapılandırıldıktan sonra, sunucuya her bağlanıldığında bir WOL isteği gönderilir.",
"write": "Yaz",
"writeScriptFailTip": "Betik yazma başarısız oldu, muhtemelen izin eksikliği veya dizin mevcut değil.",
"writeScriptTip": "Sunucuya bağlandıktan sonra, sistem durumunu izlemek için `~/.config/server_box` \n | `/tmp/server_box` dizinine bir betik yazılacak. Betik içeriğini inceleyebilirsiniz."
}
"writeScriptTip": "Sunucuya bağlandıktan sonra, sistem durumunu izlemek için `~/.config/server_box` \n | `/tmp/server_box` dizinine bir betik yazılacak. Betik içeriğini inceleyebilirsiniz.",
"askAi": "Yapay zekaya sor",
"askAiUsageHint": "SSH Terminalinde kullanılır",
"askAiBaseUrl": "Temel URL",
"askAiModel": "Model",
"askAiApiKey": "API anahtarı",
"askAiConfigMissing": "Lütfen Ayarlar'da {fields} öğesini yapılandırın.",
"askAiConfirmExecute": "Çalıştırmadan önce onayla",
"askAiCommandInserted": "Komut terminale eklendi",
"askAiAwaitingResponse": "Yapay zekâ yanıtı bekleniyor...",
"askAiNoResponse": "Yanıt yok",
"askAiRecommendedCommand": "YZ önerilen komut",
"askAiInsertTerminal": "Terminale ekle",
"askAiSelectedContent": "Seçilen içerik",
"askAiConversation": "YZ sohbeti",
"askAiFollowUpHint": "Yeni bir soru sor...",
"askAiSend": "Gönder"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "Після налаштування WOL (Wake-on-LAN), при кожному підключенні до сервера відправляється запит WOL.",
"write": "Записати",
"writeScriptFailTip": "Запис у скрипт не вдався, можливо, через брак дозволів або каталог не існує.",
"writeScriptTip": "Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта."
}
"writeScriptTip": "Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта.",
"askAi": "Запитати ШІ",
"askAiUsageHint": "Використовується в SSH-терміналі",
"askAiBaseUrl": "Базова URL",
"askAiModel": "Модель",
"askAiApiKey": "Ключ API",
"askAiConfigMissing": "Налаштуйте {fields} у налаштуваннях.",
"askAiConfirmExecute": "Підтвердити перед виконанням",
"askAiCommandInserted": "Команду вставлено в термінал",
"askAiAwaitingResponse": "Очікування відповіді ШІ...",
"askAiNoResponse": "Відповідь відсутня",
"askAiRecommendedCommand": "Команда, запропонована ШІ",
"askAiInsertTerminal": "Вставити в термінал",
"askAiSelectedContent": "Вибраний вміст",
"askAiConversation": "Розмова з ШІ",
"askAiFollowUpHint": "Поставте додаткове запитання...",
"askAiSend": "Надіслати"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "配置 WOL 后,每次连接服务器时将自动发送唤醒请求",
"write": "写",
"writeScriptFailTip": "写入脚本失败,可能是没有权限/目录不存在等",
"writeScriptTip": "在连接服务器后,会向 `~/.config/server_box` \n | `/tmp/server_box` 写入脚本来监测系统状态,你可以审查脚本内容。"
}
"writeScriptTip": "在连接服务器后,会向 `~/.config/server_box` \n | `/tmp/server_box` 写入脚本来监测系统状态,你可以审查脚本内容。",
"askAi": "问 AI",
"askAiUsageHint": "用于 SSH 终端",
"askAiBaseUrl": "基础 URL",
"askAiModel": "模型",
"askAiApiKey": "API 密钥",
"askAiConfigMissing": "请前往设置配置 {fields}",
"askAiConfirmExecute": "执行前确认",
"askAiCommandInserted": "命令已插入终端",
"askAiAwaitingResponse": "等待 AI 响应...",
"askAiNoResponse": "无回复内容",
"askAiRecommendedCommand": "AI 推荐命令",
"askAiInsertTerminal": "插入终端",
"askAiSelectedContent": "选中的内容",
"askAiConversation": "AI 对话",
"askAiFollowUpHint": "继续提问...",
"askAiSend": "发送"
}

View File

@@ -284,5 +284,21 @@
"wolTip": "設定 WOL 後,每次連線伺服器時將自動發送喚醒請求",
"write": "寫入",
"writeScriptFailTip": "寫入腳本失敗,可能是沒有權限/目錄不存在等。",
"writeScriptTip": "連線到伺服器後,將會在 `~/.config/server_box` \n | `/tmp/server_box` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。"
}
"writeScriptTip": "連線到伺服器後,將會在 `~/.config/server_box` \n | `/tmp/server_box` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。",
"askAi": "詢問 AI",
"askAiUsageHint": "於 SSH 終端機中使用",
"askAiBaseUrl": "基礎 URL",
"askAiModel": "模型",
"askAiApiKey": "API 金鑰",
"askAiConfigMissing": "請前往設定配置 {fields}",
"askAiConfirmExecute": "執行前確認",
"askAiCommandInserted": "指令已插入終端機",
"askAiAwaitingResponse": "等待 AI 回應...",
"askAiNoResponse": "無回覆內容",
"askAiRecommendedCommand": "AI 推薦指令",
"askAiInsertTerminal": "插入終端機",
"askAiSelectedContent": "選取的內容",
"askAiConversation": "AI 對話",
"askAiFollowUpHint": "繼續提問...",
"askAiSend": "傳送"
}