fix(i18n): normalize translations and fallbacks
This commit is contained in:
+408
-234
@@ -1,107 +1,135 @@
|
||||
{
|
||||
"@@locale": "ru",
|
||||
"appTitle": "PluriWave",
|
||||
"navHome": "Home",
|
||||
"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",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"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": "Settings",
|
||||
"settingsSubtitle": "Fine-grained sound control, backups, and custom stations.",
|
||||
"languageSectionTitle": "Language",
|
||||
"languageSectionDescription": "Choose how the app language is displayed.",
|
||||
"languageSystemDefault": "System",
|
||||
"languageSpanish": "Spanish",
|
||||
"languageEnglish": "English",
|
||||
"languageUpdated": "Language updated: {languageName}",
|
||||
"settingsTitle": "Настройки",
|
||||
"settingsSubtitle": "Точная настройка звука, резервных копий и пользовательских станций.",
|
||||
"languageSectionTitle": "Язык",
|
||||
"languageSectionDescription": "Выберите, как отображается язык приложения.",
|
||||
"languageSystemDefault": "Система",
|
||||
"languageSpanish": "Испанский",
|
||||
"languageEnglish": "Английский",
|
||||
"languageUpdated": "Язык обновлён: {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 internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings 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 *",
|
||||
"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",
|
||||
"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": {
|
||||
@@ -148,15 +176,15 @@
|
||||
"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",
|
||||
"cancelAction": "Отмена",
|
||||
"equalizerTitle": "Эквалайзер",
|
||||
"recordingsOpenFolder": "Открыть папку",
|
||||
"recordingsOpenFolderError": "Не удалось открыть папку: {error}",
|
||||
"recordingsMaxSizeTitle": "Максимальный размер записи",
|
||||
"recordingsMaxSizeSubtitle": "Текущий лимит: {size} МБ",
|
||||
"recordingsMaxSizeDialogTitle": "Максимальный размер одной записи",
|
||||
"recordingsMaxSizeMbLabel": "Максимум мегабайт",
|
||||
"recordingsMaxSizeSaved": "Лимит записи обновлён до {size} МБ",
|
||||
"@recordingsOpenFolderError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
@@ -176,33 +204,33 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"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": {}
|
||||
@@ -226,18 +254,18 @@
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"alarmPostponedCurrentExecution": "Alarm postponed for this occurrence.",
|
||||
"searchScreenTitle": "Поиск станций",
|
||||
"searchScreenSubtitle": "Ищите станции по названию, стране или языку с быстрыми фильтрами и высоким контрастом.",
|
||||
"alarmPostponedCurrentExecution": "Будильник отложен для этого запуска.",
|
||||
"searchScreenTitle": "Поиск сигнала",
|
||||
"searchScreenSubtitle": "Находите радио по названию, стране или языку с быстрыми фильтрами и высокой контрастностью.",
|
||||
"searchFiltersLabel": "Фильтры",
|
||||
"searchHint": "Radio Horizon, джаз, новости...",
|
||||
"searchHint": "Радио Горизонт, джаз, новости...",
|
||||
"searchCountryFilterLabel": "Страна",
|
||||
"searchLanguageFilterLabel": "Язык",
|
||||
"searchMinQualityFilterLabel": "Минимальное качество",
|
||||
"searchEmptyTitle": "Найдите станцию",
|
||||
"searchNoResultsTitle": "Ничего не найдено",
|
||||
"searchEmptySubtitle": "Используйте верхнюю строку и быстрые кнопки, чтобы открыть станции со всего мира.",
|
||||
"searchNoResultsSubtitle": "Попробуйте убрать фильтры или ввести другое название, чтобы найти активную станцию.",
|
||||
"searchNoResultsTitle": "Нет результатов",
|
||||
"searchEmptySubtitle": "Используйте верхнюю строку или чипы, чтобы находить сигналы со всего мира.",
|
||||
"searchNoResultsSubtitle": "Попробуйте убрать фильтры или ввести другое название, чтобы найти активный сигнал.",
|
||||
"countrySpain": "Испания",
|
||||
"countryUsa": "США",
|
||||
"countryMexico": "Мексика",
|
||||
@@ -248,18 +276,18 @@
|
||||
"countryItaly": "Италия",
|
||||
"countryBrazil": "Бразилия",
|
||||
"countryJapan": "Япония",
|
||||
"languageNameSpanish": "Испанский",
|
||||
"languageNameEnglish": "Английский",
|
||||
"languageNameFrench": "Французский",
|
||||
"languageNameGerman": "Немецкий",
|
||||
"languageNamePortuguese": "Португальский",
|
||||
"languageNameItalian": "Итальянский",
|
||||
"languageNameJapanese": "Японский",
|
||||
"languageNameArabic": "Арабский",
|
||||
"languageNameRussian": "Русский",
|
||||
"homeScreenSubtitle": "Live global radio with clean signals, smart favorites, and a show-style visual experience.",
|
||||
"exploreStations": "Explore stations",
|
||||
"stationsCount": "{count} stations",
|
||||
"languageNameSpanish": "испанский",
|
||||
"languageNameEnglish": "английский",
|
||||
"languageNameFrench": "французский",
|
||||
"languageNameGerman": "немецкий",
|
||||
"languageNamePortuguese": "португальский",
|
||||
"languageNameItalian": "итальянский",
|
||||
"languageNameJapanese": "японский",
|
||||
"languageNameArabic": "арабский",
|
||||
"languageNameRussian": "русский",
|
||||
"homeScreenSubtitle": "Глобальное радио в прямом эфире с чистыми сигналами, умным избранным и визуальным стилем телевикторины.",
|
||||
"exploreStations": "Изучить станции",
|
||||
"stationsCount": "{count} радиостанций",
|
||||
"@stationsCount": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -267,36 +295,36 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qualityHd": "HD quality",
|
||||
"nearYou": "Near you",
|
||||
"nearYouInCountry": "Near you ? {country}",
|
||||
"qualityHd": "HD-качество",
|
||||
"nearYou": "Рядом с вами",
|
||||
"nearYouInCountry": "Рядом с вами · {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",
|
||||
"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": {
|
||||
@@ -304,10 +332,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
"activeAlarmsWithoutNextTitle": "Активные будильники без следующего запуска",
|
||||
"noActiveAlarms": "Нет активных будильников",
|
||||
"nextAlarmTitle": "Следующий будильник",
|
||||
"activeAlarmsWithoutNextSubtitle": "Есть {count} активных будильников, но сейчас у них нет допустимой будущей даты. Проверьте дату, дни и отпуска.",
|
||||
"@activeAlarmsWithoutNextSubtitle": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -315,10 +343,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"createAlarmHint": "Создайте будильник, и PluriWave автоматически рассчитает следующий запуск.",
|
||||
"alarmVacationPlay": "Звонит в отпуске",
|
||||
"alarmVacationPause": "Пауза в отпуске",
|
||||
"alarmFadeInLabel": "Плавное усиление {seconds}с",
|
||||
"@alarmFadeInLabel": {
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
@@ -326,61 +354,61 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"alarmNextExecution": "Next occurrence: {date}",
|
||||
"alarmNextExecution": "Следующий запуск: {date}",
|
||||
"@alarmNextExecution": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"alarmNoNextExecution": "It has no active next occurrence.",
|
||||
"alarmSkippedExecution": "One occurrence was skipped: {date}.",
|
||||
"alarmNoNextExecution": "Нет активного следующего запуска.",
|
||||
"alarmSkippedExecution": "Один запуск был пропущен: {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}.",
|
||||
"editAction": "Изменить",
|
||||
"skipNextAction": "Пропустить следующий",
|
||||
"deleteTooltip": "Удалить",
|
||||
"alarmSkippedNoNextSnackbar": "Будильник пропущен. Следующего запуска нет.",
|
||||
"alarmSkippedReturnsSnackbar": "Будильник пропущен. Вернётся {date}.",
|
||||
"@alarmSkippedReturnsSnackbar": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"alarmVacationPausedNoNext": "It is paused for vacations ({vacationName}) and has no next occurrence.",
|
||||
"alarmVacationPausedNoNext": "Приостановлен из-за отпуска ({vacationName}) и без следующего запуска.",
|
||||
"@alarmVacationPausedNoNext": {
|
||||
"placeholders": {
|
||||
"vacationName": {}
|
||||
}
|
||||
},
|
||||
"alarmVacationPausedReturns": "It is paused for vacations ({vacationName}) and returns on {date}.",
|
||||
"alarmVacationPausedReturns": "Приостановлен из-за отпуска ({vacationName}) и вернётся {date}.",
|
||||
"@alarmVacationPausedReturns": {
|
||||
"placeholders": {
|
||||
"vacationName": {},
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"alarmVacationReturns": "With vacations enabled, it will ring again on {date}.",
|
||||
"alarmVacationReturns": "С активным отпуском снова прозвучит {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)",
|
||||
"defaultAlarmName": "Музыкальный будильник",
|
||||
"newAlarmTitle": "Новый будильник",
|
||||
"editAlarmTitle": "Изменить будильник",
|
||||
"nameField": "Название",
|
||||
"timeField": "Время",
|
||||
"dateField": "Дата",
|
||||
"onceOption": "Один раз",
|
||||
"dailyOption": "Ежедневно",
|
||||
"weekdaysOption": "Дни",
|
||||
"soundAndVolumeSection": "Звук и громкость",
|
||||
"alarmFadeInTitle": "Плавное усиление будильника",
|
||||
"alarmFadeInOff": "0 с (без перехода)",
|
||||
"alarmFadeInSummary": "{seconds} с (с 5% до выбранной громкости)",
|
||||
"@alarmFadeInSummary": {
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
@@ -388,22 +416,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"internalSafeSoundLabel": "Internal safe sound",
|
||||
"soundWarmSunrise": "Warm sunrise",
|
||||
"soundSoftBell": "Soft bell",
|
||||
"soundDigitalPulse": "Digital pulse",
|
||||
"favoriteStationLabel": "Favorite station",
|
||||
"noStationUseInternalSound": "No station: use internal sound",
|
||||
"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}",
|
||||
"internalSafeSoundLabel": "Безопасный внутренний звук",
|
||||
"soundWarmSunrise": "Тёплый рассвет",
|
||||
"soundSoftBell": "Мягкий колокольчик",
|
||||
"soundDigitalPulse": "Цифровой импульс",
|
||||
"favoriteStationLabel": "Избранная станция",
|
||||
"noStationUseInternalSound": "Без станции: использовать внутренний звук",
|
||||
"saveFavoritesAlarmHint": "Сохраните станции в избранное, чтобы использовать их как музыкальный будильник.",
|
||||
"useCurrentStationAction": "Использовать текущую станцию",
|
||||
"playDuringVacations": "Звонить во время отпусков",
|
||||
"playDuringVacationsHint": "Если выключить, следующий запуск перейдёт на первый допустимый день.",
|
||||
"saveAlarmAction": "Сохранить будильник",
|
||||
"chooseOneWeekdayError": "Выберите хотя бы один день недели.",
|
||||
"androidReliabilityReview": "Проверить надёжность Android",
|
||||
"statusOk": "ОК",
|
||||
"statusPending": "ожидает",
|
||||
"androidReliabilityStatus": "Надёжность: точные {exact} · уведомления {notifications} · экран {screen}",
|
||||
"@androidReliabilityStatus": {
|
||||
"placeholders": {
|
||||
"exact": {},
|
||||
@@ -411,19 +439,165 @@
|
||||
"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"
|
||||
"vacationRangesTitle": "Периоды отпусков",
|
||||
"addAction": "Добавить",
|
||||
"vacationRangesHint": "Если у будильника включена «Пауза в отпуске», эти периоды будут автоматически пропущены.",
|
||||
"noVacationRangesLoaded": "Периоды не загружены.",
|
||||
"deleteRangeTooltip": "Удалить период",
|
||||
"vacationsDefaultName": "Отпуск",
|
||||
"newVacationRangeTitle": "Новый период отпуска",
|
||||
"startField": "Начало",
|
||||
"endField": "Конец",
|
||||
"saveRangeAction": "Сохранить период",
|
||||
"noAlarmsYetTitle": "Будильников пока нет.",
|
||||
"noAlarmsYetSubtitle": "Создайте один, чтобы настроить своё музыкальное пробуждение.",
|
||||
"ringingInternalAudioActive": "Звонит с безопасным внутренним звуком.",
|
||||
"ringingPreparingInternalAudio": "Подготовка безопасного внутреннего звука.",
|
||||
"stopAlarmAction": "Остановить будильник",
|
||||
"pauseAction": "Пауза",
|
||||
"miniPlayerOpenLabel": "Открыть плеер для {stationName}",
|
||||
"@miniPlayerOpenLabel": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"playerIconLabel": "Плеер",
|
||||
"playbackStatusConnecting": "Подключение...",
|
||||
"playbackStatusLive": "В эфире",
|
||||
"playbackStatusPaused": "Приостановлено",
|
||||
"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": "Вс"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user