Files
pluriwave/lib/l10n/app_en.arb
T
FreeTLab bd2b7d8e02 refactor(ajustes): split Settings AUDIO/EMISORAS into pushed detail screens
Moves the AUDIO group (Ecualizador, Salida de audio, Temporizador de
sueno) and the EMISORAS group (Grupos de favoritos, Emisora preferida,
Emisoras personalizadas, Orden de listas) out of pantalla_ajustes.dart
into 7 new lib/pantallas/ajustes/*.dart screens, each wrapped in
PluriPushScaffold. The root now reaches them through FilaAjuste rows
under two new GrupoAjustes cards (lib/pantallas/ajustes/widgets/
fila_ajuste.dart), per design ADR-3.

Verbatim-move rule applied throughout: only each section's panel header
(icon + title, sometimes a status chip) was removed, since the pushed
screen's own 56px header now carries the title. Two sections whose
header row carried a real action (Temporizador de sueno's "Add",
Grupos de favoritos' "Add list", Emisoras personalizadas' "Add") kept
that action in the body instead of dropping it.

size:exception (move-only diff, pre-recorded at design/tasks time):
34 files, ~4250 changed lines excluding the 13 auto-regenerated l10n
files (~90 more lines there) - higher than the 800-1000 estimate
because that estimate covered the 7 production screens but not the
matching 7 new test files (task 3a.2), one of which relocates ~10
pre-existing device-management test cases verbatim. Business logic is
untouched; app.dart's import of pantalla_ajustes.dart is unchanged.

Correction to tasks.md 3a.1/3a.8: those two lines describe the combined
WU3a+WU3b end state ("4 grouped nav lists", "<400 lines"), matching
design ADR-3's own aggregate blast-radius note - not a WU3a-only claim.
This commit converts only the 2 groups that are WU3a's job; the root
is 788 lines with 5 sections (Grabaciones, Musica local, Idioma,
Backup, Info) still inline, reachable, and unchanged, pending WU3b.

Two new ARB keys (settingsGroupAudioTitle, settingsGroupStationsTitle),
en/es only per the WU1 precedent - all 7 detail-screen titles reuse
existing keys. Discovered and worked around, without touching app
code: Directory.systemTemp hangs real dart:io writes in this sandbox,
and pumpAndSettle() cannot settle while a screen shows an indeterminate
CircularProgressIndicator - both are test-only concerns, documented
inline where hit.

Tests: 560 -> 579 (32 in this commit's scope, net +19 after retiring
13 relocated cases from the old combined pantalla_ajustes_test.dart).
flutter analyze: unchanged at 1 pre-existing info. git diff is empty
for navegacion_auto.dart, servicio_ecualizador.dart and
servicio_audio.dart; pantalla_alarma_sonando_dismiss_guard_test.dart
untouched.
2026-07-28 21:38:20 +02:00

694 lines
24 KiB
Plaintext
Raw Blame History

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