Files
pluriwave/lib/l10n/app_ru.arb
T
FreeTLab 39ead7bea4
Build & Deploy PluriWave / Análisis de código (push) Successful in 27s
Build & Deploy PluriWave / Build APK + AAB release (push) Successful in 1m39s
fix(eq): stop the phone speaker from impersonating a Bluetooth device
deviceToMap handed the builtin_speaker id to EVERY output type its `when`
did not name. A car stereo on LE Audio (TYPE_BLE_HEADSET) or an automotive
bus (TYPE_BUS) therefore arrived in Dart under the phone speaker's own id,
carrying a type that maps to `desconocido` -- which slipped past the
type-only esBase guard and persisted a device entry keyed builtin_speaker.
From that moment on, every playback through the phone's own speaker matched
that entry, so the green active-output dot stayed pinned to whatever the user
had renamed it to (a car, in the reported case) whether or not anything was
connected. The dot was never wrong; the row was poisoned.

Give unnamed output types their own `other:<type>:<address>` id namespace,
and match esBase by id as well as by type so no future native regression can
re-create the collision. A guarded one-time migration purges what the
collision already persisted from all three device-keyed maps.

Fix the ranking too: builtin_speaker sat inside the priority list as a peer,
so any type absent from that list sorted BELOW the always-present speaker
and could never win. The speaker is now the explicit last resort, externally
connected outputs outrank it, and virtual or call-only sinks (earpiece,
telephony, remote submix, SCO) are ranked below it so they can never be
reported as where music is playing.

Route every AudioDeviceInfo.getAddress read through a version-guarded
helper. It is API 28 with minSdk 24, and two pre-existing unguarded calls in
this same method were latent NoSuchMethodError crashes on Android 7-8.1.
Android lint for :app goes from 8 errors to 6.

Also lets the user manage the list, which is how they recover from a bad
entry without waiting for a release: a remove action clears a device's
preset, name and matrix entries, unnamed rows show their transport and
address tail instead of a raw bt_a2dp:AA:BB:... id, and the green dot
finally carries a tooltip and a semantics label saying what it means.

Device QA pending for wired and USB outputs: no jack or adapter available to
exercise those paths. Their detection is unchanged by this commit.
2026-07-25 16:10:36 +02:00

