Audit 8.5 (t4:381): the "REPETIR" eyebrow above the weekday circles -- never rendered before. New ARB key alarmRepeatSectionLabel. Audit 8.6 (t4:392-401): the station picker, volume, fade-in and vacation toggle now share ONE bordered card with sangred divider lines -- were four separately-spaced widgets. Restyled _CampoSelectorEmisora as a flat nav row (icon/bold label/muted value/chevron, matching FilaAjuste's own convention) so it fits inside the card instead of drawing its own outlined InputDecoration chrome -- used by BOTH the primary and fallback (Advanced) station fields. Snooze duration, "use current station", and the Advanced section stay OUTSIDE the card, exactly where they were (audit 8.8's own documented deliberate extras). A transparent Material sits inside the card's coloured box so the fade-in ListTile and the vacation SwitchListTile still paint their ink/background correctly (the same class of constraint already documented for PluriGlassSurface elsewhere in this codebase). Audit 8.7 (t4:396): the volume row is now a compact 112px track with a live percentage label -- was a bare full-width Slider with no visible value. New ArtB key alarmVolumeLabel. Item 8.8 (extra name/type-selector/snooze-selector/"use current station"/Advanced fields) stays exactly as documented: deliberate, required by the hard constraint that the editor keep its date field, fallback-station picker and sound dropdown.
1669 lines
38 KiB
Dart
1669 lines
38 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 => 'Listen';
|
||
|
||
@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 settingsGroupAudioTitle => 'AUDIO';
|
||
|
||
@override
|
||
String get settingsGroupStationsTitle => 'STATIONS';
|
||
|
||
@override
|
||
String get settingsGroupRecordingsTitle => 'RECORDINGS & MUSIC';
|
||
|
||
@override
|
||
String get settingsGroupApplicationTitle => 'APPLICATION';
|
||
|
||
@override
|
||
String get infoSectionTitle => 'Info';
|
||
|
||
@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 equalizerBaseExplainer =>
|
||
'This is the base equalizer: it applies to every station without its own setting. A station\'s own EQ is set from its own playback screen and overrides this one.';
|
||
|
||
@override
|
||
String get equalizerActiveOutputLabel => 'Active output';
|
||
|
||
@override
|
||
String get equalizerActiveOutputDefault => 'This device\'s speaker';
|
||
|
||
@override
|
||
String get equalizerStationsWithOwnEqTitle => 'Stations with their own EQ';
|
||
|
||
@override
|
||
String get equalizerStationsWithOwnEqSubtitle => 'Ignore this base equalizer';
|
||
|
||
@override
|
||
String get equalizerStationsWithOwnEqEmpty =>
|
||
'No stations have their own EQ yet.';
|
||
|
||
@override
|
||
String get equalizerSaveAsPresetAction => 'Save as preset';
|
||
|
||
@override
|
||
String get equalizerResetToFlatAction => 'Reset to flat';
|
||
|
||
@override
|
||
String get equalizerSavePresetDialogTitle => 'Save as preset';
|
||
|
||
@override
|
||
String get equalizerSavePresetNameLabel => 'Preset name';
|
||
|
||
@override
|
||
String get equalizerSavePresetEmptyNameError =>
|
||
'Enter a name for the preset.';
|
||
|
||
@override
|
||
String get equalizerSavePresetConfirm => 'Save';
|
||
|
||
@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 recordingsLibraryTitle => 'My recordings';
|
||
|
||
@override
|
||
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
|
||
return '$usedMb MB of $totalMb MB used';
|
||
}
|
||
|
||
@override
|
||
String get recordingsLibraryStorageFolderCaption =>
|
||
'Music/PluriWave · purges oldest at limit';
|
||
|
||
@override
|
||
String get recordingsLibraryEmptyTitle => 'No recordings yet';
|
||
|
||
@override
|
||
String get recordingsLibraryEmptySubtitle =>
|
||
'Recordings you save will appear here.';
|
||
|
||
@override
|
||
String get recordingActionRename => 'Rename';
|
||
|
||
@override
|
||
String get recordingActionShare => 'Share';
|
||
|
||
@override
|
||
String get recordingActionDelete => 'Delete';
|
||
|
||
@override
|
||
String get recordingRenameDialogTitle => 'Rename recording';
|
||
|
||
@override
|
||
String get recordingRenameLabel => 'Name';
|
||
|
||
@override
|
||
String get recordingRenameEmptyError => 'Enter a name';
|
||
|
||
@override
|
||
String get recordingDeleteConfirmTitle => 'Delete recording?';
|
||
|
||
@override
|
||
String get recordingDeleteConfirmMessage => 'This can\'t be undone.';
|
||
|
||
@override
|
||
String get recordingsLibrarySettingsTooltip => 'Recording settings';
|
||
|
||
@override
|
||
String get stationOrderTitle => 'Station order';
|
||
|
||
@override
|
||
String get stationOrderByName => 'By name';
|
||
|
||
@override
|
||
String get stationOrderByQuality => 'By quality';
|
||
|
||
@override
|
||
String get stationOrderByPopularity => 'By popularity';
|
||
|
||
@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 favoritesFilterAllLabel => 'All';
|
||
|
||
@override
|
||
String favoriteGroupsChipLabel(Object groupName, int count) {
|
||
return '$groupName · $count';
|
||
}
|
||
|
||
@override
|
||
String get favoriteGroupsManage => 'Manage lists';
|
||
|
||
@override
|
||
String get customStationsAddCta => 'Add custom station';
|
||
|
||
@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 searchLoadingStationsLabel => 'SEARCHING FOR STATIONS…';
|
||
|
||
@override
|
||
String get searchEmptyTitle => 'Search for a station';
|
||
|
||
@override
|
||
String get searchNoResultsTitle => 'No results';
|
||
|
||
@override
|
||
String searchNoResultsForQueryTitle(Object query) {
|
||
return 'No results for \"$query\"';
|
||
}
|
||
|
||
@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 searchResultsCount(num count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count results',
|
||
one: '1 result',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String searchClearFiltersAction(num count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Clear $count filters',
|
||
one: 'Clear filter',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get countriesScreenTitle => 'Countries';
|
||
|
||
@override
|
||
String get countriesSearchHint => 'Country or code...';
|
||
|
||
@override
|
||
String get countriesYourLanguagesTitle => 'Your languages';
|
||
|
||
@override
|
||
String get countriesAllTitle => 'All countries';
|
||
|
||
@override
|
||
String get radioCountriesError => 'We couldn\'t load the countries.';
|
||
|
||
@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 yourStationsTitle => 'Your stations';
|
||
|
||
@override
|
||
String get seeAllAction => 'See all';
|
||
|
||
@override
|
||
String get openFullPlayerTooltip => 'Open full player';
|
||
|
||
@override
|
||
String get nowListeningLabel => 'Now listening';
|
||
|
||
@override
|
||
String get nothingPlayingTitle => 'Nothing playing yet';
|
||
|
||
@override
|
||
String get nothingPlayingSubtitle =>
|
||
'Pick a station from Your stations or search to start.';
|
||
|
||
@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 exploreByTitle => 'Browse by';
|
||
|
||
@override
|
||
String get exploreTrendingTitle => 'Trending';
|
||
|
||
@override
|
||
String get exploreTrendingSubtitle => 'Today';
|
||
|
||
@override
|
||
String get exploreNewTitle => 'New';
|
||
|
||
@override
|
||
String get exploreNewSubtitle => 'This week';
|
||
|
||
@override
|
||
String get popularNowTitle => 'Popular now';
|
||
|
||
@override
|
||
String get offlineBannerTitle => 'No connection';
|
||
|
||
@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 alarmHeroSkipAction => 'Skip';
|
||
|
||
@override
|
||
String get alarmDeleteConfirmTitle => 'Delete alarm?';
|
||
|
||
@override
|
||
String get alarmDeleteConfirmMessage => 'This can\'t be undone.';
|
||
|
||
@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 alarmSnoozeUsualLabel => 'usual';
|
||
|
||
@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 vacationRangesCount(int count) {
|
||
return '$count ranges';
|
||
}
|
||
|
||
@override
|
||
String vacationSummaryActiveCountdown(int days) {
|
||
return 'Active now · $days days left';
|
||
}
|
||
|
||
@override
|
||
String vacationSummaryUpcomingCountdown(int days) {
|
||
return 'Next range in $days days';
|
||
}
|
||
|
||
@override
|
||
String vacationImpactPausedLabel(Object times) {
|
||
return 'Paused: $times';
|
||
}
|
||
|
||
@override
|
||
String vacationImpactContinuesLabel(Object times) {
|
||
return 'Still ringing: $times';
|
||
}
|
||
|
||
@override
|
||
String get vacationUpcomingSectionTitle => 'SCHEDULED';
|
||
|
||
@override
|
||
String get vacationPastSectionTitle => 'Past ranges';
|
||
|
||
@override
|
||
String get addVacationRangeCta => 'Add range';
|
||
|
||
@override
|
||
String get vacationNoActiveRangeHint => 'No active vacation range right now.';
|
||
|
||
@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 alarmStopFailedMessage =>
|
||
'We couldn\'t confirm the alarm stopped. Try again.';
|
||
|
||
@override
|
||
String get alarmForceStopAction => 'Force stop';
|
||
|
||
@override
|
||
String get alarmMissedNotificationTitle => 'Missed alarm';
|
||
|
||
@override
|
||
String alarmMissedNotificationText(Object name) {
|
||
return '$name was silenced automatically after 10 minutes.';
|
||
}
|
||
|
||
@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 get alarmScheduleDaily => 'Every morning';
|
||
|
||
@override
|
||
String alarmScheduleOnce(Object date) {
|
||
return 'Once · $date';
|
||
}
|
||
|
||
@override
|
||
String alarmScheduleWeekdays(Object days) {
|
||
return 'Days: $days';
|
||
}
|
||
|
||
@override
|
||
String get alarmRepeatSectionLabel => 'REPEAT';
|
||
|
||
@override
|
||
String get alarmVolumeLabel => 'Volume';
|
||
|
||
@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 get playerQualityChangeAction => 'Change';
|
||
|
||
@override
|
||
String get playerToolEqLabel => 'Own EQ';
|
||
|
||
@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 alarmAdvancedSectionTitle => 'Advanced';
|
||
|
||
@override
|
||
String get alarmInlineHourLabel => 'Hour';
|
||
|
||
@override
|
||
String get alarmInlineMinuteLabel => 'Minute';
|
||
|
||
@override
|
||
String get alarmVolumeRisingStatus => 'Turning up the volume';
|
||
|
||
@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 snoozeCountdown(int minutes) {
|
||
return 'Rings in $minutes min';
|
||
}
|
||
|
||
@override
|
||
String get snoozeAgainAction => 'Snooze again';
|
||
|
||
@override
|
||
String get alarmRingingNotificationTitle => 'PluriWave alarm';
|
||
|
||
@override
|
||
String get alarmFireChannelName => 'Ringing alarms';
|
||
|
||
@override
|
||
String get alarmFireChannelDescription =>
|
||
'Urgent sound and screen when a music alarm must ring';
|
||
|
||
@override
|
||
String get alarmPreNoticeChannelName => 'Alarm reminders';
|
||
|
||
@override
|
||
String get alarmPreNoticeChannelDescription =>
|
||
'Silent notifications before the alarm';
|
||
|
||
@override
|
||
String get openFolderChooserTitle => 'Open folder';
|
||
|
||
@override
|
||
String get openRecordingChooserTitle => 'Open recording';
|
||
|
||
@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';
|
||
|
||
@override
|
||
String get eqDeviceActiveOutput => 'Audio is playing through this device';
|
||
|
||
@override
|
||
String get eqDeviceRemove => 'Remove device';
|
||
|
||
@override
|
||
String eqDeviceRemoved(Object device) {
|
||
return '$device removed';
|
||
}
|
||
|
||
@override
|
||
String get localMusicSectionTitle => 'Local music (Android Auto)';
|
||
|
||
@override
|
||
String get localMusicSectionDescription =>
|
||
'Pick a folder on this device to browse and play its audio files from the car.';
|
||
|
||
@override
|
||
String get localMusicFolderNotConfigured => 'No folder selected';
|
||
|
||
@override
|
||
String get localMusicFolderTitle => 'Local music folder';
|
||
|
||
@override
|
||
String get localMusicChoosePath => 'Choose folder';
|
||
|
||
@override
|
||
String get localMusicChangePath => 'Change folder';
|
||
|
||
@override
|
||
String get localMusicFolderUpdated => 'Local music folder updated';
|
||
|
||
@override
|
||
String localMusicFolderSaveError(Object error) {
|
||
return 'Could not save the folder: $error';
|
||
}
|
||
|
||
@override
|
||
String get localMusicFolderGenericName => 'Selected folder';
|
||
|
||
@override
|
||
String get welcomeHeadline => 'Your world, live';
|
||
|
||
@override
|
||
String get welcomeBody =>
|
||
'53,412 stations from 238 countries. Save your favorites, take them to the car, and wake up to them.';
|
||
|
||
@override
|
||
String get welcomeBullet1Title => 'Per-station equalizer';
|
||
|
||
@override
|
||
String get welcomeBullet1Subtitle => 'Plus a preset per output device';
|
||
|
||
@override
|
||
String get welcomeBullet2Title => 'Android Auto';
|
||
|
||
@override
|
||
String get welcomeBullet2Subtitle =>
|
||
'Your favorites and local music in the car';
|
||
|
||
@override
|
||
String get welcomeBullet3Title => 'Music alarms';
|
||
|
||
@override
|
||
String get welcomeBullet3Subtitle =>
|
||
'With gradual volume rise and vacation mode';
|
||
|
||
@override
|
||
String get welcomeCtaLabel => 'Start listening';
|
||
}
|