mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 15:24:35 +01:00
@@ -1729,6 +1729,12 @@ abstract class AppLocalizations {
|
|||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'At least one tab must be selected'**
|
/// **'At least one tab must be selected'**
|
||||||
String get atLeastOneTab;
|
String get atLeastOneTab;
|
||||||
|
|
||||||
|
/// No description provided for @serverTabRequired.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Server tab cannot be removed'**
|
||||||
|
String get serverTabRequired;
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AppLocalizationsDelegate
|
class _AppLocalizationsDelegate
|
||||||
|
|||||||
@@ -911,4 +911,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'Mindestens ein Tab muss ausgewählt sein';
|
String get atLeastOneTab => 'Mindestens ein Tab muss ausgewählt sein';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server-Tab kann nicht entfernt werden';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -903,4 +903,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'At least one tab must be selected';
|
String get atLeastOneTab => 'At least one tab must be selected';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -913,4 +913,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'Al menos una pestaña debe estar seleccionada';
|
String get atLeastOneTab => 'Al menos una pestaña debe estar seleccionada';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -916,4 +916,7 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'Au moins un onglet doit être sélectionné';
|
String get atLeastOneTab => 'Au moins un onglet doit être sélectionné';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -903,4 +903,7 @@ class AppLocalizationsId extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'Setidaknya satu tab harus dipilih';
|
String get atLeastOneTab => 'Setidaknya satu tab harus dipilih';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -876,4 +876,7 @@ class AppLocalizationsJa extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => '少なくとも1つのタブを選択する必要があります';
|
String get atLeastOneTab => '少なくとも1つのタブを選択する必要があります';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'サーバータブは削除できません';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -910,4 +910,7 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get atLeastOneTab =>
|
String get atLeastOneTab =>
|
||||||
'Er moet minimaal één tabblad worden geselecteerd';
|
'Er moet minimaal één tabblad worden geselecteerd';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -906,4 +906,7 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'Pelo menos uma aba deve ser selecionada';
|
String get atLeastOneTab => 'Pelo menos uma aba deve ser selecionada';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -908,4 +908,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'Должна быть выбрана хотя бы одна вкладка';
|
String get atLeastOneTab => 'Должна быть выбрана хотя бы одна вкладка';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -903,4 +903,7 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'En az bir sekme seçilmelidir';
|
String get atLeastOneTab => 'En az bir sekme seçilmelidir';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -909,4 +909,7 @@ class AppLocalizationsUk extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => 'Потрібно вибрати принаймні одну вкладку';
|
String get atLeastOneTab => 'Потрібно вибрати принаймні одну вкладку';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => 'Server tab cannot be removed';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -861,6 +861,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => '至少需要选择一个标签';
|
String get atLeastOneTab => '至少需要选择一个标签';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => '服务器标签不能被移除';
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
||||||
@@ -1720,4 +1723,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get atLeastOneTab => '至少需要選擇一個標籤';
|
String get atLeastOneTab => '至少需要選擇一個標籤';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get serverTabRequired => '服務器標籤不能被移除';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Passen Sie an, welche Tabs auf der Startseite angezeigt werden und ihre Reihenfolge",
|
"homeTabsCustomizeDesc": "Passen Sie an, welche Tabs auf der Startseite angezeigt werden und ihre Reihenfolge",
|
||||||
"reset": "Zurücksetzen",
|
"reset": "Zurücksetzen",
|
||||||
"availableTabs": "Verfügbare Tabs",
|
"availableTabs": "Verfügbare Tabs",
|
||||||
"atLeastOneTab": "Mindestens ein Tab muss ausgewählt sein"
|
"atLeastOneTab": "Mindestens ein Tab muss ausgewählt sein",
|
||||||
}
|
"serverTabRequired": "Server-Tab kann nicht entfernt werden"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Customize which tabs appear on the home page and their order",
|
"homeTabsCustomizeDesc": "Customize which tabs appear on the home page and their order",
|
||||||
"reset": "Reset",
|
"reset": "Reset",
|
||||||
"availableTabs": "Available Tabs",
|
"availableTabs": "Available Tabs",
|
||||||
"atLeastOneTab": "At least one tab must be selected"
|
"atLeastOneTab": "At least one tab must be selected",
|
||||||
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
}
|
}
|
||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Personaliza qué pestañas aparecen en la página de inicio y su orden",
|
"homeTabsCustomizeDesc": "Personaliza qué pestañas aparecen en la página de inicio y su orden",
|
||||||
"reset": "Restablecer",
|
"reset": "Restablecer",
|
||||||
"availableTabs": "Pestañas disponibles",
|
"availableTabs": "Pestañas disponibles",
|
||||||
"atLeastOneTab": "Al menos una pestaña debe estar seleccionada"
|
"atLeastOneTab": "Al menos una pestaña debe estar seleccionada",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Personnalisez les onglets qui apparaissent sur la page d'accueil et leur ordre",
|
"homeTabsCustomizeDesc": "Personnalisez les onglets qui apparaissent sur la page d'accueil et leur ordre",
|
||||||
"reset": "Réinitialiser",
|
"reset": "Réinitialiser",
|
||||||
"availableTabs": "Onglets disponibles",
|
"availableTabs": "Onglets disponibles",
|
||||||
"atLeastOneTab": "Au moins un onglet doit être sélectionné"
|
"atLeastOneTab": "Au moins un onglet doit être sélectionné",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Sesuaikan tab mana yang muncul di halaman beranda dan urutannya",
|
"homeTabsCustomizeDesc": "Sesuaikan tab mana yang muncul di halaman beranda dan urutannya",
|
||||||
"reset": "Reset",
|
"reset": "Reset",
|
||||||
"availableTabs": "Tab Tersedia",
|
"availableTabs": "Tab Tersedia",
|
||||||
"atLeastOneTab": "Setidaknya satu tab harus dipilih"
|
"atLeastOneTab": "Setidaknya satu tab harus dipilih",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "ホームページに表示するタブとその順序をカスタマイズします",
|
"homeTabsCustomizeDesc": "ホームページに表示するタブとその順序をカスタマイズします",
|
||||||
"reset": "リセット",
|
"reset": "リセット",
|
||||||
"availableTabs": "利用可能なタブ",
|
"availableTabs": "利用可能なタブ",
|
||||||
"atLeastOneTab": "少なくとも1つのタブを選択する必要があります"
|
"atLeastOneTab": "少なくとも1つのタブを選択する必要があります",
|
||||||
}
|
"serverTabRequired": "サーバータブは削除できません"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Pas aan welke tabbladen op de startpagina worden weergegeven en hun volgorde",
|
"homeTabsCustomizeDesc": "Pas aan welke tabbladen op de startpagina worden weergegeven en hun volgorde",
|
||||||
"reset": "Resetten",
|
"reset": "Resetten",
|
||||||
"availableTabs": "Beschikbare tabbladen",
|
"availableTabs": "Beschikbare tabbladen",
|
||||||
"atLeastOneTab": "Er moet minimaal één tabblad worden geselecteerd"
|
"atLeastOneTab": "Er moet minimaal één tabblad worden geselecteerd",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Personalize quais abas aparecem na página inicial e sua ordem",
|
"homeTabsCustomizeDesc": "Personalize quais abas aparecem na página inicial e sua ordem",
|
||||||
"reset": "Redefinir",
|
"reset": "Redefinir",
|
||||||
"availableTabs": "Abas disponíveis",
|
"availableTabs": "Abas disponíveis",
|
||||||
"atLeastOneTab": "Pelo menos uma aba deve ser selecionada"
|
"atLeastOneTab": "Pelo menos uma aba deve ser selecionada",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Настройте, какие вкладки появляются на главной странице и их порядок",
|
"homeTabsCustomizeDesc": "Настройте, какие вкладки появляются на главной странице и их порядок",
|
||||||
"reset": "Сброс",
|
"reset": "Сброс",
|
||||||
"availableTabs": "Доступные вкладки",
|
"availableTabs": "Доступные вкладки",
|
||||||
"atLeastOneTab": "Должна быть выбрана хотя бы одна вкладка"
|
"atLeastOneTab": "Должна быть выбрана хотя бы одна вкладка",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Ana sayfada görünecek sekmeleri ve sıralarını özelleştirin",
|
"homeTabsCustomizeDesc": "Ana sayfada görünecek sekmeleri ve sıralarını özelleştirin",
|
||||||
"reset": "Sıfırla",
|
"reset": "Sıfırla",
|
||||||
"availableTabs": "Mevcut Sekmeler",
|
"availableTabs": "Mevcut Sekmeler",
|
||||||
"atLeastOneTab": "En az bir sekme seçilmelidir"
|
"atLeastOneTab": "En az bir sekme seçilmelidir",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "Налаштуйте, які вкладки відображаються на головній сторінці та їх порядок",
|
"homeTabsCustomizeDesc": "Налаштуйте, які вкладки відображаються на головній сторінці та їх порядок",
|
||||||
"reset": "Скинути",
|
"reset": "Скинути",
|
||||||
"availableTabs": "Доступні вкладки",
|
"availableTabs": "Доступні вкладки",
|
||||||
"atLeastOneTab": "Потрібно вибрати принаймні одну вкладку"
|
"atLeastOneTab": "Потрібно вибрати принаймні одну вкладку",
|
||||||
}
|
"serverTabRequired": "Server tab cannot be removed"
|
||||||
|
}
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "自定义主页上显示的标签及其顺序",
|
"homeTabsCustomizeDesc": "自定义主页上显示的标签及其顺序",
|
||||||
"reset": "重置",
|
"reset": "重置",
|
||||||
"availableTabs": "可用标签",
|
"availableTabs": "可用标签",
|
||||||
"atLeastOneTab": "至少需要选择一个标签"
|
"atLeastOneTab": "至少需要选择一个标签",
|
||||||
|
"serverTabRequired": "服务器标签不能被移除"
|
||||||
}
|
}
|
||||||
@@ -281,5 +281,6 @@
|
|||||||
"homeTabsCustomizeDesc": "自訂主頁上顯示的標籤及其順序",
|
"homeTabsCustomizeDesc": "自訂主頁上顯示的標籤及其順序",
|
||||||
"reset": "重置",
|
"reset": "重置",
|
||||||
"availableTabs": "可用標籤",
|
"availableTabs": "可用標籤",
|
||||||
"atLeastOneTab": "至少需要選擇一個標籤"
|
"atLeastOneTab": "至少需要選擇一個標籤",
|
||||||
}
|
"serverTabRequired": "服務器標籤不能被移除"
|
||||||
|
}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class _HomeTabsConfigPageState extends ConsumerState<HomeTabsConfigPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildTabItem(AppTab tab, int index, bool isSelected) {
|
Widget _buildTabItem(AppTab tab, int index, bool isSelected) {
|
||||||
final canRemove = _selectedTabs.length > 1;
|
final canRemove = _selectedTabs.length > 1 && tab != AppTab.server;
|
||||||
final child = ListTile(
|
final child = ListTile(
|
||||||
leading: tab.navDestination.icon,
|
leading: tab.navDestination.icon,
|
||||||
title: Text(tab.navDestination.label),
|
title: Text(tab.navDestination.label),
|
||||||
@@ -77,7 +77,7 @@ class _HomeTabsConfigPageState extends ConsumerState<HomeTabsConfigPage> {
|
|||||||
icon: const Icon(Icons.delete),
|
icon: const Icon(Icons.delete),
|
||||||
onPressed: canRemove ? () => _removeTab(tab) : null,
|
onPressed: canRemove ? () => _removeTab(tab) : null,
|
||||||
color: canRemove ? null : Theme.of(context).disabledColor,
|
color: canRemove ? null : Theme.of(context).disabledColor,
|
||||||
tooltip: canRemove ? libL10n.delete : l10n.atLeastOneTab,
|
tooltip: canRemove ? libL10n.delete : (tab == AppTab.server ? l10n.serverTabRequired : l10n.atLeastOneTab),
|
||||||
)
|
)
|
||||||
: IconButton(icon: const Icon(Icons.add), onPressed: () => _addTab(tab)),
|
: IconButton(icon: const Icon(Icons.add), onPressed: () => _addTab(tab)),
|
||||||
onTap: isSelected && canRemove ? () => _removeTab(tab) : null,
|
onTap: isSelected && canRemove ? () => _removeTab(tab) : null,
|
||||||
@@ -111,6 +111,10 @@ class _HomeTabsConfigPageState extends ConsumerState<HomeTabsConfigPage> {
|
|||||||
context.showSnackBar(l10n.atLeastOneTab);
|
context.showSnackBar(l10n.atLeastOneTab);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (tab == AppTab.server) {
|
||||||
|
context.showSnackBar(l10n.serverTabRequired);
|
||||||
|
return;
|
||||||
|
}
|
||||||
setState(() {
|
setState(() {
|
||||||
_selectedTabs.remove(tab);
|
_selectedTabs.remove(tab);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user