From 19ada28cf3188a3745c68f17e72fc30beb43fe76 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:48:45 +0000 Subject: [PATCH] Add i18n_extension.dart and fix import/export keys, update imports Co-authored-by: jonasbark <1151304+jonasbark@users.noreply.github.com> --- lib/bluetooth/devices/bluetooth_device.dart | 1 + lib/l10n/intl_en.arb | 4 ++-- lib/pages/configuration.dart | 1 + lib/pages/customize.dart | 1 + lib/pages/device.dart | 1 + lib/pages/navigation.dart | 1 + lib/pages/trainer.dart | 1 + lib/utils/i18n_extension.dart | 7 +++++++ lib/utils/keymap/manager.dart | 1 + lib/utils/requirements/multi.dart | 1 + lib/utils/requirements/remote.dart | 1 + lib/widgets/apps/mywhoosh_link_tile.dart | 1 + lib/widgets/apps/openbikecontrol_ble_tile.dart | 1 + lib/widgets/apps/openbikecontrol_mdns_tile.dart | 1 + lib/widgets/apps/zwift_tile.dart | 1 + lib/widgets/ignored_devices_dialog.dart | 1 + lib/widgets/keymap_explanation.dart | 1 + lib/widgets/logviewer.dart | 1 + lib/widgets/scan.dart | 1 + lib/widgets/ui/connection_method.dart | 1 + 20 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 lib/utils/i18n_extension.dart diff --git a/lib/bluetooth/devices/bluetooth_device.dart b/lib/bluetooth/devices/bluetooth_device.dart index 4d3baa6..7a806e8 100644 --- a/lib/bluetooth/devices/bluetooth_device.dart +++ b/lib/bluetooth/devices/bluetooth_device.dart @@ -18,6 +18,7 @@ import 'package:swift_control/bluetooth/devices/zwift/zwift_ride.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/pages/device.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/ui/beta_pill.dart'; import 'package:swift_control/widgets/ui/loading_widget.dart'; import 'package:swift_control/widgets/ui/small_progress_indicator.dart'; diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 6d6c5c4..5f9e8d3 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -246,8 +246,8 @@ "manageProfile": "Manage Profile", "rename": "Rename", "duplicate": "Duplicate", - "import": "Import", - "export": "Export", + "importAction": "Import", + "exportAction": "Export", "delete": "Delete", "cancel": "Cancel", "create": "Create", diff --git a/lib/pages/configuration.dart b/lib/pages/configuration.dart index 5e67cb3..e10a34f 100644 --- a/lib/pages/configuration.dart +++ b/lib/pages/configuration.dart @@ -1,5 +1,6 @@ import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/requirements/multi.dart'; import 'package:swift_control/widgets/ui/colored_title.dart'; diff --git a/lib/pages/customize.dart b/lib/pages/customize.dart index f9ccc85..613b896 100644 --- a/lib/pages/customize.dart +++ b/lib/pages/customize.dart @@ -4,6 +4,7 @@ import 'package:swift_control/bluetooth/devices/zwift/zwift_device.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/main.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/keymap/apps/custom_app.dart'; import 'package:swift_control/utils/keymap/apps/supported_app.dart'; import 'package:swift_control/utils/keymap/manager.dart'; diff --git a/lib/pages/device.dart b/lib/pages/device.dart index ff99955..f67fe02 100644 --- a/lib/pages/device.dart +++ b/lib/pages/device.dart @@ -4,6 +4,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/main.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/scan.dart'; import 'package:swift_control/widgets/ui/colored_title.dart'; import 'package:swift_control/widgets/ui/warning.dart'; diff --git a/lib/pages/navigation.dart b/lib/pages/navigation.dart index 45fe63a..925a5d0 100644 --- a/lib/pages/navigation.dart +++ b/lib/pages/navigation.dart @@ -7,6 +7,7 @@ import 'package:swift_control/pages/customize.dart'; import 'package:swift_control/pages/device.dart'; import 'package:swift_control/pages/trainer.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/logviewer.dart'; import 'package:swift_control/widgets/menu.dart'; import 'package:swift_control/widgets/title.dart'; diff --git a/lib/pages/trainer.dart b/lib/pages/trainer.dart index 1c0c0a7..77f5cb5 100644 --- a/lib/pages/trainer.dart +++ b/lib/pages/trainer.dart @@ -13,6 +13,7 @@ import 'package:swift_control/pages/configuration.dart'; import 'package:swift_control/utils/actions/android.dart'; import 'package:swift_control/utils/actions/remote.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/requirements/remote.dart'; import 'package:swift_control/widgets/apps/mywhoosh_link_tile.dart'; import 'package:swift_control/widgets/apps/openbikecontrol_ble_tile.dart'; diff --git a/lib/utils/i18n_extension.dart b/lib/utils/i18n_extension.dart new file mode 100644 index 0000000..c144928 --- /dev/null +++ b/lib/utils/i18n_extension.dart @@ -0,0 +1,7 @@ +import 'package:flutter/widgets.dart'; +import 'package:swift_control/gen/app_localizations.dart'; + +/// Extension to access AppLocalizations from BuildContext +extension AppLocalizationsExtension on BuildContext { + AppLocalizations get i18n => AppLocalizations.of(this); +} diff --git a/lib/utils/keymap/manager.dart b/lib/utils/keymap/manager.dart index ea5a673..159c19d 100644 --- a/lib/utils/keymap/manager.dart +++ b/lib/utils/keymap/manager.dart @@ -3,6 +3,7 @@ import 'package:flutter/services.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/ui/toast.dart'; import 'apps/custom_app.dart'; diff --git a/lib/utils/requirements/multi.dart b/lib/utils/requirements/multi.dart index 9c8e713..54bb070 100644 --- a/lib/utils/requirements/multi.dart +++ b/lib/utils/requirements/multi.dart @@ -10,6 +10,7 @@ import 'package:swift_control/bluetooth/devices/zwift/protocol/zp.pb.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/main.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/keymap/apps/custom_app.dart'; import 'package:swift_control/utils/keymap/apps/my_whoosh.dart'; import 'package:swift_control/utils/keymap/apps/supported_app.dart'; diff --git a/lib/utils/requirements/remote.dart b/lib/utils/requirements/remote.dart index b29fa88..e08bcf9 100644 --- a/lib/utils/requirements/remote.dart +++ b/lib/utils/requirements/remote.dart @@ -8,6 +8,7 @@ import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/main.dart'; import 'package:swift_control/utils/actions/remote.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/requirements/multi.dart'; import 'package:swift_control/utils/requirements/platform.dart'; import 'package:swift_control/widgets/ui/connection_method.dart'; diff --git a/lib/widgets/apps/mywhoosh_link_tile.dart b/lib/widgets/apps/mywhoosh_link_tile.dart index 872bb66..31eafcb 100644 --- a/lib/widgets/apps/mywhoosh_link_tile.dart +++ b/lib/widgets/apps/mywhoosh_link_tile.dart @@ -2,6 +2,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/utils/actions/remote.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/ui/connection_method.dart'; import 'package:swift_control/widgets/ui/toast.dart'; diff --git a/lib/widgets/apps/openbikecontrol_ble_tile.dart b/lib/widgets/apps/openbikecontrol_ble_tile.dart index ee5bfea..f6dc4e5 100644 --- a/lib/widgets/apps/openbikecontrol_ble_tile.dart +++ b/lib/widgets/apps/openbikecontrol_ble_tile.dart @@ -2,6 +2,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/bluetooth/devices/zwift/protocol/zp.pb.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/ui/connection_method.dart'; import 'package:swift_control/widgets/ui/toast.dart'; diff --git a/lib/widgets/apps/openbikecontrol_mdns_tile.dart b/lib/widgets/apps/openbikecontrol_mdns_tile.dart index b91e260..d93b8ec 100644 --- a/lib/widgets/apps/openbikecontrol_mdns_tile.dart +++ b/lib/widgets/apps/openbikecontrol_mdns_tile.dart @@ -1,6 +1,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/ui/connection_method.dart'; import 'package:swift_control/widgets/ui/toast.dart'; diff --git a/lib/widgets/apps/zwift_tile.dart b/lib/widgets/apps/zwift_tile.dart index 6ff999f..1a18702 100644 --- a/lib/widgets/apps/zwift_tile.dart +++ b/lib/widgets/apps/zwift_tile.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/ui/connection_method.dart'; class ZwiftTile extends StatefulWidget { diff --git a/lib/widgets/ignored_devices_dialog.dart b/lib/widgets/ignored_devices_dialog.dart index 33af3ab..edbf96f 100644 --- a/lib/widgets/ignored_devices_dialog.dart +++ b/lib/widgets/ignored_devices_dialog.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; class IgnoredDevicesDialog extends StatefulWidget { const IgnoredDevicesDialog({super.key}); diff --git a/lib/widgets/keymap_explanation.dart b/lib/widgets/keymap_explanation.dart index 198e174..0790195 100644 --- a/lib/widgets/keymap_explanation.dart +++ b/lib/widgets/keymap_explanation.dart @@ -8,6 +8,7 @@ import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/pages/device.dart'; import 'package:swift_control/utils/actions/base_actions.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/keymap/apps/custom_app.dart'; import 'package:swift_control/utils/keymap/keymap.dart'; import 'package:swift_control/utils/keymap/manager.dart'; diff --git a/lib/widgets/logviewer.dart b/lib/widgets/logviewer.dart index b520bc5..23562fa 100644 --- a/lib/widgets/logviewer.dart +++ b/lib/widgets/logviewer.dart @@ -6,6 +6,7 @@ import 'package:flutter/services.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/widgets/ui/toast.dart'; import '../bluetooth/messages/notification.dart'; diff --git a/lib/widgets/scan.dart b/lib/widgets/scan.dart index 3153661..538e059 100644 --- a/lib/widgets/scan.dart +++ b/lib/widgets/scan.dart @@ -6,6 +6,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/pages/markdown.dart'; import 'package:swift_control/utils/core.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/requirements/platform.dart'; import 'package:swift_control/widgets/ui/connection_method.dart'; import 'package:swift_control/widgets/ui/wifi_animation.dart'; diff --git a/lib/widgets/ui/connection_method.dart b/lib/widgets/ui/connection_method.dart index 0a160e7..c2c00a5 100644 --- a/lib/widgets/ui/connection_method.dart +++ b/lib/widgets/ui/connection_method.dart @@ -2,6 +2,7 @@ import 'package:dartx/dartx.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:swift_control/gen/app_localizations.dart'; import 'package:swift_control/pages/markdown.dart'; +import 'package:swift_control/utils/i18n_extension.dart'; import 'package:swift_control/utils/requirements/platform.dart'; import 'package:swift_control/widgets/ui/beta_pill.dart'; import 'package:swift_control/widgets/ui/small_progress_indicator.dart';