The premium sheet had no close affordance or way to defer, and its copy only said "Función Premium" without stating what it unlocks. Adds a header close (X) button and a "not now" secondary action so dismissal is never harder than purchasing, and replaces the bare title with a concrete, honest breakdown of the 5 things premium unlocks (no ads, Android Auto, station recording, alarm vacation ranges, unlimited alarms) plus the one-time-purchase framing. The phone equalizer is never listed, since it stays free for everyone. New l10n keys added to all 13 locales.
1912 lines
47 KiB
Dart
1912 lines
47 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for Spanish Castilian (`es`).
|
||
class AppLocalizationsEs extends AppLocalizations {
|
||
AppLocalizationsEs([String locale = 'es']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'PluriWave';
|
||
|
||
@override
|
||
String get navHome => 'Escuchar';
|
||
|
||
@override
|
||
String get navSearch => 'Buscar';
|
||
|
||
@override
|
||
String get navFavorites => 'Favoritos';
|
||
|
||
@override
|
||
String get navAlarms => 'Alarmas';
|
||
|
||
@override
|
||
String get navSettings => 'Ajustes';
|
||
|
||
@override
|
||
String get actionOk => 'OK';
|
||
|
||
@override
|
||
String get sleepTimer => 'Timer de sueño';
|
||
|
||
@override
|
||
String get sleepTimerDescription =>
|
||
'Apagado suave de la radio con cuenta atrás exacta.';
|
||
|
||
@override
|
||
String get cancelTimer => 'Cancelar timer';
|
||
|
||
@override
|
||
String get optionOther => 'Otro';
|
||
|
||
@override
|
||
String get customDurationTitle => 'Duración personalizada';
|
||
|
||
@override
|
||
String get durationGreaterThanZero => 'Elegí una duración mayor que cero.';
|
||
|
||
@override
|
||
String get hoursLabel => 'Horas';
|
||
|
||
@override
|
||
String get minutesLabel => 'Minutos';
|
||
|
||
@override
|
||
String get secondsLabel => 'Segundos';
|
||
|
||
@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 => 'Guardar como acceso rápido';
|
||
|
||
@override
|
||
String get startTimer => 'Iniciar timer';
|
||
|
||
@override
|
||
String skipCurrentAlarmExecution(Object alarmName) {
|
||
return 'Omitida esta ejecución de $alarmName.';
|
||
}
|
||
|
||
@override
|
||
String get settingsTitle => 'Ajustes';
|
||
|
||
@override
|
||
String get settingsSubtitle =>
|
||
'Control fino de sonido, copias de seguridad y emisoras personalizadas.';
|
||
|
||
@override
|
||
String get settingsGroupAudioTitle => 'AUDIO';
|
||
|
||
@override
|
||
String get settingsGroupStationsTitle => 'EMISORAS';
|
||
|
||
@override
|
||
String get settingsGroupRecordingsTitle => 'GRABACIONES Y MÚSICA';
|
||
|
||
@override
|
||
String get settingsGroupApplicationTitle => 'APLICACIÓN';
|
||
|
||
@override
|
||
String get infoSectionTitle => 'Información';
|
||
|
||
@override
|
||
String get languageSectionTitle => 'Idioma';
|
||
|
||
@override
|
||
String get languageSectionDescription =>
|
||
'Elegí cómo se muestra el idioma de la app.';
|
||
|
||
@override
|
||
String get languageSystemDefault => 'Sistema';
|
||
|
||
@override
|
||
String get languageSpanish => 'Español';
|
||
|
||
@override
|
||
String get languageEnglish => 'Inglés';
|
||
|
||
@override
|
||
String languageUpdated(Object languageName) {
|
||
return 'Idioma actualizado: $languageName';
|
||
}
|
||
|
||
@override
|
||
String get languageUpdatedSystem => 'Idioma actualizado: Sistema';
|
||
|
||
@override
|
||
String get timerSectionTitle => 'Timer de sueño';
|
||
|
||
@override
|
||
String get timerSectionAdd => 'Añadir';
|
||
|
||
@override
|
||
String get timerSectionDescription =>
|
||
'Personalizá los accesos rápidos que aparecen al apagar la radio automáticamente.';
|
||
|
||
@override
|
||
String get timerSectionRestoreRecommended => 'Restaurar tiempos recomendados';
|
||
|
||
@override
|
||
String get newQuickAccessTitle => 'Nuevo acceso rápido';
|
||
|
||
@override
|
||
String get saveQuickAccessButton => 'Guardar acceso rápido';
|
||
|
||
@override
|
||
String get settingsSafeStatus => 'Seguro';
|
||
|
||
@override
|
||
String get recordingsSectionTitle => 'Grabaciones';
|
||
|
||
@override
|
||
String get recordingsFolderDialogTitle =>
|
||
'Selecciona la carpeta de grabaciones';
|
||
|
||
@override
|
||
String get recordingsPathUpdated => 'Ruta de grabación actualizada';
|
||
|
||
@override
|
||
String recordingsPathSaveError(Object error) {
|
||
return 'No se pudo guardar la ruta: $error';
|
||
}
|
||
|
||
@override
|
||
String get recordingsDefaultFolderRestored =>
|
||
'Se usará la carpeta interna por defecto';
|
||
|
||
@override
|
||
String get recordingsFolderTitle => 'Carpeta de grabación';
|
||
|
||
@override
|
||
String get recordingsPathCalculating => 'Calculando ruta...';
|
||
|
||
@override
|
||
String get recordingsChangePath => 'Cambiar ruta';
|
||
|
||
@override
|
||
String get recordingsUseDefaultPath => 'Usar ruta por defecto';
|
||
|
||
@override
|
||
String get recordingsOriginalStreamHint =>
|
||
'La radio se guarda desde el stream original, sin recomprimir.';
|
||
|
||
@override
|
||
String get equalizerActive => 'Activo';
|
||
|
||
@override
|
||
String get equalizerDisabled => 'Desactivado';
|
||
|
||
@override
|
||
String get equalizerEnable => 'Activar ecualizador';
|
||
|
||
@override
|
||
String get equalizerRealtimeSubtitle =>
|
||
'Los cambios se aplican en tiempo real a la emisora actual.';
|
||
|
||
@override
|
||
String get equalizerPendingSubtitle =>
|
||
'Se guardan los cambios y se aplicarán cuando Android habilite el efecto.';
|
||
|
||
@override
|
||
String get equalizerPerStationTitle => 'Usar EQ propio para esta favorita';
|
||
|
||
@override
|
||
String equalizerPerStationActive(Object stationName) {
|
||
return 'Activo para $stationName';
|
||
}
|
||
|
||
@override
|
||
String equalizerPerStationMain(Object stationName) {
|
||
return 'Usando EQ principal para $stationName';
|
||
}
|
||
|
||
@override
|
||
String get equalizerBaseExplainer =>
|
||
'Este es el ecualizador base: se aplica a todas las emisoras que no tengan un ajuste propio. El de una emisora concreta se define desde su propia reproducción y manda sobre este.';
|
||
|
||
@override
|
||
String get equalizerActiveOutputLabel => 'Salida activa';
|
||
|
||
@override
|
||
String get equalizerActiveOutputDefault => 'El altavoz de este dispositivo';
|
||
|
||
@override
|
||
String get equalizerStationsWithOwnEqTitle => 'Emisoras con ajuste propio';
|
||
|
||
@override
|
||
String get equalizerStationsWithOwnEqSubtitle =>
|
||
'Ignoran este ecualizador base';
|
||
|
||
@override
|
||
String get equalizerStationsWithOwnEqEmpty =>
|
||
'Ninguna emisora tiene ajuste propio todavía.';
|
||
|
||
@override
|
||
String get equalizerSaveAsPresetAction => 'Guardar como preset';
|
||
|
||
@override
|
||
String get equalizerResetToFlatAction => 'Restablecer a plano';
|
||
|
||
@override
|
||
String get equalizerSavePresetDialogTitle => 'Guardar como preset';
|
||
|
||
@override
|
||
String get equalizerSavePresetNameLabel => 'Nombre del preset';
|
||
|
||
@override
|
||
String get equalizerSavePresetEmptyNameError =>
|
||
'Ingresá un nombre para el preset.';
|
||
|
||
@override
|
||
String get equalizerSavePresetConfirm => 'Guardar';
|
||
|
||
@override
|
||
String get preferredStationTitle => 'Emisora preferida';
|
||
|
||
@override
|
||
String get preferredStationDescription =>
|
||
'Se preselecciona al crear alarmas y puede iniciarse como reproducción rápida.';
|
||
|
||
@override
|
||
String get preferredStationNoStationsTitle =>
|
||
'Todavía no hay emisoras disponibles';
|
||
|
||
@override
|
||
String get preferredStationNoStationsSubtitle =>
|
||
'Guardá favoritas o cargá emisoras para elegir una preferida.';
|
||
|
||
@override
|
||
String get preferredStationAutomaticFallback => 'Fallback automático';
|
||
|
||
@override
|
||
String get preferredStationDefaultFavorite => 'Favorita por defecto';
|
||
|
||
@override
|
||
String preferredStationCurrent(Object stationName) {
|
||
return 'Preferida actual: $stationName';
|
||
}
|
||
|
||
@override
|
||
String preferredStationAutoUsing(Object stationName) {
|
||
return 'Sin favoritas: usando automáticamente $stationName';
|
||
}
|
||
|
||
@override
|
||
String get preferredStationPlay => 'Reproducir preferida';
|
||
|
||
@override
|
||
String get customStationsTitle => 'Emisoras personalizadas';
|
||
|
||
@override
|
||
String get customStationsAdd => 'Añadir';
|
||
|
||
@override
|
||
String get customStationsEmpty => 'No hay emisoras personalizadas.';
|
||
|
||
@override
|
||
String get playAction => 'Reproducir';
|
||
|
||
@override
|
||
String get deleteAction => 'Eliminar';
|
||
|
||
@override
|
||
String get addStationTitle => 'Añadir emisora';
|
||
|
||
@override
|
||
String get stationNameLabel => 'Nombre *';
|
||
|
||
@override
|
||
String get unnamedStation => 'Sin nombre';
|
||
|
||
@override
|
||
String get requiredField => 'Campo obligatorio';
|
||
|
||
@override
|
||
String get streamUrlLabel => 'URL del stream *';
|
||
|
||
@override
|
||
String get invalidUrl => 'URL no válida';
|
||
|
||
@override
|
||
String get countryOptionalLabel => 'País (opcional)';
|
||
|
||
@override
|
||
String get saveStation => 'Guardar emisora';
|
||
|
||
@override
|
||
String get backupSectionTitle => 'Copia de seguridad';
|
||
|
||
@override
|
||
String get backupExportTitle => 'Exportar configuración';
|
||
|
||
@override
|
||
String get backupExportSubtitle =>
|
||
'Favoritos, emisoras custom y presets de EQ';
|
||
|
||
@override
|
||
String get backupImportTitle => 'Importar configuración';
|
||
|
||
@override
|
||
String get backupImportSubtitle =>
|
||
'Restaurar desde un fichero de copia de seguridad';
|
||
|
||
@override
|
||
String get backupShareSubject => 'PluriWave — copia de seguridad';
|
||
|
||
@override
|
||
String backupShareText(Object date) {
|
||
return 'Configuración de PluriWave exportada el $date';
|
||
}
|
||
|
||
@override
|
||
String backupExportError(Object error) {
|
||
return 'Error al exportar: $error';
|
||
}
|
||
|
||
@override
|
||
String get backupImportConfirmMessage =>
|
||
'Esto añadirá los favoritos, emisoras y presets del fichero. ¿Continuar?';
|
||
|
||
@override
|
||
String get backupImportSuccess => 'Configuración importada correctamente';
|
||
|
||
@override
|
||
String backupImportError(Object error) {
|
||
return 'Error al importar: $error';
|
||
}
|
||
|
||
@override
|
||
String get appVersionLoading => 'Cargando versión...';
|
||
|
||
@override
|
||
String appVersionSubtitle(Object version) {
|
||
return '$version - Radio mundial';
|
||
}
|
||
|
||
@override
|
||
String get savedFavoritesTitle => 'Favoritos guardados';
|
||
|
||
@override
|
||
String get stationFilterTitle => 'Filtro de emisoras';
|
||
|
||
@override
|
||
String get stationFilterSubtitle => 'Solo emisoras verificadas como activas';
|
||
|
||
@override
|
||
String get backgroundAudioTitle => 'Audio en background';
|
||
|
||
@override
|
||
String get backgroundAudioSubtitle => 'Continúa al apagar la pantalla';
|
||
|
||
@override
|
||
String get dash => '—';
|
||
|
||
@override
|
||
String get cancelAction => 'Cancelar';
|
||
|
||
@override
|
||
String get equalizerTitle => 'Ecualizador';
|
||
|
||
@override
|
||
String get recordingsOpenFolder => 'Abrir carpeta';
|
||
|
||
@override
|
||
String recordingsOpenFolderError(Object error) {
|
||
return 'No se pudo abrir la carpeta: $error';
|
||
}
|
||
|
||
@override
|
||
String get recordingsMaxSizeTitle => 'Tamaño máximo de grabación';
|
||
|
||
@override
|
||
String recordingsMaxSizeSubtitle(int size) {
|
||
return 'Límite actual: $size MB';
|
||
}
|
||
|
||
@override
|
||
String get recordingsMaxSizeDialogTitle => 'Tamaño máximo por grabación';
|
||
|
||
@override
|
||
String get recordingsMaxSizeMbLabel => 'Megabytes máximos';
|
||
|
||
@override
|
||
String recordingsMaxSizeSaved(int size) {
|
||
return 'Límite de grabación actualizado a $size MB';
|
||
}
|
||
|
||
@override
|
||
String get recordingsLibraryTitle => 'Mis grabaciones';
|
||
|
||
@override
|
||
String recordingsLibraryStorageCaption(int usedMb, int totalMb) {
|
||
return '$usedMb MB de $totalMb MB usados';
|
||
}
|
||
|
||
@override
|
||
String get recordingsLibraryStorageFolderCaption =>
|
||
'Music/PluriWave · se borran las más antiguas al llegar al límite';
|
||
|
||
@override
|
||
String get recordingsLibraryEmptyTitle => 'Todavía no hay grabaciones';
|
||
|
||
@override
|
||
String get recordingsLibraryEmptySubtitle =>
|
||
'Las grabaciones que guardes van a aparecer acá.';
|
||
|
||
@override
|
||
String get recordingActionRename => 'Renombrar';
|
||
|
||
@override
|
||
String get recordingActionShare => 'Compartir';
|
||
|
||
@override
|
||
String get recordingActionDelete => 'Eliminar';
|
||
|
||
@override
|
||
String get recordingRenameDialogTitle => 'Renombrar grabación';
|
||
|
||
@override
|
||
String get recordingRenameLabel => 'Nombre';
|
||
|
||
@override
|
||
String get recordingRenameEmptyError => 'Ingresá un nombre';
|
||
|
||
@override
|
||
String get recordingDeleteConfirmTitle => '¿Eliminar grabación?';
|
||
|
||
@override
|
||
String get recordingDeleteConfirmMessage =>
|
||
'Esta acción no se puede deshacer.';
|
||
|
||
@override
|
||
String get recordingsLibrarySettingsTooltip => 'Ajustes de grabación';
|
||
|
||
@override
|
||
String get stationOrderTitle => 'Orden de emisoras';
|
||
|
||
@override
|
||
String get stationOrderByName => 'Por nombre';
|
||
|
||
@override
|
||
String get stationOrderByQuality => 'Por calidad';
|
||
|
||
@override
|
||
String get stationOrderByPopularity => 'Por popularidad';
|
||
|
||
@override
|
||
String get stationOrderScopeDescription =>
|
||
'Se aplica a favoritos, búsquedas, emisoras cercanas y listados rápidos.';
|
||
|
||
@override
|
||
String get favoriteGroupsTitle => 'Listas de favoritos';
|
||
|
||
@override
|
||
String get favoriteGroupsDescription =>
|
||
'Creá listas cortas para organizar tus emisoras guardadas.';
|
||
|
||
@override
|
||
String get favoriteGroupsAdd => 'Añadir lista';
|
||
|
||
@override
|
||
String get favoriteGroupsEdit => 'Editar lista';
|
||
|
||
@override
|
||
String get favoriteGroupsDelete => 'Eliminar lista';
|
||
|
||
@override
|
||
String get favoriteGroupsNameLabel => 'Nombre de la lista';
|
||
|
||
@override
|
||
String get favoriteGroupsNameTooLong => 'Máximo 28 caracteres.';
|
||
|
||
@override
|
||
String get favoriteGroupsUnassigned => 'Sin asignar';
|
||
|
||
@override
|
||
String get favoriteGroupsProtectedHint =>
|
||
'Lista por defecto: no se puede editar ni borrar.';
|
||
|
||
@override
|
||
String get favoriteGroupsCreated => 'Lista creada';
|
||
|
||
@override
|
||
String get favoriteGroupsUpdated => 'Lista actualizada';
|
||
|
||
@override
|
||
String get favoriteGroupsDeleted =>
|
||
'Lista eliminada; sus emisoras vuelven a Sin asignar.';
|
||
|
||
@override
|
||
String get favoriteGroupsAssign => 'Mover a lista';
|
||
|
||
@override
|
||
String favoriteGroupsAssignSubtitle(Object groupName) {
|
||
return 'Lista actual: $groupName';
|
||
}
|
||
|
||
@override
|
||
String favoriteGroupsAssigned(Object stationName, Object groupName) {
|
||
return '$stationName movida a $groupName';
|
||
}
|
||
|
||
@override
|
||
String get favoritesTitle => 'Favoritos';
|
||
|
||
@override
|
||
String get favoritesEmptyTitle => 'Sin favoritos aún';
|
||
|
||
@override
|
||
String get favoritesEmptySubtitle =>
|
||
'Tocá el corazón en cualquier emisora para guardarla en tu colección.';
|
||
|
||
@override
|
||
String get favoritesHeaderSubtitle =>
|
||
'Organizá tu colección por listas y dejá cerca las radios importantes.';
|
||
|
||
@override
|
||
String get favoritesCollection => 'Colección';
|
||
|
||
@override
|
||
String favoritesSavedCount(int count) {
|
||
return '$count guardadas';
|
||
}
|
||
|
||
@override
|
||
String get favoritesRemoveTooltip => 'Eliminar de favoritos';
|
||
|
||
@override
|
||
String favoritesRemovedMessage(Object stationName) {
|
||
return '$stationName eliminada de favoritos';
|
||
}
|
||
|
||
@override
|
||
String get favoritesFilterAllLabel => 'Todas';
|
||
|
||
@override
|
||
String favoriteGroupsChipLabel(Object groupName, int count) {
|
||
return '$groupName · $count';
|
||
}
|
||
|
||
@override
|
||
String get favoriteGroupsManage => 'Gestionar listas';
|
||
|
||
@override
|
||
String get customStationsAddCta => 'Añadir emisora personalizada';
|
||
|
||
@override
|
||
String get alarmPostponedCurrentExecution =>
|
||
'Alarma pospuesta para esta ejecución.';
|
||
|
||
@override
|
||
String get searchScreenTitle => 'Buscar señal';
|
||
|
||
@override
|
||
String get searchScreenSubtitle =>
|
||
'Encontrá radios por nombre, país o idioma con filtros rápidos y alto contraste.';
|
||
|
||
@override
|
||
String get searchFiltersLabel => 'Filtros';
|
||
|
||
@override
|
||
String get searchHint => 'Radio Horizonte, jazz, noticias...';
|
||
|
||
@override
|
||
String get searchCountryFilterLabel => 'País';
|
||
|
||
@override
|
||
String get searchLanguageFilterLabel => 'Idioma';
|
||
|
||
@override
|
||
String get searchMinQualityFilterLabel => 'Calidad mínima';
|
||
|
||
@override
|
||
String get searchLoadingStationsLabel => 'BUSCANDO EMISORAS…';
|
||
|
||
@override
|
||
String get searchEmptyTitle => 'Buscá una emisora';
|
||
|
||
@override
|
||
String get searchNoResultsTitle => 'Sin resultados';
|
||
|
||
@override
|
||
String searchNoResultsForQueryTitle(Object query) {
|
||
return 'Sin resultados para «$query»';
|
||
}
|
||
|
||
@override
|
||
String get searchEmptySubtitle =>
|
||
'Usá la barra superior o los chips para descubrir señales de todo el mundo.';
|
||
|
||
@override
|
||
String get searchNoResultsSubtitle =>
|
||
'Probá quitar filtros o escribir otro nombre para encontrar una señal activa.';
|
||
|
||
@override
|
||
String searchResultsCount(num count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count resultados',
|
||
one: '1 resultado',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String searchClearFiltersAction(num count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Quitar los $count filtros',
|
||
one: 'Quitar el filtro',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get countriesScreenTitle => 'Países';
|
||
|
||
@override
|
||
String get countriesSearchHint => 'País o código...';
|
||
|
||
@override
|
||
String get countriesYourLanguagesTitle => 'Tus idiomas';
|
||
|
||
@override
|
||
String get countriesAllTitle => 'Todos los países';
|
||
|
||
@override
|
||
String get radioCountriesError => 'No pudimos cargar los países.';
|
||
|
||
@override
|
||
String get countrySpain => 'España';
|
||
|
||
@override
|
||
String get countryUsa => 'EE. UU.';
|
||
|
||
@override
|
||
String get countryMexico => 'México';
|
||
|
||
@override
|
||
String get countryArgentina => 'Argentina';
|
||
|
||
@override
|
||
String get countryUk => 'Reino Unido';
|
||
|
||
@override
|
||
String get countryFrance => 'Francia';
|
||
|
||
@override
|
||
String get countryGermany => 'Alemania';
|
||
|
||
@override
|
||
String get countryItaly => 'Italia';
|
||
|
||
@override
|
||
String get countryBrazil => 'Brasil';
|
||
|
||
@override
|
||
String get countryJapan => 'Japón';
|
||
|
||
@override
|
||
String get languageNameSpanish => 'Español';
|
||
|
||
@override
|
||
String get languageNameEnglish => 'Inglés';
|
||
|
||
@override
|
||
String get languageNameFrench => 'Francés';
|
||
|
||
@override
|
||
String get languageNameGerman => 'Alemán';
|
||
|
||
@override
|
||
String get languageNamePortuguese => 'Portugués';
|
||
|
||
@override
|
||
String get languageNameItalian => 'Italiano';
|
||
|
||
@override
|
||
String get languageNameJapanese => 'Japonés';
|
||
|
||
@override
|
||
String get languageNameArabic => 'Árabe';
|
||
|
||
@override
|
||
String get languageNameRussian => 'Ruso';
|
||
|
||
@override
|
||
String get homeScreenSubtitle =>
|
||
'Radio global en vivo con señales limpias, favoritos inteligentes y una experiencia visual de concurso.';
|
||
|
||
@override
|
||
String get exploreStations => 'Explorar emisoras';
|
||
|
||
@override
|
||
String stationsCount(int count) {
|
||
return '$count radios';
|
||
}
|
||
|
||
@override
|
||
String get qualityHd => 'Calidad HD';
|
||
|
||
@override
|
||
String get yourStationsTitle => 'Tus emisoras';
|
||
|
||
@override
|
||
String get seeAllAction => 'Ver todas';
|
||
|
||
@override
|
||
String get openFullPlayerTooltip => 'Abrir reproductor completo';
|
||
|
||
@override
|
||
String get nowListeningLabel => 'Escuchando ahora';
|
||
|
||
@override
|
||
String get nothingPlayingTitle => 'Todavía no estás escuchando nada';
|
||
|
||
@override
|
||
String get nothingPlayingSubtitle =>
|
||
'Elegí una emisora de Tus emisoras o buscá una para empezar.';
|
||
|
||
@override
|
||
String get nearYou => 'Cerca de vos';
|
||
|
||
@override
|
||
String nearYouInCountry(Object country) {
|
||
return 'Cerca de vos · $country';
|
||
}
|
||
|
||
@override
|
||
String get detectAction => 'Detectar';
|
||
|
||
@override
|
||
String get liveRadar => 'Radar en directo';
|
||
|
||
@override
|
||
String get genresTitle => 'Géneros';
|
||
|
||
@override
|
||
String get exploreByTitle => 'Explorar por';
|
||
|
||
@override
|
||
String get exploreTrendingTitle => 'Tendencias';
|
||
|
||
@override
|
||
String get exploreTrendingSubtitle => 'Hoy';
|
||
|
||
@override
|
||
String get exploreNewTitle => 'Novedades';
|
||
|
||
@override
|
||
String get exploreNewSubtitle => 'Esta semana';
|
||
|
||
@override
|
||
String get popularNowTitle => 'Populares ahora';
|
||
|
||
@override
|
||
String get offlineBannerTitle => 'Sin conexión';
|
||
|
||
@override
|
||
String get retryAction => 'Reintentar';
|
||
|
||
@override
|
||
String get noStationsAvailable => 'No hay emisoras disponibles';
|
||
|
||
@override
|
||
String get noStationsAvailableSubtitle =>
|
||
'Probá refrescar o elegir otro género para volver a capturar señal.';
|
||
|
||
@override
|
||
String get genrePop => 'Pop';
|
||
|
||
@override
|
||
String get genreRock => 'Rock';
|
||
|
||
@override
|
||
String get genreJazz => 'Jazz';
|
||
|
||
@override
|
||
String get genreClassical => 'Clásica';
|
||
|
||
@override
|
||
String get genreElectronic => 'Electrónica';
|
||
|
||
@override
|
||
String get genreNews => 'Noticias';
|
||
|
||
@override
|
||
String get genreTalk => 'Charlas';
|
||
|
||
@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 => 'Latina';
|
||
|
||
@override
|
||
String get alarmScreenTitle => 'Despertar musical';
|
||
|
||
@override
|
||
String get alarmScreenSubtitle =>
|
||
'Alarmas con radio, sonido seguro, vacaciones inteligentes y próxima ejecución siempre visible.';
|
||
|
||
@override
|
||
String get createAlarmAction => 'Crear alarma';
|
||
|
||
@override
|
||
String alarmsCount(int count) {
|
||
return '$count alarmas';
|
||
}
|
||
|
||
@override
|
||
String get activeAlarmsWithoutNextTitle =>
|
||
'Alarmas activas sin próxima ejecución';
|
||
|
||
@override
|
||
String get noActiveAlarms => 'Sin alarmas activas';
|
||
|
||
@override
|
||
String get nextAlarmTitle => 'Próxima alarma';
|
||
|
||
@override
|
||
String activeAlarmsWithoutNextSubtitle(int count) {
|
||
return 'Hay $count alarma(s) activas, pero ahora mismo no tienen una fecha futura válida. Revisá fecha, días y vacaciones.';
|
||
}
|
||
|
||
@override
|
||
String get createAlarmHint =>
|
||
'Creá una alarma y PluriWave calculará la siguiente ejecución automáticamente.';
|
||
|
||
@override
|
||
String get alarmVacationPlay => 'Suena en vacaciones';
|
||
|
||
@override
|
||
String get alarmVacationPause => 'Pausa en vacaciones';
|
||
|
||
@override
|
||
String alarmFadeInLabel(int seconds) {
|
||
return 'Fade-in ${seconds}s';
|
||
}
|
||
|
||
@override
|
||
String alarmNextExecution(Object date) {
|
||
return 'Siguiente ejecución: $date';
|
||
}
|
||
|
||
@override
|
||
String get alarmNoNextExecution => 'No tiene próxima ejecución activa.';
|
||
|
||
@override
|
||
String alarmSkippedExecution(Object date) {
|
||
return 'Una ejecución fue omitida: $date.';
|
||
}
|
||
|
||
@override
|
||
String get editAction => 'Editar';
|
||
|
||
@override
|
||
String get skipNextAction => 'Omitir siguiente';
|
||
|
||
@override
|
||
String get deleteTooltip => 'Eliminar';
|
||
|
||
@override
|
||
String get alarmHeroSkipAction => 'Saltar';
|
||
|
||
@override
|
||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||
|
||
@override
|
||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||
|
||
@override
|
||
String get alarmSkippedNoNextSnackbar =>
|
||
'Alarma omitida. No queda próxima ejecución.';
|
||
|
||
@override
|
||
String alarmSkippedReturnsSnackbar(Object date) {
|
||
return 'Alarma omitida. Volverá el $date.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationPausedNoNext(Object vacationName) {
|
||
return 'Está pausada por vacaciones ($vacationName) y sin próxima ejecución.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationPausedReturns(Object vacationName, Object date) {
|
||
return 'Está pausada por vacaciones ($vacationName) y vuelve el $date.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationReturns(Object date) {
|
||
return 'Con vacaciones activas, volverá a sonar el $date.';
|
||
}
|
||
|
||
@override
|
||
String get defaultAlarmName => 'Despertador musical';
|
||
|
||
@override
|
||
String get newAlarmTitle => 'Nueva alarma';
|
||
|
||
@override
|
||
String get editAlarmTitle => 'Editar alarma';
|
||
|
||
@override
|
||
String get nameField => 'Nombre';
|
||
|
||
@override
|
||
String get timeField => 'Hora';
|
||
|
||
@override
|
||
String get dateField => 'Fecha';
|
||
|
||
@override
|
||
String get onceOption => 'Una vez';
|
||
|
||
@override
|
||
String get dailyOption => 'Diaria';
|
||
|
||
@override
|
||
String get weekdaysOption => 'Días';
|
||
|
||
@override
|
||
String get soundAndVolumeSection => 'Sonido y volumen';
|
||
|
||
@override
|
||
String get alarmFadeInTitle => 'Fade-in de alarma';
|
||
|
||
@override
|
||
String get alarmFadeInOff => '0 s (sin transición)';
|
||
|
||
@override
|
||
String alarmFadeInSummary(int seconds) {
|
||
return '$seconds s (de 5% al volumen elegido)';
|
||
}
|
||
|
||
@override
|
||
String get internalSafeSoundLabel => 'Sonido seguro interno';
|
||
|
||
@override
|
||
String get soundWarmSunrise => 'Amanecer cálido';
|
||
|
||
@override
|
||
String get soundSoftBell => 'Campana suave';
|
||
|
||
@override
|
||
String get soundDigitalPulse => 'Pulso digital';
|
||
|
||
@override
|
||
String get favoriteStationLabel => 'Emisora favorita';
|
||
|
||
@override
|
||
String get noStationUseInternalSound => 'Sin emisora: usar sonido interno';
|
||
|
||
@override
|
||
String get alarmFallbackStationLabel => 'Emisora de respaldo';
|
||
|
||
@override
|
||
String get alarmStationPickerSearchHint => 'Buscá una emisora por nombre';
|
||
|
||
@override
|
||
String get alarmSnoozeDurationTitle => 'Duración de la posposición';
|
||
|
||
@override
|
||
String get snoozeAction => 'Posponer';
|
||
|
||
@override
|
||
String alarmSnoozeOptionLabel(int minutes) {
|
||
return '$minutes min';
|
||
}
|
||
|
||
@override
|
||
String get alarmSnoozeUsualLabel => 'habitual';
|
||
|
||
@override
|
||
String get saveFavoritesAlarmHint =>
|
||
'Guardá emisoras en Favoritos para usarlas como alarma musical.';
|
||
|
||
@override
|
||
String get useCurrentStationAction => 'Usar emisora actual';
|
||
|
||
@override
|
||
String get playDuringVacations => 'Sonar durante vacaciones';
|
||
|
||
@override
|
||
String get playDuringVacationsHint =>
|
||
'Si lo apagás, la próxima ejecución saltará al primer día válido.';
|
||
|
||
@override
|
||
String get saveAlarmAction => 'Guardar alarma';
|
||
|
||
@override
|
||
String get chooseOneWeekdayError => 'Elegí al menos un día de la semana.';
|
||
|
||
@override
|
||
String get androidReliabilityReview => 'Revisar fiabilidad Android';
|
||
|
||
@override
|
||
String get statusOk => 'OK';
|
||
|
||
@override
|
||
String get statusPending => 'pendiente';
|
||
|
||
@override
|
||
String androidReliabilityStatus(
|
||
Object exact,
|
||
Object notifications,
|
||
Object screen,
|
||
) {
|
||
return 'Fiabilidad: exactas $exact · notificaciones $notifications · pantalla $screen';
|
||
}
|
||
|
||
@override
|
||
String get vacationRangesTitle => 'Rangos de vacaciones';
|
||
|
||
@override
|
||
String get addAction => 'Agregar';
|
||
|
||
@override
|
||
String get vacationRangesHint =>
|
||
'Si una alarma tiene \"Pausa en vacaciones\", se salta automáticamente estos rangos.';
|
||
|
||
@override
|
||
String get noVacationRangesLoaded => 'Sin rangos cargados.';
|
||
|
||
@override
|
||
String get deleteRangeTooltip => 'Eliminar rango';
|
||
|
||
@override
|
||
String vacationRangesCount(int count) {
|
||
return '$count rangos';
|
||
}
|
||
|
||
@override
|
||
String vacationSummaryActiveCountdown(int days) {
|
||
return 'En curso · quedan $days días';
|
||
}
|
||
|
||
@override
|
||
String vacationSummaryUpcomingCountdown(int days) {
|
||
return 'Próximo rango en $days días';
|
||
}
|
||
|
||
@override
|
||
String vacationImpactPausedLabel(Object times) {
|
||
return 'Pausa: $times';
|
||
}
|
||
|
||
@override
|
||
String vacationImpactContinuesLabel(Object times) {
|
||
return 'Sigue sonando: $times';
|
||
}
|
||
|
||
@override
|
||
String get vacationUpcomingSectionTitle => 'PROGRAMADOS';
|
||
|
||
@override
|
||
String get vacationPastSectionTitle => 'Rangos pasados';
|
||
|
||
@override
|
||
String get addVacationRangeCta => 'Añadir rango';
|
||
|
||
@override
|
||
String get vacationExplainerBanner =>
|
||
'Durante estos rangos no suenan las alarmas marcadas como \"pausar en vacaciones\". Las marcadas como \"sonar siempre\" no se ven afectadas.';
|
||
|
||
@override
|
||
String get vacationNoActiveRangeHint =>
|
||
'No hay un rango de vacaciones activo ahora mismo.';
|
||
|
||
@override
|
||
String get vacationsDefaultName => 'Vacaciones';
|
||
|
||
@override
|
||
String get newVacationRangeTitle => 'Nuevo rango de vacaciones';
|
||
|
||
@override
|
||
String get editVacationRangeTitle => 'Editar rango de vacaciones';
|
||
|
||
@override
|
||
String get vacationDeleteConfirmTitle => '¿Eliminar rango de vacaciones?';
|
||
|
||
@override
|
||
String get vacationDeleteConfirmMessage =>
|
||
'Esta acción no se puede deshacer.';
|
||
|
||
@override
|
||
String get startField => 'Inicio';
|
||
|
||
@override
|
||
String get endField => 'Fin';
|
||
|
||
@override
|
||
String get saveRangeAction => 'Guardar rango';
|
||
|
||
@override
|
||
String get noAlarmsYetTitle => 'Todavía no hay alarmas.';
|
||
|
||
@override
|
||
String get noAlarmsYetSubtitle =>
|
||
'Creá una para diseñar tu despertar musical.';
|
||
|
||
@override
|
||
String get ringingInternalAudioActive => 'Sonando con audio seguro interno.';
|
||
|
||
@override
|
||
String get ringingPreparingInternalAudio =>
|
||
'Preparando audio seguro interno.';
|
||
|
||
@override
|
||
String get stopAlarmAction => 'Detener alarma';
|
||
|
||
@override
|
||
String get alarmStopFailedMessage =>
|
||
'No pudimos confirmar que la alarma se detuvo. Inténtalo de nuevo.';
|
||
|
||
@override
|
||
String get alarmForceStopAction => 'Forzar detención';
|
||
|
||
@override
|
||
String get alarmMissedNotificationTitle => 'Alarma perdida';
|
||
|
||
@override
|
||
String alarmMissedNotificationText(Object name) {
|
||
return '$name se silenció automáticamente después de 10 minutos.';
|
||
}
|
||
|
||
@override
|
||
String get pauseAction => 'Pausar';
|
||
|
||
@override
|
||
String miniPlayerOpenLabel(Object stationName) {
|
||
return 'Abrir reproductor de $stationName';
|
||
}
|
||
|
||
@override
|
||
String get playerIconLabel => 'Reproductor';
|
||
|
||
@override
|
||
String get playbackStatusConnecting => 'Conectando...';
|
||
|
||
@override
|
||
String get playbackStatusLive => 'En directo';
|
||
|
||
@override
|
||
String get playbackStatusPaused => 'Pausado';
|
||
|
||
@override
|
||
String get playbackStatusReconnecting => 'Reconectando...';
|
||
|
||
@override
|
||
String get playbackStatusConnectionError => 'Error de conexión';
|
||
|
||
@override
|
||
String get playbackStatusStopped => 'Detenido';
|
||
|
||
@override
|
||
String stationSemanticLabel(Object stationName) {
|
||
return 'Emisora $stationName';
|
||
}
|
||
|
||
@override
|
||
String get favoritesAddTooltip => 'Añadir a favoritos';
|
||
|
||
@override
|
||
String favoritesAddedMessage(Object stationName) {
|
||
return '$stationName añadida a favoritos';
|
||
}
|
||
|
||
@override
|
||
String get stationIconLabel => 'Icono de emisora';
|
||
|
||
@override
|
||
String get liveNow => 'En vivo';
|
||
|
||
@override
|
||
String equalizerBandLabel(Object band) {
|
||
return 'Banda $band';
|
||
}
|
||
|
||
@override
|
||
String equalizerBandValue(Object value) {
|
||
return '$value decibelios';
|
||
}
|
||
|
||
@override
|
||
String get equalizerPresetFlat => 'Plano';
|
||
|
||
@override
|
||
String get equalizerPresetRock => 'Rock';
|
||
|
||
@override
|
||
String get equalizerPresetPop => 'Pop';
|
||
|
||
@override
|
||
String get equalizerPresetBassBoost => 'Refuerzo de graves';
|
||
|
||
@override
|
||
String get equalizerPresetJazz => 'Jazz';
|
||
|
||
@override
|
||
String get equalizerPresetVoice => 'Voz';
|
||
|
||
@override
|
||
String get equalizerPresetCustom => 'Personalizado';
|
||
|
||
@override
|
||
String get onboardingTitle => 'Bienvenido a PluriWave';
|
||
|
||
@override
|
||
String get onboardingNewsTitle => 'Novedades';
|
||
|
||
@override
|
||
String get onboardingStartAction => 'Empezar';
|
||
|
||
@override
|
||
String get onboardingCloseTooltip => 'Cerrar';
|
||
|
||
@override
|
||
String radioRecordingError(Object error) {
|
||
return 'Error al grabar la radio: $error';
|
||
}
|
||
|
||
@override
|
||
String get radioApiConnectionError => 'Sin conexión a la API de radio';
|
||
|
||
@override
|
||
String get radioSearchError => 'Error en la búsqueda. Comprueba tu conexión.';
|
||
|
||
@override
|
||
String get radioLoadMoreStationsError =>
|
||
'No se pudieron cargar más emisoras.';
|
||
|
||
@override
|
||
String get radioNearbyStationsError =>
|
||
'No pudimos detectar emisoras cercanas. Usa filtros por país.';
|
||
|
||
@override
|
||
String radioCannotPlayStation(Object stationName) {
|
||
return 'No se puede reproducir \"$stationName\"';
|
||
}
|
||
|
||
@override
|
||
String get recordingSelectStationFirst =>
|
||
'Primero selecciona una emisora para grabar.';
|
||
|
||
@override
|
||
String recordingStartError(Object error) {
|
||
return 'No se pudo iniciar la grabación: $error';
|
||
}
|
||
|
||
@override
|
||
String get unsupportedConfigVersion =>
|
||
'Versión de configuración no compatible';
|
||
|
||
@override
|
||
String get audioErrorGeneric => 'Error de reproducción';
|
||
|
||
@override
|
||
String get audioErrorNoInternet => 'Sin conexión a internet';
|
||
|
||
@override
|
||
String get audioErrorInvalidUrl => 'La URL de la radio no es válida';
|
||
|
||
@override
|
||
String get audioErrorNotFound => 'La radio no está disponible (error 404)';
|
||
|
||
@override
|
||
String get audioErrorTimeout => 'Tiempo de espera agotado al conectar';
|
||
|
||
@override
|
||
String get audioErrorCannotConnect => 'No se puede conectar a la radio';
|
||
|
||
@override
|
||
String get audioErrorUnsupportedFormat => 'Formato de stream no compatible';
|
||
|
||
@override
|
||
String get audioErrorDecode => 'Error al decodificar el stream de audio';
|
||
|
||
@override
|
||
String get audioErrorCleartext =>
|
||
'Esta radio usa HTTP sin cifrar, y no está permitido';
|
||
|
||
@override
|
||
String get audioErrorSsl => 'Certificado SSL inválido en la radio';
|
||
|
||
@override
|
||
String get audioErrorCannotPlay => 'No se puede reproducir esta radio';
|
||
|
||
@override
|
||
String get audioErrorUnexpectedPlayback => 'Error inesperado al reproducir';
|
||
|
||
@override
|
||
String get androidExactAlarmScheduleError =>
|
||
'Android no pudo programar una alarma exacta. Revisa el permiso de alarmas exactas.';
|
||
|
||
@override
|
||
String get recordingPathEmptyError =>
|
||
'La ruta de grabación no puede estar vacía';
|
||
|
||
@override
|
||
String get recordingMaxSizeInvalidError =>
|
||
'El tamaño máximo debe ser mayor que cero';
|
||
|
||
@override
|
||
String get recordingAlreadyActiveError => 'Ya hay una grabación en curso';
|
||
|
||
@override
|
||
String get alarmRingingFallbackActive => 'Sonando con audio seguro interno.';
|
||
|
||
@override
|
||
String get alarmRingingPreparingFallback =>
|
||
'Preparando audio seguro interno.';
|
||
|
||
@override
|
||
String get alarmRingingTryingStation =>
|
||
'Intentando reproducir tu emisora con máxima calidad disponible.';
|
||
|
||
@override
|
||
String get alarmScheduleDaily => 'Cada mañana';
|
||
|
||
@override
|
||
String alarmScheduleOnce(Object date) {
|
||
return 'Una vez · $date';
|
||
}
|
||
|
||
@override
|
||
String alarmScheduleWeekdays(Object days) {
|
||
return 'Días: $days';
|
||
}
|
||
|
||
@override
|
||
String get alarmRepeatSectionLabel => 'REPETIR';
|
||
|
||
@override
|
||
String get alarmVolumeLabel => 'Volumen';
|
||
|
||
@override
|
||
String get androidReliabilityTitle => 'Revisar fiabilidad Android';
|
||
|
||
@override
|
||
String get closeAction => 'Cerrar';
|
||
|
||
@override
|
||
String get customOption => 'Personalizada';
|
||
|
||
@override
|
||
String get endLabel => 'Fin';
|
||
|
||
@override
|
||
String get equalizerDisable => 'Desactivar ecualizador';
|
||
|
||
@override
|
||
String get helpTitle => 'Ayuda y tutorial';
|
||
|
||
@override
|
||
String get helpSubtitle => '9 pantallas · vuelve a verlo cuando quieras';
|
||
|
||
@override
|
||
String get tutorialSkipAction => 'Saltar';
|
||
|
||
@override
|
||
String get tutorialNextAction => 'Siguiente';
|
||
|
||
@override
|
||
String get tutorialPage1Headline => 'Guarda tus emisoras y agrúpalas';
|
||
|
||
@override
|
||
String get tutorialPage1Body =>
|
||
'Toca el corazón para guardar una emisora. En «Tus emisoras» puedes crear grupos como «Cada mañana» o «Coche» y reordenarlas arrastrando.';
|
||
|
||
@override
|
||
String get tutorialPage2Headline => 'Un ecualizador base y otro por emisora';
|
||
|
||
@override
|
||
String get tutorialPage2Body =>
|
||
'En Ajustes defines el ecualizador general. Y desde la reproducción de una emisora concreta puedes darle su propio ajuste, que manda sobre el general.';
|
||
|
||
@override
|
||
String get tutorialPage3Headline => 'Graba lo que estás escuchando';
|
||
|
||
@override
|
||
String get tutorialPage3Body =>
|
||
'Desde la bandeja de herramientas del reproductor, «Grabar» guarda el stream original. Encuentra tus grabaciones en Ajustes › Grabaciones.';
|
||
|
||
@override
|
||
String get tutorialPage4Headline => 'Alarmas que se adaptan a ti';
|
||
|
||
@override
|
||
String get tutorialPage4Body =>
|
||
'Despiértate con tu emisora favorita, pospón 3, 5 o 10 minutos, y añade rangos de vacaciones para que algunas alarmas se salten solas.';
|
||
|
||
@override
|
||
String get tutorialPage5Headline => 'Tus favoritas, también en el coche';
|
||
|
||
@override
|
||
String get tutorialPage5Body =>
|
||
'Conecta el móvil con Android Auto y encontrarás Favoritos, Todas las emisoras, Mis emisoras y tu Música Local, con botones grandes pensados para conducir.';
|
||
|
||
@override
|
||
String get tutorialPage6Headline => 'Se reconecta sola';
|
||
|
||
@override
|
||
String get tutorialPage6Body =>
|
||
'Si se corta la señal, PluriWave reintenta automáticamente y sigue mostrando tus favoritas guardadas aunque no tengas conexión.';
|
||
|
||
@override
|
||
String get tutorialPage7Headline => 'Elige cuánto posponer';
|
||
|
||
@override
|
||
String get tutorialPage7Body =>
|
||
'Cuando suene una alarma, no hay un único «posponer»: eliges 3, 5 o 10 minutos según lo que necesites en ese momento.';
|
||
|
||
@override
|
||
String get tutorialPage8Headline => '¿No la encuentras? Añádela tú';
|
||
|
||
@override
|
||
String get tutorialPage8Body =>
|
||
'En «Tus emisoras» → Añadir emisora personalizada pega la URL del stream de una emisora que no esté en el buscador. Se guarda en «Mis emisoras», también disponible en el coche.';
|
||
|
||
@override
|
||
String get tutorialPage9Headline => 'Listo, ya conoces lo esencial';
|
||
|
||
@override
|
||
String get tutorialPage9BannerBody =>
|
||
'Para volver a ver este tutorial cuando quieras: Ajustes → Información → Ayuda y tutorial.';
|
||
|
||
@override
|
||
String get indefiniteOption => 'Indefinida';
|
||
|
||
@override
|
||
String get invalidNumber => 'Número inválido';
|
||
|
||
@override
|
||
String get nameLabel => 'Nombre';
|
||
|
||
@override
|
||
String get notPlaying => 'No está reproduciendo';
|
||
|
||
@override
|
||
String get oneTimeOption => 'Una vez';
|
||
|
||
@override
|
||
String get pausePlaybackTooltip => 'Pausar reproducción';
|
||
|
||
@override
|
||
String get playerQualityChangeAction => 'Cambiar';
|
||
|
||
@override
|
||
String get playerToolEqLabel => 'EQ propio';
|
||
|
||
@override
|
||
String qualityOriginal(Object quality) {
|
||
return 'Calidad original: $quality';
|
||
}
|
||
|
||
@override
|
||
String get qualityUnknown => 'Calidad no informada';
|
||
|
||
@override
|
||
String get recordAction => 'Grabar';
|
||
|
||
@override
|
||
String get recordDurationTitle => 'Duración de grabación';
|
||
|
||
@override
|
||
String get recordRadioSubtitle => 'Elegí cuánto tiempo querés grabar.';
|
||
|
||
@override
|
||
String get recordRadioTitle => 'Grabar radio';
|
||
|
||
@override
|
||
String get recordingActiveTitle => 'Grabando radio';
|
||
|
||
@override
|
||
String get recordingDirectTitle => 'Grabación directa';
|
||
|
||
@override
|
||
String get recordingsOpenFolderPlainError =>
|
||
'No se pudo abrir la carpeta de grabaciones';
|
||
|
||
@override
|
||
String get recordingsOpenLatest => 'Abrir última grabación';
|
||
|
||
@override
|
||
String get recordingsOpenLatestError =>
|
||
'No se pudo abrir la última grabación';
|
||
|
||
@override
|
||
String get startLabel => 'Inicio';
|
||
|
||
@override
|
||
String get startPlaybackTooltip => 'Iniciar reproducción';
|
||
|
||
@override
|
||
String get stopAction => 'Parar';
|
||
|
||
@override
|
||
String get stopPlaybackTooltip => 'Detener reproducción';
|
||
|
||
@override
|
||
String get weekdayShortMonday => 'Lun';
|
||
|
||
@override
|
||
String get weekdayShortTuesday => 'Mar';
|
||
|
||
@override
|
||
String get weekdayShortWednesday => 'Mié';
|
||
|
||
@override
|
||
String get weekdayShortThursday => 'Jue';
|
||
|
||
@override
|
||
String get weekdayShortFriday => 'Vie';
|
||
|
||
@override
|
||
String get weekdayShortSaturday => 'Sáb';
|
||
|
||
@override
|
||
String get weekdayShortSunday => 'Dom';
|
||
|
||
@override
|
||
String stationCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count emisoras',
|
||
one: '1 emisora',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get alarmIconLabel => 'Alarma musical';
|
||
|
||
@override
|
||
String get vacationIconLabel => 'Modo vacaciones';
|
||
|
||
@override
|
||
String get alarmAdvancedSectionTitle => 'Avanzado';
|
||
|
||
@override
|
||
String get alarmInlineHourLabel => 'Hora';
|
||
|
||
@override
|
||
String get alarmInlineMinuteLabel => 'Minuto';
|
||
|
||
@override
|
||
String get alarmVolumeRisingStatus => 'Subiendo volumen';
|
||
|
||
@override
|
||
String get streamUrlHint => 'https://stream.example.com:8000/radio';
|
||
|
||
@override
|
||
String get advancedEqSectionTitle => 'Opciones avanzadas de ecualización';
|
||
|
||
@override
|
||
String get advancedEqEnableToggle => 'Activar EQ por dispositivo';
|
||
|
||
@override
|
||
String get advancedEqEnableToggleSubtitle =>
|
||
'Aplica automáticamente un preset de EQ distinto al cambiar la salida de audio.';
|
||
|
||
@override
|
||
String get advancedEqKnownDevicesTitle => 'Dispositivos de audio conocidos';
|
||
|
||
@override
|
||
String get advancedEqKnownDevicesEmpty =>
|
||
'No hay dispositivos registrados. Conectá uno para empezar.';
|
||
|
||
@override
|
||
String advancedEqDevicePresetLabel(Object presetName) {
|
||
return 'Preset: $presetName';
|
||
}
|
||
|
||
@override
|
||
String preNoticeCountdown(int minutes) {
|
||
return 'Empieza en $minutes min';
|
||
}
|
||
|
||
@override
|
||
String snoozeCountdown(int minutes) {
|
||
return 'Suena en $minutes min';
|
||
}
|
||
|
||
@override
|
||
String get snoozeAgainAction => 'Posponer otra vez';
|
||
|
||
@override
|
||
String get alarmRingingNotificationTitle => 'Alarma PluriWave';
|
||
|
||
@override
|
||
String get alarmFireChannelName => 'Alarmas sonando';
|
||
|
||
@override
|
||
String get alarmFireChannelDescription =>
|
||
'Sonido y pantalla urgente cuando una alarma musical debe sonar';
|
||
|
||
@override
|
||
String get alarmPreNoticeChannelName => 'Preavisos de alarmas';
|
||
|
||
@override
|
||
String get alarmPreNoticeChannelDescription =>
|
||
'Notificaciones silenciosas antes de la alarma';
|
||
|
||
@override
|
||
String get openFolderChooserTitle => 'Abrir carpeta';
|
||
|
||
@override
|
||
String get openRecordingChooserTitle => 'Abrir grabación';
|
||
|
||
@override
|
||
String get eqDeviceEditTitle => 'Editar dispositivo';
|
||
|
||
@override
|
||
String get eqDeviceNameLabel => 'Nombre del dispositivo';
|
||
|
||
@override
|
||
String get eqDeviceNameHint => 'Ej: Altavoz del living';
|
||
|
||
@override
|
||
String get eqDeviceNameConfirm => 'Guardar';
|
||
|
||
@override
|
||
String get eqDeviceConnected => 'Conectado';
|
||
|
||
@override
|
||
String get eqDeviceActiveOutput =>
|
||
'El audio está saliendo por este dispositivo';
|
||
|
||
@override
|
||
String get eqDeviceRemove => 'Quitar dispositivo';
|
||
|
||
@override
|
||
String eqDeviceRemoved(Object device) {
|
||
return 'Se quitó $device';
|
||
}
|
||
|
||
@override
|
||
String get localMusicSectionTitle => 'Música local (Android Auto)';
|
||
|
||
@override
|
||
String get localMusicSectionDescription =>
|
||
'Elegí una carpeta de este dispositivo para explorar y reproducir sus archivos de audio desde el auto.';
|
||
|
||
@override
|
||
String get localMusicFolderNotConfigured => 'No hay carpeta seleccionada';
|
||
|
||
@override
|
||
String get localMusicFolderTitle => 'Carpeta de música local';
|
||
|
||
@override
|
||
String get localMusicChoosePath => 'Elegir carpeta';
|
||
|
||
@override
|
||
String get localMusicChangePath => 'Cambiar carpeta';
|
||
|
||
@override
|
||
String get localMusicFolderUpdated => 'Carpeta de música local actualizada';
|
||
|
||
@override
|
||
String localMusicFolderSaveError(Object error) {
|
||
return 'No se pudo guardar la carpeta: $error';
|
||
}
|
||
|
||
@override
|
||
String get localMusicFolderGenericName => 'Carpeta seleccionada';
|
||
|
||
@override
|
||
String get welcomeHeadline => 'Tu mundo, en directo';
|
||
|
||
@override
|
||
String get welcomeBody =>
|
||
'53.412 emisoras de 238 países. Guardá tus favoritas, llevalas al auto y despertate con ellas.';
|
||
|
||
@override
|
||
String get welcomeBullet1Title => 'Ecualizador por emisora';
|
||
|
||
@override
|
||
String get welcomeBullet1Subtitle => 'Y un preset por dispositivo de salida';
|
||
|
||
@override
|
||
String get welcomeBullet2Title => 'Android Auto';
|
||
|
||
@override
|
||
String get welcomeBullet2Subtitle =>
|
||
'Tus favoritas y tu música local en el auto';
|
||
|
||
@override
|
||
String get welcomeBullet3Title => 'Alarmas musicales';
|
||
|
||
@override
|
||
String get welcomeBullet3Subtitle =>
|
||
'Con subida progresiva y modo vacaciones';
|
||
|
||
@override
|
||
String get welcomeCtaLabel => 'Empezar a escuchar';
|
||
|
||
@override
|
||
String get eqCustomActionEnableLabel => 'Activar ecualizador';
|
||
|
||
@override
|
||
String get eqCustomActionDisableLabel => 'Desactivar ecualizador';
|
||
|
||
@override
|
||
String eqCustomActionPresetLabel(String preset) {
|
||
return 'Preset: $preset';
|
||
}
|
||
|
||
@override
|
||
String get alarmCardVacationPausedBadge => 'Pausada por vacaciones';
|
||
|
||
@override
|
||
String get alarmCardSchedulingFailedMessage =>
|
||
'Esta alarma no se pudo registrar en el sistema, así que podría no sonar.';
|
||
|
||
@override
|
||
String get alarmCardPreNoticeFailedMessage =>
|
||
'Esta alarma está programada, pero no se pudo activar su aviso previo.';
|
||
|
||
@override
|
||
String get alarmDiagnosticsExactAlarmsTitle =>
|
||
'Programación de alarma exacta';
|
||
|
||
@override
|
||
String get alarmDiagnosticsExactAlarmsHint =>
|
||
'Permite que la alarma suene en el minuto exacto que elegiste, incluso con el teléfono en reposo.';
|
||
|
||
@override
|
||
String get alarmDiagnosticsNotificationsTitle => 'Notificaciones';
|
||
|
||
@override
|
||
String get alarmDiagnosticsNotificationsHint =>
|
||
'Necesarias para mostrar la alarma y el aviso previo.';
|
||
|
||
@override
|
||
String get alarmDiagnosticsFullScreenTitle =>
|
||
'Pantalla completa de la alarma';
|
||
|
||
@override
|
||
String get alarmDiagnosticsFullScreenHint =>
|
||
'Permite que la pantalla de la alarma aparezca automáticamente, incluso con el teléfono bloqueado.';
|
||
|
||
@override
|
||
String get alarmDiagnosticsBatteryTitle => 'Optimización de batería';
|
||
|
||
@override
|
||
String get alarmDiagnosticsBatteryHint =>
|
||
'Evita que el sistema cierre PluriWave en segundo plano para que la alarma pueda sonar.';
|
||
|
||
@override
|
||
String get alarmDiagnosticsNativeCountTitle =>
|
||
'Alarmas registradas en Android';
|
||
|
||
@override
|
||
String alarmDiagnosticsNativeCountValue(int count) {
|
||
return 'Registradas ahora mismo: $count';
|
||
}
|
||
|
||
@override
|
||
String get alarmDiagnosticsNativeCountAttentionHint =>
|
||
'Tenés una alarma activada, pero todavía ninguna está registrada en el sistema. Volvé a abrir PluriWave o solucioná primero los puntos de arriba.';
|
||
|
||
@override
|
||
String get alarmDiagnosticsManufacturerLabel => 'Fabricante';
|
||
|
||
@override
|
||
String get alarmDiagnosticsSdkLabel => 'Versión de Android (SDK)';
|
||
|
||
@override
|
||
String get alarmDiagnosticsNeedsAttentionStatus => 'Necesita atención';
|
||
|
||
@override
|
||
String get alarmDiagnosticsAutostartTitle =>
|
||
'Un paso manual más en este teléfono';
|
||
|
||
@override
|
||
String alarmDiagnosticsAutostartBody(String manufacturer) {
|
||
return 'Los teléfonos $manufacturer suelen cerrar las apps que están en segundo plano para ahorrar batería. No hay ningún ajuste que PluriWave pueda activar por su cuenta: tenés que activar vos mismo el Inicio automático (a veces llamado \"Autostart\" o \"Actividad en segundo plano\"). Buscalo en Ajustes, dentro de Apps o Batería, o en la app de Seguridad del teléfono.';
|
||
}
|
||
|
||
@override
|
||
String get alarmDiagnosticsFixAction => 'Solucionar';
|
||
|
||
@override
|
||
String get alarmDiagnosticsIntentUnavailable =>
|
||
'No se pudo abrir esa pantalla de ajustes en este teléfono. Buscala manualmente en Ajustes.';
|
||
|
||
@override
|
||
String get alarmDiagnosticsUnavailableHint =>
|
||
'Todavía no pudimos revisar tus ajustes de alarma.';
|
||
|
||
@override
|
||
String get autoEqDisableOption => 'Desactivar';
|
||
|
||
@override
|
||
String get funcionPremium => 'Función Premium';
|
||
|
||
@override
|
||
String get limiteAlarmasAlcanzado =>
|
||
'Has alcanzado el límite de 5 alarmas gratuitas.';
|
||
|
||
@override
|
||
String get desbloquearPremium => 'Desbloquear Premium';
|
||
|
||
@override
|
||
String get restaurarCompras => 'Restaurar compras';
|
||
|
||
@override
|
||
String get compraError =>
|
||
'No se ha podido completar la compra. Inténtalo de nuevo.';
|
||
|
||
@override
|
||
String get restauracionSinCompras =>
|
||
'No hemos encontrado ninguna compra anterior en esta cuenta.';
|
||
|
||
@override
|
||
String get premiumActivo => 'Premium activo';
|
||
|
||
@override
|
||
String get premiumHojaTitulo => 'Desbloquea PluriWave Premium';
|
||
|
||
@override
|
||
String get premiumBeneficioSinAnuncios => 'Sin publicidad en toda la app';
|
||
|
||
@override
|
||
String get premiumBeneficioAndroidAuto => 'Android Auto';
|
||
|
||
@override
|
||
String get premiumBeneficioGrabacion => 'Grabación de emisoras';
|
||
|
||
@override
|
||
String get premiumBeneficioVacaciones =>
|
||
'Rangos de vacaciones para las alarmas';
|
||
|
||
@override
|
||
String get premiumBeneficioAlarmasIlimitadas =>
|
||
'Alarmas ilimitadas (el plan gratuito permite hasta 5)';
|
||
|
||
@override
|
||
String get premiumPagoUnico =>
|
||
'Pago único, para siempre. No es una suscripción.';
|
||
|
||
@override
|
||
String get premiumAhoraNo => 'Ahora no';
|
||
}
|