fix(i18n): localize settings order copy
This commit is contained in:
@@ -572,6 +572,7 @@ class _SeccionEcualizador extends StatelessWidget {
|
||||
return Consumer<EstadoRadio>(
|
||||
builder: (ctx, estado, _) {
|
||||
final disponible = estado.ecualizadorDisponible;
|
||||
final l10n = AppLocalizations.of(ctx);
|
||||
final emisoraActual = estado.emisoraActual;
|
||||
final mostrarModoPorEmisora =
|
||||
emisoraActual != null && estado.emisoraActualEsFavorita;
|
||||
@@ -586,13 +587,13 @@ class _SeccionEcualizador extends StatelessWidget {
|
||||
const Icon(Icons.equalizer),
|
||||
const SizedBox(width: 12),
|
||||
Text(
|
||||
AppLocalizations.of(ctx).equalizerTitle,
|
||||
l10n.equalizerTitle,
|
||||
style: Theme.of(ctx).textTheme.titleMedium,
|
||||
),
|
||||
const Spacer(),
|
||||
Chip(
|
||||
label: Text(
|
||||
estado.ecualizadorActivo ? AppLocalizations.of(ctx).equalizerActive : AppLocalizations.of(ctx).equalizerDisabled,
|
||||
estado.ecualizadorActivo ? l10n.equalizerActive : l10n.equalizerDisabled,
|
||||
),
|
||||
visualDensity: VisualDensity.compact,
|
||||
),
|
||||
@@ -601,11 +602,11 @@ class _SeccionEcualizador extends StatelessWidget {
|
||||
const SizedBox(height: 8),
|
||||
SwitchListTile.adaptive(
|
||||
contentPadding: EdgeInsets.zero,
|
||||
title: Text(AppLocalizations.of(ctx).equalizerEnable),
|
||||
title: Text(l10n.equalizerEnable),
|
||||
subtitle: Text(
|
||||
disponible
|
||||
? 'Los cambios se aplican en tiempo real a la emisora actual.'
|
||||
: 'Se guardan los cambios y se aplicarán cuando Android habilite el efecto.',
|
||||
? l10n.equalizerRealtimeSubtitle
|
||||
: l10n.equalizerPendingSubtitle,
|
||||
),
|
||||
value: estado.ecualizadorActivo,
|
||||
onChanged: estado.cambiarEcualizadorActivo,
|
||||
@@ -614,11 +615,11 @@ class _SeccionEcualizador extends StatelessWidget {
|
||||
const SizedBox(height: 8),
|
||||
SwitchListTile.adaptive(
|
||||
contentPadding: EdgeInsets.zero,
|
||||
title: Text(AppLocalizations.of(ctx).equalizerPerStationTitle),
|
||||
title: Text(l10n.equalizerPerStationTitle),
|
||||
subtitle: Text(
|
||||
usandoEqPropio
|
||||
? AppLocalizations.of(ctx).equalizerPerStationActive(emisoraActual.nombre)
|
||||
: AppLocalizations.of(ctx).equalizerPerStationMain(emisoraActual.nombre),
|
||||
? l10n.equalizerPerStationActive(emisoraActual.nombre)
|
||||
: l10n.equalizerPerStationMain(emisoraActual.nombre),
|
||||
),
|
||||
value: usandoEqPropio,
|
||||
onChanged:
|
||||
@@ -652,6 +653,7 @@ class _SeccionOrdenListas extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final estado = context.watch<EstadoRadio>();
|
||||
final l10n = AppLocalizations.of(context);
|
||||
return PluriGlassSurface(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -661,23 +663,23 @@ class _SeccionOrdenListas extends StatelessWidget {
|
||||
const Icon(Icons.sort_rounded),
|
||||
const SizedBox(width: 12),
|
||||
Text(
|
||||
'Orden de emisoras',
|
||||
l10n.stationOrderTitle,
|
||||
style: Theme.of(context).textTheme.titleMedium,
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SegmentedButton<OrdenEmisoras>(
|
||||
segments: const [
|
||||
segments: [
|
||||
ButtonSegment(
|
||||
value: OrdenEmisoras.nombre,
|
||||
icon: Icon(Icons.sort_by_alpha_rounded),
|
||||
label: Text('Por nombre'),
|
||||
icon: const Icon(Icons.sort_by_alpha_rounded),
|
||||
label: Text(l10n.stationOrderByName),
|
||||
),
|
||||
ButtonSegment(
|
||||
value: OrdenEmisoras.calidad,
|
||||
icon: Icon(Icons.hd_rounded),
|
||||
label: Text('Por calidad'),
|
||||
icon: const Icon(Icons.hd_rounded),
|
||||
label: Text(l10n.stationOrderByQuality),
|
||||
),
|
||||
],
|
||||
selected: {estado.ordenListas},
|
||||
@@ -687,7 +689,7 @@ class _SeccionOrdenListas extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
'Se aplica a favoritos, b?squedas, emisoras cercanas y listados r?pidos.',
|
||||
l10n.stationOrderScopeDescription,
|
||||
style: Theme.of(context).textTheme.bodySmall,
|
||||
),
|
||||
],
|
||||
@@ -837,6 +839,7 @@ class _SeccionEmisoraPreferida extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final estado = context.watch<EstadoRadio>();
|
||||
final l10n = AppLocalizations.of(context);
|
||||
final favoritas = estado.listaFavoritos;
|
||||
final preferida = estado.emisoraPreferida;
|
||||
final opciones = _opciones(estado, preferida);
|
||||
@@ -850,25 +853,23 @@ class _SeccionEmisoraPreferida extends StatelessWidget {
|
||||
const Icon(Icons.radio_rounded),
|
||||
const SizedBox(width: 12),
|
||||
Text(
|
||||
AppLocalizations.of(context).preferredStationTitle,
|
||||
l10n.preferredStationTitle,
|
||||
style: Theme.of(context).textTheme.titleMedium,
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
'Se preselecciona al crear alarmas y puede iniciarse como reproducción rápida.',
|
||||
l10n.preferredStationDescription,
|
||||
style: Theme.of(context).textTheme.bodySmall,
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
if (opciones.isEmpty)
|
||||
const ListTile(
|
||||
ListTile(
|
||||
contentPadding: EdgeInsets.zero,
|
||||
leading: Icon(Icons.info_outline_rounded),
|
||||
title: Text('Todavía no hay emisoras disponibles'),
|
||||
subtitle: Text(
|
||||
'Guardá favoritas o cargá emisoras para elegir una preferida.',
|
||||
),
|
||||
leading: const Icon(Icons.info_outline_rounded),
|
||||
title: Text(l10n.preferredStationNoStationsTitle),
|
||||
subtitle: Text(l10n.preferredStationNoStationsSubtitle),
|
||||
)
|
||||
else
|
||||
DropdownButtonFormField<String>(
|
||||
@@ -876,8 +877,8 @@ class _SeccionEmisoraPreferida extends StatelessWidget {
|
||||
decoration: InputDecoration(
|
||||
labelText:
|
||||
favoritas.isEmpty
|
||||
? 'Fallback automático'
|
||||
: 'Favorita por defecto',
|
||||
? l10n.preferredStationAutomaticFallback
|
||||
: l10n.preferredStationDefaultFavorite,
|
||||
),
|
||||
items: [
|
||||
for (final emisora in opciones)
|
||||
@@ -900,15 +901,15 @@ class _SeccionEmisoraPreferida extends StatelessWidget {
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
favoritas.any((e) => e.uuid == preferida.uuid)
|
||||
? 'Preferida actual: ${preferida.nombre}'
|
||||
: 'Sin favoritas: usando automáticamente ${preferida.nombre}',
|
||||
? l10n.preferredStationCurrent(preferida.nombre)
|
||||
: l10n.preferredStationAutoUsing(preferida.nombre),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Align(
|
||||
alignment: Alignment.centerLeft,
|
||||
child: FilledButton.tonalIcon(
|
||||
icon: const Icon(Icons.play_arrow_rounded),
|
||||
label: Text(AppLocalizations.of(context).preferredStationPlay),
|
||||
label: Text(l10n.preferredStationPlay),
|
||||
onPressed:
|
||||
() => context.read<EstadoRadio>().reproducirEmisoraPreferida(),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user