feat(grabaciones): add recordings library screen

This commit is contained in:
2026-07-28 23:01:33 +02:00
parent c1903623be
commit 589fc54580
23 changed files with 1825 additions and 13 deletions
+22
View File
@@ -209,6 +209,28 @@
}
}
},
"recordingsLibraryTitle": "My recordings",
"recordingsLibraryStorageCaption": "{usedMb} MB of {totalMb} MB used",
"@recordingsLibraryStorageCaption": {
"placeholders": {
"usedMb": {
"type": "int"
},
"totalMb": {
"type": "int"
}
}
},
"recordingsLibraryEmptyTitle": "No recordings yet",
"recordingsLibraryEmptySubtitle": "Recordings you save will appear here.",
"recordingActionRename": "Rename",
"recordingActionShare": "Share",
"recordingActionDelete": "Delete",
"recordingRenameDialogTitle": "Rename recording",
"recordingRenameLabel": "Name",
"recordingRenameEmptyError": "Enter a name",
"recordingDeleteConfirmTitle": "Delete recording?",
"recordingDeleteConfirmMessage": "This can't be undone.",
"stationOrderTitle": "Station order",
"stationOrderByName": "By name",
"stationOrderByQuality": "By quality",
+22
View File
@@ -209,6 +209,28 @@
}
}
},
"recordingsLibraryTitle": "Mis grabaciones",
"recordingsLibraryStorageCaption": "{usedMb} MB de {totalMb} MB usados",
"@recordingsLibraryStorageCaption": {
"placeholders": {
"usedMb": {
"type": "int"
},
"totalMb": {
"type": "int"
}
}
},
"recordingsLibraryEmptyTitle": "Todavía no hay grabaciones",
"recordingsLibraryEmptySubtitle": "Las grabaciones que guardes van a aparecer acá.",
"recordingActionRename": "Renombrar",
"recordingActionShare": "Compartir",
"recordingActionDelete": "Eliminar",
"recordingRenameDialogTitle": "Renombrar grabación",
"recordingRenameLabel": "Nombre",
"recordingRenameEmptyError": "Ingresá un nombre",
"recordingDeleteConfirmTitle": "¿Eliminar grabación?",
"recordingDeleteConfirmMessage": "Esta acción no se puede deshacer.",
"stationOrderTitle": "Orden de emisoras",
"stationOrderByName": "Por nombre",
"stationOrderByQuality": "Por calidad",
+72
View File
@@ -796,6 +796,78 @@ abstract class AppLocalizations {
/// **'Límite de grabación actualizado a {size} MB'**
String recordingsMaxSizeSaved(int size);
/// No description provided for @recordingsLibraryTitle.
///
/// In es, this message translates to:
/// **'Mis grabaciones'**
String get recordingsLibraryTitle;
/// No description provided for @recordingsLibraryStorageCaption.
///
/// In es, this message translates to:
/// **'{usedMb} MB de {totalMb} MB usados'**
String recordingsLibraryStorageCaption(int usedMb, int totalMb);
/// No description provided for @recordingsLibraryEmptyTitle.
///
/// In es, this message translates to:
/// **'Todavía no hay grabaciones'**
String get recordingsLibraryEmptyTitle;
/// No description provided for @recordingsLibraryEmptySubtitle.
///
/// In es, this message translates to:
/// **'Las grabaciones que guardes van a aparecer acá.'**
String get recordingsLibraryEmptySubtitle;
/// No description provided for @recordingActionRename.
///
/// In es, this message translates to:
/// **'Renombrar'**
String get recordingActionRename;
/// No description provided for @recordingActionShare.
///
/// In es, this message translates to:
/// **'Compartir'**
String get recordingActionShare;
/// No description provided for @recordingActionDelete.
///
/// In es, this message translates to:
/// **'Eliminar'**
String get recordingActionDelete;
/// No description provided for @recordingRenameDialogTitle.
///
/// In es, this message translates to:
/// **'Renombrar grabación'**
String get recordingRenameDialogTitle;
/// No description provided for @recordingRenameLabel.
///
/// In es, this message translates to:
/// **'Nombre'**
String get recordingRenameLabel;
/// No description provided for @recordingRenameEmptyError.
///
/// In es, this message translates to:
/// **'Ingresá un nombre'**
String get recordingRenameEmptyError;
/// No description provided for @recordingDeleteConfirmTitle.
///
/// In es, this message translates to:
/// **'¿Eliminar grabación?'**
String get recordingDeleteConfirmTitle;
/// No description provided for @recordingDeleteConfirmMessage.
///
/// In es, this message translates to:
/// **'Esta acción no se puede deshacer.'**
String get recordingDeleteConfirmMessage;
/// No description provided for @stationOrderTitle.
///
/// In es, this message translates to:
+40
View File
@@ -395,6 +395,46 @@ class AppLocalizationsAr extends AppLocalizations {
return 'تم تحديث حد التسجيل إلى $size ميغابايت';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'ترتيب المحطات';
+40
View File
@@ -398,6 +398,46 @@ class AppLocalizationsBn extends AppLocalizations {
return 'রেকর্ডিং সীমা $size MB-এ আপডেট হয়েছে';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'স্টেশনের ক্রম';
+40
View File
@@ -401,6 +401,46 @@ class AppLocalizationsDe extends AppLocalizations {
return 'Aufnahmelimit auf $size MB aktualisiert';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'Senderreihenfolge';
+39
View File
@@ -396,6 +396,45 @@ class AppLocalizationsEn extends AppLocalizations {
return 'Recording limit updated to $size MB';
}
@override
String get recordingsLibraryTitle => 'My recordings';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB of $totalMb MB used';
}
@override
String get recordingsLibraryEmptyTitle => 'No recordings yet';
@override
String get recordingsLibraryEmptySubtitle =>
'Recordings you save will appear here.';
@override
String get recordingActionRename => 'Rename';
@override
String get recordingActionShare => 'Share';
@override
String get recordingActionDelete => 'Delete';
@override
String get recordingRenameDialogTitle => 'Rename recording';
@override
String get recordingRenameLabel => 'Name';
@override
String get recordingRenameEmptyError => 'Enter a name';
@override
String get recordingDeleteConfirmTitle => 'Delete recording?';
@override
String get recordingDeleteConfirmMessage => 'This can\'t be undone.';
@override
String get stationOrderTitle => 'Station order';
+40
View File
@@ -399,6 +399,46 @@ class AppLocalizationsEs extends AppLocalizations {
return 'Límite de grabación actualizado a $size MB';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'Orden de emisoras';
+40
View File
@@ -403,6 +403,46 @@ class AppLocalizationsFr extends AppLocalizations {
return 'Limite denregistrement mise à jour à $size Mo';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'Ordre des stations';
+40
View File
@@ -396,6 +396,46 @@ class AppLocalizationsHi extends AppLocalizations {
return 'रिकॉर्डिंग सीमा $size MB पर अपडेट हुई';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'स्टेशन क्रम';
+40
View File
@@ -397,6 +397,46 @@ class AppLocalizationsId extends AppLocalizations {
return 'Batas rekaman diperbarui menjadi $size MB';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'Urutan stasiun';
+40
View File
@@ -399,6 +399,46 @@ class AppLocalizationsIt extends AppLocalizations {
return 'Limite di registrazione aggiornato a $size MB';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'Ordine emittenti';
+40
View File
@@ -386,6 +386,46 @@ class AppLocalizationsJa extends AppLocalizations {
return '録音上限を $size MB に更新しました';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => '局の並び順';
+40
View File
@@ -398,6 +398,46 @@ class AppLocalizationsPt extends AppLocalizations {
return 'Limite de gravação atualizado para $size MB';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'Ordem das estações';
+40
View File
@@ -399,6 +399,46 @@ class AppLocalizationsRu extends AppLocalizations {
return 'Лимит записи обновлён до $size МБ';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => 'Порядок станций';
+40
View File
@@ -384,6 +384,46 @@ class AppLocalizationsZh extends AppLocalizations {
return '录音限制已更新为 $size MB';
}
@override
String get recordingsLibraryTitle => 'Mis grabaciones';
@override
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
return '$usedMb MB de $totalMb MB usados';
}
@override
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
@override
String get recordingsLibraryEmptySubtitle =>
'Las grabaciones que guardes van a aparecer acá.';
@override
String get recordingActionRename => 'Renombrar';
@override
String get recordingActionShare => 'Compartir';
@override
String get recordingActionDelete => 'Eliminar';
@override
String get recordingRenameDialogTitle => 'Renombrar grabación';
@override
String get recordingRenameLabel => 'Nombre';
@override
String get recordingRenameEmptyError => 'Ingresá un nombre';
@override
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
@override
String get recordingDeleteConfirmMessage =>
'Esta acción no se puede deshacer.';
@override
String get stationOrderTitle => '电台排序';