fix(i18n): normalize translations and fallbacks
This commit is contained in:
+25
-6
@@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import 'estado/estado_radio.dart';
|
||||
import 'estado/estado_alarmas.dart';
|
||||
import 'estado/estado_idioma.dart';
|
||||
import 'l10n/display_names.dart';
|
||||
import 'l10n/gen/app_localizations.dart';
|
||||
import 'modelos/alarma_musical.dart';
|
||||
import 'pantallas/pantalla_alarmas.dart';
|
||||
@@ -236,7 +237,9 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
|
||||
content: Text(
|
||||
AppLocalizations.of(
|
||||
context,
|
||||
).skipCurrentAlarmExecution(alarma.nombre),
|
||||
).skipCurrentAlarmExecution(
|
||||
localizedAlarmName(AppLocalizations.of(context), alarma.nombre),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -355,7 +358,10 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
Text(
|
||||
_formatearDuracionTimer(restante),
|
||||
_formatearDuracionTimer(
|
||||
AppLocalizations.of(ctx),
|
||||
restante,
|
||||
),
|
||||
style:
|
||||
Theme.of(ctx).textTheme.headlineMedium,
|
||||
),
|
||||
@@ -385,6 +391,7 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
|
||||
ActionChip(
|
||||
label: Text(
|
||||
_formatearDuracionTimer(
|
||||
AppLocalizations.of(ctx),
|
||||
Duration(seconds: segundos),
|
||||
),
|
||||
),
|
||||
@@ -431,17 +438,29 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
|
||||
}
|
||||
}
|
||||
|
||||
String _formatearDuracionTimer(Duration duracion) {
|
||||
String _formatearDuracionTimer(
|
||||
AppLocalizations l10n,
|
||||
Duration duracion,
|
||||
) {
|
||||
final horas = duracion.inHours;
|
||||
final minutos = duracion.inMinutes.remainder(60);
|
||||
final segundos = duracion.inSeconds.remainder(60);
|
||||
if (horas > 0) {
|
||||
return '${horas}h ${minutos.toString().padLeft(2, '0')}m ${segundos.toString().padLeft(2, '0')}s';
|
||||
return l10n.durationHoursMinutesSeconds(
|
||||
horas,
|
||||
minutos.toString().padLeft(2, '0'),
|
||||
segundos.toString().padLeft(2, '0'),
|
||||
);
|
||||
}
|
||||
if (minutos > 0) {
|
||||
return segundos == 0 ? '$minutos min' : '${minutos}m ${segundos}s';
|
||||
return segundos == 0
|
||||
? l10n.durationMinutesOnly(minutos)
|
||||
: l10n.durationMinutesSeconds(
|
||||
minutos,
|
||||
segundos.toString().padLeft(2, '0'),
|
||||
);
|
||||
}
|
||||
return '$segundos s';
|
||||
return l10n.durationSecondsOnly(segundos);
|
||||
}
|
||||
|
||||
class _TimerPersonalizadoSheet extends StatefulWidget {
|
||||
|
||||
Reference in New Issue
Block a user