Fix multi-device EQ auto-switching by calling obtenerDispositivoActual() during cargarPersistido() to seed the initial device ID. Add device management modal with rename support, EQ preset editing, and connection status indicator. Translate device UI keys to all 13 locales.
1274 lines
28 KiB
Dart
1274 lines
28 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for English (`en`).
|
||
class AppLocalizationsEn extends AppLocalizations {
|
||
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'PluriWave';
|
||
|
||
@override
|
||
String get navHome => 'Home';
|
||
|
||
@override
|
||
String get navSearch => 'Search';
|
||
|
||
@override
|
||
String get navFavorites => 'Favorites';
|
||
|
||
@override
|
||
String get navAlarms => 'Alarms';
|
||
|
||
@override
|
||
String get navSettings => 'Settings';
|
||
|
||
@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 durationHoursMinutesSeconds(
|
||
Object hours,
|
||
Object minutes,
|
||
Object seconds,
|
||
) {
|
||
return '$hours h $minutes min $seconds s';
|
||
}
|
||
|
||
@override
|
||
String durationMinutesSeconds(Object minutes, Object seconds) {
|
||
return '$minutes min $seconds s';
|
||
}
|
||
|
||
@override
|
||
String durationMinutesOnly(Object minutes) {
|
||
return '$minutes min';
|
||
}
|
||
|
||
@override
|
||
String durationSecondsOnly(Object seconds) {
|
||
return '$seconds s';
|
||
}
|
||
|
||
@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 => 'Settings';
|
||
|
||
@override
|
||
String get settingsSubtitle =>
|
||
'Fine-grained sound control, backups, and custom stations.';
|
||
|
||
@override
|
||
String get languageSectionTitle => 'Language';
|
||
|
||
@override
|
||
String get languageSectionDescription =>
|
||
'Choose how the app language is displayed.';
|
||
|
||
@override
|
||
String get languageSystemDefault => 'System';
|
||
|
||
@override
|
||
String get languageSpanish => 'Spanish';
|
||
|
||
@override
|
||
String get languageEnglish => 'English';
|
||
|
||
@override
|
||
String languageUpdated(Object languageName) {
|
||
return 'Language updated: $languageName';
|
||
}
|
||
|
||
@override
|
||
String get languageUpdatedSystem => 'Language updated: 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 default internal folder will be used';
|
||
|
||
@override
|
||
String get recordingsFolderTitle => 'Recording 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 unnamedStation => 'Unnamed station';
|
||
|
||
@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 => 'Cancel';
|
||
|
||
@override
|
||
String get equalizerTitle => 'Equalizer';
|
||
|
||
@override
|
||
String get recordingsOpenFolder => 'Open folder';
|
||
|
||
@override
|
||
String recordingsOpenFolderError(Object error) {
|
||
return 'Could not open the folder: $error';
|
||
}
|
||
|
||
@override
|
||
String get recordingsMaxSizeTitle => 'Maximum recording size';
|
||
|
||
@override
|
||
String recordingsMaxSizeSubtitle(int size) {
|
||
return 'Current limit: $size MB';
|
||
}
|
||
|
||
@override
|
||
String get recordingsMaxSizeDialogTitle => 'Maximum size per recording';
|
||
|
||
@override
|
||
String get recordingsMaxSizeMbLabel => 'Maximum megabytes';
|
||
|
||
@override
|
||
String recordingsMaxSizeSaved(int size) {
|
||
return 'Recording limit updated to $size MB';
|
||
}
|
||
|
||
@override
|
||
String get stationOrderTitle => 'Station order';
|
||
|
||
@override
|
||
String get stationOrderByName => 'By name';
|
||
|
||
@override
|
||
String get stationOrderByQuality => 'By quality';
|
||
|
||
@override
|
||
String get stationOrderScopeDescription =>
|
||
'Applies to favorites, searches, nearby stations and quick lists.';
|
||
|
||
@override
|
||
String get favoriteGroupsTitle => 'Favorite lists';
|
||
|
||
@override
|
||
String get favoriteGroupsDescription =>
|
||
'Create short lists to organize your saved stations.';
|
||
|
||
@override
|
||
String get favoriteGroupsAdd => 'Add list';
|
||
|
||
@override
|
||
String get favoriteGroupsEdit => 'Edit list';
|
||
|
||
@override
|
||
String get favoriteGroupsDelete => 'Delete list';
|
||
|
||
@override
|
||
String get favoriteGroupsNameLabel => 'List name';
|
||
|
||
@override
|
||
String get favoriteGroupsNameTooLong => 'Maximum 28 characters.';
|
||
|
||
@override
|
||
String get favoriteGroupsUnassigned => 'Unassigned';
|
||
|
||
@override
|
||
String get favoriteGroupsProtectedHint =>
|
||
'Default list: it cannot be edited or deleted.';
|
||
|
||
@override
|
||
String get favoriteGroupsCreated => 'List created';
|
||
|
||
@override
|
||
String get favoriteGroupsUpdated => 'List updated';
|
||
|
||
@override
|
||
String get favoriteGroupsDeleted =>
|
||
'List deleted; its stations return to Unassigned.';
|
||
|
||
@override
|
||
String get favoriteGroupsAssign => 'Move to list';
|
||
|
||
@override
|
||
String favoriteGroupsAssignSubtitle(Object groupName) {
|
||
return 'Current list: $groupName';
|
||
}
|
||
|
||
@override
|
||
String favoriteGroupsAssigned(Object stationName, Object groupName) {
|
||
return '$stationName moved to $groupName';
|
||
}
|
||
|
||
@override
|
||
String get favoritesTitle => 'Favorites';
|
||
|
||
@override
|
||
String get favoritesEmptyTitle => 'No favorites yet';
|
||
|
||
@override
|
||
String get favoritesEmptySubtitle =>
|
||
'Tap the heart on any station to save it to your collection.';
|
||
|
||
@override
|
||
String get favoritesHeaderSubtitle =>
|
||
'Organize your collection by lists and keep important radios close.';
|
||
|
||
@override
|
||
String get favoritesCollection => 'Collection';
|
||
|
||
@override
|
||
String favoritesSavedCount(int count) {
|
||
return '$count saved';
|
||
}
|
||
|
||
@override
|
||
String get favoritesRemoveTooltip => 'Remove from favorites';
|
||
|
||
@override
|
||
String favoritesRemovedMessage(Object stationName) {
|
||
return '$stationName removed from favorites';
|
||
}
|
||
|
||
@override
|
||
String get alarmPostponedCurrentExecution =>
|
||
'Alarm postponed for this occurrence.';
|
||
|
||
@override
|
||
String get searchScreenTitle => 'Search signal';
|
||
|
||
@override
|
||
String get searchScreenSubtitle =>
|
||
'Find stations by name, country, or language with fast filters and high contrast.';
|
||
|
||
@override
|
||
String get searchFiltersLabel => 'Filters';
|
||
|
||
@override
|
||
String get searchHint => 'Radio Horizon, jazz, news...';
|
||
|
||
@override
|
||
String get searchCountryFilterLabel => 'Country';
|
||
|
||
@override
|
||
String get searchLanguageFilterLabel => 'Language';
|
||
|
||
@override
|
||
String get searchMinQualityFilterLabel => 'Minimum quality';
|
||
|
||
@override
|
||
String get searchEmptyTitle => 'Search for a station';
|
||
|
||
@override
|
||
String get searchNoResultsTitle => 'No results';
|
||
|
||
@override
|
||
String get searchEmptySubtitle =>
|
||
'Use the top bar or chips to discover stations from around the world.';
|
||
|
||
@override
|
||
String get searchNoResultsSubtitle =>
|
||
'Try removing filters or typing another name to find an active station.';
|
||
|
||
@override
|
||
String get countrySpain => 'Spain';
|
||
|
||
@override
|
||
String get countryUsa => 'USA';
|
||
|
||
@override
|
||
String get countryMexico => 'Mexico';
|
||
|
||
@override
|
||
String get countryArgentina => 'Argentina';
|
||
|
||
@override
|
||
String get countryUk => 'UK';
|
||
|
||
@override
|
||
String get countryFrance => 'France';
|
||
|
||
@override
|
||
String get countryGermany => 'Germany';
|
||
|
||
@override
|
||
String get countryItaly => 'Italy';
|
||
|
||
@override
|
||
String get countryBrazil => 'Brazil';
|
||
|
||
@override
|
||
String get countryJapan => 'Japan';
|
||
|
||
@override
|
||
String get languageNameSpanish => 'Spanish';
|
||
|
||
@override
|
||
String get languageNameEnglish => 'English';
|
||
|
||
@override
|
||
String get languageNameFrench => 'French';
|
||
|
||
@override
|
||
String get languageNameGerman => 'German';
|
||
|
||
@override
|
||
String get languageNamePortuguese => 'Portuguese';
|
||
|
||
@override
|
||
String get languageNameItalian => 'Italian';
|
||
|
||
@override
|
||
String get languageNameJapanese => 'Japanese';
|
||
|
||
@override
|
||
String get languageNameArabic => 'Arabic';
|
||
|
||
@override
|
||
String get languageNameRussian => 'Russian';
|
||
|
||
@override
|
||
String get homeScreenSubtitle =>
|
||
'Live global radio with clean signals, smart favorites, and a show-style visual experience.';
|
||
|
||
@override
|
||
String get exploreStations => 'Explore stations';
|
||
|
||
@override
|
||
String stationsCount(int count) {
|
||
return '$count stations';
|
||
}
|
||
|
||
@override
|
||
String get qualityHd => 'HD quality';
|
||
|
||
@override
|
||
String get nearYou => 'Near you';
|
||
|
||
@override
|
||
String nearYouInCountry(Object country) {
|
||
return 'Near you · $country';
|
||
}
|
||
|
||
@override
|
||
String get detectAction => 'Detect';
|
||
|
||
@override
|
||
String get liveRadar => 'Live radar';
|
||
|
||
@override
|
||
String get genresTitle => 'Genres';
|
||
|
||
@override
|
||
String get retryAction => 'Retry';
|
||
|
||
@override
|
||
String get noStationsAvailable => 'No stations available';
|
||
|
||
@override
|
||
String get noStationsAvailableSubtitle =>
|
||
'Try refreshing or choosing another genre to capture a signal again.';
|
||
|
||
@override
|
||
String get genrePop => 'Pop';
|
||
|
||
@override
|
||
String get genreRock => 'Rock';
|
||
|
||
@override
|
||
String get genreJazz => 'Jazz';
|
||
|
||
@override
|
||
String get genreClassical => 'Classical';
|
||
|
||
@override
|
||
String get genreElectronic => 'Electronic';
|
||
|
||
@override
|
||
String get genreNews => 'News';
|
||
|
||
@override
|
||
String get genreTalk => 'Talk';
|
||
|
||
@override
|
||
String get genreHipHop => 'Hip-hop';
|
||
|
||
@override
|
||
String get genreCountry => 'Country';
|
||
|
||
@override
|
||
String get genreMetal => 'Metal';
|
||
|
||
@override
|
||
String get genreReggae => 'Reggae';
|
||
|
||
@override
|
||
String get genreLatin => 'Latin';
|
||
|
||
@override
|
||
String get alarmScreenTitle => 'Music wake-up';
|
||
|
||
@override
|
||
String get alarmScreenSubtitle =>
|
||
'Alarms with radio, safe fallback sound, smart vacations, and the next occurrence always visible.';
|
||
|
||
@override
|
||
String get createAlarmAction => 'Create alarm';
|
||
|
||
@override
|
||
String alarmsCount(int count) {
|
||
return '$count alarms';
|
||
}
|
||
|
||
@override
|
||
String get activeAlarmsWithoutNextTitle =>
|
||
'Active alarms without a next occurrence';
|
||
|
||
@override
|
||
String get noActiveAlarms => 'No active alarms';
|
||
|
||
@override
|
||
String get nextAlarmTitle => 'Next alarm';
|
||
|
||
@override
|
||
String activeAlarmsWithoutNextSubtitle(int count) {
|
||
return 'There are $count active alarm(s), but they do not currently have a valid future date. Check date, weekdays, and vacations.';
|
||
}
|
||
|
||
@override
|
||
String get createAlarmHint =>
|
||
'Create an alarm and PluriWave will calculate the next occurrence automatically.';
|
||
|
||
@override
|
||
String get alarmVacationPlay => 'Plays during vacations';
|
||
|
||
@override
|
||
String get alarmVacationPause => 'Paused during vacations';
|
||
|
||
@override
|
||
String alarmFadeInLabel(int seconds) {
|
||
return 'Fade-in ${seconds}s';
|
||
}
|
||
|
||
@override
|
||
String alarmNextExecution(Object date) {
|
||
return 'Next occurrence: $date';
|
||
}
|
||
|
||
@override
|
||
String get alarmNoNextExecution => 'It has no active next occurrence.';
|
||
|
||
@override
|
||
String alarmSkippedExecution(Object date) {
|
||
return 'One occurrence was skipped: $date.';
|
||
}
|
||
|
||
@override
|
||
String get editAction => 'Edit';
|
||
|
||
@override
|
||
String get skipNextAction => 'Skip next';
|
||
|
||
@override
|
||
String get deleteTooltip => 'Delete';
|
||
|
||
@override
|
||
String get alarmSkippedNoNextSnackbar =>
|
||
'Alarm skipped. There is no next occurrence left.';
|
||
|
||
@override
|
||
String alarmSkippedReturnsSnackbar(Object date) {
|
||
return 'Alarm skipped. It will return on $date.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationPausedNoNext(Object vacationName) {
|
||
return 'It is paused for vacations ($vacationName) and has no next occurrence.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationPausedReturns(Object vacationName, Object date) {
|
||
return 'It is paused for vacations ($vacationName) and returns on $date.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationReturns(Object date) {
|
||
return 'With vacations enabled, it will ring again on $date.';
|
||
}
|
||
|
||
@override
|
||
String get defaultAlarmName => 'Music alarm';
|
||
|
||
@override
|
||
String get newAlarmTitle => 'New alarm';
|
||
|
||
@override
|
||
String get editAlarmTitle => 'Edit alarm';
|
||
|
||
@override
|
||
String get nameField => 'Name';
|
||
|
||
@override
|
||
String get timeField => 'Time';
|
||
|
||
@override
|
||
String get dateField => 'Date';
|
||
|
||
@override
|
||
String get onceOption => 'Once';
|
||
|
||
@override
|
||
String get dailyOption => 'Daily';
|
||
|
||
@override
|
||
String get weekdaysOption => 'Weekdays';
|
||
|
||
@override
|
||
String get soundAndVolumeSection => 'Sound and volume';
|
||
|
||
@override
|
||
String get alarmFadeInTitle => 'Alarm fade-in';
|
||
|
||
@override
|
||
String get alarmFadeInOff => '0 s (no transition)';
|
||
|
||
@override
|
||
String alarmFadeInSummary(int seconds) {
|
||
return '$seconds s (from 5% to the selected volume)';
|
||
}
|
||
|
||
@override
|
||
String get internalSafeSoundLabel => 'Internal safe sound';
|
||
|
||
@override
|
||
String get soundWarmSunrise => 'Warm sunrise';
|
||
|
||
@override
|
||
String get soundSoftBell => 'Soft bell';
|
||
|
||
@override
|
||
String get soundDigitalPulse => 'Digital pulse';
|
||
|
||
@override
|
||
String get favoriteStationLabel => 'Favorite station';
|
||
|
||
@override
|
||
String get noStationUseInternalSound => 'No station: use internal sound';
|
||
|
||
@override
|
||
String get alarmFallbackStationLabel => 'Backup station';
|
||
|
||
@override
|
||
String get alarmStationPickerSearchHint => 'Search for a station by name';
|
||
|
||
@override
|
||
String get alarmSnoozeDurationTitle => 'Snooze duration';
|
||
|
||
@override
|
||
String get snoozeAction => 'Snooze';
|
||
|
||
@override
|
||
String alarmSnoozeOptionLabel(int minutes) {
|
||
return '$minutes min';
|
||
}
|
||
|
||
@override
|
||
String get saveFavoritesAlarmHint =>
|
||
'Save stations in Favorites to use them as a music alarm.';
|
||
|
||
@override
|
||
String get useCurrentStationAction => 'Use current station';
|
||
|
||
@override
|
||
String get playDuringVacations => 'Play during vacations';
|
||
|
||
@override
|
||
String get playDuringVacationsHint =>
|
||
'If you turn this off, the next occurrence will jump to the first valid day.';
|
||
|
||
@override
|
||
String get saveAlarmAction => 'Save alarm';
|
||
|
||
@override
|
||
String get chooseOneWeekdayError => 'Choose at least one weekday.';
|
||
|
||
@override
|
||
String get androidReliabilityReview => 'Review Android reliability';
|
||
|
||
@override
|
||
String get statusOk => 'OK';
|
||
|
||
@override
|
||
String get statusPending => 'pending';
|
||
|
||
@override
|
||
String androidReliabilityStatus(
|
||
Object exact,
|
||
Object notifications,
|
||
Object screen,
|
||
) {
|
||
return 'Reliability: exact $exact · notifications $notifications · screen $screen';
|
||
}
|
||
|
||
@override
|
||
String get vacationRangesTitle => 'Vacation ranges';
|
||
|
||
@override
|
||
String get addAction => 'Add';
|
||
|
||
@override
|
||
String get vacationRangesHint =>
|
||
'If an alarm is set to \"Paused during vacations\", it automatically skips these ranges.';
|
||
|
||
@override
|
||
String get noVacationRangesLoaded => 'No ranges loaded.';
|
||
|
||
@override
|
||
String get deleteRangeTooltip => 'Delete range';
|
||
|
||
@override
|
||
String get vacationsDefaultName => 'Vacation';
|
||
|
||
@override
|
||
String get newVacationRangeTitle => 'New vacation range';
|
||
|
||
@override
|
||
String get startField => 'Start';
|
||
|
||
@override
|
||
String get endField => 'End';
|
||
|
||
@override
|
||
String get saveRangeAction => 'Save range';
|
||
|
||
@override
|
||
String get noAlarmsYetTitle => 'There are no alarms yet.';
|
||
|
||
@override
|
||
String get noAlarmsYetSubtitle =>
|
||
'Create one to design your musical wake-up.';
|
||
|
||
@override
|
||
String get ringingInternalAudioActive => 'Playing with internal safe audio.';
|
||
|
||
@override
|
||
String get ringingPreparingInternalAudio => 'Preparing internal safe audio.';
|
||
|
||
@override
|
||
String get stopAlarmAction => 'Stop alarm';
|
||
|
||
@override
|
||
String get pauseAction => 'Pause';
|
||
|
||
@override
|
||
String miniPlayerOpenLabel(Object stationName) {
|
||
return 'Open player for $stationName';
|
||
}
|
||
|
||
@override
|
||
String get playerIconLabel => 'Player';
|
||
|
||
@override
|
||
String get playbackStatusConnecting => 'Connecting...';
|
||
|
||
@override
|
||
String get playbackStatusLive => 'Live';
|
||
|
||
@override
|
||
String get playbackStatusPaused => 'Paused';
|
||
|
||
@override
|
||
String get playbackStatusReconnecting => 'Reconnecting...';
|
||
|
||
@override
|
||
String get playbackStatusConnectionError => 'Connection error';
|
||
|
||
@override
|
||
String get playbackStatusStopped => 'Stopped';
|
||
|
||
@override
|
||
String stationSemanticLabel(Object stationName) {
|
||
return 'Station $stationName';
|
||
}
|
||
|
||
@override
|
||
String get favoritesAddTooltip => 'Add to favorites';
|
||
|
||
@override
|
||
String favoritesAddedMessage(Object stationName) {
|
||
return '$stationName added to favorites';
|
||
}
|
||
|
||
@override
|
||
String get stationIconLabel => 'Station icon';
|
||
|
||
@override
|
||
String get liveNow => 'Live';
|
||
|
||
@override
|
||
String equalizerBandLabel(Object band) {
|
||
return '$band band';
|
||
}
|
||
|
||
@override
|
||
String equalizerBandValue(Object value) {
|
||
return '$value decibels';
|
||
}
|
||
|
||
@override
|
||
String get equalizerPresetFlat => 'Flat';
|
||
|
||
@override
|
||
String get equalizerPresetRock => 'Rock';
|
||
|
||
@override
|
||
String get equalizerPresetPop => 'Pop';
|
||
|
||
@override
|
||
String get equalizerPresetBassBoost => 'Bass Boost';
|
||
|
||
@override
|
||
String get equalizerPresetJazz => 'Jazz';
|
||
|
||
@override
|
||
String get equalizerPresetVoice => 'Voice';
|
||
|
||
@override
|
||
String get equalizerPresetCustom => 'Custom';
|
||
|
||
@override
|
||
String get onboardingTitle => 'Welcome to PluriWave';
|
||
|
||
@override
|
||
String get onboardingNewsTitle => 'What\'s new';
|
||
|
||
@override
|
||
String get onboardingStartAction => 'Start';
|
||
|
||
@override
|
||
String get onboardingCloseTooltip => 'Close';
|
||
|
||
@override
|
||
String radioRecordingError(Object error) {
|
||
return 'Error recording the radio: $error';
|
||
}
|
||
|
||
@override
|
||
String get radioApiConnectionError => 'No connection to the radio API';
|
||
|
||
@override
|
||
String get radioSearchError => 'Search error. Check your connection.';
|
||
|
||
@override
|
||
String get radioLoadMoreStationsError => 'Could not load more stations.';
|
||
|
||
@override
|
||
String get radioNearbyStationsError =>
|
||
'We could not detect nearby stations. Use country filters.';
|
||
|
||
@override
|
||
String radioCannotPlayStation(Object stationName) {
|
||
return 'Cannot play \"$stationName\"';
|
||
}
|
||
|
||
@override
|
||
String get recordingSelectStationFirst =>
|
||
'Select a station before recording.';
|
||
|
||
@override
|
||
String recordingStartError(Object error) {
|
||
return 'Could not start recording: $error';
|
||
}
|
||
|
||
@override
|
||
String get unsupportedConfigVersion => 'Unsupported configuration version';
|
||
|
||
@override
|
||
String get audioErrorGeneric => 'Playback error';
|
||
|
||
@override
|
||
String get audioErrorNoInternet => 'No internet connection';
|
||
|
||
@override
|
||
String get audioErrorInvalidUrl => 'The radio URL is not valid';
|
||
|
||
@override
|
||
String get audioErrorNotFound => 'The radio is not available (404 error)';
|
||
|
||
@override
|
||
String get audioErrorTimeout => 'Connection timed out';
|
||
|
||
@override
|
||
String get audioErrorCannotConnect => 'Cannot connect to the radio';
|
||
|
||
@override
|
||
String get audioErrorUnsupportedFormat => 'Unsupported stream format';
|
||
|
||
@override
|
||
String get audioErrorDecode => 'Error decoding the audio stream';
|
||
|
||
@override
|
||
String get audioErrorCleartext =>
|
||
'This radio uses unencrypted HTTP, which is not allowed';
|
||
|
||
@override
|
||
String get audioErrorSsl => 'Invalid SSL certificate on the radio';
|
||
|
||
@override
|
||
String get audioErrorCannotPlay => 'This radio cannot be played';
|
||
|
||
@override
|
||
String get audioErrorUnexpectedPlayback => 'Unexpected playback error';
|
||
|
||
@override
|
||
String get androidExactAlarmScheduleError =>
|
||
'Android could not schedule an exact alarm. Check the exact alarm permission.';
|
||
|
||
@override
|
||
String get recordingPathEmptyError => 'The recording path cannot be empty';
|
||
|
||
@override
|
||
String get recordingMaxSizeInvalidError =>
|
||
'The maximum size must be greater than zero';
|
||
|
||
@override
|
||
String get recordingAlreadyActiveError =>
|
||
'A recording is already in progress';
|
||
|
||
@override
|
||
String get alarmRingingFallbackActive => 'Playing with internal safe audio.';
|
||
|
||
@override
|
||
String get alarmRingingPreparingFallback => 'Preparing internal safe audio.';
|
||
|
||
@override
|
||
String get alarmRingingTryingStation =>
|
||
'Trying to play your station at the highest available quality.';
|
||
|
||
@override
|
||
String alarmScheduleOnce(Object date) {
|
||
return 'Once · $date';
|
||
}
|
||
|
||
@override
|
||
String alarmScheduleWeekdays(Object days) {
|
||
return 'Days: $days';
|
||
}
|
||
|
||
@override
|
||
String get androidReliabilityTitle => 'Review Android reliability';
|
||
|
||
@override
|
||
String get closeAction => 'Close';
|
||
|
||
@override
|
||
String get customOption => 'Custom';
|
||
|
||
@override
|
||
String get endLabel => 'End';
|
||
|
||
@override
|
||
String get equalizerDisable => 'Disable equalizer';
|
||
|
||
@override
|
||
String get helpTitle => 'Help and tutorial';
|
||
|
||
@override
|
||
String get helpSubtitle => 'Review PluriWave features, tips and what’s new.';
|
||
|
||
@override
|
||
String get indefiniteOption => 'Indefinite';
|
||
|
||
@override
|
||
String get invalidNumber => 'Invalid number';
|
||
|
||
@override
|
||
String get nameLabel => 'Name';
|
||
|
||
@override
|
||
String get notPlaying => 'Not playing';
|
||
|
||
@override
|
||
String get oneTimeOption => 'Once';
|
||
|
||
@override
|
||
String get pausePlaybackTooltip => 'Pause playback';
|
||
|
||
@override
|
||
String qualityOriginal(Object quality) {
|
||
return 'Original quality: $quality';
|
||
}
|
||
|
||
@override
|
||
String get qualityUnknown => 'Quality not reported';
|
||
|
||
@override
|
||
String get recordAction => 'Record';
|
||
|
||
@override
|
||
String get recordDurationTitle => 'Recording duration';
|
||
|
||
@override
|
||
String get recordRadioSubtitle => 'Choose how long you want to record.';
|
||
|
||
@override
|
||
String get recordRadioTitle => 'Record radio';
|
||
|
||
@override
|
||
String get recordingActiveTitle => 'Recording radio';
|
||
|
||
@override
|
||
String get recordingDirectTitle => 'Direct recording';
|
||
|
||
@override
|
||
String get recordingsOpenFolderPlainError =>
|
||
'Could not open the recordings folder';
|
||
|
||
@override
|
||
String get recordingsOpenLatest => 'Open latest recording';
|
||
|
||
@override
|
||
String get recordingsOpenLatestError => 'Could not open the latest recording';
|
||
|
||
@override
|
||
String get startLabel => 'Start';
|
||
|
||
@override
|
||
String get startPlaybackTooltip => 'Start playback';
|
||
|
||
@override
|
||
String get stopAction => 'Stop';
|
||
|
||
@override
|
||
String get stopPlaybackTooltip => 'Stop playback';
|
||
|
||
@override
|
||
String get weekdayShortMonday => 'Mon';
|
||
|
||
@override
|
||
String get weekdayShortTuesday => 'Tue';
|
||
|
||
@override
|
||
String get weekdayShortWednesday => 'Wed';
|
||
|
||
@override
|
||
String get weekdayShortThursday => 'Thu';
|
||
|
||
@override
|
||
String get weekdayShortFriday => 'Fri';
|
||
|
||
@override
|
||
String get weekdayShortSaturday => 'Sat';
|
||
|
||
@override
|
||
String get weekdayShortSunday => 'Sun';
|
||
|
||
@override
|
||
String stationCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count stations',
|
||
one: '1 station',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get alarmIconLabel => 'Musical alarm';
|
||
|
||
@override
|
||
String get vacationIconLabel => 'Vacation mode';
|
||
|
||
@override
|
||
String get streamUrlHint => 'https://stream.example.com:8000/radio';
|
||
|
||
@override
|
||
String get advancedEqSectionTitle => 'Advanced Equalization Options';
|
||
|
||
@override
|
||
String get advancedEqEnableToggle => 'Enable per-device EQ';
|
||
|
||
@override
|
||
String get advancedEqEnableToggleSubtitle =>
|
||
'Automatically apply a different EQ preset when your audio output changes.';
|
||
|
||
@override
|
||
String get advancedEqKnownDevicesTitle => 'Known audio devices';
|
||
|
||
@override
|
||
String get advancedEqKnownDevicesEmpty =>
|
||
'No audio devices recorded yet. Connect a device to get started.';
|
||
|
||
@override
|
||
String advancedEqDevicePresetLabel(Object presetName) {
|
||
return 'Preset: $presetName';
|
||
}
|
||
|
||
@override
|
||
String preNoticeCountdown(int minutes) {
|
||
return 'Starts in $minutes min';
|
||
}
|
||
|
||
@override
|
||
String get eqDeviceEditTitle => 'Edit device';
|
||
|
||
@override
|
||
String get eqDeviceNameLabel => 'Device name';
|
||
|
||
@override
|
||
String get eqDeviceNameHint => 'e.g. Living Room Speaker';
|
||
|
||
@override
|
||
String get eqDeviceNameConfirm => 'Save';
|
||
|
||
@override
|
||
String get eqDeviceConnected => 'Connected';
|
||
}
|