feat(i18n): expand supported languages
This commit is contained in:
@@ -8,6 +8,8 @@
|
||||
- [ ] Repasar absolutamente todos los literales de la aplicación en todas las pantallas, componentes, servicios con mensajes visibles y notificaciones.
|
||||
- [ ] Soportar formatos locales de fecha, hora, números y duración usando helpers centralizados.
|
||||
- [ ] Resolver correctamente singular/plural y variantes por cantidad, por ejemplo `1 emisora` vs `2 emisoras`.
|
||||
- [ ] Preparar traducciones para la mayoría de idiomas más usados del planeta.
|
||||
- [x] Añadir soporte inicial para un conjunto amplio de idiomas muy hablados: inglés, español, chino, hindi, árabe, portugués, francés, ruso, alemán, japonés, indonesio, bengalí e italiano.
|
||||
- [ ] Revisar profesionalmente todas las traducciones nuevas con hablantes nativos o servicio especializado antes de considerarlas definitivas.
|
||||
- [ ] Preparar traducciones adicionales si se decide ampliar más allá del conjunto inicial.
|
||||
- [ ] Revisar la aplicación de Farolero como referencia para detectar el conjunto de idiomas que nos interesa mantener.
|
||||
- [ ] Verificar que no queda ningún literal hardcodeado fuera del sistema de traducciones.
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "ar",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "????????",
|
||||
"navSearch": "???",
|
||||
"navFavorites": "???????",
|
||||
"navAlarms": "????????",
|
||||
"navSettings": "?????????",
|
||||
"actionOk": "?????",
|
||||
"sleepTimer": "???? ?????",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "?????????",
|
||||
"settingsSubtitle": "???? ???? ?? ????? ?????? ????????? ???????? ???????.",
|
||||
"languageSectionTitle": "?????",
|
||||
"languageSectionDescription": "???? ??? ??? ???????.",
|
||||
"languageSystemDefault": "??????",
|
||||
"languageSpanish": "?????????",
|
||||
"languageEnglish": "??????????",
|
||||
"languageUpdated": "?? ????? ?????: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "?? ????? ?????: ??????",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "?????",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "bn",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "???",
|
||||
"navSearch": "????",
|
||||
"navFavorites": "??????",
|
||||
"navAlarms": "?????????",
|
||||
"navSettings": "??????",
|
||||
"actionOk": "??? ???",
|
||||
"sleepTimer": "????? ??????",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "??????",
|
||||
"settingsSubtitle": "????, ??????? ??? ?????? ???????? ??????? ???????????",
|
||||
"languageSectionTitle": "????",
|
||||
"languageSectionDescription": "??????? ???????? ???? ???? ????",
|
||||
"languageSystemDefault": "???????",
|
||||
"languageSpanish": "?????????",
|
||||
"languageEnglish": "??????",
|
||||
"languageUpdated": "???? ????? ??????: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "???? ????? ??????: ???????",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "?????",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "de",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "Start",
|
||||
"navSearch": "Suche",
|
||||
"navFavorites": "Favoriten",
|
||||
"navAlarms": "Alarme",
|
||||
"navSettings": "Einstellungen",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "Sleep-Timer",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "Einstellungen",
|
||||
"settingsSubtitle": "Feinsteuerung f?r Sound, Backups und eigene Sender.",
|
||||
"languageSectionTitle": "Sprache",
|
||||
"languageSectionDescription": "W?hle die Anzeigesprache der App.",
|
||||
"languageSystemDefault": "System",
|
||||
"languageSpanish": "Spanisch",
|
||||
"languageEnglish": "Englisch",
|
||||
"languageUpdated": "Sprache aktualisiert: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "Sprache aktualisiert: System",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "Abbrechen",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "fr",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "Accueil",
|
||||
"navSearch": "Recherche",
|
||||
"navFavorites": "Favoris",
|
||||
"navAlarms": "Alarmes",
|
||||
"navSettings": "R?glages",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "Minuteur de sommeil",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "R?glages",
|
||||
"settingsSubtitle": "Contr?le fin du son, sauvegardes et stations personnalis?es.",
|
||||
"languageSectionTitle": "Langue",
|
||||
"languageSectionDescription": "Choisissez la langue d?affichage de l?application.",
|
||||
"languageSystemDefault": "Syst?me",
|
||||
"languageSpanish": "Espagnol",
|
||||
"languageEnglish": "Anglais",
|
||||
"languageUpdated": "Langue mise ? jour : {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "Langue mise ? jour : Syst?me",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "Annuler",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "hi",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "???",
|
||||
"navSearch": "???",
|
||||
"navFavorites": "???????",
|
||||
"navAlarms": "??????",
|
||||
"navSettings": "????????",
|
||||
"actionOk": "???",
|
||||
"sleepTimer": "????? ?????",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "????????",
|
||||
"settingsSubtitle": "?????, ????? ?? ????? ???????? ?? ??????? ?????????",
|
||||
"languageSectionTitle": "????",
|
||||
"languageSectionDescription": "?? ?? ???? ??????",
|
||||
"languageSystemDefault": "??????",
|
||||
"languageSpanish": "??????",
|
||||
"languageEnglish": "?????????",
|
||||
"languageUpdated": "???? ???? ??: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "???? ???? ??: ??????",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "???? ????",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "id",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "Beranda",
|
||||
"navSearch": "Cari",
|
||||
"navFavorites": "Favorit",
|
||||
"navAlarms": "Alarm",
|
||||
"navSettings": "Pengaturan",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "Timer tidur",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "Pengaturan",
|
||||
"settingsSubtitle": "Kontrol suara, cadangan, dan stasiun khusus secara detail.",
|
||||
"languageSectionTitle": "Bahasa",
|
||||
"languageSectionDescription": "Pilih bahasa tampilan aplikasi.",
|
||||
"languageSystemDefault": "Sistem",
|
||||
"languageSpanish": "Spanyol",
|
||||
"languageEnglish": "Inggris",
|
||||
"languageUpdated": "Bahasa diperbarui: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "Bahasa diperbarui: Sistem",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "Batal",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "it",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "Home",
|
||||
"navSearch": "Cerca",
|
||||
"navFavorites": "Preferiti",
|
||||
"navAlarms": "Sveglie",
|
||||
"navSettings": "Impostazioni",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "Timer sonno",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "Impostazioni",
|
||||
"settingsSubtitle": "Controllo fine del suono, backup e stazioni personalizzate.",
|
||||
"languageSectionTitle": "Lingua",
|
||||
"languageSectionDescription": "Scegli la lingua di visualizzazione dell?app.",
|
||||
"languageSystemDefault": "Sistema",
|
||||
"languageSpanish": "Spagnolo",
|
||||
"languageEnglish": "Inglese",
|
||||
"languageUpdated": "Lingua aggiornata: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "Lingua aggiornata: Sistema",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "Annulla",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "ja",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "???",
|
||||
"navSearch": "??",
|
||||
"navFavorites": "?????",
|
||||
"navAlarms": "????",
|
||||
"navSettings": "??",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "????????",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "??",
|
||||
"settingsSubtitle": "?????????????????????????",
|
||||
"languageSectionTitle": "??",
|
||||
"languageSectionDescription": "???????????????",
|
||||
"languageSystemDefault": "????",
|
||||
"languageSpanish": "?????",
|
||||
"languageEnglish": "??",
|
||||
"languageUpdated": "?????????: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "?????????: ????",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "?????",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "pt",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "In?cio",
|
||||
"navSearch": "Buscar",
|
||||
"navFavorites": "Favoritos",
|
||||
"navAlarms": "Alarmes",
|
||||
"navSettings": "Defini??es",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "Timer de sono",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "Defini??es",
|
||||
"settingsSubtitle": "Controle fino de som, backups e esta??es personalizadas.",
|
||||
"languageSectionTitle": "Idioma",
|
||||
"languageSectionDescription": "Escolha como o idioma do app ? exibido.",
|
||||
"languageSystemDefault": "Sistema",
|
||||
"languageSpanish": "Espanhol",
|
||||
"languageEnglish": "Ingl?s",
|
||||
"languageUpdated": "Idioma atualizado: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "Idioma atualizado: Sistema",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "Cancelar",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "ru",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "???????",
|
||||
"navSearch": "?????",
|
||||
"navFavorites": "?????????",
|
||||
"navAlarms": "??????????",
|
||||
"navSettings": "?????????",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "?????? ???",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "?????????",
|
||||
"settingsSubtitle": "?????? ????????? ?????, ????????? ????? ? ???????????????? ???????.",
|
||||
"languageSectionTitle": "????",
|
||||
"languageSectionDescription": "???????? ???? ?????????? ??????????.",
|
||||
"languageSystemDefault": "???????",
|
||||
"languageSpanish": "?????????",
|
||||
"languageEnglish": "??????????",
|
||||
"languageUpdated": "???? ????????: {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "???? ????????: ???????",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "??????",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"@@locale": "zh",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "??",
|
||||
"navSearch": "??",
|
||||
"navFavorites": "??",
|
||||
"navAlarms": "??",
|
||||
"navSettings": "??",
|
||||
"actionOk": "??",
|
||||
"sleepTimer": "?????",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "??",
|
||||
"settingsSubtitle": "?????????????????",
|
||||
"languageSectionTitle": "??",
|
||||
"languageSectionDescription": "?????????",
|
||||
"languageSystemDefault": "??",
|
||||
"languageSpanish": "????",
|
||||
"languageEnglish": "??",
|
||||
"languageUpdated": "??????{languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "????????",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave ? backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"dash": "?",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationActive": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@equalizerPerStationMain": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationCurrent": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@preferredStationAutoUsing": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"@backupShareText": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"@backupExportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@backupImportError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"@appVersionSubtitle": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
},
|
||||
"cancelAction": "??",
|
||||
"equalizerTitle": "Equalizer"
|
||||
}
|
||||
@@ -5,8 +5,19 @@ import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
|
||||
import 'app_localizations_ar.dart';
|
||||
import 'app_localizations_bn.dart';
|
||||
import 'app_localizations_de.dart';
|
||||
import 'app_localizations_en.dart';
|
||||
import 'app_localizations_es.dart';
|
||||
import 'app_localizations_fr.dart';
|
||||
import 'app_localizations_hi.dart';
|
||||
import 'app_localizations_id.dart';
|
||||
import 'app_localizations_it.dart';
|
||||
import 'app_localizations_ja.dart';
|
||||
import 'app_localizations_pt.dart';
|
||||
import 'app_localizations_ru.dart';
|
||||
import 'app_localizations_zh.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
@@ -94,8 +105,19 @@ abstract class AppLocalizations {
|
||||
|
||||
/// A list of this localizations delegate's supported locales.
|
||||
static const List<Locale> supportedLocales = <Locale>[
|
||||
Locale('ar'),
|
||||
Locale('bn'),
|
||||
Locale('de'),
|
||||
Locale('en'),
|
||||
Locale('es'),
|
||||
Locale('fr'),
|
||||
Locale('hi'),
|
||||
Locale('id'),
|
||||
Locale('it'),
|
||||
Locale('ja'),
|
||||
Locale('pt'),
|
||||
Locale('ru'),
|
||||
Locale('zh'),
|
||||
];
|
||||
|
||||
/// No description provided for @appTitle.
|
||||
@@ -679,8 +701,21 @@ class _AppLocalizationsDelegate
|
||||
}
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) =>
|
||||
<String>['en', 'es'].contains(locale.languageCode);
|
||||
bool isSupported(Locale locale) => <String>[
|
||||
'ar',
|
||||
'bn',
|
||||
'de',
|
||||
'en',
|
||||
'es',
|
||||
'fr',
|
||||
'hi',
|
||||
'id',
|
||||
'it',
|
||||
'ja',
|
||||
'pt',
|
||||
'ru',
|
||||
'zh',
|
||||
].contains(locale.languageCode);
|
||||
|
||||
@override
|
||||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||||
@@ -689,10 +724,32 @@ class _AppLocalizationsDelegate
|
||||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||||
// Lookup logic when only language code is specified.
|
||||
switch (locale.languageCode) {
|
||||
case 'ar':
|
||||
return AppLocalizationsAr();
|
||||
case 'bn':
|
||||
return AppLocalizationsBn();
|
||||
case 'de':
|
||||
return AppLocalizationsDe();
|
||||
case 'en':
|
||||
return AppLocalizationsEn();
|
||||
case 'es':
|
||||
return AppLocalizationsEs();
|
||||
case 'fr':
|
||||
return AppLocalizationsFr();
|
||||
case 'hi':
|
||||
return AppLocalizationsHi();
|
||||
case 'id':
|
||||
return AppLocalizationsId();
|
||||
case 'it':
|
||||
return AppLocalizationsIt();
|
||||
case 'ja':
|
||||
return AppLocalizationsJa();
|
||||
case 'pt':
|
||||
return AppLocalizationsPt();
|
||||
case 'ru':
|
||||
return AppLocalizationsRu();
|
||||
case 'zh':
|
||||
return AppLocalizationsZh();
|
||||
}
|
||||
|
||||
throw FlutterError(
|
||||
|
||||
@@ -0,0 +1,328 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Arabic (`ar`).
|
||||
class AppLocalizationsAr extends AppLocalizations {
|
||||
AppLocalizationsAr([String locale = 'ar']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => '????????';
|
||||
|
||||
@override
|
||||
String get navSearch => '???';
|
||||
|
||||
@override
|
||||
String get navFavorites => '???????';
|
||||
|
||||
@override
|
||||
String get navAlarms => '????????';
|
||||
|
||||
@override
|
||||
String get navSettings => '?????????';
|
||||
|
||||
@override
|
||||
String get actionOk => '?????';
|
||||
|
||||
@override
|
||||
String get sleepTimer => '???? ?????';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => '?????????';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'???? ???? ?? ????? ?????? ????????? ???????? ???????.';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => '?????';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription => '???? ??? ??? ???????.';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => '??????';
|
||||
|
||||
@override
|
||||
String get languageSpanish => '?????????';
|
||||
|
||||
@override
|
||||
String get languageEnglish => '??????????';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return '?? ????? ?????: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => '?? ????? ?????: ??????';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => '?????';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,328 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Bengali Bangla (`bn`).
|
||||
class AppLocalizationsBn extends AppLocalizations {
|
||||
AppLocalizationsBn([String locale = 'bn']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => '???';
|
||||
|
||||
@override
|
||||
String get navSearch => '????';
|
||||
|
||||
@override
|
||||
String get navFavorites => '??????';
|
||||
|
||||
@override
|
||||
String get navAlarms => '?????????';
|
||||
|
||||
@override
|
||||
String get navSettings => '??????';
|
||||
|
||||
@override
|
||||
String get actionOk => '??? ???';
|
||||
|
||||
@override
|
||||
String get sleepTimer => '????? ??????';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => '??????';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'????, ??????? ??? ?????? ???????? ??????? ???????????';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => '????';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription => '??????? ???????? ???? ???? ????';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => '???????';
|
||||
|
||||
@override
|
||||
String get languageSpanish => '?????????';
|
||||
|
||||
@override
|
||||
String get languageEnglish => '??????';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return '???? ????? ??????: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => '???? ????? ??????: ???????';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => '?????';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,328 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for German (`de`).
|
||||
class AppLocalizationsDe extends AppLocalizations {
|
||||
AppLocalizationsDe([String locale = 'de']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => 'Start';
|
||||
|
||||
@override
|
||||
String get navSearch => 'Suche';
|
||||
|
||||
@override
|
||||
String get navFavorites => 'Favoriten';
|
||||
|
||||
@override
|
||||
String get navAlarms => 'Alarme';
|
||||
|
||||
@override
|
||||
String get navSettings => 'Einstellungen';
|
||||
|
||||
@override
|
||||
String get actionOk => 'OK';
|
||||
|
||||
@override
|
||||
String get sleepTimer => 'Sleep-Timer';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'Einstellungen';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'Feinsteuerung f?r Sound, Backups und eigene Sender.';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => 'Sprache';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription => 'W?hle die Anzeigesprache der App.';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => 'System';
|
||||
|
||||
@override
|
||||
String get languageSpanish => 'Spanisch';
|
||||
|
||||
@override
|
||||
String get languageEnglish => 'Englisch';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return 'Sprache aktualisiert: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => 'Sprache aktualisiert: System';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => 'Abbrechen';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for French (`fr`).
|
||||
class AppLocalizationsFr extends AppLocalizations {
|
||||
AppLocalizationsFr([String locale = 'fr']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => 'Accueil';
|
||||
|
||||
@override
|
||||
String get navSearch => 'Recherche';
|
||||
|
||||
@override
|
||||
String get navFavorites => 'Favoris';
|
||||
|
||||
@override
|
||||
String get navAlarms => 'Alarmes';
|
||||
|
||||
@override
|
||||
String get navSettings => 'R?glages';
|
||||
|
||||
@override
|
||||
String get actionOk => 'OK';
|
||||
|
||||
@override
|
||||
String get sleepTimer => 'Minuteur de sommeil';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'R?glages';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'Contr?le fin du son, sauvegardes et stations personnalis?es.';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => 'Langue';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription =>
|
||||
'Choisissez la langue d?affichage de l?application.';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => 'Syst?me';
|
||||
|
||||
@override
|
||||
String get languageSpanish => 'Espagnol';
|
||||
|
||||
@override
|
||||
String get languageEnglish => 'Anglais';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return 'Langue mise ? jour : $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => 'Langue mise ? jour : Syst?me';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => 'Annuler';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,328 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Hindi (`hi`).
|
||||
class AppLocalizationsHi extends AppLocalizations {
|
||||
AppLocalizationsHi([String locale = 'hi']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => '???';
|
||||
|
||||
@override
|
||||
String get navSearch => '???';
|
||||
|
||||
@override
|
||||
String get navFavorites => '???????';
|
||||
|
||||
@override
|
||||
String get navAlarms => '??????';
|
||||
|
||||
@override
|
||||
String get navSettings => '????????';
|
||||
|
||||
@override
|
||||
String get actionOk => '???';
|
||||
|
||||
@override
|
||||
String get sleepTimer => '????? ?????';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => '????????';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'?????, ????? ?? ????? ???????? ?? ??????? ?????????';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => '????';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription => '?? ?? ???? ??????';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => '??????';
|
||||
|
||||
@override
|
||||
String get languageSpanish => '??????';
|
||||
|
||||
@override
|
||||
String get languageEnglish => '?????????';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return '???? ???? ??: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => '???? ???? ??: ??????';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => '???? ????';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,328 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Indonesian (`id`).
|
||||
class AppLocalizationsId extends AppLocalizations {
|
||||
AppLocalizationsId([String locale = 'id']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => 'Beranda';
|
||||
|
||||
@override
|
||||
String get navSearch => 'Cari';
|
||||
|
||||
@override
|
||||
String get navFavorites => 'Favorit';
|
||||
|
||||
@override
|
||||
String get navAlarms => 'Alarm';
|
||||
|
||||
@override
|
||||
String get navSettings => 'Pengaturan';
|
||||
|
||||
@override
|
||||
String get actionOk => 'OK';
|
||||
|
||||
@override
|
||||
String get sleepTimer => 'Timer tidur';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'Pengaturan';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'Kontrol suara, cadangan, dan stasiun khusus secara detail.';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => 'Bahasa';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription => 'Pilih bahasa tampilan aplikasi.';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => 'Sistem';
|
||||
|
||||
@override
|
||||
String get languageSpanish => 'Spanyol';
|
||||
|
||||
@override
|
||||
String get languageEnglish => 'Inggris';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return 'Bahasa diperbarui: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => 'Bahasa diperbarui: Sistem';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => 'Batal';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Italian (`it`).
|
||||
class AppLocalizationsIt extends AppLocalizations {
|
||||
AppLocalizationsIt([String locale = 'it']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => 'Home';
|
||||
|
||||
@override
|
||||
String get navSearch => 'Cerca';
|
||||
|
||||
@override
|
||||
String get navFavorites => 'Preferiti';
|
||||
|
||||
@override
|
||||
String get navAlarms => 'Sveglie';
|
||||
|
||||
@override
|
||||
String get navSettings => 'Impostazioni';
|
||||
|
||||
@override
|
||||
String get actionOk => 'OK';
|
||||
|
||||
@override
|
||||
String get sleepTimer => 'Timer sonno';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'Impostazioni';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'Controllo fine del suono, backup e stazioni personalizzate.';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => 'Lingua';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription =>
|
||||
'Scegli la lingua di visualizzazione dell?app.';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => 'Sistema';
|
||||
|
||||
@override
|
||||
String get languageSpanish => 'Spagnolo';
|
||||
|
||||
@override
|
||||
String get languageEnglish => 'Inglese';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return 'Lingua aggiornata: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => 'Lingua aggiornata: Sistema';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => 'Annulla';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,327 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Japanese (`ja`).
|
||||
class AppLocalizationsJa extends AppLocalizations {
|
||||
AppLocalizationsJa([String locale = 'ja']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => '???';
|
||||
|
||||
@override
|
||||
String get navSearch => '??';
|
||||
|
||||
@override
|
||||
String get navFavorites => '?????';
|
||||
|
||||
@override
|
||||
String get navAlarms => '????';
|
||||
|
||||
@override
|
||||
String get navSettings => '??';
|
||||
|
||||
@override
|
||||
String get actionOk => 'OK';
|
||||
|
||||
@override
|
||||
String get sleepTimer => '????????';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => '??';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle => '?????????????????????????';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => '??';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription => '???????????????';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => '????';
|
||||
|
||||
@override
|
||||
String get languageSpanish => '?????';
|
||||
|
||||
@override
|
||||
String get languageEnglish => '??';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return '?????????: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => '?????????: ????';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => '?????';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Portuguese (`pt`).
|
||||
class AppLocalizationsPt extends AppLocalizations {
|
||||
AppLocalizationsPt([String locale = 'pt']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => 'In?cio';
|
||||
|
||||
@override
|
||||
String get navSearch => 'Buscar';
|
||||
|
||||
@override
|
||||
String get navFavorites => 'Favoritos';
|
||||
|
||||
@override
|
||||
String get navAlarms => 'Alarmes';
|
||||
|
||||
@override
|
||||
String get navSettings => 'Defini??es';
|
||||
|
||||
@override
|
||||
String get actionOk => 'OK';
|
||||
|
||||
@override
|
||||
String get sleepTimer => 'Timer de sono';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'Defini??es';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'Controle fino de som, backups e esta??es personalizadas.';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => 'Idioma';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription =>
|
||||
'Escolha como o idioma do app ? exibido.';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => 'Sistema';
|
||||
|
||||
@override
|
||||
String get languageSpanish => 'Espanhol';
|
||||
|
||||
@override
|
||||
String get languageEnglish => 'Ingl?s';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return 'Idioma atualizado: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => 'Idioma atualizado: Sistema';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => 'Cancelar';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Russian (`ru`).
|
||||
class AppLocalizationsRu extends AppLocalizations {
|
||||
AppLocalizationsRu([String locale = 'ru']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => '???????';
|
||||
|
||||
@override
|
||||
String get navSearch => '?????';
|
||||
|
||||
@override
|
||||
String get navFavorites => '?????????';
|
||||
|
||||
@override
|
||||
String get navAlarms => '??????????';
|
||||
|
||||
@override
|
||||
String get navSettings => '?????????';
|
||||
|
||||
@override
|
||||
String get actionOk => 'OK';
|
||||
|
||||
@override
|
||||
String get sleepTimer => '?????? ???';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => '?????????';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle =>
|
||||
'?????? ????????? ?????, ????????? ????? ? ???????????????? ???????.';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => '????';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription =>
|
||||
'???????? ???? ?????????? ??????????.';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => '???????';
|
||||
|
||||
@override
|
||||
String get languageSpanish => '?????????';
|
||||
|
||||
@override
|
||||
String get languageEnglish => '??????????';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return '???? ????????: $languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => '???? ????????: ???????';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => '??????';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -0,0 +1,327 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Chinese (`zh`).
|
||||
class AppLocalizationsZh extends AppLocalizations {
|
||||
AppLocalizationsZh([String locale = 'zh']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appTitle => 'PluriWave';
|
||||
|
||||
@override
|
||||
String get navHome => '??';
|
||||
|
||||
@override
|
||||
String get navSearch => '??';
|
||||
|
||||
@override
|
||||
String get navFavorites => '??';
|
||||
|
||||
@override
|
||||
String get navAlarms => '??';
|
||||
|
||||
@override
|
||||
String get navSettings => '??';
|
||||
|
||||
@override
|
||||
String get actionOk => '??';
|
||||
|
||||
@override
|
||||
String get sleepTimer => '?????';
|
||||
|
||||
@override
|
||||
String get sleepTimerDescription =>
|
||||
'Smooth radio shutdown with an exact countdown.';
|
||||
|
||||
@override
|
||||
String get cancelTimer => 'Cancel timer';
|
||||
|
||||
@override
|
||||
String get optionOther => 'Other';
|
||||
|
||||
@override
|
||||
String get customDurationTitle => 'Custom duration';
|
||||
|
||||
@override
|
||||
String get durationGreaterThanZero => 'Choose a duration greater than zero.';
|
||||
|
||||
@override
|
||||
String get hoursLabel => 'Hours';
|
||||
|
||||
@override
|
||||
String get minutesLabel => 'Minutes';
|
||||
|
||||
@override
|
||||
String get secondsLabel => 'Seconds';
|
||||
|
||||
@override
|
||||
String get saveQuickAccess => 'Save as quick access';
|
||||
|
||||
@override
|
||||
String get startTimer => 'Start timer';
|
||||
|
||||
@override
|
||||
String skipCurrentAlarmExecution(Object alarmName) {
|
||||
return 'Skipped this execution of $alarmName.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsTitle => '??';
|
||||
|
||||
@override
|
||||
String get settingsSubtitle => '?????????????????';
|
||||
|
||||
@override
|
||||
String get languageSectionTitle => '??';
|
||||
|
||||
@override
|
||||
String get languageSectionDescription => '?????????';
|
||||
|
||||
@override
|
||||
String get languageSystemDefault => '??';
|
||||
|
||||
@override
|
||||
String get languageSpanish => '????';
|
||||
|
||||
@override
|
||||
String get languageEnglish => '??';
|
||||
|
||||
@override
|
||||
String languageUpdated(Object languageName) {
|
||||
return '??????$languageName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get languageUpdatedSystem => '????????';
|
||||
|
||||
@override
|
||||
String get timerSectionTitle => 'Sleep timer';
|
||||
|
||||
@override
|
||||
String get timerSectionAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get timerSectionDescription =>
|
||||
'Customize the quick presets shown when automatically stopping the radio.';
|
||||
|
||||
@override
|
||||
String get timerSectionRestoreRecommended => 'Restore recommended times';
|
||||
|
||||
@override
|
||||
String get newQuickAccessTitle => 'New quick access';
|
||||
|
||||
@override
|
||||
String get saveQuickAccessButton => 'Save quick access';
|
||||
|
||||
@override
|
||||
String get settingsSafeStatus => 'Safe';
|
||||
|
||||
@override
|
||||
String get recordingsSectionTitle => 'Recordings';
|
||||
|
||||
@override
|
||||
String get recordingsFolderDialogTitle => 'Select recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathUpdated => 'Recording path updated';
|
||||
|
||||
@override
|
||||
String recordingsPathSaveError(Object error) {
|
||||
return 'Could not save the path: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get recordingsDefaultFolderRestored =>
|
||||
'The internal default folder will be used';
|
||||
|
||||
@override
|
||||
String get recordingsFolderTitle => 'Recordings folder';
|
||||
|
||||
@override
|
||||
String get recordingsPathCalculating => 'Calculating path...';
|
||||
|
||||
@override
|
||||
String get recordingsChangePath => 'Change path';
|
||||
|
||||
@override
|
||||
String get recordingsUseDefaultPath => 'Use default path';
|
||||
|
||||
@override
|
||||
String get recordingsOriginalStreamHint =>
|
||||
'The radio is saved from the original stream, without recompressing.';
|
||||
|
||||
@override
|
||||
String get equalizerActive => 'Active';
|
||||
|
||||
@override
|
||||
String get equalizerDisabled => 'Disabled';
|
||||
|
||||
@override
|
||||
String get equalizerEnable => 'Enable equalizer';
|
||||
|
||||
@override
|
||||
String get equalizerRealtimeSubtitle =>
|
||||
'Changes are applied in real time to the current station.';
|
||||
|
||||
@override
|
||||
String get equalizerPendingSubtitle =>
|
||||
'Changes are saved and will apply when Android enables the effect.';
|
||||
|
||||
@override
|
||||
String get equalizerPerStationTitle => 'Use custom EQ for this favorite';
|
||||
|
||||
@override
|
||||
String equalizerPerStationActive(Object stationName) {
|
||||
return 'Active for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String equalizerPerStationMain(Object stationName) {
|
||||
return 'Using main EQ for $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationTitle => 'Preferred station';
|
||||
|
||||
@override
|
||||
String get preferredStationDescription =>
|
||||
'Preselected for new alarms and available for quick playback.';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsTitle => 'No stations available yet';
|
||||
|
||||
@override
|
||||
String get preferredStationNoStationsSubtitle =>
|
||||
'Save favorites or load stations to choose a preferred one.';
|
||||
|
||||
@override
|
||||
String get preferredStationAutomaticFallback => 'Automatic fallback';
|
||||
|
||||
@override
|
||||
String get preferredStationDefaultFavorite => 'Default favorite';
|
||||
|
||||
@override
|
||||
String preferredStationCurrent(Object stationName) {
|
||||
return 'Current preferred: $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String preferredStationAutoUsing(Object stationName) {
|
||||
return 'No favorites: automatically using $stationName';
|
||||
}
|
||||
|
||||
@override
|
||||
String get preferredStationPlay => 'Play preferred';
|
||||
|
||||
@override
|
||||
String get customStationsTitle => 'Custom stations';
|
||||
|
||||
@override
|
||||
String get customStationsAdd => 'Add';
|
||||
|
||||
@override
|
||||
String get customStationsEmpty => 'No custom stations.';
|
||||
|
||||
@override
|
||||
String get playAction => 'Play';
|
||||
|
||||
@override
|
||||
String get deleteAction => 'Delete';
|
||||
|
||||
@override
|
||||
String get addStationTitle => 'Add station';
|
||||
|
||||
@override
|
||||
String get stationNameLabel => 'Name *';
|
||||
|
||||
@override
|
||||
String get requiredField => 'Required field';
|
||||
|
||||
@override
|
||||
String get streamUrlLabel => 'Stream URL *';
|
||||
|
||||
@override
|
||||
String get invalidUrl => 'Invalid URL';
|
||||
|
||||
@override
|
||||
String get countryOptionalLabel => 'Country (optional)';
|
||||
|
||||
@override
|
||||
String get saveStation => 'Save station';
|
||||
|
||||
@override
|
||||
String get backupSectionTitle => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupExportTitle => 'Export configuration';
|
||||
|
||||
@override
|
||||
String get backupExportSubtitle =>
|
||||
'Favorites, custom stations, and EQ presets';
|
||||
|
||||
@override
|
||||
String get backupImportTitle => 'Import configuration';
|
||||
|
||||
@override
|
||||
String get backupImportSubtitle => 'Restore from a backup file';
|
||||
|
||||
@override
|
||||
String get backupShareSubject => 'PluriWave ? backup';
|
||||
|
||||
@override
|
||||
String backupShareText(Object date) {
|
||||
return 'PluriWave configuration exported on $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String backupExportError(Object error) {
|
||||
return 'Export error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get backupImportConfirmMessage =>
|
||||
'This will add favorites, stations, and presets from the file. Continue?';
|
||||
|
||||
@override
|
||||
String get backupImportSuccess => 'Configuration imported successfully';
|
||||
|
||||
@override
|
||||
String backupImportError(Object error) {
|
||||
return 'Import error: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get appVersionLoading => 'Loading version...';
|
||||
|
||||
@override
|
||||
String appVersionSubtitle(Object version) {
|
||||
return '$version - World radio';
|
||||
}
|
||||
|
||||
@override
|
||||
String get savedFavoritesTitle => 'Saved favorites';
|
||||
|
||||
@override
|
||||
String get stationFilterTitle => 'Station filter';
|
||||
|
||||
@override
|
||||
String get stationFilterSubtitle => 'Only stations verified as active';
|
||||
|
||||
@override
|
||||
String get backgroundAudioTitle => 'Background audio';
|
||||
|
||||
@override
|
||||
String get backgroundAudioSubtitle => 'Continues when the screen turns off';
|
||||
|
||||
@override
|
||||
String get dash => '?';
|
||||
|
||||
@override
|
||||
String get cancelAction => '??';
|
||||
|
||||
@override
|
||||
String get equalizerTitle => 'Equalizer';
|
||||
}
|
||||
@@ -261,19 +261,29 @@ class _SeccionIdioma extends StatelessWidget {
|
||||
const _SeccionIdioma();
|
||||
|
||||
static const _codigoSistema = 'system';
|
||||
static const _codigoEspanol = 'es';
|
||||
static const _codigoIngles = 'en';
|
||||
static const _idiomas = [
|
||||
_IdiomaDisponible(Locale('en'), 'English'),
|
||||
_IdiomaDisponible(Locale('es'), 'Español'),
|
||||
_IdiomaDisponible(Locale('zh'), '中文'),
|
||||
_IdiomaDisponible(Locale('hi'), 'हिन्दी'),
|
||||
_IdiomaDisponible(Locale('ar'), 'العربية'),
|
||||
_IdiomaDisponible(Locale('pt'), 'Português'),
|
||||
_IdiomaDisponible(Locale('fr'), 'Français'),
|
||||
_IdiomaDisponible(Locale('ru'), 'Русский'),
|
||||
_IdiomaDisponible(Locale('de'), 'Deutsch'),
|
||||
_IdiomaDisponible(Locale('ja'), '日本語'),
|
||||
_IdiomaDisponible(Locale('id'), 'Bahasa Indonesia'),
|
||||
_IdiomaDisponible(Locale('bn'), 'বাংলা'),
|
||||
_IdiomaDisponible(Locale('it'), 'Italiano'),
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final l10n = AppLocalizations.of(context);
|
||||
final estadoIdioma = context.watch<EstadoIdioma>();
|
||||
final locale = estadoIdioma.localeSeleccionado;
|
||||
final valorActual = switch (locale?.languageCode) {
|
||||
_codigoEspanol => _codigoEspanol,
|
||||
_codigoIngles => _codigoIngles,
|
||||
_ => _codigoSistema,
|
||||
};
|
||||
final valorActual =
|
||||
locale == null ? _codigoSistema : _codigoLocale(locale);
|
||||
|
||||
return PluriGlassSurface(
|
||||
child: Column(
|
||||
@@ -306,14 +316,11 @@ class _SeccionIdioma extends StatelessWidget {
|
||||
value: _codigoSistema,
|
||||
child: Text(l10n.languageSystemDefault),
|
||||
),
|
||||
DropdownMenuItem(
|
||||
value: _codigoEspanol,
|
||||
child: Text(l10n.languageSpanish),
|
||||
),
|
||||
DropdownMenuItem(
|
||||
value: _codigoIngles,
|
||||
child: Text(l10n.languageEnglish),
|
||||
),
|
||||
for (final idioma in _idiomas)
|
||||
DropdownMenuItem(
|
||||
value: _codigoLocale(idioma.locale),
|
||||
child: Text(idioma.nombreNativo),
|
||||
),
|
||||
],
|
||||
onChanged: (codigo) async {
|
||||
if (codigo == null) return;
|
||||
@@ -326,17 +333,19 @@ class _SeccionIdioma extends StatelessWidget {
|
||||
return;
|
||||
}
|
||||
|
||||
final locale = Locale(codigo);
|
||||
await context.read<EstadoIdioma>().seleccionarLocale(locale);
|
||||
final idioma = _idiomas.firstWhere(
|
||||
(item) => _codigoLocale(item.locale) == codigo,
|
||||
orElse: () => _idiomas.first,
|
||||
);
|
||||
await context.read<EstadoIdioma>().seleccionarLocale(
|
||||
idioma.locale,
|
||||
);
|
||||
if (!context.mounted) return;
|
||||
|
||||
final nombre = switch (codigo) {
|
||||
_codigoEspanol => l10n.languageSpanish,
|
||||
_codigoIngles => l10n.languageEnglish,
|
||||
_ => l10n.languageSystemDefault,
|
||||
};
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text(l10n.languageUpdated(nombre))),
|
||||
SnackBar(
|
||||
content: Text(l10n.languageUpdated(idioma.nombreNativo)),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
@@ -344,6 +353,21 @@ class _SeccionIdioma extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
static String _codigoLocale(Locale locale) {
|
||||
final countryCode = locale.countryCode;
|
||||
if (countryCode == null || countryCode.isEmpty) {
|
||||
return locale.languageCode;
|
||||
}
|
||||
return '${locale.languageCode}_$countryCode';
|
||||
}
|
||||
}
|
||||
|
||||
class _IdiomaDisponible {
|
||||
const _IdiomaDisponible(this.locale, this.nombreNativo);
|
||||
|
||||
final Locale locale;
|
||||
final String nombreNativo;
|
||||
}
|
||||
|
||||
class _FormularioDuracionTimer extends StatefulWidget {
|
||||
|
||||
Reference in New Issue
Block a user