691 lines
33 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": "ru",
"appTitle": "PluriWave",
"navHome": "Главная",
"navSearch": "Поиск",
"navFavorites": "Избранное",
"navAlarms": "Будильники",
"navSettings": "Настройки",
"actionOk": "ОК",
"sleepTimer": "Таймер сна",
"sleepTimerDescription": "Плавное выключение радио с точным обратным отсчётом.",
"cancelTimer": "Отменить таймер",
"optionOther": "Другое",
"customDurationTitle": "Своя длительность",
"durationGreaterThanZero": "Выберите длительность больше нуля.",
"hoursLabel": "Часы",
"minutesLabel": "Минуты",
"secondsLabel": "Секунды",
"durationHoursMinutesSeconds": "{hours} ч {minutes} мин {seconds} сек",
"@durationHoursMinutesSeconds": {
"placeholders": {
"hours": {},
"minutes": {},
"seconds": {}
}
},
"durationMinutesSeconds": "{minutes} мин {seconds} сек",
"@durationMinutesSeconds": {
"placeholders": {
"minutes": {},
"seconds": {}
}
},
"durationMinutesOnly": "{minutes} мин",
"@durationMinutesOnly": {
"placeholders": {
"minutes": {}
}
},
"durationSecondsOnly": "{seconds} сек",
"@durationSecondsOnly": {
"placeholders": {
"seconds": {}
}
},
"saveQuickAccess": "Сохранить как быстрый доступ",
"startTimer": "Запустить таймер",
"skipCurrentAlarmExecution": "Этот запуск {alarmName} пропущен.",
"@skipCurrentAlarmExecution": {
"placeholders": {
"alarmName": {}
}
},
"settingsTitle": "Настройки",
"settingsSubtitle": "Точная настройка звука, резервных копий и пользовательских станций.",
"languageSectionTitle": "Язык",
"languageSectionDescription": "Выберите, как отображается язык приложения.",
"languageSystemDefault": "Система",
"languageSpanish": "Испанский",
"languageEnglish": "Английский",
"languageUpdated": "Язык обновлён: {languageName}",
"@languageUpdated": {
"placeholders": {
"languageName": {}
}
},
"languageUpdatedSystem": "Язык обновлён: система",
"timerSectionTitle": "Таймер сна",
"timerSectionAdd": "Добавить",
"timerSectionDescription": "Настройте быстрые пресеты, которые появляются при автоматическом выключении радио.",
"timerSectionRestoreRecommended": "Восстановить рекомендуемое время",
"newQuickAccessTitle": "Новый быстрый доступ",
"saveQuickAccessButton": "Сохранить быстрый доступ",
"settingsSafeStatus": "Безопасно",
"recordingsSectionTitle": "Записи",
"recordingsFolderDialogTitle": "Выберите папку для записей",
"recordingsPathUpdated": "Путь записи обновлён",
"recordingsPathSaveError": "Не удалось сохранить путь: {error}",
"recordingsDefaultFolderRestored": "Будет использована внутренняя папка по умолчанию",
"recordingsFolderTitle": "Папка записей",
"recordingsPathCalculating": "Вычисление пути...",
"recordingsChangePath": "Изменить путь",
"recordingsUseDefaultPath": "Использовать путь по умолчанию",
"recordingsOriginalStreamHint": "Радио сохраняется из исходного потока без повторного сжатия.",
"equalizerActive": "Активно",
"equalizerDisabled": "Отключено",
"equalizerEnable": "Включить эквалайзер",
"equalizerRealtimeSubtitle": "Изменения применяются к текущей станции в реальном времени.",
"equalizerPendingSubtitle": "Изменения сохраняются и применятся, когда Android включит эффект.",
"equalizerPerStationTitle": "Использовать свой EQ для этого избранного",
"equalizerPerStationActive": "Активно для {stationName}",
"equalizerPerStationMain": "Используется основной EQ для {stationName}",
"preferredStationTitle": "Предпочитаемая станция",
"preferredStationDescription": "Предварительно выбирается при создании будильников и доступна для быстрого воспроизведения.",
"preferredStationNoStationsTitle": "Пока нет доступных станций",
"preferredStationNoStationsSubtitle": "Сохраните избранные или загрузите станции, чтобы выбрать предпочитаемую.",
"preferredStationAutomaticFallback": "Автоматический резерв",
"preferredStationDefaultFavorite": "Избранное по умолчанию",
"preferredStationCurrent": "Текущая предпочитаемая: {stationName}",
"preferredStationAutoUsing": "Нет избранных: автоматически используется {stationName}",
"preferredStationPlay": "Воспроизвести предпочитаемую",
"customStationsTitle": "Пользовательские станции",
"customStationsAdd": "Добавить",
"customStationsEmpty": "Пользовательских станций нет.",
"playAction": "Воспроизвести",
"deleteAction": "Удалить",
"addStationTitle": "Добавить станцию",
"stationNameLabel": "Название *",
"unnamedStation": "Станция без названия",
"requiredField": "Обязательное поле",
"streamUrlLabel": "URL потока *",
"invalidUrl": "Недопустимый URL",
"countryOptionalLabel": "Страна (необязательно)",
"saveStation": "Сохранить станцию",
"backupSectionTitle": "Резервная копия",
"backupExportTitle": "Экспортировать настройки",
"backupExportSubtitle": "Избранное, пользовательские станции и пресеты EQ",
"backupImportTitle": "Импортировать настройки",
"backupImportSubtitle": "Восстановить из файла резервной копии",
"backupShareSubject": "PluriWave — резервная копия",
"backupShareText": "Настройки PluriWave, экспортированные {date}",
"backupExportError": "Ошибка при экспорте: {error}",
"backupImportConfirmMessage": "Это добавит избранное, станции и пресеты из файла. Продолжить?",
"backupImportSuccess": "Настройки успешно импортированы",
"backupImportError": "Ошибка при импорте: {error}",
"appVersionLoading": "Загрузка версии...",
"appVersionSubtitle": "{version} — мировое радио",
"savedFavoritesTitle": "Сохранённое избранное",
"stationFilterTitle": "Фильтр станций",
"stationFilterSubtitle": "Только станции, подтверждённые как активные",
"backgroundAudioTitle": "Фоновое аудио",
"backgroundAudioSubtitle": "Продолжается при выключенном экране",
"dash": "—",
"@recordingsPathSaveError": {
"placeholders": {
"error": {}
}
},
"@equalizerPerStationActive": {
"placeholders": {
"stationName": {}
}
},
"@equalizerPerStationMain": {
"placeholders": {
"stationName": {}
}
},
"@preferredStationCurrent": {
"placeholders": {
"stationName": {}
}
},
"@preferredStationAutoUsing": {
"placeholders": {
"stationName": {}
}
},
"@backupShareText": {
"placeholders": {
"date": {}
}
},
"@backupExportError": {
"placeholders": {
"error": {}
}
},
"@backupImportError": {
"placeholders": {
"error": {}
}
},
"@appVersionSubtitle": {
"placeholders": {
"version": {}
}
},
"cancelAction": "Отмена",
"equalizerTitle": "Эквалайзер",
"recordingsOpenFolder": "Открыть папку",
"recordingsOpenFolderError": "Не удалось открыть папку: {error}",
"recordingsMaxSizeTitle": "Максимальный размер записи",
"recordingsMaxSizeSubtitle": "Текущий лимит: {size} МБ",
"recordingsMaxSizeDialogTitle": "Максимальный размер одной записи",
"recordingsMaxSizeMbLabel": "Максимум мегабайт",
"recordingsMaxSizeSaved": "Лимит записи обновлён до {size} МБ",
"@recordingsOpenFolderError": {
"placeholders": {
"error": {}
}
},
"@recordingsMaxSizeSubtitle": {
"placeholders": {
"size": {
"type": "int"
}
}
},
"@recordingsMaxSizeSaved": {
"placeholders": {
"size": {
"type": "int"
}
}
},
"stationOrderTitle": "Порядок станций",
"stationOrderByName": "По названию",
"stationOrderByQuality": "По качеству",
"stationOrderScopeDescription": "Применяется к избранному, поиску, ближайшим станциям и быстрым спискам.",
"favoriteGroupsTitle": "Списки избранного",
"favoriteGroupsDescription": "Создавайте короткие списки, чтобы упорядочить сохранённые станции.",
"favoriteGroupsAdd": "Добавить список",
"favoriteGroupsEdit": "Изменить список",
"favoriteGroupsDelete": "Удалить список",
"favoriteGroupsNameLabel": "Название списка",
"favoriteGroupsNameTooLong": "Максимум 28 символов.",
"favoriteGroupsUnassigned": "Без списка",
"favoriteGroupsProtectedHint": "Список по умолчанию: нельзя изменить или удалить.",
"favoriteGroupsCreated": "Список создан",
"favoriteGroupsUpdated": "Список обновлён",
"favoriteGroupsDeleted": "Список удалён; его станции вернулись в «Без списка».",
"favoriteGroupsAssign": "Переместить в список",
"favoriteGroupsAssignSubtitle": "Текущий список: {groupName}",
"favoriteGroupsAssigned": "{stationName} перемещена в {groupName}",
"favoritesTitle": "Избранное",
"favoritesEmptyTitle": "Избранного пока нет",
"favoritesEmptySubtitle": "Нажмите на сердце у любой станции, чтобы сохранить её в коллекцию.",
"favoritesHeaderSubtitle": "Организуйте коллекцию по спискам и держите важные радио под рукой.",
"favoritesCollection": "Коллекция",
"favoritesSavedCount": "{count} сохранено",
"favoritesRemoveTooltip": "Удалить из избранного",
"favoritesRemovedMessage": "{stationName} удалена из избранного",
"@favoriteGroupsAssignSubtitle": {
"placeholders": {
"groupName": {}
}
},
"@favoriteGroupsAssigned": {
"placeholders": {
"stationName": {},
"groupName": {}
}
},
"@favoritesSavedCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@favoritesRemovedMessage": {
"placeholders": {
"stationName": {}
}
},
"alarmPostponedCurrentExecution": "Будильник отложен для этого запуска.",
"searchScreenTitle": "Поиск сигнала",
"searchScreenSubtitle": "Находите радио по названию, стране или языку с быстрыми фильтрами и высокой контрастностью.",
"searchFiltersLabel": "Фильтры",
"searchHint": "Радио Горизонт, джаз, новости...",
"searchCountryFilterLabel": "Страна",
"searchLanguageFilterLabel": "Язык",
"searchMinQualityFilterLabel": "Минимальное качество",
"searchEmptyTitle": "Найдите станцию",
"searchNoResultsTitle": "Нет результатов",
"searchEmptySubtitle": "Используйте верхнюю строку или чипы, чтобы находить сигналы со всего мира.",
"searchNoResultsSubtitle": "Попробуйте убрать фильтры или ввести другое название, чтобы найти активный сигнал.",
"countrySpain": "Испания",
"countryUsa": "США",
"countryMexico": "Мексика",
"countryArgentina": "Аргентина",
"countryUk": "Великобритания",
"countryFrance": "Франция",
"countryGermany": "Германия",
"countryItaly": "Италия",
"countryBrazil": "Бразилия",
"countryJapan": "Япония",
"languageNameSpanish": "испанский",
"languageNameEnglish": "английский",
"languageNameFrench": "французский",
"languageNameGerman": "немецкий",
"languageNamePortuguese": "португальский",
"languageNameItalian": "итальянский",
"languageNameJapanese": "японский",
"languageNameArabic": "арабский",
"languageNameRussian": "русский",
"homeScreenSubtitle": "Глобальное радио в прямом эфире с чистыми сигналами, умным избранным и визуальным стилем телевикторины.",
"exploreStations": "Изучить станции",
"stationsCount": "{count} радиостанций",
"@stationsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"qualityHd": "HD-качество",
"nearYou": "Рядом с вами",
"nearYouInCountry": "Рядом с вами · {country}",
"@nearYouInCountry": {
"placeholders": {
"country": {}
}
},
"detectAction": "Определить",
"liveRadar": "Радар в эфире",
"genresTitle": "Жанры",
"retryAction": "Повторить",
"noStationsAvailable": "Нет доступных станций",
"noStationsAvailableSubtitle": "Попробуйте обновить или выбрать другой жанр, чтобы снова поймать сигнал.",
"genrePop": "Поп",
"genreRock": "Рок",
"genreJazz": "Джаз",
"genreClassical": "Классика",
"genreElectronic": "Электронная",
"genreNews": "Новости",
"genreTalk": "Разговорные",
"genreHipHop": "Хип-хоп",
"genreCountry": "Кантри",
"genreMetal": "Метал",
"genreReggae": "Регги",
"genreLatin": "Латинская",
"alarmScreenTitle": "Музыкальное пробуждение",
"alarmScreenSubtitle": "Будильники с радио, безопасным звуком, умными отпусками и всегда видимым следующим запуском.",
"createAlarmAction": "Создать будильник",
"alarmsCount": "{count} будильников",
"@alarmsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"activeAlarmsWithoutNextTitle": "Активные будильники без следующего запуска",
"noActiveAlarms": "Нет активных будильников",
"nextAlarmTitle": "Следующий будильник",
"activeAlarmsWithoutNextSubtitle": "Есть {count} активных будильников, но сейчас у них нет допустимой будущей даты. Проверьте дату, дни и отпуска.",
"@activeAlarmsWithoutNextSubtitle": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"createAlarmHint": "Создайте будильник, и PluriWave автоматически рассчитает следующий запуск.",
"alarmVacationPlay": "Звонит в отпуске",
"alarmVacationPause": "Пауза в отпуске",
"alarmFadeInLabel": "Плавное усиление {seconds}с",
"@alarmFadeInLabel": {
"placeholders": {
"seconds": {
"type": "int"
}
}
},
"alarmNextExecution": "Следующий запуск: {date}",
"@alarmNextExecution": {
"placeholders": {
"date": {}
}
},
"alarmNoNextExecution": "Нет активного следующего запуска.",
"alarmSkippedExecution": "Один запуск был пропущен: {date}.",
"@alarmSkippedExecution": {
"placeholders": {
"date": {}
}
},
"editAction": "Изменить",
"skipNextAction": "Пропустить следующий",
"deleteTooltip": "Удалить",
"alarmSkippedNoNextSnackbar": "Будильник пропущен. Следующего запуска нет.",
"alarmSkippedReturnsSnackbar": "Будильник пропущен. Вернётся {date}.",
"@alarmSkippedReturnsSnackbar": {
"placeholders": {
"date": {}
}
},
"alarmVacationPausedNoNext": "Приостановлен из-за отпуска ({vacationName}) и без следующего запуска.",
"@alarmVacationPausedNoNext": {
"placeholders": {
"vacationName": {}
}
},
"alarmVacationPausedReturns": "Приостановлен из-за отпуска ({vacationName}) и вернётся {date}.",
"@alarmVacationPausedReturns": {
"placeholders": {
"vacationName": {},
"date": {}
}
},
"alarmVacationReturns": "С активным отпуском снова прозвучит {date}.",
"@alarmVacationReturns": {
"placeholders": {
"date": {}
}
},
"defaultAlarmName": "Музыкальный будильник",
"newAlarmTitle": "Новый будильник",
"editAlarmTitle": "Изменить будильник",
"nameField": "Название",
"timeField": "Время",
"dateField": "Дата",
"onceOption": "Один раз",
"dailyOption": "Ежедневно",
"weekdaysOption": "Дни",
"soundAndVolumeSection": "Звук и громкость",
"alarmFadeInTitle": "Плавное усиление будильника",
"alarmFadeInOff": "0 с (без перехода)",
"alarmFadeInSummary": "{seconds} с (с 5% до выбранной громкости)",
"@alarmFadeInSummary": {
"placeholders": {
"seconds": {
"type": "int"
}
}
},
"internalSafeSoundLabel": "Безопасный внутренний звук",
"soundWarmSunrise": "Тёплый рассвет",
"soundSoftBell": "Мягкий колокольчик",
"soundDigitalPulse": "Цифровой импульс",
"favoriteStationLabel": "Избранная станция",
"noStationUseInternalSound": "Без станции: использовать внутренний звук",
"alarmFallbackStationLabel": "Резервная станция",
"alarmStationPickerSearchHint": "Поиск станции по названию",
"alarmSnoozeDurationTitle": "Интервал повтора",
"snoozeAction": "Отложить",
"alarmSnoozeOptionLabel": "{minutes} мин",
"@alarmSnoozeOptionLabel": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"saveFavoritesAlarmHint": "Сохраните станции в избранное, чтобы использовать их как музыкальный будильник.",
"useCurrentStationAction": "Использовать текущую станцию",
"playDuringVacations": "Звонить во время отпусков",
"playDuringVacationsHint": "Если выключить, следующий запуск перейдёт на первый допустимый день.",
"saveAlarmAction": "Сохранить будильник",
"chooseOneWeekdayError": "Выберите хотя бы один день недели.",
"androidReliabilityReview": "Проверить надёжность Android",
"statusOk": "ОК",
"statusPending": "ожидает",
"androidReliabilityStatus": "Надёжность: точные {exact} · уведомления {notifications} · экран {screen}",
"@androidReliabilityStatus": {
"placeholders": {
"exact": {},
"notifications": {},
"screen": {}
}
},
"vacationRangesTitle": "Периоды отпусков",
"addAction": "Добавить",
"vacationRangesHint": "Если у будильника включена «Пауза в отпуске», эти периоды будут автоматически пропущены.",
"noVacationRangesLoaded": "Периоды не загружены.",
"deleteRangeTooltip": "Удалить период",
"vacationsDefaultName": "Отпуск",
"newVacationRangeTitle": "Новый период отпуска",
"startField": "Начало",
"endField": "Конец",
"saveRangeAction": "Сохранить период",
"noAlarmsYetTitle": "Будильников пока нет.",
"noAlarmsYetSubtitle": "Создайте один, чтобы настроить своё музыкальное пробуждение.",
"ringingInternalAudioActive": "Звонит с безопасным внутренним звуком.",
"ringingPreparingInternalAudio": "Подготовка безопасного внутреннего звука.",
"stopAlarmAction": "Остановить будильник",
"alarmStopFailedMessage": "Не удалось подтвердить, что будильник остановлен. Попробуйте снова.",
"alarmForceStopAction": "Принудительно остановить",
"alarmMissedNotificationTitle": "Пропущенный будильник",
"alarmMissedNotificationText": "{name} был автоматически отключён через 10 минут.",
"@alarmMissedNotificationText": {
"placeholders": {
"name": {}
}
},
"pauseAction": "Пауза",
"miniPlayerOpenLabel": "Открыть плеер для {stationName}",
"@miniPlayerOpenLabel": {
"placeholders": {
"stationName": {}
}
},
"playerIconLabel": "Плеер",
"playbackStatusConnecting": "Подключение...",
"playbackStatusLive": "В эфире",
"playbackStatusPaused": "Приостановлено",
"playbackStatusReconnecting": "Переподключение...",
"playbackStatusConnectionError": "Ошибка подключения",
"playbackStatusStopped": "Остановлено",
"stationSemanticLabel": "Станция {stationName}",
"@stationSemanticLabel": {
"placeholders": {
"stationName": {}
}
},
"favoritesAddTooltip": "Добавить в избранное",
"favoritesAddedMessage": "{stationName} добавлена в избранное",
"@favoritesAddedMessage": {
"placeholders": {
"stationName": {}
}
},
"stationIconLabel": "Значок станции",
"liveNow": "В эфире",
"equalizerBandLabel": "Полоса {band}",
"@equalizerBandLabel": {
"placeholders": {
"band": {}
}
},
"equalizerBandValue": "{value} дБ",
"@equalizerBandValue": {
"placeholders": {
"value": {}
}
},
"equalizerPresetFlat": "Плоский",
"equalizerPresetRock": "Рок",
"equalizerPresetPop": "Поп",
"equalizerPresetBassBoost": "Усиление басов",
"equalizerPresetJazz": "Джаз",
"equalizerPresetVoice": "Голос",
"equalizerPresetCustom": "Пользовательский",
"onboardingTitle": "Добро пожаловать в PluriWave",
"onboardingNewsTitle": "Что нового",
"onboardingStartAction": "Начать",
"onboardingCloseTooltip": "Закрыть",
"radioRecordingError": "Ошибка записи радио: {error}",
"@radioRecordingError": {
"placeholders": {
"error": {}
}
},
"radioApiConnectionError": "Нет подключения к API радио",
"radioSearchError": "Ошибка поиска. Проверьте подключение.",
"radioLoadMoreStationsError": "Не удалось загрузить больше станций.",
"radioNearbyStationsError": "Не удалось обнаружить ближайшие станции. Используйте фильтры по стране.",
"radioCannotPlayStation": "Невозможно воспроизвести \"{stationName}\"",
"@radioCannotPlayStation": {
"placeholders": {
"stationName": {}
}
},
"recordingSelectStationFirst": "Сначала выберите станцию для записи.",
"recordingStartError": "Не удалось начать запись: {error}",
"@recordingStartError": {
"placeholders": {
"error": {}
}
},
"unsupportedConfigVersion": "Неподдерживаемая версия конфигурации",
"audioErrorGeneric": "Ошибка воспроизведения",
"audioErrorNoInternet": "Нет подключения к интернету",
"audioErrorInvalidUrl": "URL радио недействителен",
"audioErrorNotFound": "Радио недоступно (ошибка 404)",
"audioErrorTimeout": "Время ожидания подключения истекло",
"audioErrorCannotConnect": "Не удалось подключиться к радио",
"audioErrorUnsupportedFormat": "Неподдерживаемый формат потока",
"audioErrorDecode": "Ошибка декодирования аудиопотока",
"audioErrorCleartext": "Это радио использует незашифрованный HTTP, что не разрешено",
"audioErrorSsl": "Недействительный SSL-сертификат у радио",
"audioErrorCannotPlay": "Это радио невозможно воспроизвести",
"audioErrorUnexpectedPlayback": "Неожиданная ошибка воспроизведения",
"androidExactAlarmScheduleError": "Android не смог запланировать точный будильник. Проверьте разрешение для точных будильников.",
"recordingPathEmptyError": "Путь записи не может быть пустым",
"recordingMaxSizeInvalidError": "Максимальный размер должен быть больше нуля",
"recordingAlreadyActiveError": "Запись уже выполняется",
"alarmRingingFallbackActive": "Воспроизведение с внутренним безопасным аудио.",
"alarmRingingPreparingFallback": "Подготавливается внутреннее безопасное аудио.",
"alarmRingingTryingStation": "Пытаемся воспроизвести вашу станцию в максимально доступном качестве.",
"alarmScheduleOnce": "Один раз · {date}",
"@alarmScheduleOnce": {
"placeholders": {
"date": {}
}
},
"alarmScheduleWeekdays": "Дни: {days}",
"@alarmScheduleWeekdays": {
"placeholders": {
"days": {}
}
},
"androidReliabilityTitle": "Проверить надёжность Android",
"closeAction": "Закрыть",
"customOption": "Своя",
"endLabel": "Конец",
"equalizerDisable": "Отключить эквалайзер",
"helpTitle": "Помощь и руководство",
"helpSubtitle": "Посмотрите функции, советы и новости PluriWave.",
"indefiniteOption": "Без ограничения",
"invalidNumber": "Недопустимое число",
"nameLabel": "Название",
"notPlaying": "Не воспроизводится",
"oneTimeOption": "Один раз",
"pausePlaybackTooltip": "Пауза",
"qualityOriginal": "Исходное качество: {quality}",
"@qualityOriginal": {
"placeholders": {
"quality": {}
}
},
"qualityUnknown": "Качество не указано",
"recordAction": "Записать",
"recordDurationTitle": "Длительность записи",
"recordRadioSubtitle": "Выберите длительность записи.",
"recordRadioTitle": "Записать радио",
"recordingActiveTitle": "Запись радио",
"recordingDirectTitle": "Прямая запись",
"recordingsOpenFolderPlainError": "Не удалось открыть папку записей",
"recordingsOpenLatest": "Открыть последнюю запись",
"recordingsOpenLatestError": "Не удалось открыть последнюю запись",
"startLabel": "Начало",
"startPlaybackTooltip": "Начать воспроизведение",
"stopAction": "Остановить",
"stopPlaybackTooltip": "Остановить воспроизведение",
"weekdayShortMonday": "Пн",
"weekdayShortTuesday": "Вт",
"weekdayShortWednesday": "Ср",
"weekdayShortThursday": "Чт",
"weekdayShortFriday": "Пт",
"weekdayShortSaturday": "Сб",
"weekdayShortSunday": "Вс",
"stationCount": "{count, plural, one{{count} станция} few{{count} станции} other{{count} станций}}",
"alarmIconLabel": "Музыкальный будильник",
"vacationIconLabel": "Режим отпуска",
"streamUrlHint": "https://stream.example.com:8000/radio",
"advancedEqSectionTitle": "Расширенные настройки EQ",
"advancedEqEnableToggle": "Включить EQ для каждого устройства",
"advancedEqEnableToggleSubtitle": "Автоматически применять другой пресет EQ при смене аудиовыхода.",
"advancedEqKnownDevicesTitle": "Известные аудиоустройства",
"advancedEqKnownDevicesEmpty": "Аудиоустройства пока не зарегистрированы. Подключите устройство, чтобы начать.",
"advancedEqDevicePresetLabel": "Пресет: {presetName}",
"@advancedEqDevicePresetLabel": {
"placeholders": {
"presetName": {}
}
},
"preNoticeCountdown": "Начнётся через {minutes} мин",
"snoozeCountdown": "Прозвонит через {minutes} мин",
"@snoozeCountdown": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"snoozeAgainAction": "Отложить снова",
"alarmRingingNotificationTitle": "Будильник PluriWave",
"alarmFireChannelName": "Звонящие будильники",
"alarmFireChannelDescription": "Срочный звук и экран, когда должен сработать музыкальный будильник",
"alarmPreNoticeChannelName": "Напоминания о будильнике",
"alarmPreNoticeChannelDescription": "Беззвучные уведомления перед будильником",
"openFolderChooserTitle": "Открыть папку",
"openRecordingChooserTitle": "Открыть запись",
"@preNoticeCountdown": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"eqDeviceEditTitle": "Изменить устройство",
"eqDeviceNameLabel": "Название устройства",
"eqDeviceNameHint": "Напр.: Колонка в гостиной",
"eqDeviceNameConfirm": "Сохранить",
"eqDeviceConnected": "Подключено",
"eqDeviceActiveOutput": "Звук выводится через это устройство",
"eqDeviceRemove": "Удалить устройство",
"eqDeviceRemoved": "{device} удалено",
"@eqDeviceRemoved": {
"placeholders": {
"device": {}
}
},
"localMusicSectionTitle": "Локальная музыка (Android Auto)",
"localMusicSectionDescription": "Выберите папку на этом устройстве, чтобы просматривать и воспроизводить её аудиофайлы в автомобиле.",
"localMusicFolderNotConfigured": "Папка не выбрана",
"localMusicFolderTitle": "Папка локальной музыки",
"localMusicChoosePath": "Выбрать папку",
"localMusicChangePath": "Изменить папку",
"localMusicFolderUpdated": "Папка локальной музыки обновлена",
"localMusicFolderSaveError": "Не удалось сохранить папку: {error}",
"@localMusicFolderSaveError": {
"placeholders": {
"error": {}
}
},
"localMusicFolderGenericName": "Выбранная папка"
}