fix: synthesize hardware backspace repeat (#940)

This commit is contained in:
lollipopkit🏳️‍⚧️
2025-10-20 00:34:52 +08:00
committed by GitHub
parent d6c2cafce7
commit 0b51719070
31 changed files with 1054 additions and 1227 deletions

View File

@@ -96,6 +96,7 @@ Future<SSHClient> genClient(
username: alterUser ?? spi.user,
onPasswordRequest: () => spi.pwd,
onUserInfoRequest: onKeyboardInteractive,
onVerifyHostKey: (type, fingerprint) => true,
// printDebug: debugPrint,
// printTrace: debugPrint,
);
@@ -109,6 +110,7 @@ Future<SSHClient> 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,
);

View File

@@ -214,10 +214,7 @@ class AskAiRepository {
if (localeHint != null && localeHint.isNotEmpty) {
promptBuffer
..writeln('请优先使用用户的语言输出:$localeHint')
..writeln('如果无法判断语言,请使用简体中文。');
} else {
promptBuffer.writeln('如果无法判断语言,请使用简体中文。');
.writeln('请优先使用用户的语言输出:$localeHint');
}
final messages = <Map<String, String>>[

View File

@@ -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

View File

@@ -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';
}

View File

@@ -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';
}

View File

@@ -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';
}

View File

@@ -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';
}

View File

@@ -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';
}

View File

@@ -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 => '送信';
}

View File

@@ -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';
}

View File

@@ -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';
}

View File

@@ -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 => 'Отправить';
}

View File

@@ -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';
}

View File

@@ -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 => 'Надіслати';
}

View File

@@ -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 => '傳送';
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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": "WOLWake-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` に書き込まれます。スクリプトの内容を確認できます。"
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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` для мониторинга состояния системы. Вы можете проверить содержимое скрипта."
}

View File

@@ -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."
}

View File

@@ -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` для моніторингу стану системи. Ви можете переглянути вміст скрипта."
}

View File

@@ -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` 写入脚本来监测系统状态,你可以审查脚本内容。"
}

View File

@@ -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` 中寫入一個腳本來監測系統狀態。你可以審查腳本內容。"
}

View File

@@ -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,
),
],
),
),

View File

@@ -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"

View File

@@ -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