fix(i18n): localize settings order copy
This commit is contained in:
@@ -33,17 +33,18 @@
|
||||
|
||||
## Búsqueda de emisoras
|
||||
|
||||
- [ ] Añadir filtro de calidad mínima de reproducción en kbps en el buscador de emisoras.
|
||||
- [x] Añadir filtro de calidad mínima de reproducción en kbps en el buscador de emisoras.
|
||||
|
||||
## Favoritos
|
||||
|
||||
- [ ] Revisar el sistema de guardado de favoritos en instalaciones nuevas y migradas: inicializaci?n de SQLite, creaci?n de ruta/base de datos, migraciones de columnas y refresco de estado tras guardar. Reporte: en un m?vil no se est?n guardando favoritos.
|
||||
- [ ] A?adir tests de regresi?n para favoritos en base de datos real/migrada, incluyendo esquemas antiguos y primera instalaci?n limpia.
|
||||
- [ ] Revisar el sistema de guardado de favoritos en instalaciones nuevas y migradas: inicialización de SQLite, creación de ruta/base de datos, migraciones de columnas y refresco de estado tras guardar. Reporte: en un móvil no se están guardando favoritos.
|
||||
- [ ] Añadir tests de regresión para favoritos en base de datos real/migrada, incluyendo esquemas antiguos y primera instalación limpia.
|
||||
|
||||
## Agrupaciones de favoritos
|
||||
|
||||
- [ ] Permitir crear listas de favoritos con nombre corto configurable por el usuario desde Ajustes.
|
||||
- [ ] Mantener siempre un grupo interno por defecto traducible llamado "Sin asignar", no editable y no borrable.
|
||||
- [ ] Gestionar desde la vista Favoritos qu? emisoras pertenecen a cada agrupaci?n/lista.
|
||||
- [x] Dise?ar migraci?n SQLite base para asociar favoritos existentes al grupo "Sin asignar" sin perder datos.
|
||||
- [ ] Completar UI en Ajustes para crear, editar y borrar listas de favoritos.
|
||||
- [ ] Completar UI en Favoritos para mover emisoras entre listas.
|
||||
|
||||
- [x] Permitir crear listas de favoritos con nombre corto configurable por el usuario desde Ajustes.
|
||||
- [x] Mantener siempre un grupo interno por defecto traducible llamado "Sin asignar", no editable y no borrable.
|
||||
- [x] Gestionar desde la vista Favoritos qué emisoras pertenecen a cada agrupación/lista.
|
||||
- [x] Diseñar migración SQLite base para asociar favoritos existentes al grupo "Sin asignar" sin perder datos.
|
||||
- [x] Completar UI en Ajustes para crear, editar y borrar listas de favoritos.
|
||||
- [x] Completar UI en Favoritos para mover emisoras entre listas.
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
+11
-7
@@ -176,13 +176,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Orden de emisoras",
|
||||
"stationOrderByName": "Por nombre",
|
||||
"stationOrderByQuality": "Por calidad",
|
||||
"stationOrderScopeDescription": "Se aplica a favoritos, búsquedas, emisoras cercanas y listados rápidos.",
|
||||
"favoriteGroupsTitle": "Listas de favoritos",
|
||||
"favoriteGroupsDescription": "Cre? listas cortas para organizar tus emisoras guardadas.",
|
||||
"favoriteGroupsAdd": "A?adir lista",
|
||||
"favoriteGroupsDescription": "Creá listas cortas para organizar tus emisoras guardadas.",
|
||||
"favoriteGroupsAdd": "Añadir lista",
|
||||
"favoriteGroupsEdit": "Editar lista",
|
||||
"favoriteGroupsDelete": "Eliminar lista",
|
||||
"favoriteGroupsNameLabel": "Nombre de la lista",
|
||||
"favoriteGroupsNameTooLong": "M?ximo 28 caracteres.",
|
||||
"favoriteGroupsNameTooLong": "Máximo 28 caracteres.",
|
||||
"favoriteGroupsUnassigned": "Sin asignar",
|
||||
"favoriteGroupsProtectedHint": "Lista por defecto: no se puede editar ni borrar.",
|
||||
"favoriteGroupsCreated": "Lista creada",
|
||||
@@ -192,10 +196,10 @@
|
||||
"favoriteGroupsAssignSubtitle": "Lista actual: {groupName}",
|
||||
"favoriteGroupsAssigned": "{stationName} movida a {groupName}",
|
||||
"favoritesTitle": "Favoritos",
|
||||
"favoritesEmptyTitle": "Sin favoritos a?n",
|
||||
"favoritesEmptySubtitle": "Toc? el coraz?n en cualquier emisora para guardarla en tu colecci?n.",
|
||||
"favoritesHeaderSubtitle": "Organiz? tu colecci?n por listas y dej? cerca las radios importantes.",
|
||||
"favoritesCollection": "Colecci?n",
|
||||
"favoritesEmptyTitle": "Sin favoritos aún",
|
||||
"favoritesEmptySubtitle": "Tocá el corazón en cualquier emisora para guardarla en tu colección.",
|
||||
"favoritesHeaderSubtitle": "Organizá tu colección por listas y dejá cerca las radios importantes.",
|
||||
"favoritesCollection": "Colección",
|
||||
"favoritesSavedCount": "{count} guardadas",
|
||||
"favoritesRemoveTooltip": "Eliminar de favoritos",
|
||||
"favoritesRemovedMessage": "{stationName} eliminada de favoritos",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
|
||||
@@ -732,6 +732,30 @@ abstract class AppLocalizations {
|
||||
/// **'Límite de grabación actualizado a {size} MB'**
|
||||
String recordingsMaxSizeSaved(int size);
|
||||
|
||||
/// No description provided for @stationOrderTitle.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Orden de emisoras'**
|
||||
String get stationOrderTitle;
|
||||
|
||||
/// No description provided for @stationOrderByName.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Por nombre'**
|
||||
String get stationOrderByName;
|
||||
|
||||
/// No description provided for @stationOrderByQuality.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Por calidad'**
|
||||
String get stationOrderByQuality;
|
||||
|
||||
/// No description provided for @stationOrderScopeDescription.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Se aplica a favoritos, búsquedas, emisoras cercanas y listados rápidos.'**
|
||||
String get stationOrderScopeDescription;
|
||||
|
||||
/// No description provided for @favoriteGroupsTitle.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
@@ -741,13 +765,13 @@ abstract class AppLocalizations {
|
||||
/// No description provided for @favoriteGroupsDescription.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Cre? listas cortas para organizar tus emisoras guardadas.'**
|
||||
/// **'Creá listas cortas para organizar tus emisoras guardadas.'**
|
||||
String get favoriteGroupsDescription;
|
||||
|
||||
/// No description provided for @favoriteGroupsAdd.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'A?adir lista'**
|
||||
/// **'Añadir lista'**
|
||||
String get favoriteGroupsAdd;
|
||||
|
||||
/// No description provided for @favoriteGroupsEdit.
|
||||
@@ -771,7 +795,7 @@ abstract class AppLocalizations {
|
||||
/// No description provided for @favoriteGroupsNameTooLong.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'M?ximo 28 caracteres.'**
|
||||
/// **'Máximo 28 caracteres.'**
|
||||
String get favoriteGroupsNameTooLong;
|
||||
|
||||
/// No description provided for @favoriteGroupsUnassigned.
|
||||
@@ -831,25 +855,25 @@ abstract class AppLocalizations {
|
||||
/// No description provided for @favoritesEmptyTitle.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Sin favoritos a?n'**
|
||||
/// **'Sin favoritos aún'**
|
||||
String get favoritesEmptyTitle;
|
||||
|
||||
/// No description provided for @favoritesEmptySubtitle.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Toc? el coraz?n en cualquier emisora para guardarla en tu colecci?n.'**
|
||||
/// **'Tocá el corazón en cualquier emisora para guardarla en tu colección.'**
|
||||
String get favoritesEmptySubtitle;
|
||||
|
||||
/// No description provided for @favoritesHeaderSubtitle.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Organiz? tu colecci?n por listas y dej? cerca las radios importantes.'**
|
||||
/// **'Organizá tu colección por listas y dejá cerca las radios importantes.'**
|
||||
String get favoritesHeaderSubtitle;
|
||||
|
||||
/// No description provided for @favoritesCollection.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Colecci?n'**
|
||||
/// **'Colección'**
|
||||
String get favoritesCollection;
|
||||
|
||||
/// No description provided for @favoritesSavedCount.
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsAr extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsBn extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -357,15 +357,28 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
return 'Límite de grabación actualizado a $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Orden de emisoras';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'Por nombre';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'Por calidad';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Se aplica a favoritos, búsquedas, emisoras cercanas y listados rápidos.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Listas de favoritos';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsDescription =>
|
||||
'Cre? listas cortas para organizar tus emisoras guardadas.';
|
||||
'Creá listas cortas para organizar tus emisoras guardadas.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsAdd => 'A?adir lista';
|
||||
String get favoriteGroupsAdd => 'Añadir lista';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsEdit => 'Editar lista';
|
||||
@@ -377,7 +390,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get favoriteGroupsNameLabel => 'Nombre de la lista';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsNameTooLong => 'M?ximo 28 caracteres.';
|
||||
String get favoriteGroupsNameTooLong => 'Máximo 28 caracteres.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsUnassigned => 'Sin asignar';
|
||||
@@ -413,18 +426,18 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String get favoritesTitle => 'Favoritos';
|
||||
|
||||
@override
|
||||
String get favoritesEmptyTitle => 'Sin favoritos a?n';
|
||||
String get favoritesEmptyTitle => 'Sin favoritos aún';
|
||||
|
||||
@override
|
||||
String get favoritesEmptySubtitle =>
|
||||
'Toc? el coraz?n en cualquier emisora para guardarla en tu colecci?n.';
|
||||
'Tocá el corazón en cualquier emisora para guardarla en tu colección.';
|
||||
|
||||
@override
|
||||
String get favoritesHeaderSubtitle =>
|
||||
'Organiz? tu colecci?n por listas y dej? cerca las radios importantes.';
|
||||
'Organizá tu colección por listas y dejá cerca las radios importantes.';
|
||||
|
||||
@override
|
||||
String get favoritesCollection => 'Colecci?n';
|
||||
String get favoritesCollection => 'Colección';
|
||||
|
||||
@override
|
||||
String favoritesSavedCount(int count) {
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsHi extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -353,6 +353,19 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -354,6 +354,19 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
return 'Recording limit updated to $size MB';
|
||||
}
|
||||
|
||||
@override
|
||||
String get stationOrderTitle => 'Station order';
|
||||
|
||||
@override
|
||||
String get stationOrderByName => 'By name';
|
||||
|
||||
@override
|
||||
String get stationOrderByQuality => 'By quality';
|
||||
|
||||
@override
|
||||
String get stationOrderScopeDescription =>
|
||||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||||
|
||||
@override
|
||||
String get favoriteGroupsTitle => 'Favorite lists';
|
||||
|
||||
|
||||
@@ -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