mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
opt.: confirm of suspend & etc.
This commit is contained in:
@@ -158,6 +158,12 @@ abstract class S {
|
|||||||
/// **'Alter url'**
|
/// **'Alter url'**
|
||||||
String get alterUrl;
|
String get alterUrl;
|
||||||
|
|
||||||
|
/// No description provided for @askContinue.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'{msg}, continue?'**
|
||||||
|
String askContinue(Object msg);
|
||||||
|
|
||||||
/// No description provided for @attention.
|
/// No description provided for @attention.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -368,6 +374,12 @@ abstract class S {
|
|||||||
/// **'Batch delete servers'**
|
/// **'Batch delete servers'**
|
||||||
String get deleteServers;
|
String get deleteServers;
|
||||||
|
|
||||||
|
/// No description provided for @dirEmpty.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Make sure dir is empty.'**
|
||||||
|
String get dirEmpty;
|
||||||
|
|
||||||
/// No description provided for @disabled.
|
/// No description provided for @disabled.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1088,12 +1100,6 @@ abstract class S {
|
|||||||
/// **'Restore success. Restart app to apply.'**
|
/// **'Restore success. Restart app to apply.'**
|
||||||
String get restoreSuccess;
|
String get restoreSuccess;
|
||||||
|
|
||||||
/// No description provided for @restoreSureWithDate.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Are you sure to restore from {date} ?'**
|
|
||||||
String restoreSureWithDate(Object date);
|
|
||||||
|
|
||||||
/// No description provided for @result.
|
/// No description provided for @result.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1268,36 +1274,6 @@ abstract class S {
|
|||||||
/// **'Success'**
|
/// **'Success'**
|
||||||
String get success;
|
String get success;
|
||||||
|
|
||||||
/// No description provided for @sureDelete.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Are you sure to delete [{name}]?'**
|
|
||||||
String sureDelete(Object name);
|
|
||||||
|
|
||||||
/// No description provided for @sureDirEmpty.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Make sure dir is empty.'**
|
|
||||||
String get sureDirEmpty;
|
|
||||||
|
|
||||||
/// No description provided for @sureNoPwd.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Are you sure to use no password?'**
|
|
||||||
String get sureNoPwd;
|
|
||||||
|
|
||||||
/// No description provided for @sureStop.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Sure to stop [{item}] ?'**
|
|
||||||
String sureStop(Object item);
|
|
||||||
|
|
||||||
/// No description provided for @sureToDeleteServer.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Are you sure to delete server [{server}]?'**
|
|
||||||
String sureToDeleteServer(Object server);
|
|
||||||
|
|
||||||
/// No description provided for @suspendTip.
|
/// No description provided for @suspendTip.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1430,6 +1406,12 @@ abstract class S {
|
|||||||
/// **'URL or JSON'**
|
/// **'URL or JSON'**
|
||||||
String get urlOrJson;
|
String get urlOrJson;
|
||||||
|
|
||||||
|
/// No description provided for @useNoPwd.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'No password will be used.'**
|
||||||
|
String get useNoPwd;
|
||||||
|
|
||||||
/// No description provided for @user.
|
/// No description provided for @user.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get alterUrl => 'Url ändern';
|
String get alterUrl => 'Url ändern';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String askContinue(Object msg) {
|
||||||
|
return '$msg, weiter?';
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get attention => 'Achtung';
|
String get attention => 'Achtung';
|
||||||
|
|
||||||
@@ -139,6 +144,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get deleteServers => 'Batch-Löschung von Servern';
|
String get deleteServers => 'Batch-Löschung von Servern';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dirEmpty => 'Stelle sicher, dass der Ordner leer ist.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get disabled => 'Behinderte';
|
String get disabled => 'Behinderte';
|
||||||
|
|
||||||
@@ -523,11 +531,6 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get restoreSuccess => 'Wiederherstellung erfolgreich. App neustarten um Änderungen anzuwenden.';
|
String get restoreSuccess => 'Wiederherstellung erfolgreich. App neustarten um Änderungen anzuwenden.';
|
||||||
|
|
||||||
@override
|
|
||||||
String restoreSureWithDate(Object date) {
|
|
||||||
return 'Bist du sicher, dass du das Backup vom $date wiederherstellen möchtest?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get result => 'Result';
|
String get result => 'Result';
|
||||||
|
|
||||||
@@ -619,27 +622,6 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get success => 'Erfolgreich';
|
String get success => 'Erfolgreich';
|
||||||
|
|
||||||
@override
|
|
||||||
String sureDelete(Object name) {
|
|
||||||
return 'Soll [$name] wirklich gelöscht werden?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureDirEmpty => 'Stelle sicher, dass der Ordner leer ist.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureNoPwd => 'Bist du sicher, dass du kein Passwort verwenden willst?';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureStop(Object item) {
|
|
||||||
return 'Sind Sie sicher, dass Sie [$item] stoppen möchten?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureToDeleteServer(Object server) {
|
|
||||||
return 'Bist du sicher, dass du [$server] löschen willst?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get suspendTip => 'Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.';
|
String get suspendTip => 'Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.';
|
||||||
|
|
||||||
@@ -710,6 +692,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get urlOrJson => 'URL oder JSON';
|
String get urlOrJson => 'URL oder JSON';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get useNoPwd => 'Es wird kein Passwort verwendet.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get user => 'Benutzer';
|
String get user => 'Benutzer';
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get alterUrl => 'Alter url';
|
String get alterUrl => 'Alter url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String askContinue(Object msg) {
|
||||||
|
return '$msg, continue?';
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get attention => 'Attention';
|
String get attention => 'Attention';
|
||||||
|
|
||||||
@@ -139,6 +144,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get deleteServers => 'Batch delete servers';
|
String get deleteServers => 'Batch delete servers';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dirEmpty => 'Make sure dir is empty.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get disabled => 'Disabled';
|
String get disabled => 'Disabled';
|
||||||
|
|
||||||
@@ -523,11 +531,6 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get restoreSuccess => 'Restore success. Restart app to apply.';
|
String get restoreSuccess => 'Restore success. Restart app to apply.';
|
||||||
|
|
||||||
@override
|
|
||||||
String restoreSureWithDate(Object date) {
|
|
||||||
return 'Are you sure to restore from $date ?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get result => 'Result';
|
String get result => 'Result';
|
||||||
|
|
||||||
@@ -619,27 +622,6 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get success => 'Success';
|
String get success => 'Success';
|
||||||
|
|
||||||
@override
|
|
||||||
String sureDelete(Object name) {
|
|
||||||
return 'Are you sure to delete [$name]?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureDirEmpty => 'Make sure dir is empty.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureNoPwd => 'Are you sure to use no password?';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureStop(Object item) {
|
|
||||||
return 'Sure to stop [$item] ?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureToDeleteServer(Object server) {
|
|
||||||
return 'Are you sure to delete server [$server]?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get suspendTip => 'The suspend function requires root privileges and systemd support.';
|
String get suspendTip => 'The suspend function requires root privileges and systemd support.';
|
||||||
|
|
||||||
@@ -710,6 +692,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get urlOrJson => 'URL or JSON';
|
String get urlOrJson => 'URL or JSON';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get useNoPwd => 'No password will be used.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get user => 'User';
|
String get user => 'User';
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get alterUrl => 'Alter url';
|
String get alterUrl => 'Alter url';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String askContinue(Object msg) {
|
||||||
|
return '$msg, lanjutkan?';
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get attention => 'Perhatian';
|
String get attention => 'Perhatian';
|
||||||
|
|
||||||
@@ -139,6 +144,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get deleteServers => 'Penghapusan server secara batch';
|
String get deleteServers => 'Penghapusan server secara batch';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dirEmpty => 'Pastikan dir kosong.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get disabled => 'Dengan disabilitas';
|
String get disabled => 'Dengan disabilitas';
|
||||||
|
|
||||||
@@ -523,11 +531,6 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get restoreSuccess => 'Kembalikan kesuksesan. Mulai ulang aplikasi untuk diterapkan.';
|
String get restoreSuccess => 'Kembalikan kesuksesan. Mulai ulang aplikasi untuk diterapkan.';
|
||||||
|
|
||||||
@override
|
|
||||||
String restoreSureWithDate(Object date) {
|
|
||||||
return 'Apakah Anda pasti akan memulihkan dari $date?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get result => 'Hasil';
|
String get result => 'Hasil';
|
||||||
|
|
||||||
@@ -619,27 +622,6 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get success => 'Kesuksesan';
|
String get success => 'Kesuksesan';
|
||||||
|
|
||||||
@override
|
|
||||||
String sureDelete(Object name) {
|
|
||||||
return 'Apakah Anda pasti akan menghapus [$name]?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureDirEmpty => 'Pastikan dir kosong.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureNoPwd => 'Apakah Anda pasti tidak menggunakan kata sandi?';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureStop(Object item) {
|
|
||||||
return 'Anda yakin ingin menghentikan [$item]?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureToDeleteServer(Object server) {
|
|
||||||
return 'Apakah Anda pasti akan menghapus server [$server]?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get suspendTip => 'Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.';
|
String get suspendTip => 'Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.';
|
||||||
|
|
||||||
@@ -710,6 +692,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get urlOrJson => 'URL atau JSON';
|
String get urlOrJson => 'URL atau JSON';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get useNoPwd => 'Tidak ada kata sandi yang akan digunakan.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get user => 'Username';
|
String get user => 'Username';
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get alterUrl => '备选链接';
|
String get alterUrl => '备选链接';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String askContinue(Object msg) {
|
||||||
|
return '$msg,继续吗?';
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get attention => '注意';
|
String get attention => '注意';
|
||||||
|
|
||||||
@@ -139,6 +144,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get deleteServers => '批量删除服务器';
|
String get deleteServers => '批量删除服务器';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dirEmpty => '请确保文件夹为空';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get disabled => '已禁用';
|
String get disabled => '已禁用';
|
||||||
|
|
||||||
@@ -523,11 +531,6 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get restoreSuccess => '恢复成功,需要重启App来应用更改';
|
String get restoreSuccess => '恢复成功,需要重启App来应用更改';
|
||||||
|
|
||||||
@override
|
|
||||||
String restoreSureWithDate(Object date) {
|
|
||||||
return '确定恢复 $date 的备份吗?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get result => '结果';
|
String get result => '结果';
|
||||||
|
|
||||||
@@ -619,27 +622,6 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get success => '成功';
|
String get success => '成功';
|
||||||
|
|
||||||
@override
|
|
||||||
String sureDelete(Object name) {
|
|
||||||
return '确定删除 [$name]?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureDirEmpty => '请确保文件夹为空';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureNoPwd => '确认使用无密码?';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureStop(Object item) {
|
|
||||||
return '确定要停止 [$item] 吗?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureToDeleteServer(Object server) {
|
|
||||||
return '你确定要删除服务器 [$server] 吗?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get suspendTip => 'suspend 功能需要 root 权限及 systemd 支持。';
|
String get suspendTip => 'suspend 功能需要 root 权限及 systemd 支持。';
|
||||||
|
|
||||||
@@ -710,6 +692,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get urlOrJson => '链接或JSON';
|
String get urlOrJson => '链接或JSON';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get useNoPwd => '将会使用无密码。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get user => '用户';
|
String get user => '用户';
|
||||||
|
|
||||||
@@ -784,6 +769,11 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get alterUrl => '備選鏈接';
|
String get alterUrl => '備選鏈接';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String askContinue(Object msg) {
|
||||||
|
return '$msg,繼續嗎?';
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get attention => '注意';
|
String get attention => '注意';
|
||||||
|
|
||||||
@@ -889,6 +879,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get deleteServers => '批量刪除服務器';
|
String get deleteServers => '批量刪除服務器';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dirEmpty => '請確保文件夾為空';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get disabled => '已禁用';
|
String get disabled => '已禁用';
|
||||||
|
|
||||||
@@ -1273,11 +1266,6 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get restoreSuccess => '恢復成功,需要重啓App來應用更改';
|
String get restoreSuccess => '恢復成功,需要重啓App來應用更改';
|
||||||
|
|
||||||
@override
|
|
||||||
String restoreSureWithDate(Object date) {
|
|
||||||
return '確定恢復 $date 的備份嗎?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get result => '結果';
|
String get result => '結果';
|
||||||
|
|
||||||
@@ -1369,27 +1357,6 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get success => '成功';
|
String get success => '成功';
|
||||||
|
|
||||||
@override
|
|
||||||
String sureDelete(Object name) {
|
|
||||||
return '確定刪除 [$name]?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureDirEmpty => '請確保文件夾為空';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get sureNoPwd => '確認使用無密碼?';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureStop(Object item) {
|
|
||||||
return '確定要停止 [$item] 嗎?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String sureToDeleteServer(Object server) {
|
|
||||||
return '你確定要刪除服務器 [$server] 嗎?';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get suspendTip => 'suspend 功能需要 root 權限及 systemd 支持。';
|
String get suspendTip => 'suspend 功能需要 root 權限及 systemd 支持。';
|
||||||
|
|
||||||
@@ -1460,6 +1427,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get urlOrJson => '鏈接或JSON';
|
String get urlOrJson => '鏈接或JSON';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get useNoPwd => '将使用無密碼。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get user => '用戶';
|
String get user => '用戶';
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"all": "Alle",
|
"all": "Alle",
|
||||||
"alreadyLastDir": "Bereits im letzten Verzeichnis.",
|
"alreadyLastDir": "Bereits im letzten Verzeichnis.",
|
||||||
"alterUrl": "Url ändern",
|
"alterUrl": "Url ändern",
|
||||||
|
"askContinue": "{msg}, weiter?",
|
||||||
"attention": "Achtung",
|
"attention": "Achtung",
|
||||||
"authRequired": "Autorisierung erforderlich",
|
"authRequired": "Autorisierung erforderlich",
|
||||||
"auto": "System folgen",
|
"auto": "System folgen",
|
||||||
@@ -45,6 +46,7 @@
|
|||||||
"decompress": "Dekomprimieren",
|
"decompress": "Dekomprimieren",
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
"deleteServers": "Batch-Löschung von Servern",
|
"deleteServers": "Batch-Löschung von Servern",
|
||||||
|
"dirEmpty": "Stelle sicher, dass der Ordner leer ist.",
|
||||||
"disabled": "Behinderte",
|
"disabled": "Behinderte",
|
||||||
"disconnected": "Disconnected",
|
"disconnected": "Disconnected",
|
||||||
"diskIgnorePath": "Pfad für Datenträger ignorieren",
|
"diskIgnorePath": "Pfad für Datenträger ignorieren",
|
||||||
@@ -165,7 +167,6 @@
|
|||||||
"restart": "Neustart",
|
"restart": "Neustart",
|
||||||
"restore": "Wiederherstellen",
|
"restore": "Wiederherstellen",
|
||||||
"restoreSuccess": "Wiederherstellung erfolgreich. App neustarten um Änderungen anzuwenden.",
|
"restoreSuccess": "Wiederherstellung erfolgreich. App neustarten um Änderungen anzuwenden.",
|
||||||
"restoreSureWithDate": "Bist du sicher, dass du das Backup vom {date} wiederherstellen möchtest?",
|
|
||||||
"result": "Result",
|
"result": "Result",
|
||||||
"rotateAngel": "Rotationswinkel",
|
"rotateAngel": "Rotationswinkel",
|
||||||
"run": "Ausführen",
|
"run": "Ausführen",
|
||||||
@@ -195,11 +196,6 @@
|
|||||||
"stats": "Statistik",
|
"stats": "Statistik",
|
||||||
"stop": "Stop",
|
"stop": "Stop",
|
||||||
"success": "Erfolgreich",
|
"success": "Erfolgreich",
|
||||||
"sureDelete": "Soll [{name}] wirklich gelöscht werden?",
|
|
||||||
"sureDirEmpty": "Stelle sicher, dass der Ordner leer ist.",
|
|
||||||
"sureNoPwd": "Bist du sicher, dass du kein Passwort verwenden willst?",
|
|
||||||
"sureStop": "Sind Sie sicher, dass Sie [{item}] stoppen möchten?",
|
|
||||||
"sureToDeleteServer": "Bist du sicher, dass du [{server}] löschen willst?",
|
|
||||||
"suspendTip": "Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.",
|
"suspendTip": "Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.",
|
||||||
"syncTip": "Nach der automatischen Synchronisierung kann es erforderlich sein, die App neu zu starten, damit bestimmte Änderungen wirksam werden.",
|
"syncTip": "Nach der automatischen Synchronisierung kann es erforderlich sein, die App neu zu starten, damit bestimmte Änderungen wirksam werden.",
|
||||||
"system": "Systeme",
|
"system": "Systeme",
|
||||||
@@ -222,6 +218,7 @@
|
|||||||
"upload": "Hochladen",
|
"upload": "Hochladen",
|
||||||
"upsideDown": "Upside Down",
|
"upsideDown": "Upside Down",
|
||||||
"urlOrJson": "URL oder JSON",
|
"urlOrJson": "URL oder JSON",
|
||||||
|
"useNoPwd": "Es wird kein Passwort verwendet.",
|
||||||
"user": "Benutzer",
|
"user": "Benutzer",
|
||||||
"versionHaveUpdate": "Gefunden: v1.0.{build}, klicke zum Aktualisieren",
|
"versionHaveUpdate": "Gefunden: v1.0.{build}, klicke zum Aktualisieren",
|
||||||
"versionUnknownUpdate": "Aktuell: v1.0.{build}. Klicken Sie hier, um nach Updates zu suchen",
|
"versionUnknownUpdate": "Aktuell: v1.0.{build}. Klicken Sie hier, um nach Updates zu suchen",
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"all": "All",
|
"all": "All",
|
||||||
"alreadyLastDir": "Already in last directory.",
|
"alreadyLastDir": "Already in last directory.",
|
||||||
"alterUrl": "Alter url",
|
"alterUrl": "Alter url",
|
||||||
|
"askContinue": "{msg}, continue?",
|
||||||
"attention": "Attention",
|
"attention": "Attention",
|
||||||
"authRequired": "Auth required",
|
"authRequired": "Auth required",
|
||||||
"auto": "Auto",
|
"auto": "Auto",
|
||||||
@@ -45,6 +46,7 @@
|
|||||||
"decompress": "Decompress",
|
"decompress": "Decompress",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"deleteServers": "Batch delete servers",
|
"deleteServers": "Batch delete servers",
|
||||||
|
"dirEmpty": "Make sure dir is empty.",
|
||||||
"disabled": "Disabled",
|
"disabled": "Disabled",
|
||||||
"disconnected": "Disconnected",
|
"disconnected": "Disconnected",
|
||||||
"diskIgnorePath": "Ignore path for disk",
|
"diskIgnorePath": "Ignore path for disk",
|
||||||
@@ -165,7 +167,6 @@
|
|||||||
"restart": "Restart",
|
"restart": "Restart",
|
||||||
"restore": "Restore",
|
"restore": "Restore",
|
||||||
"restoreSuccess": "Restore success. Restart app to apply.",
|
"restoreSuccess": "Restore success. Restart app to apply.",
|
||||||
"restoreSureWithDate": "Are you sure to restore from {date} ?",
|
|
||||||
"result": "Result",
|
"result": "Result",
|
||||||
"rotateAngel": "Rotation angle",
|
"rotateAngel": "Rotation angle",
|
||||||
"run": "Run",
|
"run": "Run",
|
||||||
@@ -195,11 +196,6 @@
|
|||||||
"stats": "Stats",
|
"stats": "Stats",
|
||||||
"stop": "Stop",
|
"stop": "Stop",
|
||||||
"success": "Success",
|
"success": "Success",
|
||||||
"sureDelete": "Are you sure to delete [{name}]?",
|
|
||||||
"sureDirEmpty": "Make sure dir is empty.",
|
|
||||||
"sureNoPwd": "Are you sure to use no password?",
|
|
||||||
"sureStop": "Sure to stop [{item}] ?",
|
|
||||||
"sureToDeleteServer": "Are you sure to delete server [{server}]?",
|
|
||||||
"suspendTip": "The suspend function requires root privileges and systemd support.",
|
"suspendTip": "The suspend function requires root privileges and systemd support.",
|
||||||
"syncTip": "After auto sync, a restart may be required for some changes to take effect.",
|
"syncTip": "After auto sync, a restart may be required for some changes to take effect.",
|
||||||
"system": "System",
|
"system": "System",
|
||||||
@@ -222,6 +218,7 @@
|
|||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"upsideDown": "Upside Down",
|
"upsideDown": "Upside Down",
|
||||||
"urlOrJson": "URL or JSON",
|
"urlOrJson": "URL or JSON",
|
||||||
|
"useNoPwd": "No password will be used.",
|
||||||
"user": "User",
|
"user": "User",
|
||||||
"versionHaveUpdate": "Found: v1.0.{build}, click to update",
|
"versionHaveUpdate": "Found: v1.0.{build}, click to update",
|
||||||
"versionUnknownUpdate": "Current: v1.0.{build}, click to check updates",
|
"versionUnknownUpdate": "Current: v1.0.{build}, click to check updates",
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"all": "Semua",
|
"all": "Semua",
|
||||||
"alreadyLastDir": "Sudah di direktori terakhir.",
|
"alreadyLastDir": "Sudah di direktori terakhir.",
|
||||||
"alterUrl": "Alter url",
|
"alterUrl": "Alter url",
|
||||||
|
"askContinue": "{msg}, lanjutkan?",
|
||||||
"attention": "Perhatian",
|
"attention": "Perhatian",
|
||||||
"authRequired": "Auth diperlukan",
|
"authRequired": "Auth diperlukan",
|
||||||
"auto": "Auto",
|
"auto": "Auto",
|
||||||
@@ -45,6 +46,7 @@
|
|||||||
"decompress": "Dekompresi",
|
"decompress": "Dekompresi",
|
||||||
"delete": "Menghapus",
|
"delete": "Menghapus",
|
||||||
"deleteServers": "Penghapusan server secara batch",
|
"deleteServers": "Penghapusan server secara batch",
|
||||||
|
"dirEmpty": "Pastikan dir kosong.",
|
||||||
"disabled": "Dengan disabilitas",
|
"disabled": "Dengan disabilitas",
|
||||||
"disconnected": "Terputus",
|
"disconnected": "Terputus",
|
||||||
"diskIgnorePath": "Abaikan jalan untuk disk",
|
"diskIgnorePath": "Abaikan jalan untuk disk",
|
||||||
@@ -165,7 +167,6 @@
|
|||||||
"restart": "Mengulang kembali",
|
"restart": "Mengulang kembali",
|
||||||
"restore": "Memulihkan",
|
"restore": "Memulihkan",
|
||||||
"restoreSuccess": "Kembalikan kesuksesan. Mulai ulang aplikasi untuk diterapkan.",
|
"restoreSuccess": "Kembalikan kesuksesan. Mulai ulang aplikasi untuk diterapkan.",
|
||||||
"restoreSureWithDate": "Apakah Anda pasti akan memulihkan dari {date}?",
|
|
||||||
"result": "Hasil",
|
"result": "Hasil",
|
||||||
"rotateAngel": "Sudut rotasi",
|
"rotateAngel": "Sudut rotasi",
|
||||||
"run": "Berlari",
|
"run": "Berlari",
|
||||||
@@ -195,11 +196,6 @@
|
|||||||
"stats": "Statistik",
|
"stats": "Statistik",
|
||||||
"stop": "Berhenti",
|
"stop": "Berhenti",
|
||||||
"success": "Kesuksesan",
|
"success": "Kesuksesan",
|
||||||
"sureDelete": "Apakah Anda pasti akan menghapus [{name}]?",
|
|
||||||
"sureDirEmpty": "Pastikan dir kosong.",
|
|
||||||
"sureNoPwd": "Apakah Anda pasti tidak menggunakan kata sandi?",
|
|
||||||
"sureStop": "Anda yakin ingin menghentikan [{item}]?",
|
|
||||||
"sureToDeleteServer": "Apakah Anda pasti akan menghapus server [{server}]?",
|
|
||||||
"suspendTip": "Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.",
|
"suspendTip": "Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.",
|
||||||
"syncTip": "Setelah sinkronisasi otomatis, mungkin perlu memulai ulang aplikasi agar perubahan tertentu dapat diterapkan.",
|
"syncTip": "Setelah sinkronisasi otomatis, mungkin perlu memulai ulang aplikasi agar perubahan tertentu dapat diterapkan.",
|
||||||
"system": "Sistem",
|
"system": "Sistem",
|
||||||
@@ -222,6 +218,7 @@
|
|||||||
"upload": "Mengunggah",
|
"upload": "Mengunggah",
|
||||||
"upsideDown": "Terbalik",
|
"upsideDown": "Terbalik",
|
||||||
"urlOrJson": "URL atau JSON",
|
"urlOrJson": "URL atau JSON",
|
||||||
|
"useNoPwd": "Tidak ada kata sandi yang akan digunakan.",
|
||||||
"user": "Username",
|
"user": "Username",
|
||||||
"versionHaveUpdate": "Ditemukan: v1.0.{build}, klik untuk memperbarui",
|
"versionHaveUpdate": "Ditemukan: v1.0.{build}, klik untuk memperbarui",
|
||||||
"versionUnknownUpdate": "Saat ini: v1.0.{build}. Klik untuk memeriksa pembaruan.",
|
"versionUnknownUpdate": "Saat ini: v1.0.{build}. Klik untuk memeriksa pembaruan.",
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"all": "所有",
|
"all": "所有",
|
||||||
"alreadyLastDir": "已经是最上层目录了",
|
"alreadyLastDir": "已经是最上层目录了",
|
||||||
"alterUrl": "备选链接",
|
"alterUrl": "备选链接",
|
||||||
|
"askContinue": "{msg},继续吗?",
|
||||||
"attention": "注意",
|
"attention": "注意",
|
||||||
"authRequired": "需要认证",
|
"authRequired": "需要认证",
|
||||||
"auto": "自动",
|
"auto": "自动",
|
||||||
@@ -45,6 +46,7 @@
|
|||||||
"decompress": "解压缩",
|
"decompress": "解压缩",
|
||||||
"delete": "删除",
|
"delete": "删除",
|
||||||
"deleteServers": "批量删除服务器",
|
"deleteServers": "批量删除服务器",
|
||||||
|
"dirEmpty": "请确保文件夹为空",
|
||||||
"disabled": "已禁用",
|
"disabled": "已禁用",
|
||||||
"disconnected": "连接断开",
|
"disconnected": "连接断开",
|
||||||
"diskIgnorePath": "忽略的磁盘路径",
|
"diskIgnorePath": "忽略的磁盘路径",
|
||||||
@@ -165,7 +167,6 @@
|
|||||||
"restart": "重启",
|
"restart": "重启",
|
||||||
"restore": "恢复",
|
"restore": "恢复",
|
||||||
"restoreSuccess": "恢复成功,需要重启App来应用更改",
|
"restoreSuccess": "恢复成功,需要重启App来应用更改",
|
||||||
"restoreSureWithDate": "确定恢复 {date} 的备份吗?",
|
|
||||||
"result": "结果",
|
"result": "结果",
|
||||||
"rotateAngel": "旋转角度",
|
"rotateAngel": "旋转角度",
|
||||||
"run": "运行",
|
"run": "运行",
|
||||||
@@ -195,11 +196,6 @@
|
|||||||
"stats": "统计",
|
"stats": "统计",
|
||||||
"stop": "停止",
|
"stop": "停止",
|
||||||
"success": "成功",
|
"success": "成功",
|
||||||
"sureDelete": "确定删除 [{name}]?",
|
|
||||||
"sureDirEmpty": "请确保文件夹为空",
|
|
||||||
"sureNoPwd": "确认使用无密码?",
|
|
||||||
"sureStop": "确定要停止 [{item}] 吗?",
|
|
||||||
"sureToDeleteServer": "你确定要删除服务器 [{server}] 吗?",
|
|
||||||
"suspendTip": "suspend 功能需要 root 权限及 systemd 支持。",
|
"suspendTip": "suspend 功能需要 root 权限及 systemd 支持。",
|
||||||
"syncTip": "在自动同步后,可能需要重新启动,某些更改才能生效。",
|
"syncTip": "在自动同步后,可能需要重新启动,某些更改才能生效。",
|
||||||
"system": "系统",
|
"system": "系统",
|
||||||
@@ -222,6 +218,7 @@
|
|||||||
"upload": "上传",
|
"upload": "上传",
|
||||||
"upsideDown": "上下交换",
|
"upsideDown": "上下交换",
|
||||||
"urlOrJson": "链接或JSON",
|
"urlOrJson": "链接或JSON",
|
||||||
|
"useNoPwd": "将会使用无密码。",
|
||||||
"user": "用户",
|
"user": "用户",
|
||||||
"versionHaveUpdate": "找到新版本:v1.0.{build}, 点击更新",
|
"versionHaveUpdate": "找到新版本:v1.0.{build}, 点击更新",
|
||||||
"versionUnknownUpdate": "当前:v1.0.{build},点击检查更新",
|
"versionUnknownUpdate": "当前:v1.0.{build},点击检查更新",
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"all": "所有",
|
"all": "所有",
|
||||||
"alreadyLastDir": "已經是最上層目錄了",
|
"alreadyLastDir": "已經是最上層目錄了",
|
||||||
"alterUrl": "備選鏈接",
|
"alterUrl": "備選鏈接",
|
||||||
|
"askContinue": "{msg},繼續嗎?",
|
||||||
"attention": "注意",
|
"attention": "注意",
|
||||||
"authRequired": "需要認證",
|
"authRequired": "需要認證",
|
||||||
"auto": "自動",
|
"auto": "自動",
|
||||||
@@ -45,6 +46,7 @@
|
|||||||
"decompress": "解壓縮",
|
"decompress": "解壓縮",
|
||||||
"delete": "刪除",
|
"delete": "刪除",
|
||||||
"deleteServers": "批量刪除服務器",
|
"deleteServers": "批量刪除服務器",
|
||||||
|
"dirEmpty": "請確保文件夾為空",
|
||||||
"disabled": "已禁用",
|
"disabled": "已禁用",
|
||||||
"disconnected": "連接斷開",
|
"disconnected": "連接斷開",
|
||||||
"diskIgnorePath": "忽略的磁盤路徑",
|
"diskIgnorePath": "忽略的磁盤路徑",
|
||||||
@@ -165,7 +167,6 @@
|
|||||||
"restart": "重啓",
|
"restart": "重啓",
|
||||||
"restore": "恢復",
|
"restore": "恢復",
|
||||||
"restoreSuccess": "恢復成功,需要重啓App來應用更改",
|
"restoreSuccess": "恢復成功,需要重啓App來應用更改",
|
||||||
"restoreSureWithDate": "確定恢復 {date} 的備份嗎?",
|
|
||||||
"result": "結果",
|
"result": "結果",
|
||||||
"rotateAngel": "旋轉角度",
|
"rotateAngel": "旋轉角度",
|
||||||
"run": "運行",
|
"run": "運行",
|
||||||
@@ -195,11 +196,6 @@
|
|||||||
"stats": "統計",
|
"stats": "統計",
|
||||||
"stop": "停止",
|
"stop": "停止",
|
||||||
"success": "成功",
|
"success": "成功",
|
||||||
"sureDelete": "確定刪除 [{name}]?",
|
|
||||||
"sureDirEmpty": "請確保文件夾為空",
|
|
||||||
"sureNoPwd": "確認使用無密碼?",
|
|
||||||
"sureStop": "確定要停止 [{item}] 嗎?",
|
|
||||||
"sureToDeleteServer": "你確定要刪除服務器 [{server}] 嗎?",
|
|
||||||
"suspendTip": "suspend 功能需要 root 權限及 systemd 支持。",
|
"suspendTip": "suspend 功能需要 root 權限及 systemd 支持。",
|
||||||
"syncTip": "在自動同步後,可能需要重新啟動,某些更改才能生效。",
|
"syncTip": "在自動同步後,可能需要重新啟動,某些更改才能生效。",
|
||||||
"system": "系統",
|
"system": "系統",
|
||||||
@@ -222,6 +218,7 @@
|
|||||||
"upload": "上傳",
|
"upload": "上傳",
|
||||||
"upsideDown": "上下交換",
|
"upsideDown": "上下交換",
|
||||||
"urlOrJson": "鏈接或JSON",
|
"urlOrJson": "鏈接或JSON",
|
||||||
|
"useNoPwd": "将使用無密碼。",
|
||||||
"user": "用戶",
|
"user": "用戶",
|
||||||
"versionHaveUpdate": "找到新版本:v1.0.{build}, 點擊更新",
|
"versionHaveUpdate": "找到新版本:v1.0.{build}, 點擊更新",
|
||||||
"versionUnknownUpdate": "當前:v1.0.{build},點擊檢查更新",
|
"versionUnknownUpdate": "當前:v1.0.{build},點擊檢查更新",
|
||||||
|
|||||||
@@ -153,7 +153,9 @@ class BackupPage extends StatelessWidget {
|
|||||||
|
|
||||||
await context.showRoundDialog(
|
await context.showRoundDialog(
|
||||||
title: Text(l10n.restore),
|
title: Text(l10n.restore),
|
||||||
child: Text(l10n.restoreSureWithDate(backup.date)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.restore} ${l10n.backup}(${backup.date})',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => context.pop(),
|
onPressed: () => context.pop(),
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
|||||||
void _showImageRmDialog(DockerImage e) {
|
void _showImageRmDialog(DockerImage e) {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureDelete(e.repo)),
|
child: Text(l10n.askContinue('${l10n.delete} Image(${e.repo})')),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => context.pop(),
|
onPressed: () => context.pop(),
|
||||||
@@ -365,7 +365,9 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
|||||||
case DockerMenuType.rm:
|
case DockerMenuType.rm:
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureDelete(dItem.name)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.delete} Container(${dItem.name})',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
|||||||
@@ -91,7 +91,9 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage> {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureDelete(widget.pki!.id)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.delete} ${l10n.privateKey}(${widget.pki!.id})',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
|
|||||||
@@ -160,7 +160,9 @@ class _ProcessPageState extends State<ProcessPage> {
|
|||||||
onLongPress: () {
|
onLongPress: () {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureStop(proc.pid)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.stop} ${l10n.process}(${proc.pid})',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
|||||||
@@ -111,7 +111,9 @@ class _ServerEditPageState extends State<ServerEditPage> {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureToDeleteServer(widget.spi!.name)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.delete} ${l10n.server}(${widget.spi!.name})',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -315,14 +317,14 @@ class _ServerEditPageState extends State<ServerEditPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _onSave() async {
|
void _onSave() async {
|
||||||
if (_ipController.text == '') {
|
if (_ipController.text.isEmpty) {
|
||||||
context.showSnackBar(l10n.plzEnterHost);
|
context.showSnackBar(l10n.plzEnterHost);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (_keyIdx.value == null && _passwordController.text == '') {
|
if (_keyIdx.value == null && _passwordController.text.isEmpty) {
|
||||||
final cancel = await context.showRoundDialog<bool>(
|
final cancel = await context.showRoundDialog<bool>(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureNoPwd),
|
child: Text(l10n.askContinue(l10n.useNoPwd)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => context.pop(false),
|
onPressed: () => context.pop(false),
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:circle_chart/circle_chart.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get_it/get_it.dart';
|
import 'package:get_it/get_it.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:toolbox/core/extension/context/common.dart';
|
||||||
import 'package:toolbox/core/extension/context/dialog.dart';
|
import 'package:toolbox/core/extension/context/dialog.dart';
|
||||||
import 'package:toolbox/core/extension/context/locale.dart';
|
import 'package:toolbox/core/extension/context/locale.dart';
|
||||||
import 'package:toolbox/core/extension/media_queryx.dart';
|
import 'package:toolbox/core/extension/media_queryx.dart';
|
||||||
@@ -244,7 +245,8 @@ class _ServerPageState extends State<ServerPage>
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
children: [
|
children: [
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () => _askFor(
|
||||||
|
func: () async {
|
||||||
if (Stores.first.showSuspendTip.fetch()) {
|
if (Stores.first.showSuspendTip.fetch()) {
|
||||||
await context.showRoundDialog(
|
await context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
@@ -257,22 +259,24 @@ class _ServerPageState extends State<ServerPage>
|
|||||||
context: context,
|
context: context,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
msg: 'Suspend ${srv.spi.name}',
|
||||||
|
),
|
||||||
icon: const Icon(Icons.stop),
|
icon: const Icon(Icons.stop),
|
||||||
tooltip: 'Suspend',
|
tooltip: 'Suspend',
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () => srv.client?.execWithPwd(
|
onPressed: () => _askFor(func: () => srv.client?.execWithPwd(
|
||||||
ShellFunc.shutdown.exec,
|
ShellFunc.shutdown.exec,
|
||||||
context: context,
|
context: context,
|
||||||
),
|
), msg: 'Shutdown ${srv.spi.name}',),
|
||||||
icon: const Icon(Icons.power_off),
|
icon: const Icon(Icons.power_off),
|
||||||
tooltip: 'Shutdown',
|
tooltip: 'Shutdown',
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () => srv.client?.execWithPwd(
|
onPressed: () => _askFor(func: () => srv.client?.execWithPwd(
|
||||||
ShellFunc.reboot.exec,
|
ShellFunc.reboot.exec,
|
||||||
context: context,
|
context: context,
|
||||||
),
|
), msg: 'Reboot ${srv.spi.name}',),
|
||||||
icon: const Icon(Icons.restart_alt),
|
icon: const Icon(Icons.restart_alt),
|
||||||
tooltip: 'Reboot',
|
tooltip: 'Reboot',
|
||||||
),
|
),
|
||||||
@@ -531,4 +535,20 @@ class _ServerPageState extends State<ServerPage>
|
|||||||
}
|
}
|
||||||
return 107;
|
return 107;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _askFor({required void Function() func, required String msg}) {
|
||||||
|
context.showRoundDialog(
|
||||||
|
title: Text(l10n.attention),
|
||||||
|
child: Text(l10n.askContinue(msg)),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
context.pop();
|
||||||
|
func();
|
||||||
|
},
|
||||||
|
child: Text(l10n.ok),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,9 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => context.showRoundDialog(
|
onTap: () => context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureDelete(l10n.all)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.delete}: **${l10n.all}** ${l10n.setting}',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -113,8 +115,10 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
context.pop();
|
context.pop();
|
||||||
context.showSnackBar(l10n.success);
|
context.showSnackBar(l10n.success);
|
||||||
},
|
},
|
||||||
child: Text(l10n.ok,
|
child: Text(
|
||||||
style: const TextStyle(color: Colors.red)),
|
l10n.ok,
|
||||||
|
style: const TextStyle(color: Colors.red),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -880,7 +884,9 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
(e) => TextButton(
|
(e) => TextButton(
|
||||||
onPressed: () => context.showRoundDialog(
|
onPressed: () => context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureDelete(e)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.delete} ${l10n.server}($e)',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Pros.server.delServer(e),
|
onPressed: () => Pros.server.delServer(e),
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:after_layout/after_layout.dart';
|
import 'package:after_layout/after_layout.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:toolbox/core/extension/context/common.dart';
|
import 'package:toolbox/core/extension/context/common.dart';
|
||||||
|
import 'package:toolbox/core/extension/context/dialog.dart';
|
||||||
import 'package:toolbox/core/extension/context/locale.dart';
|
import 'package:toolbox/core/extension/context/locale.dart';
|
||||||
import 'package:toolbox/core/extension/context/snackbar.dart';
|
import 'package:toolbox/core/extension/context/snackbar.dart';
|
||||||
import 'package:toolbox/data/res/provider.dart';
|
import 'package:toolbox/data/res/provider.dart';
|
||||||
@@ -55,9 +56,23 @@ class _SnippetEditPageState extends State<SnippetEditPage>
|
|||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
IconButton(
|
IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
context.showRoundDialog(
|
||||||
|
title: Text(l10n.attention),
|
||||||
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.delete} ${l10n.snippet}(${widget.snippet!.name})',
|
||||||
|
)),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Pros.snippet.del(widget.snippet!);
|
Pros.snippet.del(widget.snippet!);
|
||||||
context.pop();
|
context.pop();
|
||||||
|
context.pop();
|
||||||
|
},
|
||||||
|
child: Text(l10n.ok, style: UIs.textRed),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
},
|
},
|
||||||
tooltip: l10n.delete,
|
tooltip: l10n.delete,
|
||||||
icon: const Icon(Icons.delete),
|
icon: const Icon(Icons.delete),
|
||||||
|
|||||||
@@ -410,8 +410,9 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
context.pop();
|
context.pop();
|
||||||
final isDir = file.attr.isDirectory;
|
final isDir = file.attr.isDirectory;
|
||||||
final useRmrf = Stores.setting.sftpRmrfDir.fetch();
|
final useRmrf = Stores.setting.sftpRmrfDir.fetch();
|
||||||
final dirText = (isDir && !useRmrf) ? '\n${l10n.sureDirEmpty}' : '';
|
final dirText = (isDir && !useRmrf) ? '\n${l10n.dirEmpty}' : '';
|
||||||
final text = '${l10n.sureDelete(file.filename)}$dirText';
|
final text = l10n.askContinue(
|
||||||
|
'${l10n.delete} ${l10n.files}(${file.filename})\n$dirText');
|
||||||
final child = Text(text);
|
final child = Text(text);
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
child: child,
|
child: child,
|
||||||
@@ -475,7 +476,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (textController.text == '') {
|
if (textController.text.isEmpty) {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
child: Text(l10n.fieldMustNotEmpty),
|
child: Text(l10n.fieldMustNotEmpty),
|
||||||
actions: [
|
actions: [
|
||||||
@@ -512,7 +513,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (textController.text == '') {
|
if (textController.text.isEmpty) {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.fieldMustNotEmpty),
|
child: Text(l10n.fieldMustNotEmpty),
|
||||||
@@ -553,7 +554,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
TextButton(onPressed: () => context.pop(), child: Text(l10n.cancel)),
|
TextButton(onPressed: () => context.pop(), child: Text(l10n.cancel)),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (textController.text == '') {
|
if (textController.text.isEmpty) {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.fieldMustNotEmpty),
|
child: Text(l10n.fieldMustNotEmpty),
|
||||||
@@ -566,7 +567,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await _status.client!.rename(file.filename, textController.text);
|
await _status.client?.rename(file.filename, textController.text);
|
||||||
context.pop();
|
context.pop();
|
||||||
_listDir();
|
_listDir();
|
||||||
},
|
},
|
||||||
@@ -610,7 +611,8 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
|
|
||||||
/// Only return true if the path is changed
|
/// Only return true if the path is changed
|
||||||
Future<bool> _listDir() async {
|
Future<bool> _listDir() async {
|
||||||
context.showLoadingDialog();
|
// Allow dismiss, because may this op will take a long time
|
||||||
|
context.showLoadingDialog(barrierDismiss: true);
|
||||||
if (_status.client == null) {
|
if (_status.client == null) {
|
||||||
final sftpc = await _client?.sftp();
|
final sftpc = await _client?.sftp();
|
||||||
_status.client = sftpc;
|
_status.client = sftpc;
|
||||||
|
|||||||
@@ -137,7 +137,9 @@ class _SftpMissionPageState extends State<SftpMissionPage> {
|
|||||||
return IconButton(
|
return IconButton(
|
||||||
onPressed: () => context.showRoundDialog(
|
onPressed: () => context.showRoundDialog(
|
||||||
title: Text(l10n.attention),
|
title: Text(l10n.attention),
|
||||||
child: Text(l10n.sureDelete(name)),
|
child: Text(l10n.askContinue(
|
||||||
|
'${l10n.delete} ${l10n.mission}($name)',
|
||||||
|
)),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
|
|||||||
Reference in New Issue
Block a user