feat: import servers from ~/.ssh/config (#873)

This commit is contained in:
lollipopkit🏳️‍⚧️
2025-08-31 19:33:29 +08:00
committed by GitHub
parent a97b3cf43e
commit 12a243d139
42 changed files with 2850 additions and 334 deletions

View File

@@ -46,15 +46,20 @@ class AppLocalizationsEn extends AppLocalizations {
String get autoUpdateHomeWidget => 'Automatic home widget update';
@override
String get backupTip =>
'The exported data can be encrypted with password. \nPlease keep it safe.';
String get backupEncrypted => 'Backup is encrypted';
@override
String get backupVersionNotMatch => 'Backup version is not match.';
String get backupNotEncrypted => 'Backup is not encrypted';
@override
String get backupPassword => 'Backup password';
@override
String get backupPasswordRemoved => 'Backup password removed';
@override
String get backupPasswordSet => 'Backup password set';
@override
String get backupPasswordTip =>
'Set a password to encrypt backup files. Leave empty to disable encryption.';
@@ -63,16 +68,11 @@ class AppLocalizationsEn extends AppLocalizations {
String get backupPasswordWrong => 'Incorrect backup password';
@override
String get backupEncrypted => 'Backup is encrypted';
String get backupTip =>
'The exported data can be encrypted with password. \nPlease keep it safe.';
@override
String get backupNotEncrypted => 'Backup is not encrypted';
@override
String get backupPasswordSet => 'Backup password set';
@override
String get backupPasswordRemoved => 'Backup password removed';
String get backupVersionNotMatch => 'Backup version is not match.';
@override
String get battery => 'Battery';
@@ -602,6 +602,60 @@ class AppLocalizationsEn extends AppLocalizations {
return 'Spent time: $time';
}
@override
String sshConfigAllExist(Object duplicateCount) {
return 'All servers already exist ($duplicateCount duplicates found)';
}
@override
String sshConfigDuplicatesSkipped(Object duplicateCount) {
return '$duplicateCount duplicates will be skipped';
}
@override
String get sshConfigFound => 'We found SSH configuration on your system.';
@override
String sshConfigFoundServers(Object totalCount) {
return 'Found $totalCount servers';
}
@override
String get sshConfigImport => 'SSH Config Import';
@override
String get sshConfigImportHelp =>
'Only basic information can be imported, for example: IP/Port.';
@override
String get sshConfigImportPermission =>
'Would you like to give permission to read ~/.ssh/config and automatically import server settings?';
@override
String get sshConfigImportTip =>
'Prompt to read ~/.ssh/config on first server creation';
@override
String sshConfigImported(Object count) {
return 'Imported $count servers from SSH config';
}
@override
String get sshConfigManualSelect =>
'Would you like to select the SSH config file manually?';
@override
String get sshConfigNoServers => 'No servers found in SSH config';
@override
String get sshConfigPermissionDenied =>
'Cannot access SSH config file due to macOS permissions.';
@override
String sshConfigServersToImport(Object importCount) {
return '$importCount servers will be imported';
}
@override
String get sshTermHelp =>
'When the terminal is scrollable, dragging horizontally can select text. Clicking the keyboard button turns the keyboard on/off. The file icon opens the current path SFTP. The clipboard button copies the content when text is selected, and pastes content from the clipboard into the terminal when no text is selected and there is content on the clipboard. The code icon pastes code snippets into the terminal and executes them.';