i18n(alarm): localize all native notification, channel and chooser texts
Build & Deploy PluriWave / Análisis de código (push) Successful in 40s
Build & Deploy PluriWave / Build APK + AAB release (push) Successful in 2m33s

Centralize every native-side user-facing string in a single
AlarmNotificationStrings store written by Flutter via a new
setNotificationStrings MethodChannel whenever the app locale changes,
and read at notification/channel build time (with English fallbacks)
even when the engine is dead. This replaces the hardcoded Spanish text
in the ringing notification ("Alarma PluriWave", "Posponer", "Detener"),
the pre-notice notification ("Posponer", "Omitir esta vez"), both
notification channels (names + descriptions) and the file-action
choosers ("Abrir carpeta", "Abrir grabación").

The per-alarm preNoticeTemplate/snoozeCountdown template+label args are
dropped from scheduleAlarm and the persisted spec and folded into the
shared store, so a locale change now also relocalizes already-scheduled
alarms. Channels are re-created on each use so their name/description
refresh after a language switch.

Adds alarmRingingNotificationTitle, alarmFire/PreNoticeChannelName,
alarmFire/PreNoticeChannelDescription and openFolder/openRecording
chooser keys across all 13 locales (reusing snoozeAction, stopAlarmAction,
skipNextAction, snoozeAgainAction). Rewrites the template test around
setNotificationStrings. Kotlin is static-reviewed only; no Android build
environment available here.
This commit is contained in:
Javier Bautista Fernández
2026-06-30 15:41:29 +02:00
parent 481944815f
commit ffd09a2179
34 changed files with 639 additions and 144 deletions
+23
View File
@@ -1278,6 +1278,29 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get snoozeAgainAction => 'Erneut schlummern';
@override
String get alarmRingingNotificationTitle => 'PluriWave-Wecker';
@override
String get alarmFireChannelName => 'Klingelnde Wecker';
@override
String get alarmFireChannelDescription =>
'Dringender Ton und Bildschirm, wenn ein Musikwecker klingeln soll';
@override
String get alarmPreNoticeChannelName => 'Wecker-Vorankündigungen';
@override
String get alarmPreNoticeChannelDescription =>
'Lautlose Benachrichtigungen vor dem Wecker';
@override
String get openFolderChooserTitle => 'Ordner öffnen';
@override
String get openRecordingChooserTitle => 'Aufnahme öffnen';
@override
String get eqDeviceEditTitle => 'Gerät bearbeiten';