diff --git a/lib/localizations/de.json b/lib/localizations/de.json index 2757a46..17e33f3 100644 --- a/lib/localizations/de.json +++ b/lib/localizations/de.json @@ -45,6 +45,19 @@ "advancedSettingsSubtitle": "Leistungs-, Warnungs- und Kachelanbieter-Einstellungen", "proximityAlerts": "Näherungswarnungen" }, + "proximityAlerts": { + "getNotified": "Benachrichtigung erhalten beim Annähern an Überwachungsgeräte", + "batteryUsage": "Verbraucht zusätzlich Batterie für kontinuierliche Standortüberwachung", + "notificationsEnabled": "✓ Benachrichtigungen aktiviert", + "notificationsDisabled": "⚠ Benachrichtigungen deaktiviert", + "permissionRequired": "Benachrichtigungsberechtigung erforderlich", + "permissionExplanation": "Push-Benachrichtigungen sind deaktiviert. Sie sehen nur In-App-Warnungen und werden nicht benachrichtigt, wenn die App im Hintergrund läuft.", + "enableNotifications": "Benachrichtigungen Aktivieren", + "checkingPermissions": "Berechtigungen prüfen...", + "alertDistance": "Warnentfernung: ", + "meters": "Meter", + "rangeInfo": "Bereich: {}-{} Meter (Standard: {})" + }, "node": { "title": "Knoten #{}", "tagSheetTitle": "Gerät-Tags", diff --git a/lib/localizations/en.json b/lib/localizations/en.json index ce73fba..67ade4e 100644 --- a/lib/localizations/en.json +++ b/lib/localizations/en.json @@ -45,6 +45,19 @@ "advancedSettingsSubtitle": "Performance, alerts, and tile provider settings", "proximityAlerts": "Proximity Alerts" }, + "proximityAlerts": { + "getNotified": "Get notified when approaching surveillance devices", + "batteryUsage": "Uses extra battery for continuous location monitoring", + "notificationsEnabled": "✓ Notifications enabled", + "notificationsDisabled": "⚠ Notifications disabled", + "permissionRequired": "Notification permission required", + "permissionExplanation": "Push notifications are disabled. You'll only see in-app alerts and won't be notified when the app is in background.", + "enableNotifications": "Enable Notifications", + "checkingPermissions": "Checking permissions...", + "alertDistance": "Alert distance: ", + "meters": "meters", + "rangeInfo": "Range: {}-{} meters (default: {})" + }, "node": { "title": "Node #{}", "tagSheetTitle": "Surveillance Device Tags", diff --git a/lib/localizations/es.json b/lib/localizations/es.json index f92a732..a1c672c 100644 --- a/lib/localizations/es.json +++ b/lib/localizations/es.json @@ -45,6 +45,19 @@ "advancedSettingsSubtitle": "Configuración de rendimiento, alertas y proveedores de teselas", "proximityAlerts": "Alertas de Proximidad" }, + "proximityAlerts": { + "getNotified": "Recibe notificaciones al acercarte a dispositivos de vigilancia", + "batteryUsage": "Usa batería extra para monitoreo continuo de ubicación", + "notificationsEnabled": "✓ Notificaciones habilitadas", + "notificationsDisabled": "⚠ Notificaciones deshabilitadas", + "permissionRequired": "Permiso de notificación requerido", + "permissionExplanation": "Las notificaciones push están deshabilitadas. Solo verás alertas dentro de la app y no serás notificado cuando la app esté en segundo plano.", + "enableNotifications": "Habilitar Notificaciones", + "checkingPermissions": "Verificando permisos...", + "alertDistance": "Distancia de alerta: ", + "meters": "metros", + "rangeInfo": "Rango: {}-{} metros (predeterminado: {})" + }, "node": { "title": "Nodo #{}", "tagSheetTitle": "Etiquetas del Dispositivo", diff --git a/lib/localizations/fr.json b/lib/localizations/fr.json index b5e69ae..ff44d21 100644 --- a/lib/localizations/fr.json +++ b/lib/localizations/fr.json @@ -45,6 +45,19 @@ "advancedSettingsSubtitle": "Paramètres de performance, alertes et fournisseurs de tuiles", "proximityAlerts": "Alertes de Proximité" }, + "proximityAlerts": { + "getNotified": "Recevoir des notifications en s'approchant de dispositifs de surveillance", + "batteryUsage": "Utilise de la batterie supplémentaire pour la surveillance continue de la localisation", + "notificationsEnabled": "✓ Notifications activées", + "notificationsDisabled": "⚠ Notifications désactivées", + "permissionRequired": "Autorisation de notification requise", + "permissionExplanation": "Les notifications push sont désactivées. Vous ne verrez que des alertes dans l'application et ne serez pas notifié lorsque l'application est en arrière-plan.", + "enableNotifications": "Activer les Notifications", + "checkingPermissions": "Vérification des autorisations...", + "alertDistance": "Distance d'alerte : ", + "meters": "mètres", + "rangeInfo": "Plage : {}-{} mètres (par défaut : {})" + }, "node": { "title": "Nœud #{}", "tagSheetTitle": "Balises du Dispositif", diff --git a/lib/localizations/it.json b/lib/localizations/it.json index 30aeb49..e6caef9 100644 --- a/lib/localizations/it.json +++ b/lib/localizations/it.json @@ -45,6 +45,19 @@ "advancedSettingsSubtitle": "Impostazioni di prestazioni, avvisi e fornitori di tessere", "proximityAlerts": "Avvisi di Prossimità" }, + "proximityAlerts": { + "getNotified": "Ricevi notifiche quando ti avvicini a dispositivi di sorveglianza", + "batteryUsage": "Utilizza batteria extra per il monitoraggio continuo della posizione", + "notificationsEnabled": "✓ Notifiche abilitate", + "notificationsDisabled": "⚠ Notifiche disabilitate", + "permissionRequired": "Autorizzazione notifica richiesta", + "permissionExplanation": "Le notifiche push sono disabilitate. Vedrai solo avvisi nell'app e non sarai notificato quando l'app è in background.", + "enableNotifications": "Abilita Notifiche", + "checkingPermissions": "Controllo autorizzazioni...", + "alertDistance": "Distanza di avviso: ", + "meters": "metri", + "rangeInfo": "Intervallo: {}-{} metri (predefinito: {})" + }, "node": { "title": "Nodo #{}", "tagSheetTitle": "Tag Dispositivo di Sorveglianza", diff --git a/lib/localizations/pt.json b/lib/localizations/pt.json index 846851b..2ee1ae2 100644 --- a/lib/localizations/pt.json +++ b/lib/localizations/pt.json @@ -45,6 +45,19 @@ "advancedSettingsSubtitle": "Configurações de desempenho, alertas e provedores de mapas", "proximityAlerts": "Alertas de Proximidade" }, + "proximityAlerts": { + "getNotified": "Receba notificações ao se aproximar de dispositivos de vigilância", + "batteryUsage": "Usa bateria extra para monitoramento contínuo de localização", + "notificationsEnabled": "✓ Notificações habilitadas", + "notificationsDisabled": "⚠ Notificações desabilitadas", + "permissionRequired": "Permissão de notificação necessária", + "permissionExplanation": "Notificações push estão desabilitadas. Você só verá alertas dentro do app e não será notificado quando o app estiver em segundo plano.", + "enableNotifications": "Habilitar Notificações", + "checkingPermissions": "Verificando permissões...", + "alertDistance": "Distância de alerta: ", + "meters": "metros", + "rangeInfo": "Faixa: {}-{} metros (padrão: {})" + }, "node": { "title": "Nó #{}", "tagSheetTitle": "Tags do Dispositivo de Vigilância", diff --git a/lib/localizations/zh.json b/lib/localizations/zh.json index c1c6372..93d4a30 100644 --- a/lib/localizations/zh.json +++ b/lib/localizations/zh.json @@ -45,6 +45,19 @@ "advancedSettingsSubtitle": "性能、警报和地图提供商设置", "proximityAlerts": "邻近警报" }, + "proximityAlerts": { + "getNotified": "接近监控设备时接收通知", + "batteryUsage": "使用额外电量进行连续位置监控", + "notificationsEnabled": "✓ 通知已启用", + "notificationsDisabled": "⚠ 通知已禁用", + "permissionRequired": "需要通知权限", + "permissionExplanation": "推送通知已禁用。您只会看到应用内警报,当应用在后台时不会收到通知。", + "enableNotifications": "启用通知", + "checkingPermissions": "检查权限中...", + "alertDistance": "警报距离:", + "meters": "米", + "rangeInfo": "范围:{}-{} 米(默认:{})" + }, "node": { "title": "节点 #{}", "tagSheetTitle": "监控设备标签", diff --git a/lib/screens/settings/sections/proximity_alerts_section.dart b/lib/screens/settings/sections/proximity_alerts_section.dart index 59b2ace..675af42 100644 --- a/lib/screens/settings/sections/proximity_alerts_section.dart +++ b/lib/screens/settings/sections/proximity_alerts_section.dart @@ -95,10 +95,10 @@ class _ProximityAlertsSectionState extends State { // Enable/disable toggle SwitchListTile( - title: const Text('Get notified when approaching surveillance devices'), + title: Text(locService.t('proximityAlerts.getNotified')), subtitle: Text( - 'Uses extra battery for continuous location monitoring\n' - '${_notificationsEnabled ? "✓ Notifications enabled" : "⚠ Notifications disabled"}', + '${locService.t('proximityAlerts.batteryUsage')}\n' + '${_notificationsEnabled ? locService.t('proximityAlerts.notificationsEnabled') : locService.t('proximityAlerts.notificationsDisabled')}', style: const TextStyle(fontSize: 12), ), value: appState.proximityAlertsEnabled, @@ -129,22 +129,22 @@ class _ProximityAlertsSectionState extends State { children: [ Icon(Icons.notifications_off, color: Colors.orange, size: 20), const SizedBox(width: 8), - const Text( - 'Notification permission required', - style: TextStyle(fontWeight: FontWeight.w600), + Text( + locService.t('proximityAlerts.permissionRequired'), + style: const TextStyle(fontWeight: FontWeight.w600), ), ], ), const SizedBox(height: 8), - const Text( - 'Push notifications are disabled. You\'ll only see in-app alerts and won\'t be notified when the app is in background.', - style: TextStyle(fontSize: 12), + Text( + locService.t('proximityAlerts.permissionExplanation'), + style: const TextStyle(fontSize: 12), ), const SizedBox(height: 8), ElevatedButton.icon( onPressed: _requestNotificationPermissions, icon: const Icon(Icons.settings, size: 16), - label: const Text('Enable Notifications'), + label: Text(locService.t('proximityAlerts.enableNotifications')), style: ElevatedButton.styleFrom( minimumSize: const Size(0, 32), textStyle: const TextStyle(fontSize: 12), @@ -166,7 +166,7 @@ class _ProximityAlertsSectionState extends State { child: CircularProgressIndicator(strokeWidth: 2), ), SizedBox(width: 8), - Text('Checking permissions...', style: TextStyle(fontSize: 12)), + Text(locService.t('proximityAlerts.checkingPermissions'), style: const TextStyle(fontSize: 12)), ], ), ], @@ -176,7 +176,7 @@ class _ProximityAlertsSectionState extends State { const SizedBox(height: 12), Row( children: [ - const Text('Alert distance: '), + Text(locService.t('proximityAlerts.alertDistance')), SizedBox( width: 80, child: TextField( @@ -198,12 +198,16 @@ class _ProximityAlertsSectionState extends State { ), ), const SizedBox(width: 8), - const Text('meters'), + Text(locService.t('proximityAlerts.meters')), ], ), const SizedBox(height: 8), Text( - 'Range: $kProximityAlertMinDistance-$kProximityAlertMaxDistance meters (default: $kProximityAlertDefaultDistance)', + locService.t('proximityAlerts.rangeInfo', params: [ + kProximityAlertMinDistance.toString(), + kProximityAlertMaxDistance.toString(), + kProximityAlertDefaultDistance.toString(), + ]), style: Theme.of(context).textTheme.bodySmall?.copyWith( color: Theme.of(context).textTheme.bodySmall?.color?.withOpacity(0.6), ),