diff --git a/lib/core/utils/server.dart b/lib/core/utils/server.dart index 88b971b3..6a5164b9 100644 --- a/lib/core/utils/server.dart +++ b/lib/core/utils/server.dart @@ -96,6 +96,7 @@ Future genClient( username: alterUser ?? spi.user, onPasswordRequest: () => spi.pwd, onUserInfoRequest: onKeyboardInteractive, + onVerifyHostKey: (type, fingerprint) => true, // printDebug: debugPrint, // printTrace: debugPrint, ); @@ -109,6 +110,7 @@ Future genClient( // Must use [compute] here, instead of [Computer.shared.start] identities: await compute(loadIndentity, privateKey), onUserInfoRequest: onKeyboardInteractive, + onVerifyHostKey: (type, fingerprint) => true, // printDebug: debugPrint, // printTrace: debugPrint, ); diff --git a/lib/data/provider/ai/ask_ai.dart b/lib/data/provider/ai/ask_ai.dart index 8c6b2334..6970677e 100644 --- a/lib/data/provider/ai/ask_ai.dart +++ b/lib/data/provider/ai/ask_ai.dart @@ -214,10 +214,7 @@ class AskAiRepository { if (localeHint != null && localeHint.isNotEmpty) { promptBuffer - ..writeln('请优先使用用户的语言输出:$localeHint。') - ..writeln('如果无法判断语言,请使用简体中文。'); - } else { - promptBuffer.writeln('如果无法判断语言,请使用简体中文。'); + .writeln('请优先使用用户的语言输出:$localeHint。'); } final messages = >[ diff --git a/lib/generated/l10n/l10n.dart b/lib/generated/l10n/l10n.dart index 1c32bac6..0faf2e70 100644 --- a/lib/generated/l10n/l10n.dart +++ b/lib/generated/l10n/l10n.dart @@ -155,6 +155,102 @@ abstract class AppLocalizations { /// **'Already in last directory.'** String get alreadyLastDir; + /// No description provided for @askAi. + /// + /// In en, this message translates to: + /// **'Ask AI'** + String get askAi; + + /// No description provided for @askAiApiKey. + /// + /// In en, this message translates to: + /// **'API Key'** + String get askAiApiKey; + + /// No description provided for @askAiAwaitingResponse. + /// + /// In en, this message translates to: + /// **'Waiting for AI response...'** + String get askAiAwaitingResponse; + + /// No description provided for @askAiBaseUrl. + /// + /// In en, this message translates to: + /// **'Base URL'** + String get askAiBaseUrl; + + /// No description provided for @askAiCommandInserted. + /// + /// In en, this message translates to: + /// **'Command inserted into terminal'** + String get askAiCommandInserted; + + /// No description provided for @askAiConfigMissing. + /// + /// In en, this message translates to: + /// **'Please configure {fields} in Settings.'** + String askAiConfigMissing(Object fields); + + /// No description provided for @askAiConfirmExecute. + /// + /// In en, this message translates to: + /// **'Confirm before executing'** + String get askAiConfirmExecute; + + /// No description provided for @askAiConversation. + /// + /// In en, this message translates to: + /// **'AI conversation'** + String get askAiConversation; + + /// No description provided for @askAiDisclaimer. + /// + /// In en, this message translates to: + /// **'AI may be incorrect. Review carefully before applying.'** + String get askAiDisclaimer; + + /// No description provided for @askAiFollowUpHint. + /// + /// In en, this message translates to: + /// **'Ask a follow-up...'** + String get askAiFollowUpHint; + + /// No description provided for @askAiInsertTerminal. + /// + /// In en, this message translates to: + /// **'Insert into terminal'** + String get askAiInsertTerminal; + + /// No description provided for @askAiModel. + /// + /// In en, this message translates to: + /// **'Model'** + String get askAiModel; + + /// No description provided for @askAiNoResponse. + /// + /// In en, this message translates to: + /// **'No response'** + String get askAiNoResponse; + + /// No description provided for @askAiRecommendedCommand. + /// + /// In en, this message translates to: + /// **'AI suggested command'** + String get askAiRecommendedCommand; + + /// No description provided for @askAiSelectedContent. + /// + /// In en, this message translates to: + /// **'Selected content'** + String get askAiSelectedContent; + + /// No description provided for @askAiUsageHint. + /// + /// In en, this message translates to: + /// **'Used in SSH Terminal'** + String get askAiUsageHint; + /// No description provided for @atLeastOneTab. /// /// In en, this message translates to: @@ -285,13 +381,13 @@ abstract class AppLocalizations { /// /// In en, this message translates to: /// **'Are you sure you want to clear connection statistics for server \"{serverName}\"? This action cannot be undone.'** - String clearServerStatsContent(String serverName); + String clearServerStatsContent(Object serverName); /// No description provided for @clearServerStatsTitle. /// /// In en, this message translates to: /// **'Clear {serverName} Statistics'** - String clearServerStatsTitle(String serverName); + String clearServerStatsTitle(Object serverName); /// No description provided for @clearThisServerStats. /// @@ -1747,102 +1843,6 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'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.'** String get writeScriptTip; - - /// No description provided for @askAi. - /// - /// In en, this message translates to: - /// **'Ask AI'** - String get askAi; - - /// No description provided for @askAiUsageHint. - /// - /// In en, this message translates to: - /// **'Used in SSH Terminal'** - String get askAiUsageHint; - - /// No description provided for @askAiBaseUrl. - /// - /// In en, this message translates to: - /// **'Base URL'** - String get askAiBaseUrl; - - /// No description provided for @askAiModel. - /// - /// In en, this message translates to: - /// **'Model'** - String get askAiModel; - - /// No description provided for @askAiApiKey. - /// - /// In en, this message translates to: - /// **'API Key'** - String get askAiApiKey; - - /// No description provided for @askAiConfigMissing. - /// - /// In en, this message translates to: - /// **'Please configure {fields} in Settings.'** - String askAiConfigMissing(String fields); - - /// No description provided for @askAiConfirmExecute. - /// - /// In en, this message translates to: - /// **'Confirm before executing'** - String get askAiConfirmExecute; - - /// No description provided for @askAiCommandInserted. - /// - /// In en, this message translates to: - /// **'Command inserted into terminal'** - String get askAiCommandInserted; - - /// No description provided for @askAiAwaitingResponse. - /// - /// In en, this message translates to: - /// **'Waiting for AI response...'** - String get askAiAwaitingResponse; - - /// No description provided for @askAiNoResponse. - /// - /// In en, this message translates to: - /// **'No response'** - String get askAiNoResponse; - - /// No description provided for @askAiRecommendedCommand. - /// - /// In en, this message translates to: - /// **'AI suggested command'** - String get askAiRecommendedCommand; - - /// No description provided for @askAiInsertTerminal. - /// - /// In en, this message translates to: - /// **'Insert into terminal'** - String get askAiInsertTerminal; - - /// No description provided for @askAiSelectedContent. - /// - /// In en, this message translates to: - /// **'Selected content'** - String get askAiSelectedContent; - - /// No description provided for @askAiConversation. - /// - /// In en, this message translates to: - /// **'AI conversation'** - String get askAiConversation; - - /// No description provided for @askAiFollowUpHint. - /// - /// In en, this message translates to: - /// **'Ask a follow-up...'** - String get askAiFollowUpHint; - - /// No description provided for @askAiSend. - /// - /// In en, this message translates to: - /// **'Send'** - String get askAiSend; } class _AppLocalizationsDelegate diff --git a/lib/generated/l10n/l10n_de.dart b/lib/generated/l10n/l10n_de.dart index 40c1bc8a..3e085f89 100644 --- a/lib/generated/l10n/l10n_de.dart +++ b/lib/generated/l10n/l10n_de.dart @@ -28,6 +28,57 @@ class AppLocalizationsDe extends AppLocalizations { @override String get alreadyLastDir => 'Bereits im letzten Verzeichnis.'; + @override + String get askAi => 'KI fragen'; + + @override + String get askAiApiKey => 'API-Schlüssel'; + + @override + String get askAiAwaitingResponse => 'Warte auf KI-Antwort...'; + + @override + String get askAiBaseUrl => 'Basis-URL'; + + @override + String get askAiCommandInserted => 'Befehl ins Terminal eingefügt'; + + @override + String askAiConfigMissing(Object fields) { + return 'Bitte konfigurieren Sie $fields in den Einstellungen.'; + } + + @override + String get askAiConfirmExecute => 'Vor Ausführung bestätigen'; + + @override + String get askAiConversation => 'KI-Unterhaltung'; + + @override + String get askAiDisclaimer => + 'KI kann Fehler machen. Bitte vorsichtig verwenden.'; + + @override + String get askAiFollowUpHint => 'Weitere Frage stellen...'; + + @override + String get askAiInsertTerminal => 'In Terminal einfügen'; + + @override + String get askAiModel => 'Modell'; + + @override + String get askAiNoResponse => 'Keine Antwort'; + + @override + String get askAiRecommendedCommand => 'KI-empfohlener Befehl'; + + @override + String get askAiSelectedContent => 'Ausgewählter Inhalt'; + + @override + String get askAiUsageHint => 'Verwendet im SSH-Terminal'; + @override String get atLeastOneTab => 'Mindestens ein Tab muss ausgewählt sein'; @@ -99,12 +150,12 @@ class AppLocalizationsDe extends AppLocalizations { String get clearAllStatsTitle => 'Alle Statistiken löschen'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Sind Sie sicher, dass Sie die Verbindungsstatistiken für Server \"$serverName\" löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return '$serverName Statistiken löschen'; } @@ -923,54 +974,4 @@ class AppLocalizationsDe extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'KI fragen'; - - @override - String get askAiUsageHint => 'Verwendet im SSH-Terminal'; - - @override - String get askAiBaseUrl => 'Basis-URL'; - - @override - String get askAiModel => 'Modell'; - - @override - String get askAiApiKey => 'API-Schlüssel'; - - @override - String askAiConfigMissing(String fields) { - return 'Bitte konfigurieren Sie $fields in den Einstellungen.'; - } - - @override - String get askAiConfirmExecute => 'Vor Ausführung bestätigen'; - - @override - String get askAiCommandInserted => 'Befehl ins Terminal eingefügt'; - - @override - String get askAiAwaitingResponse => 'Warte auf KI-Antwort...'; - - @override - String get askAiNoResponse => 'Keine Antwort'; - - @override - String get askAiRecommendedCommand => 'KI-empfohlener Befehl'; - - @override - String get askAiInsertTerminal => 'In Terminal einfügen'; - - @override - String get askAiSelectedContent => 'Ausgewählter Inhalt'; - - @override - String get askAiConversation => 'KI-Unterhaltung'; - - @override - String get askAiFollowUpHint => 'Weitere Frage stellen...'; - - @override - String get askAiSend => 'Senden'; } diff --git a/lib/generated/l10n/l10n_en.dart b/lib/generated/l10n/l10n_en.dart index 47e3e55b..d8424efa 100644 --- a/lib/generated/l10n/l10n_en.dart +++ b/lib/generated/l10n/l10n_en.dart @@ -28,6 +28,57 @@ class AppLocalizationsEn extends AppLocalizations { @override String get alreadyLastDir => 'Already in last directory.'; + @override + String get askAi => 'Ask AI'; + + @override + String get askAiApiKey => 'API Key'; + + @override + String get askAiAwaitingResponse => 'Waiting for AI response...'; + + @override + String get askAiBaseUrl => 'Base URL'; + + @override + String get askAiCommandInserted => 'Command inserted into terminal'; + + @override + String askAiConfigMissing(Object fields) { + return 'Please configure $fields in Settings.'; + } + + @override + String get askAiConfirmExecute => 'Confirm before executing'; + + @override + String get askAiConversation => 'AI conversation'; + + @override + String get askAiDisclaimer => + 'AI may be incorrect. Review carefully before applying.'; + + @override + String get askAiFollowUpHint => 'Ask a follow-up...'; + + @override + String get askAiInsertTerminal => 'Insert into terminal'; + + @override + String get askAiModel => 'Model'; + + @override + String get askAiNoResponse => 'No response'; + + @override + String get askAiRecommendedCommand => 'AI suggested command'; + + @override + String get askAiSelectedContent => 'Selected content'; + + @override + String get askAiUsageHint => 'Used in SSH Terminal'; + @override String get atLeastOneTab => 'At least one tab must be selected'; @@ -98,12 +149,12 @@ class AppLocalizationsEn extends AppLocalizations { String get clearAllStatsTitle => 'Clear All Statistics'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Are you sure you want to clear connection statistics for server \"$serverName\"? This action cannot be undone.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Clear $serverName Statistics'; } @@ -914,54 +965,4 @@ class AppLocalizationsEn extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'Ask AI'; - - @override - String get askAiUsageHint => 'Used in SSH Terminal'; - - @override - String get askAiBaseUrl => 'Base URL'; - - @override - String get askAiModel => 'Model'; - - @override - String get askAiApiKey => 'API Key'; - - @override - String askAiConfigMissing(String fields) { - return 'Please configure $fields in Settings.'; - } - - @override - String get askAiConfirmExecute => 'Confirm before executing'; - - @override - String get askAiCommandInserted => 'Command inserted into terminal'; - - @override - String get askAiAwaitingResponse => 'Waiting for AI response...'; - - @override - String get askAiNoResponse => 'No response'; - - @override - String get askAiRecommendedCommand => 'AI suggested command'; - - @override - String get askAiInsertTerminal => 'Insert into terminal'; - - @override - String get askAiSelectedContent => 'Selected content'; - - @override - String get askAiConversation => 'AI conversation'; - - @override - String get askAiFollowUpHint => 'Ask a follow-up...'; - - @override - String get askAiSend => 'Send'; } diff --git a/lib/generated/l10n/l10n_es.dart b/lib/generated/l10n/l10n_es.dart index f08762c6..4127f338 100644 --- a/lib/generated/l10n/l10n_es.dart +++ b/lib/generated/l10n/l10n_es.dart @@ -27,6 +27,57 @@ class AppLocalizationsEs extends AppLocalizations { @override String get alreadyLastDir => 'Ya estás en el directorio superior'; + @override + String get askAi => 'Preguntar a la IA'; + + @override + String get askAiApiKey => 'Clave API'; + + @override + String get askAiAwaitingResponse => 'Esperando la respuesta de la IA...'; + + @override + String get askAiBaseUrl => 'URL base'; + + @override + String get askAiCommandInserted => 'Comando insertado en el terminal'; + + @override + String askAiConfigMissing(Object fields) { + return 'Configura $fields en Ajustes.'; + } + + @override + String get askAiConfirmExecute => 'Confirmar antes de ejecutar'; + + @override + String get askAiConversation => 'Conversación con la IA'; + + @override + String get askAiDisclaimer => + 'La IA puede equivocarse. Úsala con precaución.'; + + @override + String get askAiFollowUpHint => 'Haz una pregunta adicional...'; + + @override + String get askAiInsertTerminal => 'Insertar en el terminal'; + + @override + String get askAiModel => 'Modelo'; + + @override + String get askAiNoResponse => 'Sin respuesta'; + + @override + String get askAiRecommendedCommand => 'Comando sugerido por la IA'; + + @override + String get askAiSelectedContent => 'Contenido seleccionado'; + + @override + String get askAiUsageHint => 'Usado en el terminal SSH'; + @override String get atLeastOneTab => 'Al menos una pestaña debe estar seleccionada'; @@ -99,12 +150,12 @@ class AppLocalizationsEs extends AppLocalizations { String get clearAllStatsTitle => 'Limpiar todas las estadísticas'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return '¿Estás seguro de que quieres limpiar las estadísticas de conexión del servidor \"$serverName\"? Esta acción no se puede deshacer.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Limpiar estadísticas de $serverName'; } @@ -925,54 +976,4 @@ class AppLocalizationsEs extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'Preguntar a la IA'; - - @override - String get askAiUsageHint => 'Usado en el terminal SSH'; - - @override - String get askAiBaseUrl => 'URL base'; - - @override - String get askAiModel => 'Modelo'; - - @override - String get askAiApiKey => 'Clave API'; - - @override - String askAiConfigMissing(String fields) { - return 'Configura $fields en Ajustes.'; - } - - @override - String get askAiConfirmExecute => 'Confirmar antes de ejecutar'; - - @override - String get askAiCommandInserted => 'Comando insertado en el terminal'; - - @override - String get askAiAwaitingResponse => 'Esperando la respuesta de la IA...'; - - @override - String get askAiNoResponse => 'Sin respuesta'; - - @override - String get askAiRecommendedCommand => 'Comando sugerido por la IA'; - - @override - String get askAiInsertTerminal => 'Insertar en el terminal'; - - @override - String get askAiSelectedContent => 'Contenido seleccionado'; - - @override - String get askAiConversation => 'Conversación con la IA'; - - @override - String get askAiFollowUpHint => 'Haz una pregunta adicional...'; - - @override - String get askAiSend => 'Enviar'; } diff --git a/lib/generated/l10n/l10n_fr.dart b/lib/generated/l10n/l10n_fr.dart index d3844528..768db657 100644 --- a/lib/generated/l10n/l10n_fr.dart +++ b/lib/generated/l10n/l10n_fr.dart @@ -27,6 +27,57 @@ class AppLocalizationsFr extends AppLocalizations { @override String get alreadyLastDir => 'Déjà dans le dernier répertoire.'; + @override + String get askAi => 'Demander à l\'IA'; + + @override + String get askAiApiKey => 'Clé API'; + + @override + String get askAiAwaitingResponse => 'En attente de la réponse de l\'IA...'; + + @override + String get askAiBaseUrl => 'URL de base'; + + @override + String get askAiCommandInserted => 'Commande insérée dans le terminal'; + + @override + String askAiConfigMissing(Object fields) { + return 'Veuillez configurer $fields dans les paramètres.'; + } + + @override + String get askAiConfirmExecute => 'Confirmer avant d\'exécuter'; + + @override + String get askAiConversation => 'Conversation avec l\'IA'; + + @override + String get askAiDisclaimer => + 'L\'IA peut se tromper. Utilisez-la avec prudence.'; + + @override + String get askAiFollowUpHint => 'Poser une question supplémentaire...'; + + @override + String get askAiInsertTerminal => 'Insérer dans le terminal'; + + @override + String get askAiModel => 'Modèle'; + + @override + String get askAiNoResponse => 'Aucune réponse'; + + @override + String get askAiRecommendedCommand => 'Commande suggérée par l\'IA'; + + @override + String get askAiSelectedContent => 'Contenu sélectionné'; + + @override + String get askAiUsageHint => 'Utilisé dans le terminal SSH'; + @override String get atLeastOneTab => 'Au moins un onglet doit être sélectionné'; @@ -99,12 +150,12 @@ class AppLocalizationsFr extends AppLocalizations { String get clearAllStatsTitle => 'Effacer toutes les statistiques'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Êtes-vous sûr de vouloir effacer les statistiques de connexion du serveur \"$serverName\" ? Cette action ne peut pas être annulée.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Effacer les statistiques de $serverName'; } @@ -928,54 +979,4 @@ class AppLocalizationsFr extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'Demander à l\'IA'; - - @override - String get askAiUsageHint => 'Utilisé dans le terminal SSH'; - - @override - String get askAiBaseUrl => 'URL de base'; - - @override - String get askAiModel => 'Modèle'; - - @override - String get askAiApiKey => 'Clé API'; - - @override - String askAiConfigMissing(String fields) { - return 'Veuillez configurer $fields dans les paramètres.'; - } - - @override - String get askAiConfirmExecute => 'Confirmer avant d\'exécuter'; - - @override - String get askAiCommandInserted => 'Commande insérée dans le terminal'; - - @override - String get askAiAwaitingResponse => 'En attente de la réponse de l\'IA...'; - - @override - String get askAiNoResponse => 'Aucune réponse'; - - @override - String get askAiRecommendedCommand => 'Commande suggérée par l\'IA'; - - @override - String get askAiInsertTerminal => 'Insérer dans le terminal'; - - @override - String get askAiSelectedContent => 'Contenu sélectionné'; - - @override - String get askAiConversation => 'Conversation avec l\'IA'; - - @override - String get askAiFollowUpHint => 'Poser une question supplémentaire...'; - - @override - String get askAiSend => 'Envoyer'; } diff --git a/lib/generated/l10n/l10n_id.dart b/lib/generated/l10n/l10n_id.dart index 49de95e6..72c4afc4 100644 --- a/lib/generated/l10n/l10n_id.dart +++ b/lib/generated/l10n/l10n_id.dart @@ -28,6 +28,56 @@ class AppLocalizationsId extends AppLocalizations { @override String get alreadyLastDir => 'Sudah di direktori terakhir.'; + @override + String get askAi => 'Tanya AI'; + + @override + String get askAiApiKey => 'Kunci API'; + + @override + String get askAiAwaitingResponse => 'Menunggu respons AI...'; + + @override + String get askAiBaseUrl => 'URL dasar'; + + @override + String get askAiCommandInserted => 'Perintah dimasukkan ke terminal'; + + @override + String askAiConfigMissing(Object fields) { + return 'Harap konfigurasikan $fields di Pengaturan.'; + } + + @override + String get askAiConfirmExecute => 'Konfirmasi sebelum menjalankan'; + + @override + String get askAiConversation => 'Percakapan AI'; + + @override + String get askAiDisclaimer => 'AI bisa saja salah. Gunakan dengan hati-hati.'; + + @override + String get askAiFollowUpHint => 'Ajukan pertanyaan lanjutan...'; + + @override + String get askAiInsertTerminal => 'Masukkan ke terminal'; + + @override + String get askAiModel => 'Model'; + + @override + String get askAiNoResponse => 'Tidak ada respons'; + + @override + String get askAiRecommendedCommand => 'Perintah yang disarankan AI'; + + @override + String get askAiSelectedContent => 'Konten yang dipilih'; + + @override + String get askAiUsageHint => 'Digunakan di Terminal SSH'; + @override String get atLeastOneTab => 'Setidaknya satu tab harus dipilih'; @@ -98,12 +148,12 @@ class AppLocalizationsId extends AppLocalizations { String get clearAllStatsTitle => 'Hapus Semua Statistik'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Apakah Anda yakin ingin menghapus statistik koneksi untuk server \"$serverName\"? Tindakan ini tidak dapat dibatalkan.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Hapus Statistik $serverName'; } @@ -915,54 +965,4 @@ class AppLocalizationsId extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'Tanya AI'; - - @override - String get askAiUsageHint => 'Digunakan di Terminal SSH'; - - @override - String get askAiBaseUrl => 'URL dasar'; - - @override - String get askAiModel => 'Model'; - - @override - String get askAiApiKey => 'Kunci API'; - - @override - String askAiConfigMissing(String fields) { - return 'Harap konfigurasikan $fields di Pengaturan.'; - } - - @override - String get askAiConfirmExecute => 'Konfirmasi sebelum menjalankan'; - - @override - String get askAiCommandInserted => 'Perintah dimasukkan ke terminal'; - - @override - String get askAiAwaitingResponse => 'Menunggu respons AI...'; - - @override - String get askAiNoResponse => 'Tidak ada respons'; - - @override - String get askAiRecommendedCommand => 'Perintah yang disarankan AI'; - - @override - String get askAiInsertTerminal => 'Masukkan ke terminal'; - - @override - String get askAiSelectedContent => 'Konten yang dipilih'; - - @override - String get askAiConversation => 'Percakapan AI'; - - @override - String get askAiFollowUpHint => 'Ajukan pertanyaan lanjutan...'; - - @override - String get askAiSend => 'Kirim'; } diff --git a/lib/generated/l10n/l10n_ja.dart b/lib/generated/l10n/l10n_ja.dart index 9056b963..80243ad2 100644 --- a/lib/generated/l10n/l10n_ja.dart +++ b/lib/generated/l10n/l10n_ja.dart @@ -27,6 +27,56 @@ class AppLocalizationsJa extends AppLocalizations { @override String get alreadyLastDir => 'すでに最上位のディレクトリです'; + @override + String get askAi => 'AI に質問'; + + @override + String get askAiApiKey => 'API キー'; + + @override + String get askAiAwaitingResponse => 'AI の応答を待機中...'; + + @override + String get askAiBaseUrl => 'ベース URL'; + + @override + String get askAiCommandInserted => 'コマンドをターミナルに挿入しました'; + + @override + String askAiConfigMissing(Object fields) { + return '設定で $fields を構成してください。'; + } + + @override + String get askAiConfirmExecute => '実行前に確認'; + + @override + String get askAiConversation => 'AI 会話'; + + @override + String get askAiDisclaimer => 'AI が誤る可能性があります。注意してご利用ください。'; + + @override + String get askAiFollowUpHint => '追質問をする...'; + + @override + String get askAiInsertTerminal => 'ターミナルに挿入'; + + @override + String get askAiModel => 'モデル'; + + @override + String get askAiNoResponse => '応答なし'; + + @override + String get askAiRecommendedCommand => 'AI 推奨コマンド'; + + @override + String get askAiSelectedContent => '選択した内容'; + + @override + String get askAiUsageHint => 'SSH ターミナルで使用'; + @override String get atLeastOneTab => '少なくとも1つのタブを選択する必要があります'; @@ -93,12 +143,12 @@ class AppLocalizationsJa extends AppLocalizations { String get clearAllStatsTitle => 'すべての統計をクリア'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'サーバー\"$serverName\"の接続統計を削除してもよろしいですか?この操作は元に戻せません。'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return '$serverNameの統計をクリア'; } @@ -885,54 +935,4 @@ class AppLocalizationsJa extends AppLocalizations { @override String get writeScriptTip => 'サーバーに接続すると、システムの状態を監視するためのスクリプトが `~/.config/server_box` \n | `/tmp/server_box` に書き込まれます。スクリプトの内容を確認できます。'; - - @override - String get askAi => 'AI に質問'; - - @override - String get askAiUsageHint => 'SSH ターミナルで使用'; - - @override - String get askAiBaseUrl => 'ベース URL'; - - @override - String get askAiModel => 'モデル'; - - @override - String get askAiApiKey => 'API キー'; - - @override - String askAiConfigMissing(String fields) { - return '設定で $fields を構成してください。'; - } - - @override - String get askAiConfirmExecute => '実行前に確認'; - - @override - String get askAiCommandInserted => 'コマンドをターミナルに挿入しました'; - - @override - String get askAiAwaitingResponse => 'AI の応答を待機中...'; - - @override - String get askAiNoResponse => '応答なし'; - - @override - String get askAiRecommendedCommand => 'AI 推奨コマンド'; - - @override - String get askAiInsertTerminal => 'ターミナルに挿入'; - - @override - String get askAiSelectedContent => '選択した内容'; - - @override - String get askAiConversation => 'AI 会話'; - - @override - String get askAiFollowUpHint => '追質問をする...'; - - @override - String get askAiSend => '送信'; } diff --git a/lib/generated/l10n/l10n_nl.dart b/lib/generated/l10n/l10n_nl.dart index 40b5af69..e9722473 100644 --- a/lib/generated/l10n/l10n_nl.dart +++ b/lib/generated/l10n/l10n_nl.dart @@ -28,6 +28,56 @@ class AppLocalizationsNl extends AppLocalizations { @override String get alreadyLastDir => 'Al in de laatst gebruikte map.'; + @override + String get askAi => 'AI vragen'; + + @override + String get askAiApiKey => 'API-sleutel'; + + @override + String get askAiAwaitingResponse => 'Wachten op AI-reactie...'; + + @override + String get askAiBaseUrl => 'Basis-URL'; + + @override + String get askAiCommandInserted => 'Commando in terminal ingevoegd'; + + @override + String askAiConfigMissing(Object fields) { + return 'Configureer $fields in de instellingen.'; + } + + @override + String get askAiConfirmExecute => 'Bevestigen voor uitvoeren'; + + @override + String get askAiConversation => 'AI-gesprek'; + + @override + String get askAiDisclaimer => 'AI kan fouten maken. Gebruik het zorgvuldig.'; + + @override + String get askAiFollowUpHint => 'Stel een vervolgvraag...'; + + @override + String get askAiInsertTerminal => 'In terminal invoegen'; + + @override + String get askAiModel => 'Model'; + + @override + String get askAiNoResponse => 'Geen reactie'; + + @override + String get askAiRecommendedCommand => 'Door AI voorgestelde opdracht'; + + @override + String get askAiSelectedContent => 'Geselecteerde inhoud'; + + @override + String get askAiUsageHint => 'Gebruikt in de SSH-terminal'; + @override String get atLeastOneTab => 'Er moet minimaal één tabblad worden geselecteerd'; @@ -99,12 +149,12 @@ class AppLocalizationsNl extends AppLocalizations { String get clearAllStatsTitle => 'Alle statistieken wissen'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Weet u zeker dat u de verbindingsstatistieken voor server \"$serverName\" wilt wissen? Deze actie kan niet ongedaan worden gemaakt.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Statistieken van $serverName wissen'; } @@ -922,54 +972,4 @@ class AppLocalizationsNl extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'AI vragen'; - - @override - String get askAiUsageHint => 'Gebruikt in de SSH-terminal'; - - @override - String get askAiBaseUrl => 'Basis-URL'; - - @override - String get askAiModel => 'Model'; - - @override - String get askAiApiKey => 'API-sleutel'; - - @override - String askAiConfigMissing(String fields) { - return 'Configureer $fields in de instellingen.'; - } - - @override - String get askAiConfirmExecute => 'Bevestigen voor uitvoeren'; - - @override - String get askAiCommandInserted => 'Commando in terminal ingevoegd'; - - @override - String get askAiAwaitingResponse => 'Wachten op AI-reactie...'; - - @override - String get askAiNoResponse => 'Geen reactie'; - - @override - String get askAiRecommendedCommand => 'Door AI voorgestelde opdracht'; - - @override - String get askAiInsertTerminal => 'In terminal invoegen'; - - @override - String get askAiSelectedContent => 'Geselecteerde inhoud'; - - @override - String get askAiConversation => 'AI-gesprek'; - - @override - String get askAiFollowUpHint => 'Stel een vervolgvraag...'; - - @override - String get askAiSend => 'Verzenden'; } diff --git a/lib/generated/l10n/l10n_pt.dart b/lib/generated/l10n/l10n_pt.dart index 6c7ccf96..3adf3fec 100644 --- a/lib/generated/l10n/l10n_pt.dart +++ b/lib/generated/l10n/l10n_pt.dart @@ -27,6 +27,56 @@ class AppLocalizationsPt extends AppLocalizations { @override String get alreadyLastDir => 'Já é o diretório mais alto'; + @override + String get askAi => 'Perguntar à IA'; + + @override + String get askAiApiKey => 'Chave de API'; + + @override + String get askAiAwaitingResponse => 'Aguardando resposta da IA...'; + + @override + String get askAiBaseUrl => 'URL base'; + + @override + String get askAiCommandInserted => 'Comando inserido no terminal'; + + @override + String askAiConfigMissing(Object fields) { + return 'Configure $fields nas configurações.'; + } + + @override + String get askAiConfirmExecute => 'Confirmar antes de executar'; + + @override + String get askAiConversation => 'Conversa com a IA'; + + @override + String get askAiDisclaimer => 'A IA pode errar. Use com cautela.'; + + @override + String get askAiFollowUpHint => 'Faça uma pergunta adicional...'; + + @override + String get askAiInsertTerminal => 'Inserir no terminal'; + + @override + String get askAiModel => 'Modelo'; + + @override + String get askAiNoResponse => 'Sem resposta'; + + @override + String get askAiRecommendedCommand => 'Comando sugerido pela IA'; + + @override + String get askAiSelectedContent => 'Conteúdo selecionado'; + + @override + String get askAiUsageHint => 'Usado no terminal SSH'; + @override String get atLeastOneTab => 'Pelo menos uma aba deve ser selecionada'; @@ -99,12 +149,12 @@ class AppLocalizationsPt extends AppLocalizations { String get clearAllStatsTitle => 'Limpar todas as estatísticas'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Tem certeza de que deseja limpar as estatísticas de conexão para o servidor \"$serverName\"? Esta ação não pode ser desfeita.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Limpar estatísticas de $serverName'; } @@ -917,54 +967,4 @@ class AppLocalizationsPt extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'Perguntar à IA'; - - @override - String get askAiUsageHint => 'Usado no terminal SSH'; - - @override - String get askAiBaseUrl => 'URL base'; - - @override - String get askAiModel => 'Modelo'; - - @override - String get askAiApiKey => 'Chave de API'; - - @override - String askAiConfigMissing(String fields) { - return 'Configure $fields nas configurações.'; - } - - @override - String get askAiConfirmExecute => 'Confirmar antes de executar'; - - @override - String get askAiCommandInserted => 'Comando inserido no terminal'; - - @override - String get askAiAwaitingResponse => 'Aguardando resposta da IA...'; - - @override - String get askAiNoResponse => 'Sem resposta'; - - @override - String get askAiRecommendedCommand => 'Comando sugerido pela IA'; - - @override - String get askAiInsertTerminal => 'Inserir no terminal'; - - @override - String get askAiSelectedContent => 'Conteúdo selecionado'; - - @override - String get askAiConversation => 'Conversa com a IA'; - - @override - String get askAiFollowUpHint => 'Faça uma pergunta adicional...'; - - @override - String get askAiSend => 'Enviar'; } diff --git a/lib/generated/l10n/l10n_ru.dart b/lib/generated/l10n/l10n_ru.dart index c6d82445..fd5544ab 100644 --- a/lib/generated/l10n/l10n_ru.dart +++ b/lib/generated/l10n/l10n_ru.dart @@ -27,6 +27,57 @@ class AppLocalizationsRu extends AppLocalizations { @override String get alreadyLastDir => 'Уже в корневом каталоге'; + @override + String get askAi => 'Спросить ИИ'; + + @override + String get askAiApiKey => 'Ключ API'; + + @override + String get askAiAwaitingResponse => 'Ожидание ответа ИИ...'; + + @override + String get askAiBaseUrl => 'Базовый URL'; + + @override + String get askAiCommandInserted => 'Команда вставлена в терминал'; + + @override + String askAiConfigMissing(Object fields) { + return 'Настройте $fields в настройках.'; + } + + @override + String get askAiConfirmExecute => 'Подтвердите перед выполнением'; + + @override + String get askAiConversation => 'Разговор с ИИ'; + + @override + String get askAiDisclaimer => + 'ИИ может ошибаться. Используйте с осторожностью.'; + + @override + String get askAiFollowUpHint => 'Задайте дополнительный вопрос...'; + + @override + String get askAiInsertTerminal => 'Вставить в терминал'; + + @override + String get askAiModel => 'Модель'; + + @override + String get askAiNoResponse => 'Нет ответа'; + + @override + String get askAiRecommendedCommand => 'Команда, предложенная ИИ'; + + @override + String get askAiSelectedContent => 'Выбранное содержимое'; + + @override + String get askAiUsageHint => 'Используется в SSH-терминале'; + @override String get atLeastOneTab => 'Должна быть выбрана хотя бы одна вкладка'; @@ -99,12 +150,12 @@ class AppLocalizationsRu extends AppLocalizations { String get clearAllStatsTitle => 'Очистить всю статистику'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Вы уверены, что хотите очистить статистику соединений для сервера \"$serverName\"? Это действие не может быть отменено.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Очистить статистику $serverName'; } @@ -920,54 +971,4 @@ class AppLocalizationsRu extends AppLocalizations { @override String get writeScriptTip => 'После подключения к серверу скрипт будет записан в `~/.config/server_box` \n | `/tmp/server_box` для мониторинга состояния системы. Вы можете проверить содержимое скрипта.'; - - @override - String get askAi => 'Спросить ИИ'; - - @override - String get askAiUsageHint => 'Используется в SSH-терминале'; - - @override - String get askAiBaseUrl => 'Базовый URL'; - - @override - String get askAiModel => 'Модель'; - - @override - String get askAiApiKey => 'Ключ API'; - - @override - String askAiConfigMissing(String fields) { - return 'Настройте $fields в настройках.'; - } - - @override - String get askAiConfirmExecute => 'Подтвердите перед выполнением'; - - @override - String get askAiCommandInserted => 'Команда вставлена в терминал'; - - @override - String get askAiAwaitingResponse => 'Ожидание ответа ИИ...'; - - @override - String get askAiNoResponse => 'Нет ответа'; - - @override - String get askAiRecommendedCommand => 'Команда, предложенная ИИ'; - - @override - String get askAiInsertTerminal => 'Вставить в терминал'; - - @override - String get askAiSelectedContent => 'Выбранное содержимое'; - - @override - String get askAiConversation => 'Разговор с ИИ'; - - @override - String get askAiFollowUpHint => 'Задайте дополнительный вопрос...'; - - @override - String get askAiSend => 'Отправить'; } diff --git a/lib/generated/l10n/l10n_tr.dart b/lib/generated/l10n/l10n_tr.dart index 98eddf31..482b408f 100644 --- a/lib/generated/l10n/l10n_tr.dart +++ b/lib/generated/l10n/l10n_tr.dart @@ -27,6 +27,57 @@ class AppLocalizationsTr extends AppLocalizations { @override String get alreadyLastDir => 'Zaten son dizindesiniz.'; + @override + String get askAi => 'Yapay zekaya sor'; + + @override + String get askAiApiKey => 'API anahtarı'; + + @override + String get askAiAwaitingResponse => 'Yapay zekâ yanıtı bekleniyor...'; + + @override + String get askAiBaseUrl => 'Temel URL'; + + @override + String get askAiCommandInserted => 'Komut terminale eklendi'; + + @override + String askAiConfigMissing(Object fields) { + return 'Lütfen Ayarlar\'da $fields öğesini yapılandırın.'; + } + + @override + String get askAiConfirmExecute => 'Çalıştırmadan önce onayla'; + + @override + String get askAiConversation => 'YZ sohbeti'; + + @override + String get askAiDisclaimer => + 'Yapay zeka hata yapabilir. Lütfen dikkatli kullanın.'; + + @override + String get askAiFollowUpHint => 'Yeni bir soru sor...'; + + @override + String get askAiInsertTerminal => 'Terminale ekle'; + + @override + String get askAiModel => 'Model'; + + @override + String get askAiNoResponse => 'Yanıt yok'; + + @override + String get askAiRecommendedCommand => 'YZ önerilen komut'; + + @override + String get askAiSelectedContent => 'Seçilen içerik'; + + @override + String get askAiUsageHint => 'SSH Terminalinde kullanılır'; + @override String get atLeastOneTab => 'En az bir sekme seçilmelidir'; @@ -97,12 +148,12 @@ class AppLocalizationsTr extends AppLocalizations { String get clearAllStatsTitle => 'Tüm İstatistikleri Temizle'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return '\"$serverName\" sunucusu için bağlantı istatistiklerini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return '$serverName İstatistiklerini Temizle'; } @@ -915,54 +966,4 @@ class AppLocalizationsTr extends AppLocalizations { @override String get 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.'; - - @override - String get askAi => 'Yapay zekaya sor'; - - @override - String get askAiUsageHint => 'SSH Terminalinde kullanılır'; - - @override - String get askAiBaseUrl => 'Temel URL'; - - @override - String get askAiModel => 'Model'; - - @override - String get askAiApiKey => 'API anahtarı'; - - @override - String askAiConfigMissing(String fields) { - return 'Lütfen Ayarlar\'da $fields öğesini yapılandırın.'; - } - - @override - String get askAiConfirmExecute => 'Çalıştırmadan önce onayla'; - - @override - String get askAiCommandInserted => 'Komut terminale eklendi'; - - @override - String get askAiAwaitingResponse => 'Yapay zekâ yanıtı bekleniyor...'; - - @override - String get askAiNoResponse => 'Yanıt yok'; - - @override - String get askAiRecommendedCommand => 'YZ önerilen komut'; - - @override - String get askAiInsertTerminal => 'Terminale ekle'; - - @override - String get askAiSelectedContent => 'Seçilen içerik'; - - @override - String get askAiConversation => 'YZ sohbeti'; - - @override - String get askAiFollowUpHint => 'Yeni bir soru sor...'; - - @override - String get askAiSend => 'Gönder'; } diff --git a/lib/generated/l10n/l10n_uk.dart b/lib/generated/l10n/l10n_uk.dart index 268c11e5..69ccba62 100644 --- a/lib/generated/l10n/l10n_uk.dart +++ b/lib/generated/l10n/l10n_uk.dart @@ -27,6 +27,56 @@ class AppLocalizationsUk extends AppLocalizations { @override String get alreadyLastDir => 'Вже в останньому каталозі.'; + @override + String get askAi => 'Запитати ШІ'; + + @override + String get askAiApiKey => 'Ключ API'; + + @override + String get askAiAwaitingResponse => 'Очікування відповіді ШІ...'; + + @override + String get askAiBaseUrl => 'Базова URL'; + + @override + String get askAiCommandInserted => 'Команду вставлено в термінал'; + + @override + String askAiConfigMissing(Object fields) { + return 'Налаштуйте $fields у налаштуваннях.'; + } + + @override + String get askAiConfirmExecute => 'Підтвердити перед виконанням'; + + @override + String get askAiConversation => 'Розмова з ШІ'; + + @override + String get askAiDisclaimer => 'ШІ може помилятися. Користуйтеся обережно.'; + + @override + String get askAiFollowUpHint => 'Поставте додаткове запитання...'; + + @override + String get askAiInsertTerminal => 'Вставити в термінал'; + + @override + String get askAiModel => 'Модель'; + + @override + String get askAiNoResponse => 'Відповідь відсутня'; + + @override + String get askAiRecommendedCommand => 'Команда, запропонована ШІ'; + + @override + String get askAiSelectedContent => 'Вибраний вміст'; + + @override + String get askAiUsageHint => 'Використовується в SSH-терміналі'; + @override String get atLeastOneTab => 'Потрібно вибрати принаймні одну вкладку'; @@ -99,12 +149,12 @@ class AppLocalizationsUk extends AppLocalizations { String get clearAllStatsTitle => 'Очистити всю статистику'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return 'Ви впевнені, що хочете очистити статистику з\'єднань для сервера \"$serverName\"? Цю дію не можна скасувати.'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return 'Очистити статистику $serverName'; } @@ -921,54 +971,4 @@ class AppLocalizationsUk extends AppLocalizations { @override String get writeScriptTip => 'Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта.'; - - @override - String get askAi => 'Запитати ШІ'; - - @override - String get askAiUsageHint => 'Використовується в SSH-терміналі'; - - @override - String get askAiBaseUrl => 'Базова URL'; - - @override - String get askAiModel => 'Модель'; - - @override - String get askAiApiKey => 'Ключ API'; - - @override - String askAiConfigMissing(String fields) { - return 'Налаштуйте $fields у налаштуваннях.'; - } - - @override - String get askAiConfirmExecute => 'Підтвердити перед виконанням'; - - @override - String get askAiCommandInserted => 'Команду вставлено в термінал'; - - @override - String get askAiAwaitingResponse => 'Очікування відповіді ШІ...'; - - @override - String get askAiNoResponse => 'Відповідь відсутня'; - - @override - String get askAiRecommendedCommand => 'Команда, запропонована ШІ'; - - @override - String get askAiInsertTerminal => 'Вставити в термінал'; - - @override - String get askAiSelectedContent => 'Вибраний вміст'; - - @override - String get askAiConversation => 'Розмова з ШІ'; - - @override - String get askAiFollowUpHint => 'Поставте додаткове запитання...'; - - @override - String get askAiSend => 'Надіслати'; } diff --git a/lib/generated/l10n/l10n_zh.dart b/lib/generated/l10n/l10n_zh.dart index b8b30a35..6b6a4100 100644 --- a/lib/generated/l10n/l10n_zh.dart +++ b/lib/generated/l10n/l10n_zh.dart @@ -26,6 +26,56 @@ class AppLocalizationsZh extends AppLocalizations { @override String get alreadyLastDir => '已是顶级目录'; + @override + String get askAi => '问 AI'; + + @override + String get askAiApiKey => 'API 密钥'; + + @override + String get askAiAwaitingResponse => '等待 AI 响应...'; + + @override + String get askAiBaseUrl => '基础 URL'; + + @override + String get askAiCommandInserted => '命令已插入终端'; + + @override + String askAiConfigMissing(Object fields) { + return '请前往设置配置 $fields'; + } + + @override + String get askAiConfirmExecute => '执行前确认'; + + @override + String get askAiConversation => 'AI 对话'; + + @override + String get askAiDisclaimer => 'AI 可能会犯错,请谨慎使用。'; + + @override + String get askAiFollowUpHint => '继续提问...'; + + @override + String get askAiInsertTerminal => '插入终端'; + + @override + String get askAiModel => '模型'; + + @override + String get askAiNoResponse => '无回复内容'; + + @override + String get askAiRecommendedCommand => 'AI 推荐命令'; + + @override + String get askAiSelectedContent => '选中的内容'; + + @override + String get askAiUsageHint => '用于 SSH 终端'; + @override String get atLeastOneTab => '至少需要选择一个标签'; @@ -91,12 +141,12 @@ class AppLocalizationsZh extends AppLocalizations { String get clearAllStatsTitle => '清空所有统计'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return '确定要清空服务器 \"$serverName\" 的连接统计数据吗?此操作无法撤销。'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return '清空 $serverName 统计'; } @@ -870,56 +920,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get writeScriptTip => '在连接服务器后,会向 `~/.config/server_box` \n | `/tmp/server_box` 写入脚本来监测系统状态,你可以审查脚本内容。'; - - @override - String get askAi => '问 AI'; - - @override - String get askAiUsageHint => '用于 SSH 终端'; - - @override - String get askAiBaseUrl => '基础 URL'; - - @override - String get askAiModel => '模型'; - - @override - String get askAiApiKey => 'API 密钥'; - - @override - String askAiConfigMissing(String fields) { - return '请前往设置配置 $fields'; - } - - @override - String get askAiConfirmExecute => '执行前确认'; - - @override - String get askAiCommandInserted => '命令已插入终端'; - - @override - String get askAiAwaitingResponse => '等待 AI 响应...'; - - @override - String get askAiNoResponse => '无回复内容'; - - @override - String get askAiRecommendedCommand => 'AI 推荐命令'; - - @override - String get askAiInsertTerminal => '插入终端'; - - @override - String get askAiSelectedContent => '选中的内容'; - - @override - String get askAiConversation => 'AI 对话'; - - @override - String get askAiFollowUpHint => '继续提问...'; - - @override - String get askAiSend => '发送'; } /// The translations for Chinese, as used in Taiwan (`zh_TW`). @@ -944,6 +944,56 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get alreadyLastDir => '已是頂層目錄'; + @override + String get askAi => '詢問 AI'; + + @override + String get askAiApiKey => 'API 金鑰'; + + @override + String get askAiAwaitingResponse => '等待 AI 回應...'; + + @override + String get askAiBaseUrl => '基礎 URL'; + + @override + String get askAiCommandInserted => '指令已插入終端機'; + + @override + String askAiConfigMissing(Object fields) { + return '請前往設定配置 $fields'; + } + + @override + String get askAiConfirmExecute => '執行前確認'; + + @override + String get askAiConversation => 'AI 對話'; + + @override + String get askAiDisclaimer => 'AI 可能會犯錯,請謹慎使用。'; + + @override + String get askAiFollowUpHint => '繼續提問...'; + + @override + String get askAiInsertTerminal => '插入終端機'; + + @override + String get askAiModel => '模型'; + + @override + String get askAiNoResponse => '無回覆內容'; + + @override + String get askAiRecommendedCommand => 'AI 推薦指令'; + + @override + String get askAiSelectedContent => '選取的內容'; + + @override + String get askAiUsageHint => '於 SSH 終端機中使用'; + @override String get atLeastOneTab => '至少需要選擇一個標籤'; @@ -1009,12 +1059,12 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { String get clearAllStatsTitle => '清空所有統計'; @override - String clearServerStatsContent(String serverName) { + String clearServerStatsContent(Object serverName) { return '確定要清空伺服器 \"$serverName\" 的連線統計資料嗎?此操作無法撤銷。'; } @override - String clearServerStatsTitle(String serverName) { + String clearServerStatsTitle(Object serverName) { return '清空 $serverName 統計'; } @@ -1788,54 +1838,4 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get writeScriptTip => '連線到伺服器後,將會在 `~/.config/server_box` \n | `/tmp/server_box` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。'; - - @override - String get askAi => '詢問 AI'; - - @override - String get askAiUsageHint => '於 SSH 終端機中使用'; - - @override - String get askAiBaseUrl => '基礎 URL'; - - @override - String get askAiModel => '模型'; - - @override - String get askAiApiKey => 'API 金鑰'; - - @override - String askAiConfigMissing(String fields) { - return '請前往設定配置 $fields'; - } - - @override - String get askAiConfirmExecute => '執行前確認'; - - @override - String get askAiCommandInserted => '指令已插入終端機'; - - @override - String get askAiAwaitingResponse => '等待 AI 回應...'; - - @override - String get askAiNoResponse => '無回覆內容'; - - @override - String get askAiRecommendedCommand => 'AI 推薦指令'; - - @override - String get askAiInsertTerminal => '插入終端機'; - - @override - String get askAiSelectedContent => '選取的內容'; - - @override - String get askAiConversation => 'AI 對話'; - - @override - String get askAiFollowUpHint => '繼續提問...'; - - @override - String get askAiSend => '傳送'; } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index eefd9b81..0e6cc89d 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -1,25 +1,27 @@ { "@@locale": "de", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Vielen Dank an die folgenden Personen, die daran teilgenommen haben.\n", "acceptBeta": "Akzeptieren Sie Testversion-Updates", "addSystemPrivateKeyTip": "Derzeit haben Sie keinen privaten Schlüssel, fügen Sie den Schlüssel hinzu, der mit dem System geliefert wird (~/.ssh/id_rsa)?", "added2List": "Zur Aufgabenliste hinzugefügt", "addr": "Adresse", "alreadyLastDir": "Bereits im letzten Verzeichnis.", + "askAi": "KI fragen", + "askAiApiKey": "API-Schlüssel", + "askAiAwaitingResponse": "Warte auf KI-Antwort...", + "askAiBaseUrl": "Basis-URL", + "askAiCommandInserted": "Befehl ins Terminal eingefügt", + "askAiConfigMissing": "Bitte konfigurieren Sie {fields} in den Einstellungen.", + "askAiConfirmExecute": "Vor Ausführung bestätigen", + "askAiConversation": "KI-Unterhaltung", + "askAiDisclaimer": "KI kann Fehler machen. Bitte vorsichtig verwenden.", + "askAiFollowUpHint": "Weitere Frage stellen...", + "askAiInsertTerminal": "In Terminal einfügen", + "askAiModel": "Modell", + "askAiNoResponse": "Keine Antwort", + "askAiRecommendedCommand": "KI-empfohlener Befehl", + "askAiSelectedContent": "Ausgewählter Inhalt", + "askAiUsageHint": "Verwendet im SSH-Terminal", "atLeastOneTab": "Mindestens ein Tab muss ausgewählt sein", "authFailTip": "Authentifizierung fehlgeschlagen, bitte überprüfen Sie, ob das Passwort/Schlüssel/Host/Benutzer usw. falsch sind.", "autoBackupConflict": "Es kann nur eine automatische Sicherung gleichzeitig aktiviert werden.", @@ -284,21 +286,5 @@ "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.", - "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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 006dd57d..107e69cd 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -1,25 +1,27 @@ { "@@locale": "en", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Thanks to the following people who participated in.", "acceptBeta": "Accept beta version updates", "addSystemPrivateKeyTip": "Currently private keys don't exist, do you want to add the one that comes with the system (~/.ssh/id_rsa)?", "added2List": "Added to task list", "addr": "Address", "alreadyLastDir": "Already in last directory.", + "askAi": "Ask AI", + "askAiApiKey": "API Key", + "askAiAwaitingResponse": "Waiting for AI response...", + "askAiBaseUrl": "Base URL", + "askAiCommandInserted": "Command inserted into terminal", + "askAiConfigMissing": "Please configure {fields} in Settings.", + "askAiConfirmExecute": "Confirm before executing", + "askAiConversation": "AI conversation", + "askAiDisclaimer": "AI may be incorrect. Review carefully before applying.", + "askAiFollowUpHint": "Ask a follow-up...", + "askAiInsertTerminal": "Insert into terminal", + "askAiModel": "Model", + "askAiNoResponse": "No response", + "askAiRecommendedCommand": "AI suggested command", + "askAiSelectedContent": "Selected content", + "askAiUsageHint": "Used in SSH Terminal", "atLeastOneTab": "At least one tab must be selected", "authFailTip": "Authentication failed, please check whether credentials are correct", "autoBackupConflict": "Only one automatic backup can be turned on at the same time.", @@ -284,28 +286,5 @@ "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.", - "@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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 49d7e307..8db1dc81 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -1,25 +1,27 @@ { "@@locale": "es", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Gracias a los siguientes participantes.", "acceptBeta": "Aceptar actualizaciones de la versión de prueba", "addSystemPrivateKeyTip": "Actualmente no hay ninguna llave privada, ¿quieres agregar la que viene por defecto en el sistema (~/.ssh/id_rsa)?", "added2List": "Añadido a la lista de tareas", "addr": "Dirección", "alreadyLastDir": "Ya estás en el directorio superior", + "askAi": "Preguntar a la IA", + "askAiApiKey": "Clave API", + "askAiAwaitingResponse": "Esperando la respuesta de la IA...", + "askAiBaseUrl": "URL base", + "askAiCommandInserted": "Comando insertado en el terminal", + "askAiConfigMissing": "Configura {fields} en Ajustes.", + "askAiConfirmExecute": "Confirmar antes de ejecutar", + "askAiConversation": "Conversación con la IA", + "askAiDisclaimer": "La IA puede equivocarse. Úsala con precaución.", + "askAiFollowUpHint": "Haz una pregunta adicional...", + "askAiInsertTerminal": "Insertar en el terminal", + "askAiModel": "Modelo", + "askAiNoResponse": "Sin respuesta", + "askAiRecommendedCommand": "Comando sugerido por la IA", + "askAiSelectedContent": "Contenido seleccionado", + "askAiUsageHint": "Usado en el terminal SSH", "atLeastOneTab": "Al menos una pestaña debe estar seleccionada", "authFailTip": "La autenticación ha fallado, por favor verifica si la contraseña/llave/host/usuario, etc., son incorrectos.", "autoBackupConflict": "Solo se puede activar una copia de seguridad automática a la vez", @@ -284,21 +286,5 @@ "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.", - "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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 01bdcd27..f911b4d1 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -1,25 +1,27 @@ { "@@locale": "fr", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Merci aux personnes suivantes qui ont participé.", "acceptBeta": "Accepter les mises à jour de la version de test", "addSystemPrivateKeyTip": "Actuellement, vous n'avez aucune clé privée. Souhaitez-vous ajouter celle qui vient avec le système (~/.ssh/id_rsa) ?", "added2List": "Ajouté à la liste des tâches", "addr": "Adresse", "alreadyLastDir": "Déjà dans le dernier répertoire.", + "askAi": "Demander à l'IA", + "askAiApiKey": "Clé API", + "askAiAwaitingResponse": "En attente de la réponse de l'IA...", + "askAiBaseUrl": "URL de base", + "askAiCommandInserted": "Commande insérée dans le terminal", + "askAiConfigMissing": "Veuillez configurer {fields} dans les paramètres.", + "askAiConfirmExecute": "Confirmer avant d'exécuter", + "askAiConversation": "Conversation avec l'IA", + "askAiDisclaimer": "L'IA peut se tromper. Utilisez-la avec prudence.", + "askAiFollowUpHint": "Poser une question supplémentaire...", + "askAiInsertTerminal": "Insérer dans le terminal", + "askAiModel": "Modèle", + "askAiNoResponse": "Aucune réponse", + "askAiRecommendedCommand": "Commande suggérée par l'IA", + "askAiSelectedContent": "Contenu sélectionné", + "askAiUsageHint": "Utilisé dans le terminal SSH", "atLeastOneTab": "Au moins un onglet doit être sélectionné", "authFailTip": "Échec de l'authentification. Veuillez vérifier si le mot de passe/clé/hôte/utilisateur, etc., est incorrect.", "autoBackupConflict": "Un seul sauvegarde automatique peut être activé en même temps.", @@ -284,21 +286,5 @@ "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.", - "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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index ee8e537b..f38115b2 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -1,25 +1,27 @@ { "@@locale": "id", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Terima kasih kepada orang -orang berikut yang berpartisipasi.", "acceptBeta": "Terima pembaruan versi uji coba", "addSystemPrivateKeyTip": "Saat ini tidak memiliki kunci privat, apakah Anda menambahkan kunci yang disertakan dengan sistem (~/.ssh/id_rsa)?", "added2List": "Ditambahkan ke Daftar Tugas", "addr": "Alamat", "alreadyLastDir": "Sudah di direktori terakhir.", + "askAi": "Tanya AI", + "askAiApiKey": "Kunci API", + "askAiAwaitingResponse": "Menunggu respons AI...", + "askAiBaseUrl": "URL dasar", + "askAiCommandInserted": "Perintah dimasukkan ke terminal", + "askAiConfigMissing": "Harap konfigurasikan {fields} di Pengaturan.", + "askAiConfirmExecute": "Konfirmasi sebelum menjalankan", + "askAiConversation": "Percakapan AI", + "askAiDisclaimer": "AI bisa saja salah. Gunakan dengan hati-hati.", + "askAiFollowUpHint": "Ajukan pertanyaan lanjutan...", + "askAiInsertTerminal": "Masukkan ke terminal", + "askAiModel": "Model", + "askAiNoResponse": "Tidak ada respons", + "askAiRecommendedCommand": "Perintah yang disarankan AI", + "askAiSelectedContent": "Konten yang dipilih", + "askAiUsageHint": "Digunakan di Terminal SSH", "atLeastOneTab": "Setidaknya satu tab harus dipilih", "authFailTip": "Otentikasi gagal, silakan periksa apakah kata sandi/kunci/host/pengguna, dll, salah.", "autoBackupConflict": "Hanya satu pencadangan otomatis yang dapat diaktifkan pada saat yang bersamaan.", @@ -284,21 +286,5 @@ "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.", - "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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_ja.arb b/lib/l10n/app_ja.arb index 70555942..25d12b53 100644 --- a/lib/l10n/app_ja.arb +++ b/lib/l10n/app_ja.arb @@ -1,25 +1,27 @@ { "@@locale": "ja", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "以下の参加者に感謝します。", "acceptBeta": "テストバージョンの更新を受け入れる", "addSystemPrivateKeyTip": "現在秘密鍵がありません。システムのデフォルト(~/.ssh/id_rsa)を追加しますか?", "added2List": "タスクリストに追加されました", "addr": "アドレス", "alreadyLastDir": "すでに最上位のディレクトリです", + "askAi": "AI に質問", + "askAiApiKey": "API キー", + "askAiAwaitingResponse": "AI の応答を待機中...", + "askAiBaseUrl": "ベース URL", + "askAiCommandInserted": "コマンドをターミナルに挿入しました", + "askAiConfigMissing": "設定で {fields} を構成してください。", + "askAiConfirmExecute": "実行前に確認", + "askAiConversation": "AI 会話", + "askAiDisclaimer": "AI が誤る可能性があります。注意してご利用ください。", + "askAiFollowUpHint": "追質問をする...", + "askAiInsertTerminal": "ターミナルに挿入", + "askAiModel": "モデル", + "askAiNoResponse": "応答なし", + "askAiRecommendedCommand": "AI 推奨コマンド", + "askAiSelectedContent": "選択した内容", + "askAiUsageHint": "SSH ターミナルで使用", "atLeastOneTab": "少なくとも1つのタブを選択する必要があります", "authFailTip": "認証に失敗しました。パスワード/鍵/ホスト/ユーザーなどが間違っていないか確認してください。", "autoBackupConflict": "自動バックアップは一度に一つしか開始できません", @@ -284,21 +286,5 @@ "wolTip": "WOL(Wake-on-LAN)を設定した後、サーバーに接続するたびにWOLリクエストが送信されます。", "write": "書き込み", "writeScriptFailTip": "スクリプトの書き込みに失敗しました。権限がないかディレクトリが存在しない可能性があります。", - "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": "送信" -} + "writeScriptTip": "サーバーに接続すると、システムの状態を監視するためのスクリプトが `~/.config/server_box` \n | `/tmp/server_box` に書き込まれます。スクリプトの内容を確認できます。" +} \ No newline at end of file diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index a511e5f5..899f85cc 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -1,25 +1,27 @@ { "@@locale": "nl", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Met dank aan de volgende mensen die hebben deelgenomen aan.", "acceptBeta": "Accepteer testversie-updates", "addSystemPrivateKeyTip": "Er is momenteel geen privésleutel, wilt u degene toevoegen die bij het systeem wordt geleverd (~/.ssh/id_rsa)?", "added2List": "Toegevoegd aan takenlijst", "addr": "Adres", "alreadyLastDir": "Al in de laatst gebruikte map.", + "askAi": "AI vragen", + "askAiApiKey": "API-sleutel", + "askAiAwaitingResponse": "Wachten op AI-reactie...", + "askAiBaseUrl": "Basis-URL", + "askAiCommandInserted": "Commando in terminal ingevoegd", + "askAiConfigMissing": "Configureer {fields} in de instellingen.", + "askAiConfirmExecute": "Bevestigen voor uitvoeren", + "askAiConversation": "AI-gesprek", + "askAiDisclaimer": "AI kan fouten maken. Gebruik het zorgvuldig.", + "askAiFollowUpHint": "Stel een vervolgvraag...", + "askAiInsertTerminal": "In terminal invoegen", + "askAiModel": "Model", + "askAiNoResponse": "Geen reactie", + "askAiRecommendedCommand": "Door AI voorgestelde opdracht", + "askAiSelectedContent": "Geselecteerde inhoud", + "askAiUsageHint": "Gebruikt in de SSH-terminal", "atLeastOneTab": "Er moet minimaal één tabblad worden geselecteerd", "authFailTip": "Authenticatie mislukt, controleer of het wachtwoord/sleutel/host/gebruiker, enz., incorrect zijn.", "autoBackupConflict": "Er kan slechts één automatische back-up tegelijk worden ingeschakeld.", @@ -284,21 +286,5 @@ "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.", - "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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 15dacb3e..b6a4293f 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -1,25 +1,27 @@ { "@@locale": "pt", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Agradecimentos a todos os participantes.", "acceptBeta": "Aceitar atualizações da versão de teste", "addSystemPrivateKeyTip": "Atualmente, não há nenhuma chave privada. Gostaria de adicionar a chave do sistema (~/.ssh/id_rsa)?", "added2List": "Adicionado à lista de tarefas", "addr": "Endereço", "alreadyLastDir": "Já é o diretório mais alto", + "askAi": "Perguntar à IA", + "askAiApiKey": "Chave de API", + "askAiAwaitingResponse": "Aguardando resposta da IA...", + "askAiBaseUrl": "URL base", + "askAiCommandInserted": "Comando inserido no terminal", + "askAiConfigMissing": "Configure {fields} nas configurações.", + "askAiConfirmExecute": "Confirmar antes de executar", + "askAiConversation": "Conversa com a IA", + "askAiDisclaimer": "A IA pode errar. Use com cautela.", + "askAiFollowUpHint": "Faça uma pergunta adicional...", + "askAiInsertTerminal": "Inserir no terminal", + "askAiModel": "Modelo", + "askAiNoResponse": "Sem resposta", + "askAiRecommendedCommand": "Comando sugerido pela IA", + "askAiSelectedContent": "Conteúdo selecionado", + "askAiUsageHint": "Usado no terminal SSH", "atLeastOneTab": "Pelo menos uma aba deve ser selecionada", "authFailTip": "Autenticação falhou, por favor verifique se a senha/chave/host/usuário, etc., estão incorretos.", "autoBackupConflict": "Apenas um backup automático pode ser ativado por vez", @@ -284,21 +286,5 @@ "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.", - "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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 38802428..a4df1402 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -1,25 +1,27 @@ { "@@locale": "ru", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Благодарности всем участникам.", "acceptBeta": "Принять обновления тестовой версии", "addSystemPrivateKeyTip": "В данный момент приватные ключи отсутствуют. Добавить системный приватный ключ (~/.ssh/id_rsa)?", "added2List": "Добавлено в список задач", "addr": "Адрес", "alreadyLastDir": "Уже в корневом каталоге", + "askAi": "Спросить ИИ", + "askAiApiKey": "Ключ API", + "askAiAwaitingResponse": "Ожидание ответа ИИ...", + "askAiBaseUrl": "Базовый URL", + "askAiCommandInserted": "Команда вставлена в терминал", + "askAiConfigMissing": "Настройте {fields} в настройках.", + "askAiConfirmExecute": "Подтвердите перед выполнением", + "askAiConversation": "Разговор с ИИ", + "askAiDisclaimer": "ИИ может ошибаться. Используйте с осторожностью.", + "askAiFollowUpHint": "Задайте дополнительный вопрос...", + "askAiInsertTerminal": "Вставить в терминал", + "askAiModel": "Модель", + "askAiNoResponse": "Нет ответа", + "askAiRecommendedCommand": "Команда, предложенная ИИ", + "askAiSelectedContent": "Выбранное содержимое", + "askAiUsageHint": "Используется в SSH-терминале", "atLeastOneTab": "Должна быть выбрана хотя бы одна вкладка", "authFailTip": "Аутентификация не удалась, пожалуйста, проверьте, правильны ли пароль/ключ/хост/пользователь и т.д.", "autoBackupConflict": "Может быть включено только одно автоматическое резервное копирование", @@ -284,21 +286,5 @@ "wolTip": "После настройки WOL (Wake-on-LAN) при каждом подключении к серверу отправляется запрос WOL.", "write": "Запись", "writeScriptFailTip": "Запись скрипта не удалась, возможно, из-за отсутствия прав или потому что, директории не существует.", - "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": "Отправить" -} + "writeScriptTip": "После подключения к серверу скрипт будет записан в `~/.config/server_box` \n | `/tmp/server_box` для мониторинга состояния системы. Вы можете проверить содержимое скрипта." +} \ No newline at end of file diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 6bcd29ba..62842764 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -1,25 +1,27 @@ { "@@locale": "tr", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Aşağıdaki katılımcılara teşekkürler.", "acceptBeta": "Beta sürüm güncellemelerini kabul et", "addSystemPrivateKeyTip": "Şu anda özel anahtarlar mevcut değil, sistemle birlikte gelen anahtarı (~/.ssh/id_rsa) eklemek ister misiniz?", "added2List": "Görev listesine eklendi", "addr": "Adres", "alreadyLastDir": "Zaten son dizindesiniz.", + "askAi": "Yapay zekaya sor", + "askAiApiKey": "API anahtarı", + "askAiAwaitingResponse": "Yapay zekâ yanıtı bekleniyor...", + "askAiBaseUrl": "Temel URL", + "askAiCommandInserted": "Komut terminale eklendi", + "askAiConfigMissing": "Lütfen Ayarlar'da {fields} öğesini yapılandırın.", + "askAiConfirmExecute": "Çalıştırmadan önce onayla", + "askAiConversation": "YZ sohbeti", + "askAiDisclaimer": "Yapay zeka hata yapabilir. Lütfen dikkatli kullanın.", + "askAiFollowUpHint": "Yeni bir soru sor...", + "askAiInsertTerminal": "Terminale ekle", + "askAiModel": "Model", + "askAiNoResponse": "Yanıt yok", + "askAiRecommendedCommand": "YZ önerilen komut", + "askAiSelectedContent": "Seçilen içerik", + "askAiUsageHint": "SSH Terminalinde kullanılır", "atLeastOneTab": "En az bir sekme seçilmelidir", "authFailTip": "Kimlik doğrulama başarısız oldu, lütfen kimlik bilgilerinin doğru olup olmadığını kontrol edin", "autoBackupConflict": "Aynı anda yalnızca bir otomatik yedekleme açık olabilir.", @@ -284,21 +286,5 @@ "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.", - "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" -} + "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." +} \ No newline at end of file diff --git a/lib/l10n/app_uk.arb b/lib/l10n/app_uk.arb index 8893f5f9..2a1b1231 100644 --- a/lib/l10n/app_uk.arb +++ b/lib/l10n/app_uk.arb @@ -1,25 +1,27 @@ { "@@locale": "uk", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "Дякуємо наступним особам, які взяли участь.", "acceptBeta": "Прийняти оновлення бета-версії", "addSystemPrivateKeyTip": "Наразі приватних ключів нема, хочете додати той, що йде з системою (~/.ssh/id_rsa)?", "added2List": "Додано до списку завдань", "addr": "Адреса", "alreadyLastDir": "Вже в останньому каталозі.", + "askAi": "Запитати ШІ", + "askAiApiKey": "Ключ API", + "askAiAwaitingResponse": "Очікування відповіді ШІ...", + "askAiBaseUrl": "Базова URL", + "askAiCommandInserted": "Команду вставлено в термінал", + "askAiConfigMissing": "Налаштуйте {fields} у налаштуваннях.", + "askAiConfirmExecute": "Підтвердити перед виконанням", + "askAiConversation": "Розмова з ШІ", + "askAiDisclaimer": "ШІ може помилятися. Користуйтеся обережно.", + "askAiFollowUpHint": "Поставте додаткове запитання...", + "askAiInsertTerminal": "Вставити в термінал", + "askAiModel": "Модель", + "askAiNoResponse": "Відповідь відсутня", + "askAiRecommendedCommand": "Команда, запропонована ШІ", + "askAiSelectedContent": "Вибраний вміст", + "askAiUsageHint": "Використовується в SSH-терміналі", "atLeastOneTab": "Потрібно вибрати принаймні одну вкладку", "authFailTip": "Авторизація не вдалася, будь ласка, перевірте правильність облікових даних", "autoBackupConflict": "Тільки одне автоматичне резервне копіювання може бути активне одночасно.", @@ -284,21 +286,5 @@ "wolTip": "Після налаштування WOL (Wake-on-LAN), при кожному підключенні до сервера відправляється запит WOL.", "write": "Записати", "writeScriptFailTip": "Запис у скрипт не вдався, можливо, через брак дозволів або каталог не існує.", - "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": "Надіслати" -} + "writeScriptTip": "Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта." +} \ No newline at end of file diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index dbdfdf4e..b845ff12 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -1,25 +1,27 @@ { "@@locale": "zh", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "感谢以下参与的各位。", "acceptBeta": "接受测试版更新推送", "addSystemPrivateKeyTip": "检测到暂无私钥,是否添加系统默认的私钥(~/.ssh/id_rsa)?", "added2List": "已添加至任务列表", "addr": "地址", "alreadyLastDir": "已是顶级目录", + "askAi": "问 AI", + "askAiApiKey": "API 密钥", + "askAiAwaitingResponse": "等待 AI 响应...", + "askAiBaseUrl": "基础 URL", + "askAiCommandInserted": "命令已插入终端", + "askAiConfigMissing": "请前往设置配置 {fields}", + "askAiConfirmExecute": "执行前确认", + "askAiConversation": "AI 对话", + "askAiDisclaimer": "AI 可能会犯错,请谨慎使用。", + "askAiFollowUpHint": "继续提问...", + "askAiInsertTerminal": "插入终端", + "askAiModel": "模型", + "askAiNoResponse": "无回复内容", + "askAiRecommendedCommand": "AI 推荐命令", + "askAiSelectedContent": "选中的内容", + "askAiUsageHint": "用于 SSH 终端", "atLeastOneTab": "至少需要选择一个标签", "authFailTip": "认证失败,请检查连接信息是否正确", "autoBackupConflict": "仅可启用一个自动备份任务", @@ -284,21 +286,5 @@ "wolTip": "配置 WOL 后,每次连接服务器时将自动发送唤醒请求", "write": "写", "writeScriptFailTip": "写入脚本失败,可能是没有权限/目录不存在等", - "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": "发送" -} + "writeScriptTip": "在连接服务器后,会向 `~/.config/server_box` \n | `/tmp/server_box` 写入脚本来监测系统状态,你可以审查脚本内容。" +} \ No newline at end of file diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index 203bb51d..7ae2d5e3 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -1,25 +1,27 @@ { "@@locale": "zh_TW", - "@clearServerStatsContent": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, - "@clearServerStatsTitle": { - "placeholders": { - "serverName": { - "type": "String" - } - } - }, "aboutThanks": "感謝以下參與的各位。", "acceptBeta": "接受測試版更新推送", "addSystemPrivateKeyTip": "偵測到尚無私鑰,是否要加入系統預設的私鑰(~/.ssh/id_rsa)?", "added2List": "已新增至任務清單", "addr": "位址", "alreadyLastDir": "已是頂層目錄", + "askAi": "詢問 AI", + "askAiApiKey": "API 金鑰", + "askAiAwaitingResponse": "等待 AI 回應...", + "askAiBaseUrl": "基礎 URL", + "askAiCommandInserted": "指令已插入終端機", + "askAiConfigMissing": "請前往設定配置 {fields}", + "askAiConfirmExecute": "執行前確認", + "askAiConversation": "AI 對話", + "askAiDisclaimer": "AI 可能會犯錯,請謹慎使用。", + "askAiFollowUpHint": "繼續提問...", + "askAiInsertTerminal": "插入終端機", + "askAiModel": "模型", + "askAiNoResponse": "無回覆內容", + "askAiRecommendedCommand": "AI 推薦指令", + "askAiSelectedContent": "選取的內容", + "askAiUsageHint": "於 SSH 終端機中使用", "atLeastOneTab": "至少需要選擇一個標籤", "authFailTip": "認證失敗,請檢查連線資訊是否正確", "autoBackupConflict": "僅能啟用一項自動備份任務", @@ -284,21 +286,5 @@ "wolTip": "設定 WOL 後,每次連線伺服器時將自動發送喚醒請求", "write": "寫入", "writeScriptFailTip": "寫入腳本失敗,可能是沒有權限/目錄不存在等。", - "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": "傳送" -} + "writeScriptTip": "連線到伺服器後,將會在 `~/.config/server_box` \n | `/tmp/server_box` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。" +} \ No newline at end of file diff --git a/lib/view/page/ssh/page/ask_ai.dart b/lib/view/page/ssh/page/ask_ai.dart index 142156db..fb92dcd9 100644 --- a/lib/view/page/ssh/page/ask_ai.dart +++ b/lib/view/page/ssh/page/ask_ai.dart @@ -420,28 +420,39 @@ class _AskAiSheetState extends ConsumerState<_AskAiSheet> { ), ), ), - Padding( - padding: EdgeInsets.fromLTRB(16, 8, 16, 16 + bottomPadding), - child: Row( - children: [ - Expanded( - child: Input( - controller: _inputController, - minLines: 1, - maxLines: 4, - hint: context.l10n.askAiFollowUpHint, - action: TextInputAction.send, - onSubmitted: (_) => _sendMessage(), - ), + Padding( + padding: const EdgeInsets.fromLTRB(16, 8, 16, 0), + child: Text( + context.l10n.askAiDisclaimer, + style: theme.textTheme.bodySmall?.copyWith( + color: theme.colorScheme.error, + fontWeight: FontWeight.bold, ), - const SizedBox(width: 12), - Btn.icon( - onTap: _isStreaming || _inputController.text.trim().isEmpty ? null : _sendMessage, - icon: const Icon(Icons.send, size: 18), - ), - ], - ).cardx, + textAlign: TextAlign.center, ), + ), + Padding( + padding: EdgeInsets.fromLTRB(16, 8, 16, 16 + bottomPadding), + child: Row( + children: [ + Expanded( + child: Input( + controller: _inputController, + minLines: 1, + maxLines: 4, + hint: context.l10n.askAiFollowUpHint, + action: TextInputAction.send, + onSubmitted: (_) => _sendMessage(), + ), + ), + const SizedBox(width: 12), + Btn.icon( + onTap: _isStreaming || _inputController.text.trim().isEmpty ? null : _sendMessage, + icon: const Icon(Icons.send, size: 18), + ), + ], + ).cardx, + ), ], ), ), diff --git a/pubspec.lock b/pubspec.lock index bd59d0b5..c15dae7b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -375,8 +375,8 @@ packages: dependency: "direct main" description: path: "." - ref: "v1.0.285" - resolved-ref: "18fb1ad15ee6d2c8c5ec67722bf8b90fe0f4746d" + ref: "v1.0.293" + resolved-ref: "3eedfd55916eede70aeb28605469a43623a9791b" url: "https://github.com/lollipopkit/dartssh2" source: git version: "2.12.0" @@ -1862,8 +1862,8 @@ packages: dependency: "direct main" description: path: "." - ref: "v4.0.11" - resolved-ref: "74546b4c4e81357448445c2b6f92411e72dbefec" + ref: "v4.0.12" + resolved-ref: "7112ec21b752b92c2ee208e1925e8f291f15f1ee" url: "https://github.com/lollipopkit/xterm.dart" source: git version: "4.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 77b42d51..a9ea3bc8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,7 +41,7 @@ dependencies: dartssh2: git: url: https://github.com/lollipopkit/dartssh2 - ref: v1.0.285 + ref: v1.0.293 circle_chart: git: url: https://github.com/lollipopkit/circle_chart @@ -49,7 +49,7 @@ dependencies: xterm: git: url: https://github.com/lollipopkit/xterm.dart - ref: v4.0.11 + ref: v4.0.12 computer: git: url: https://github.com/lollipopkit/dart_computer