Files
SpotiFLAC-Mobile/lib/l10n/app_localizations_ru.dart
T
zarzet 2a2e2924eb feat(lyrics,replaygain): add LyricsPlus provider and ReplayGain batch scanning
LyricsPlus (KPOE): word-by-word synced lyrics with multi-server failover, converted to enhanced LRC. ReplayGain: standalone EBU R128 (re)scan writing REPLAYGAIN_TRACK_* tags via native writers or FFmpeg, with batch action in queue/album screens and SAF support.
2026-06-12 01:59:26 +07:00

4334 lines
124 KiB
Dart
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.
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Russian (`ru`).
class AppLocalizationsRu extends AppLocalizations {
AppLocalizationsRu([String locale = 'ru']) : super(locale);
@override
String get appName => 'Spotify';
@override
String get navHome => 'Главная';
@override
String get navLibrary => 'Библиотека';
@override
String get navSettings => 'Настройки';
@override
String get navStore => 'Репозиторий';
@override
String get homeTitle => 'Главная';
@override
String get homeSubtitle => 'Вставьте URL или ищите по названию';
@override
String get homeEmptyTitle => 'No search providers yet';
@override
String get homeEmptySubtitle => 'Install an extension to continue.';
@override
String get homeSupports =>
'Поддерживается: Трек, Альбом, Плейлист, URL исполнителя';
@override
String get homeRecent => 'Недавние';
@override
String get historyFilterAll => 'Все';
@override
String get historyFilterAlbums => 'Альбомы';
@override
String get historyFilterSingles => 'Синглы';
@override
String get historySearchHint => 'Поиск в истории...';
@override
String get settingsTitle => 'Настройки';
@override
String get settingsDownload => 'Скачивание';
@override
String get settingsAppearance => 'Внешний вид';
@override
String get settingsOptions => 'Опции';
@override
String get settingsExtensions => 'Расширения';
@override
String get settingsAbout => 'О программе';
@override
String get downloadTitle => 'Скачать';
@override
String get downloadAskQualitySubtitle =>
'Показывать выбор качества для каждого скачивания';
@override
String get downloadFilenameFormat => 'Формат имени файла';
@override
String get downloadSingleFilenameFormat => 'Формат имени файла';
@override
String get downloadSingleFilenameFormatDescription =>
'Формат имени файла для синглов и EP. Используются те же теги, что и для альбомов.';
@override
String get downloadFolderOrganization => 'Организация папок';
@override
String get appearanceTitle => 'Внешний вид';
@override
String get appearanceThemeSystem => 'Системная';
@override
String get appearanceThemeLight => 'Светлая';
@override
String get appearanceThemeDark => 'Тёмная';
@override
String get appearanceDynamicColor => 'Динамический цвет';
@override
String get appearanceDynamicColorSubtitle =>
'Использовать цвета из ваших обоев';
@override
String get appearanceHistoryView => 'Отображение истории';
@override
String get appearanceHistoryViewList => 'Список';
@override
String get appearanceHistoryViewGrid => 'Сетка';
@override
String get optionsTitle => 'Опции';
@override
String get optionsPrimaryProvider => 'Основной провайдер';
@override
String get optionsPrimaryProviderSubtitle =>
'Сервис для поиска по названию трека или альбома';
@override
String optionsUsingExtension(String extensionName) {
return 'Используется расширение: $extensionName';
}
@override
String get optionsDefaultSearchTab => 'Вкладка поиска по умолчанию';
@override
String get optionsDefaultSearchTabSubtitle =>
'Choose which tab opens first for new search results.';
@override
String get optionsSwitchBack =>
'Choose the default search provider to switch back from an extension';
@override
String get optionsAutoFallback => 'Автоматический переход';
@override
String get optionsAutoFallbackSubtitle =>
'Попробовать другие сервисы при сбое загрузки';
@override
String get optionsUseExtensionProviders =>
'Использовать провайдера расширений';
@override
String get optionsUseExtensionProvidersOn =>
'Extension providers are enabled';
@override
String get optionsUseExtensionProvidersOff =>
'Extension providers are required';
@override
String get optionsEmbedLyrics => 'Вписать текст песни';
@override
String get optionsEmbedLyricsSubtitle =>
'Сохранять синхронизированный текст песни рядом с загруженным треком';
@override
String get optionsMaxQualityCover => 'Максимальное качество обложки';
@override
String get optionsMaxQualityCoverSubtitle =>
'Скачивать обложку в макс. разрешении';
@override
String get optionsReplayGain => 'ReplayGain';
@override
String get optionsReplayGainSubtitleOn =>
'Scan loudness and embed ReplayGain tags (EBU R128)';
@override
String get optionsReplayGainSubtitleOff =>
'Disabled: no loudness normalization tags';
@override
String get trackReplayGain => 'Rescan ReplayGain';
@override
String get trackReplayGainSubtitle =>
'Analyze loudness and write ReplayGain tags';
@override
String get trackReplayGainScanning => 'Analyzing loudness...';
@override
String get trackReplayGainSuccess => 'ReplayGain tags added';
@override
String get trackReplayGainFailed => 'Failed to add ReplayGain tags';
@override
String selectionReplayGainCount(int count) {
return 'ReplayGain ($count)';
}
@override
String get replayGainBatchConfirmTitle => 'Add ReplayGain';
@override
String replayGainBatchConfirmMessage(int count) {
return 'Analyze loudness and write ReplayGain tags to $count track(s)?';
}
@override
String get replayGainBatchAnalyzing => 'Analyzing ReplayGain...';
@override
String replayGainBatchSuccess(int success, int total) {
return 'ReplayGain added to $success of $total tracks';
}
@override
String get optionsArtistTagMode => 'Artist Tag Mode';
@override
String get optionsArtistTagModeDescription =>
'Choose how multiple artists are written into embedded tags.';
@override
String get optionsArtistTagModeJoined => 'Single joined value';
@override
String get optionsArtistTagModeJoinedSubtitle =>
'Write one ARTIST value like \"Artist A, Artist B\" for maximum player compatibility.';
@override
String get optionsArtistTagModeSplitVorbis => 'Split tags for FLAC/Opus';
@override
String get optionsArtistTagModeSplitVorbisSubtitle =>
'Write one artist tag per artist for FLAC and Opus; MP3 and M4A stay joined.';
@override
String get optionsExtensionStore => 'Репозиторий расширения';
@override
String get optionsExtensionStoreSubtitle => 'Show Repo tab in navigation';
@override
String get optionsCheckUpdates => 'Проверить обновления';
@override
String get optionsCheckUpdatesSubtitle => 'Уведомлять о наличии новой версии';
@override
String get optionsUpdateChannel => 'Канал обновлений';
@override
String get optionsUpdateChannelStable => 'Только стабильные релизы';
@override
String get optionsUpdateChannelPreview => 'Предварительные версии';
@override
String get optionsUpdateChannelWarning =>
'Предварительная версия может содержать ошибки или неполные функции';
@override
String get optionsClearHistory => 'Очистить историю загрузок';
@override
String get optionsClearHistorySubtitle =>
'Удалить все скачанные треки из истории';
@override
String get optionsDetailedLogging => 'Подробный лог';
@override
String get optionsDetailedLoggingOn => 'Ведутся подробные логи';
@override
String get optionsDetailedLoggingOff => 'Включить для отчётов об ошибках';
@override
String get optionsSpotifyCredentials => 'Учётные данные Spotify';
@override
String optionsSpotifyCredentialsConfigured(String clientId) {
return 'Client ID: $clientId...';
}
@override
String get optionsSpotifyCredentialsRequired =>
'Необходимо - нажмите для настройки';
@override
String get optionsSpotifyWarning =>
'Spotify требует ваши собственные учетные данные API. Получите их бесплатно на сайте developer.spotify.com';
@override
String get optionsSpotifyDeprecationWarning =>
'Поиск Spotify устареет 3 марта 2026 года из-за изменений Spotify API. Пожалуйста, перейдите на Deezer.';
@override
String get extensionsTitle => 'Расширения';
@override
String get extensionsDisabled => 'Выключено';
@override
String extensionsVersion(String version) {
return 'Версия $version';
}
@override
String extensionsAuthor(String author) {
return 'от $author';
}
@override
String get extensionsUninstall => 'Удалить';
@override
String get storeTitle => 'Репозиторий расширения';
@override
String get storeSearch => 'Поиск расширений...';
@override
String get storeInstall => 'Установить';
@override
String get storeInstalled => 'Установлено';
@override
String get storeUpdate => 'Обновить';
@override
String get aboutTitle => 'О программе';
@override
String get aboutContributors => 'Участники';
@override
String get aboutMobileDeveloper => 'Разработчик мобильной версии';
@override
String get aboutOriginalCreator => 'Создатель оригинального SpotiFLAC';
@override
String get aboutLogoArtist =>
'Талантливый художник, который создал наш красивый логотип приложения!';
@override
String get aboutTranslators => 'Переводчики';
@override
String get aboutSpecialThanks => 'Особая благодарность';
@override
String get aboutLinks => 'Ссылки';
@override
String get aboutMobileSource => 'Исходный код мобильной версии';
@override
String get aboutPCSource => 'Исходный код ПК версии';
@override
String get aboutKeepAndroidOpen => 'Keep Android Open';
@override
String get aboutReportIssue => 'Сообщить о проблеме';
@override
String get aboutReportIssueSubtitle => 'Сообщите о возникших проблемах';
@override
String get aboutFeatureRequest => 'Предложить новую функцию';
@override
String get aboutFeatureRequestSubtitle =>
'Предложить новые функции для приложения';
@override
String get aboutTelegramChannel => 'Telegram канал';
@override
String get aboutTelegramChannelSubtitle => 'Объявления и обновления';
@override
String get aboutTelegramChat => 'Сообщество в Telegram';
@override
String get aboutTelegramChatSubtitle => 'Чат с другими пользователями';
@override
String get aboutSocial => 'Соцсети';
@override
String get aboutApp => 'Приложение';
@override
String get aboutVersion => 'Версия';
@override
String get aboutBinimumDesc =>
'The creator of QQDL & HiFi API. This project helped shape lossless download support.';
@override
String get aboutSachinsenalDesc =>
'The original HiFi project creator. A foundation for lossless-source integration.';
@override
String get aboutSjdonadoDesc =>
'Создатель I Don\'t Have Spotify (IDHS). Резервный резолвер ссылки';
@override
String get aboutAppDescription =>
'Search music metadata, manage extensions, and organize your library.';
@override
String get artistAlbums => 'Альбомы';
@override
String get artistSingles => 'Синглы и EP';
@override
String get artistCompilations => 'Сборники';
@override
String get artistPopular => 'Популярное';
@override
String artistMonthlyListeners(String count) {
return '$count слушателей в месяц';
}
@override
String get trackMetadataService => 'Сервис';
@override
String get trackMetadataPlay => 'Воспроизвести';
@override
String get trackMetadataShare => 'Поделиться';
@override
String get trackMetadataDelete => 'Удалить';
@override
String get setupGrantPermission => 'Предоставить разрешение';
@override
String get setupSkip => 'Пропустить';
@override
String get setupStorageAccessRequired => 'Требуется доступ к хранилищу';
@override
String get setupStorageAccessMessageAndroid11 =>
'Для Android 11+ требуется разрешение \"Доступ ко всем файлам\" для сохранения файлов в выбранную вами папку загрузки.';
@override
String get setupOpenSettings => 'Открыть настройки';
@override
String get setupPermissionDeniedMessage =>
'В разрешении отказано. Пожалуйста, предоставьте все разрешения для продолжения.';
@override
String setupPermissionRequired(String permissionType) {
return 'Требуется разрешение $permissionType';
}
@override
String setupPermissionRequiredMessage(String permissionType) {
return 'Для оптимальной работы требуется разрешение $permissionType. Вы можете изменить это позже в настройках.';
}
@override
String get setupUseDefaultFolder => 'Использовать папку по умолчанию?';
@override
String get setupNoFolderSelected =>
'Папка не выбрана. Хотите использовать папку Музыка по умолчанию?';
@override
String get setupUseDefault => 'По умолчанию';
@override
String get setupDownloadLocationTitle => 'Папка для скачивания';
@override
String get setupDownloadLocationIosMessage =>
'В iOS загрузки сохраняются в папке Документы приложения. Вы можете получить к ним доступ через приложение Файлы.';
@override
String get setupAppDocumentsFolder => 'Папка Документы приложения';
@override
String get setupAppDocumentsFolderSubtitle =>
'Рекомендуется - доступ через Файлы';
@override
String get setupChooseFromFiles => 'Выбрать из файлов';
@override
String get setupChooseFromFilesSubtitle =>
'Выберите iCloud или другое местоположение';
@override
String get setupIosEmptyFolderWarning =>
'Ограничение iOS: пустые папки не могут быть выбраны. Выберите папку, содержащую хотя бы один файл.';
@override
String get setupIcloudNotSupported =>
'iCloud Drive не поддерживается. Пожалуйста, используйте папку Документы.';
@override
String get setupDownloadInFlac => 'Скачать Spotify треки во FLAC';
@override
String get setupStorageGranted => 'Доступ к хранилищу предоставлен!';
@override
String get setupStorageRequired => 'Требуется доступ к хранилищу';
@override
String get setupStorageDescription =>
'SpotiFLAC требуется разрешение на хранение для сохранения скачанных файлов.';
@override
String get setupNotificationGranted =>
'Разрешение на уведомление предоставлено!';
@override
String get setupNotificationEnable => 'Включить уведомления';
@override
String get setupFolderChoose => 'Выбрать папку для скачивания';
@override
String get setupFolderDescription =>
'Выберите папку, в которой будет сохраняться скачанная музыка.';
@override
String get setupSelectFolder => 'Выбрать папку';
@override
String get setupEnableNotifications => 'Включить уведомления';
@override
String get setupNotificationBackgroundDescription =>
'Получайте уведомления о ходе и завершении загрузки. Это поможет вам отслеживать загрузки, когда приложение находится в фоновом режиме.';
@override
String get setupSkipForNow => 'Пропустить';
@override
String get setupNext => 'Далее';
@override
String get setupGetStarted => 'Приступить к работе';
@override
String get setupAllowAccessToManageFiles =>
'Пожалуйста, включите \"Разрешить доступ для управления всеми файлами\" на следующем экране.';
@override
String get setupLanguageTitle => 'Choose Language';
@override
String get setupLanguageDescription =>
'Select your preferred language for the app. You can change this later in Settings.';
@override
String get setupLanguageSystemDefault => 'System Default';
@override
String get dialogCancel => 'Отмена';
@override
String get dialogSave => 'Сохранить';
@override
String get dialogDelete => 'Удалить';
@override
String get dialogRetry => 'Повторить';
@override
String get dialogClear => 'Очистить';
@override
String get dialogDone => 'Готово';
@override
String get dialogImport => 'Импорт';
@override
String get dialogDownload => 'Скачать';
@override
String get dialogDiscard => 'Отменить';
@override
String get dialogRemove => 'Убрать';
@override
String get dialogUninstall => 'Удалить';
@override
String get dialogDiscardChanges => 'Отменить изменения?';
@override
String get dialogUnsavedChanges =>
'Есть несохраненные изменения. Отменить их?';
@override
String get dialogClearAll => 'Очистить всё';
@override
String get dialogRemoveExtension => 'Удалить расширение';
@override
String get dialogRemoveExtensionMessage =>
'Вы уверены, что хотите удалить это расширение? Это действие не может быть отменено.';
@override
String get dialogUninstallExtension => 'Удалить расширение?';
@override
String dialogUninstallExtensionMessage(String extensionName) {
return 'Вы уверены, что хотите удалить $extensionName?';
}
@override
String get dialogClearHistoryTitle => 'Очистить историю';
@override
String get dialogClearHistoryMessage =>
'Вы уверены, что хотите удалить всю историю загрузок? Это действие необратимо.';
@override
String get dialogDeleteSelectedTitle => 'Удалить выбранные';
@override
String dialogDeleteSelectedMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'треков',
many: 'треков',
few: 'трека',
one: 'трек',
);
return 'Удалить $count $_temp0 из истории?\n\nЭто также удалит файлы из хранилища.';
}
@override
String get dialogImportPlaylistTitle => 'Импорт плейлиста';
@override
String dialogImportPlaylistMessage(int count) {
return 'Найдено $count треков в CSV. Добавить их в очередь загрузки?';
}
@override
String csvImportTracks(int count) {
return '$count трек(-ов) из CSV';
}
@override
String snackbarAddedToQueue(String trackName) {
return '\"$trackName\" добавлен в очередь';
}
@override
String snackbarAddedTracksToQueue(int count) {
return 'Добавлено $count треков в очередь';
}
@override
String snackbarAlreadyDownloaded(String trackName) {
return '\"$trackName\" уже скачан';
}
@override
String snackbarAlreadyInLibrary(String trackName) {
return '\"$trackName\" уже есть в вашей библиотеке';
}
@override
String get snackbarHistoryCleared => 'История очищена';
@override
String get snackbarCredentialsSaved => 'Учётные данные сохранены';
@override
String get snackbarCredentialsCleared => 'Учётные данные очищены';
@override
String snackbarDeletedTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'треков',
many: 'треков',
few: 'трека',
one: 'трек',
);
return 'Удалено $count $_temp0';
}
@override
String snackbarCannotOpenFile(String error) {
return 'Невозможно открыть файл: $error';
}
@override
String get snackbarFillAllFields => 'Пожалуйста, заполните все поля';
@override
String get snackbarViewQueue => 'Просмотр очереди';
@override
String snackbarUrlCopied(String platform) {
return '$platform ссылка скопирована в буфер обмена';
}
@override
String get snackbarFileNotFound => 'Файл не найден';
@override
String get snackbarSelectExtFile =>
'Пожалуйста, выберите .spotiflac-ext-файл';
@override
String get snackbarProviderPrioritySaved => 'Приоритет провайдера сохранён';
@override
String get snackbarMetadataProviderSaved =>
'Приоритет провайдера метаданных сохранён';
@override
String snackbarExtensionInstalled(String extensionName) {
return '$extensionName установлено.';
}
@override
String snackbarExtensionUpdated(String extensionName) {
return '$extensionName Обновлено.';
}
@override
String get snackbarFailedToInstall => 'Не удалось установить расширение';
@override
String get snackbarFailedToUpdate => 'Не удалось обновить расширение';
@override
String get errorRateLimited => 'Слишком много запросов';
@override
String get errorRateLimitedMessage =>
'Слишком много запросов. Пожалуйста, подождите минуту перед повторным поиском.';
@override
String get errorNoTracksFound => 'Треки не найдены';
@override
String get searchEmptyResultSubtitle => 'Try another keyword';
@override
String get errorUrlNotRecognized => 'Ссылка не распознана';
@override
String get errorUrlNotRecognizedMessage =>
'Эта ссылка не поддерживается. Убедитесь, что URL-адрес указан правильно и установлено совместимое расширение.';
@override
String get errorUrlFetchFailed =>
'Не удалось загрузить контент по этой ссылке. Пожалуйста, попробуйте еще раз.';
@override
String errorMissingExtensionSource(String item) {
return 'Невозможно загрузить $item: отсутствует источник расширения';
}
@override
String get actionPause => 'Пауза';
@override
String get actionResume => 'Возобновить';
@override
String get actionCancel => 'Отмена';
@override
String get actionSelectAll => 'Выбрать все';
@override
String get actionDeselect => 'Снять выделение';
@override
String get actionRemoveCredentials => 'Удалить учётные данные';
@override
String get actionSaveCredentials => 'Сохранить учётные данные';
@override
String selectionSelected(int count) {
return '$count выбрано';
}
@override
String get selectionAllSelected => 'Все треки выбраны';
@override
String get selectionSelectToDelete => 'Выберите треки для удаления';
@override
String progressFetchingMetadata(int current, int total) {
return 'Получение метаданных... $current/$total';
}
@override
String get progressReadingCsv => 'Чтение CSV...';
@override
String get searchSongs => 'Песни';
@override
String get searchArtists => 'Исполнители';
@override
String get searchAlbums => 'Альбомы';
@override
String get searchPlaylists => 'Плейлисты';
@override
String get searchSortTitle => 'Упорядочить результаты';
@override
String get searchSortDefault => 'По умолчанию';
@override
String get searchSortTitleAZ => 'Название (А-Я)';
@override
String get searchSortTitleZA => 'Название (Я-А)';
@override
String get searchSortArtistAZ => 'Исполнитель (А-Я)';
@override
String get searchSortArtistZA => 'Исполнитель (Я-А)';
@override
String get searchSortDurationShort => 'Продолжительность (наименьшая)';
@override
String get searchSortDurationLong => 'Продолжительность (наибольшая)';
@override
String get searchSortDateOldest => 'Дата релиза (старейшая)';
@override
String get searchSortDateNewest => 'Дата релиза (новейшая)';
@override
String get tooltipPlay => 'Воспроизвести';
@override
String get filenameFormat => 'Формат имени файла';
@override
String get filenameShowAdvancedTags => 'Показать расширенные теги';
@override
String get filenameShowAdvancedTagsDescription =>
'Включить форматированные теги для отслеживания заполнения и шаблонов дат';
@override
String get folderOrganizationNone => 'Без организации';
@override
String get folderOrganizationByPlaylist => 'По плейлисту';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Отдельная папка для каждого плейлиста';
@override
String get folderOrganizationByArtist => 'По исполнителю';
@override
String get folderOrganizationByAlbum => 'По альбому';
@override
String get folderOrganizationByArtistAlbum => 'Исполнитель/Альбом';
@override
String get folderOrganizationDescription =>
'Сортировать скачанные файлы по папкам';
@override
String get folderOrganizationNoneSubtitle => 'Все файлы в папке загрузок';
@override
String get folderOrganizationByArtistSubtitle =>
'Отдельная папка для каждого исполнителя';
@override
String get folderOrganizationByAlbumSubtitle =>
'Отдельная папка для каждого альбома';
@override
String get folderOrganizationByArtistAlbumSubtitle =>
'Вложенные папки для исполнителей и альбомов';
@override
String get updateAvailable => 'Доступно обновление';
@override
String get updateLater => 'Позже';
@override
String get updateStartingDownload => 'Загрузка началась...';
@override
String get updateDownloadFailed => 'Не удалось скачать';
@override
String get updateFailedMessage => 'Сбой загрузки обновления';
@override
String get updateNewVersionReady => 'Доступна новая версия';
@override
String get updateCurrent => 'Текущая';
@override
String get updateNew => 'Новая';
@override
String get updateDownloading => 'Скачивание...';
@override
String get updateWhatsNew => 'Что нового';
@override
String get updateDownloadInstall => 'Скачать и установить';
@override
String get updateDontRemind => 'Не напоминать';
@override
String get providerPriorityTitle => 'Приоритет провайдера';
@override
String get providerPriorityDescription =>
'Перетаскивайте, чтобы изменить порядок провайдеров загрузки. Приложение будет пробовать провайдеров сверху вниз при загрузке треков.';
@override
String get providerPriorityInfo =>
'Если трек не доступен у первого провайдера, приложение автоматически попробует следующий.';
@override
String get providerPriorityFallbackExtensionsTitle => 'Резервное расширение';
@override
String get providerPriorityFallbackExtensionsDescription =>
'Choose which installed download extensions can be used during automatic fallback.';
@override
String get providerPriorityFallbackExtensionsHint =>
'Only enabled extensions with download-provider capability are listed here.';
@override
String get providerBuiltIn => 'Legacy';
@override
String get providerExtension => 'Расширение';
@override
String get metadataProviderPriorityTitle => 'Приоритет метаданных';
@override
String get metadataProviderPriorityDescription =>
'Перетаскивайте, чтобы изменить порядок провайдеров метаданных. Приложение будет пробовать провайдеров сверху вниз при поиске треков и извлечении метаданных.';
@override
String get metadataProviderPriorityInfo =>
'Deezer не имеет ограничений по скорости и рекомендуется в качестве основного. Spotify может ограничивать скорость после большого количества запросов.';
@override
String get metadataNoRateLimits => 'Без ограничений по скорости';
@override
String get metadataMayRateLimit => 'Есть ограничения по скорости';
@override
String get logTitle => 'Логи';
@override
String get logCopied => 'Логи скопированы в буфер обмена';
@override
String get logSearchHint => 'Поиск логов...';
@override
String get logFilterLevel => 'Уровень';
@override
String get logFilterSection => 'Фильтр';
@override
String get logShareLogs => 'Поделиться логами';
@override
String get logClearLogs => 'Очистить логи';
@override
String get logClearLogsTitle => 'Очистить логи';
@override
String get logClearLogsMessage => 'Вы уверены, что хотите очистить все логи?';
@override
String get logFilterBySeverity => 'Фильтровать логи по серьезности';
@override
String get logNoLogsYet => 'Логов нет';
@override
String get logNoLogsYetSubtitle =>
'Логи появятся здесь по мере использования приложения';
@override
String logEntriesFiltered(int count) {
return 'Записи ($count фильтровано)';
}
@override
String logEntries(int count) {
return 'Записи ($count)';
}
@override
String get credentialsTitle => 'Учётные данные Spotify';
@override
String get credentialsDescription =>
'Введите свой Client ID и Secret, чтобы использовать собственные квоты в Spotify.';
@override
String get credentialsClientId => 'Client ID';
@override
String get credentialsClientIdHint => 'Вставьте Client ID';
@override
String get credentialsClientSecret => 'Секретный код клиента';
@override
String get credentialsClientSecretHint => 'Вставьте Client Secret';
@override
String get channelStable => 'Стабильный';
@override
String get channelPreview => 'Предварительный';
@override
String get sectionSearchSource => 'Поиск источника';
@override
String get sectionDownload => 'Скачивание';
@override
String get sectionPerformance => 'Производительность';
@override
String get sectionApp => 'Приложение';
@override
String get sectionData => 'Данные';
@override
String get sectionDebug => 'Отладка';
@override
String get sectionService => 'Сервис';
@override
String get sectionAudioQuality => 'Качество аудио';
@override
String get sectionFileSettings => 'Настройки файла';
@override
String get sectionLyrics => 'Тексты песен';
@override
String get lyricsMode => 'Режим текстов песен';
@override
String get lyricsModeDescription =>
'Выберите как сохранить тексты песен при скачивании';
@override
String get lyricsModeEmbed => 'Вписать в файл';
@override
String get lyricsModeEmbedSubtitle => 'Встроить текст в метаданные FLAC';
@override
String get lyricsModeExternal => 'Внешний файл .lrc';
@override
String get lyricsModeExternalSubtitle =>
'Отдельный файл .lrc для плееров, таких, как Samsung Music';
@override
String get lyricsModeBoth => 'Оба варианта';
@override
String get lyricsModeBothSubtitle => 'Вписать и сохранить .lrc файл';
@override
String get sectionColor => 'Цвет';
@override
String get sectionTheme => 'Тема';
@override
String get sectionLayout => 'Разметка';
@override
String get sectionLanguage => 'Язык';
@override
String get appearanceLanguage => 'Язык приложения';
@override
String get settingsAppearanceSubtitle => 'Тема, цвета, дисплей';
@override
String get settingsDownloadSubtitle => 'Service, quality, fallback';
@override
String get settingsOptionsSubtitle => 'Fallback, metadata, lyrics, cover art';
@override
String get settingsExtensionsSubtitle => 'Управление провайдерами скачивания';
@override
String get settingsLogsSubtitle => 'Просмотреть логи для отладки';
@override
String get loadingSharedLink => 'Загрузка общедоступной ссылки...';
@override
String get pressBackAgainToExit => 'Нажмите «Назад» ещё раз, чтобы выйти';
@override
String downloadAllCount(int count) {
return 'Скачать все ($count)';
}
@override
String tracksCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count треков',
many: '$count треков',
few: '$count трека',
one: '$count трек',
);
return '$_temp0';
}
@override
String get trackCopyFilePath => 'Скопировать путь к файлу';
@override
String get trackRemoveFromDevice => 'Удалить с устройства';
@override
String get trackLoadLyrics => 'Загрузить текст песни';
@override
String get trackMetadata => 'Метаданные';
@override
String get trackFileInfo => 'Информация о файле';
@override
String get trackLyrics => 'Текст песни';
@override
String get trackFileNotFound => 'Файл не найден';
@override
String get trackOpenInDeezer => 'Открыть в Deezer';
@override
String get trackOpenInSpotify => 'Открыть в Spotify';
@override
String get trackTrackName => 'Название';
@override
String get trackArtist => 'Исполнитель';
@override
String get trackAlbumArtist => 'Исполнитель альбома';
@override
String get trackAlbum => 'Альбом';
@override
String get trackTrackNumber => 'Номер трека';
@override
String get trackDiscNumber => 'Номер диска';
@override
String get trackDuration => 'Продолжительность';
@override
String get trackAudioQuality => 'Качество записи';
@override
String get trackReleaseDate => 'Дата выхода';
@override
String get trackGenre => 'Жанр';
@override
String get trackLabel => 'Заголовок';
@override
String get trackCopyright => 'Авторские права';
@override
String get trackDownloaded => 'Скачано';
@override
String get trackCopyLyrics => 'Копировать текст';
@override
String trackLyricsSource(String source) {
return 'Source: $source';
}
@override
String get trackLyricsNotAvailable =>
'Текст песни недоступен для этого трека';
@override
String get trackLyricsNotInFile => 'No lyrics found in this file';
@override
String get trackFetchOnlineLyrics => 'Fetch from Online';
@override
String get trackLyricsTimeout =>
'Время ожидания запроса истекло. Повторите попытку позже.';
@override
String get trackLyricsLoadFailed => 'Не удалось загрузить текст песни';
@override
String get trackEmbedLyrics => 'Вписать текст песни';
@override
String get trackLyricsEmbedded => 'Текст успешно добавлен';
@override
String get trackInstrumental => 'Инструментальный трек';
@override
String get trackCopiedToClipboard => 'Скопировано в буфер обмена';
@override
String get trackDeleteConfirmTitle => 'Удалить с устройства?';
@override
String get trackDeleteConfirmMessage =>
'Это приведет к окончательному удалению загруженного файла и его удалению из истории.';
@override
String get dateToday => 'Сегодня';
@override
String get dateYesterday => 'Вчера';
@override
String dateDaysAgo(int count) {
return '$count дней назад';
}
@override
String dateWeeksAgo(int count) {
return '$count недель назад';
}
@override
String dateMonthsAgo(int count) {
return '$count месяцев назад';
}
@override
String get storeFilterAll => 'Все';
@override
String get storeFilterMetadata => 'Метаданные';
@override
String get storeFilterDownload => 'Скачивание';
@override
String get storeFilterUtility => 'Утилиты';
@override
String get storeFilterLyrics => 'Тексты песен';
@override
String get storeFilterIntegration => 'Интеграция';
@override
String get storeClearFilters => 'Очистить фильтры';
@override
String get storeAddRepoTitle => 'Add Extension Repository';
@override
String get storeAddRepoDescription =>
'Enter a GitHub repository URL that contains a registry.json file to browse and install extensions.';
@override
String get storeRepoUrlLabel => 'Repository URL';
@override
String get storeRepoUrlHint => 'https://github.com/user/repo';
@override
String get storeRepoUrlHelper =>
'например, https://github.com/user/extensions-repo';
@override
String get storeAddRepoButton => 'Добавить репозиторий';
@override
String get storeChangeRepoTooltip => 'Изменить репозиторий';
@override
String get storeRepoDialogTitle => 'Extension Repository';
@override
String get storeRepoDialogCurrent => 'Текущий репозиторий:';
@override
String get storeNewRepoUrlLabel => 'New Repository URL';
@override
String get storeLoadError => 'Failed to load repository';
@override
String get storeEmptyNoExtensions => 'No extensions available';
@override
String get storeEmptyNoResults => 'Расширения не найдены';
@override
String get extensionDefaultProvider => 'Default Search';
@override
String get extensionDefaultProviderSubtitle =>
'Use the default metadata search';
@override
String get extensionAuthor => 'Автор';
@override
String get extensionId => 'ID';
@override
String get extensionError => 'Ошибка';
@override
String get extensionCapabilities => 'Возможности';
@override
String get extensionMetadataProvider => 'Провайдер метаданных';
@override
String get extensionDownloadProvider => 'Провайдер скачивания';
@override
String get extensionLyricsProvider => 'Провайдер текстов';
@override
String get extensionUrlHandler => 'URL-обработчик';
@override
String get extensionQualityOptions => 'Параметры качества';
@override
String get extensionPostProcessingHooks => 'Хуки постобработки';
@override
String get extensionPermissions => 'Разрешения';
@override
String get extensionSettings => 'Настройки';
@override
String get extensionRemoveButton => 'Удалить расширение';
@override
String get extensionUpdated => 'Обновлено';
@override
String get extensionMinAppVersion => 'Мин. версия приложения';
@override
String get extensionCustomTrackMatching =>
'Соответствие пользовательских треков';
@override
String get extensionPostProcessing => 'Постобработка';
@override
String extensionHooksAvailable(int count) {
return 'Доступно $count хуков(ов)';
}
@override
String extensionPatternsCount(int count) {
return '$count шаблон(ов)';
}
@override
String extensionStrategy(String strategy) {
return 'Стратегия: $strategy';
}
@override
String get extensionsProviderPrioritySection => 'Приоритет провайдера';
@override
String get extensionsInstalledSection => 'Установленные расширения';
@override
String get extensionsNoExtensions => 'Нет установленных расширений';
@override
String get extensionsNoExtensionsSubtitle =>
'Установите .spotiflac-ext файлы для добавления новых провайдеров';
@override
String get extensionsInstallButton => 'Установить расширение';
@override
String get extensionsInfoTip =>
'Расширения могут добавлять новые метаданные и провайдеров загрузки. Устанавливайте только расширения из надежных источников.';
@override
String get extensionsInstalledSuccess => 'Расширение успешно установлено';
@override
String extensionsInstalledCount(int count) {
return '$count extensions installed successfully';
}
@override
String extensionsInstallPartialSuccess(int installed, int attempted) {
return 'Installed $installed of $attempted extensions';
}
@override
String get extensionsDownloadPriority => 'Приоритет скачивания';
@override
String get extensionsDownloadPrioritySubtitle =>
'Установка порядок сервисов скачивания';
@override
String get extensionsFallbackTitle => 'Fallback Extensions';
@override
String get extensionsFallbackSubtitle =>
'Choose which installed download extensions can be used as fallback';
@override
String get extensionsNoDownloadProvider =>
'Нет расширений с провайдером загрузки';
@override
String get extensionsMetadataPriority => 'Приоритет метаданных';
@override
String get extensionsMetadataPrioritySubtitle =>
'Установка порядка поиска и источника метаданных';
@override
String get extensionsNoMetadataProvider =>
'Нет расширений с провайдером метаданных';
@override
String get extensionsSearchProvider => 'Провайдер поиска';
@override
String get extensionsNoCustomSearch =>
'Нет расширений с пользовательским поиском';
@override
String get extensionsSearchProviderDescription =>
'Выберите, какой сервис использовать для поиска треков';
@override
String get extensionsCustomSearch => 'Пользовательский поиск';
@override
String get extensionsErrorLoading => 'Ошибка загрузки расширения';
@override
String get qualityFlacLossless => 'FLAC Lossless';
@override
String get qualityFlacLosslessSubtitle => '16-бит / 44.1 кГц';
@override
String get qualityHiResFlac => 'Hi-Res FLAC';
@override
String get qualityHiResFlacSubtitle => '24-бит / до 96кГц';
@override
String get qualityHiResFlacMax => 'Hi-Res FLAC Макс.';
@override
String get qualityHiResFlacMaxSubtitle => '24-бит / до 192кГц';
@override
String get downloadLossy320 => 'С потерями 320 кбит/с';
@override
String get downloadLossyFormat => 'Формат с потерями';
@override
String get downloadLossy320Format => 'Формат с потерями 320 кбит/с';
@override
String get downloadLossy320FormatDesc =>
'Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.';
@override
String get downloadLossyMp3 => 'MP3 320 кбит/с';
@override
String get downloadLossyMp3Subtitle =>
'Наилучшая совместимость, ~10 Мб на трек';
@override
String get downloadLossyAac => 'AAC/M4A 320kbps';
@override
String get downloadLossyAacSubtitle =>
'Best mobile compatibility, M4A container';
@override
String get downloadLossyOpus256 => 'Opus 256 кбит/с';
@override
String get downloadLossyOpus256Subtitle =>
'Best quality Opus, ~8MB per track';
@override
String get downloadLossyOpus128 => 'Opus 128 кбит/с';
@override
String get downloadLossyOpus128Subtitle =>
'Минимальный размер, ~4 Мб на трек';
@override
String get qualityNote =>
'Фактическое качество зависит от доступности треков в сервисе';
@override
String get downloadAskBeforeDownload => 'Спрашивать перед скачиванием';
@override
String get downloadDirectory => 'Папка для скачивания';
@override
String get downloadSeparateSinglesFolder => 'Отдельная папка для синглов';
@override
String get downloadAlbumFolderStructure => 'Структура папок альбома';
@override
String get downloadUseAlbumArtistForFolders =>
'Использовать исполнителя альбома для папок';
@override
String get downloadUsePrimaryArtistOnly =>
'Основной исполнитель только для папок';
@override
String get downloadUsePrimaryArtistOnlyEnabled =>
'Список исполнителей, чьи работы были удалены из названия папки (например, Джастин Бибер, Quavo → Джастин Бибер)';
@override
String get downloadUsePrimaryArtistOnlyDisabled =>
'Полная строка исполнителя, используемая для имени папки';
@override
String get downloadSelectQuality => 'Выбор качества';
@override
String get downloadFrom => 'Скачивать из';
@override
String get appearanceAmoledDark => 'AMOLED';
@override
String get appearanceAmoledDarkSubtitle => 'Глубокий чёрный фон';
@override
String get queueClearAll => 'Очистить всё';
@override
String get queueClearAllMessage =>
'Вы уверены, что хотите очистить все загрузки?';
@override
String get settingsAutoExportFailed => 'Автоэкспорт неудачных загрузок';
@override
String get settingsAutoExportFailedSubtitle =>
'Автоматическое сохранение неудачных загрузок в TXT файл';
@override
String get settingsDownloadNetwork => 'Сеть для скачивания';
@override
String get settingsDownloadNetworkAny => 'WiFi и Мобильная сеть';
@override
String get settingsDownloadNetworkWifiOnly => 'Только WiFi';
@override
String get settingsDownloadNetworkSubtitle =>
'Выберите, какую сеть использовать для скачивания. Когда установлено значение только WiFi — скачивания через мобильную сеть будут приостановлены.';
@override
String get albumFolderArtistAlbum => 'Исполнитель / Альбом';
@override
String get albumFolderArtistAlbumSubtitle =>
'Альбомы/Исполнитель/Название Альбома/';
@override
String get albumFolderArtistYearAlbum => 'Исполнитель / [Год] Альбом';
@override
String get albumFolderArtistYearAlbumSubtitle =>
'Альбомы/Исполнитель/[2005] Название Альбома/';
@override
String get albumFolderAlbumOnly => 'Только альбом';
@override
String get albumFolderAlbumOnlySubtitle => 'Альбомы/Название Альбома/';
@override
String get albumFolderYearAlbum => '[Год] Альбом';
@override
String get albumFolderYearAlbumSubtitle =>
'Альбомы/[2005] Название Альбома /';
@override
String get albumFolderArtistAlbumSingles => 'Исполнитель / Альбом + Синглы';
@override
String get albumFolderArtistAlbumSinglesSubtitle =>
'Исполнитель/Альбом и Исполнитель/Сингл/';
@override
String get albumFolderArtistAlbumFlat => 'Artist / Album (Singles flat)';
@override
String get albumFolderArtistAlbumFlatSubtitle =>
'Artist/Album/ and Artist/song.flac';
@override
String get downloadedAlbumDeleteSelected => 'Удалить выбранные';
@override
String downloadedAlbumDeleteMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'треков',
many: 'треков',
few: 'трека',
one: 'трек',
);
return 'Удалить $count $_temp0 из этого альбома?\n\nЭто также удалит файлы из хранилища.';
}
@override
String downloadedAlbumSelectedCount(int count) {
return '$count выбрано';
}
@override
String get downloadedAlbumAllSelected => 'Все треки выбраны';
@override
String get downloadedAlbumTapToSelect => 'Нажмите на треки для выбора';
@override
String downloadedAlbumDeleteCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'треков',
many: 'треков',
few: 'трека',
one: 'трек',
);
return 'Удалить $count $_temp0';
}
@override
String get downloadedAlbumSelectToDelete => 'Выберите треки для удаления';
@override
String downloadedAlbumDiscHeader(int discNumber) {
return 'Диск $discNumber';
}
@override
String get recentTypeArtist => 'Исполнитель';
@override
String get recentTypeAlbum => 'Альбом';
@override
String get recentTypeSong => 'Песня';
@override
String get recentTypePlaylist => 'Плейлист';
@override
String get recentEmpty => 'Нет недавних элементов';
@override
String get recentShowAllDownloads => 'Показать все загрузки';
@override
String recentPlaylistInfo(String name) {
return 'Плейлист: $name';
}
@override
String get discographyDownload => 'Скачать дискографию';
@override
String get discographyDownloadAll => 'Скачать всё';
@override
String discographyDownloadAllSubtitle(int count, int albumCount) {
return '$count треков из $albumCount релизов';
}
@override
String get discographyAlbumsOnly => 'Только альбомы';
@override
String discographyAlbumsOnlySubtitle(int count, int albumCount) {
return '$count треков из $albumCount альбомов';
}
@override
String get discographySinglesOnly => 'Только синглы и EP';
@override
String discographySinglesOnlySubtitle(int count, int albumCount) {
return '$count треков из $albumCount синглов';
}
@override
String get discographySelectAlbums => 'Выбрать альбомы...';
@override
String get discographySelectAlbumsSubtitle =>
'Выберите конкретные альбомы или синглы';
@override
String get discographyFetchingTracks => 'Получение треков...';
@override
String discographyFetchingAlbum(int current, int total) {
return 'Получение $current из $total...';
}
@override
String discographySelectedCount(int count) {
return '$count выбрано';
}
@override
String get discographyDownloadSelected => 'Скачать выбранное';
@override
String discographyAddedToQueue(int count) {
return 'Добавлено $count треков в очередь';
}
@override
String discographySkippedDownloaded(int added, int skipped) {
return '$added добавлено, $skipped уже скачано';
}
@override
String get discographyNoAlbums => 'Нет доступных альбомов';
@override
String get discographyFailedToFetch =>
'Не удалось получить некоторые альбомы';
@override
String get sectionStorageAccess => 'Доступ к хранилищу';
@override
String get allFilesAccess => 'Доступ ко всем файлам';
@override
String get allFilesAccessEnabledSubtitle => 'Можно записать в любую папку';
@override
String get allFilesAccessDisabledSubtitle =>
'Ограничено только папками медиа';
@override
String get allFilesAccessDescription =>
'Включите, если вы сталкиваетесь с ошибками записи при сохранении в пользовательские папки. Android 13+ по умолчанию ограничивает доступ к определенным папкам.';
@override
String get allFilesAccessDeniedMessage =>
'В разрешении отказано. Пожалуйста, включите функцию «Доступ ко всем файлам» в настройках системы.';
@override
String get allFilesAccessDisabledMessage =>
'Доступ ко всем файлам отключен. Приложение будет использовать ограниченный доступ к хранилищу.';
@override
String get settingsLocalLibrary => 'Локальная библиотека';
@override
String get settingsLocalLibrarySubtitle =>
'Сканировать и обнаружить дубликаты';
@override
String get settingsCache => 'Хранилище и кэш';
@override
String get settingsCacheSubtitle => 'Просмотреть размер и очистить кэш';
@override
String get libraryTitle => 'Локальная библиотека';
@override
String get libraryScanSettings => 'Настройки сканирования';
@override
String get libraryEnableLocalLibrary => 'Включить локальную библиотеку';
@override
String get libraryEnableLocalLibrarySubtitle =>
'Сканировать и отслеживать вашу существующую музыку';
@override
String get libraryFolder => 'Папка библиотеки';
@override
String get libraryFolderHint => 'Нажмите, чтобы выбрать папку';
@override
String get libraryShowDuplicateIndicator => 'Показать индикатор дубликатов';
@override
String get libraryShowDuplicateIndicatorSubtitle =>
'Показать при поиске существующих треков';
@override
String get libraryAutoScan => 'Автосканирование';
@override
String get libraryAutoScanSubtitle =>
'Automatically scan your library for new files';
@override
String get libraryAutoScanOff => 'Off';
@override
String get libraryAutoScanOnOpen => 'Каждое открытие приложения';
@override
String get libraryAutoScanDaily => 'Ежедневно';
@override
String get libraryAutoScanWeekly => 'Еженедельно';
@override
String get libraryActions => 'Действия';
@override
String get libraryScan => 'Сканировать библиотеку';
@override
String get libraryScanSubtitle => 'Сканировать аудио файлы';
@override
String get libraryScanSelectFolderFirst => 'Сначала выберите папку';
@override
String get libraryCleanupMissingFiles => 'Очистка отсутствующих файлов';
@override
String get libraryCleanupMissingFilesSubtitle =>
'Удалить записи для файлов, которых больше не существует';
@override
String get libraryClear => 'Очистить библиотеку';
@override
String get libraryClearSubtitle => 'Удалить все сканированные треки';
@override
String get libraryClearConfirmTitle => 'Очистить библиотеку';
@override
String get libraryClearConfirmMessage =>
'Это удалит все сканированные треки из вашей библиотеки. Ваши фактические файлы не будут удалены.';
@override
String get libraryAbout => 'О локальной библиотеке';
@override
String get libraryAboutDescription =>
'Сканирует существующую коллекцию музыки для обнаружения дубликатов при загрузке. Поддерживает форматы FLAC, M4A, MP3, Opus и OGG. Метаданные читаются из тегов файлов, если доступны.';
@override
String libraryTracksUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'треков',
many: 'треков',
few: 'трека',
one: 'трек',
);
return '$_temp0';
}
@override
String libraryFilesUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'files',
one: 'file',
);
return '$_temp0';
}
@override
String libraryLastScanned(String time) {
return 'Последнее сканирование: $time';
}
@override
String get libraryLastScannedNever => 'Никогда';
@override
String get libraryScanning => 'Сканирование...';
@override
String get libraryScanFinalizing => 'Завершение работы с библиотекой...';
@override
String libraryScanProgress(String progress, int total) {
return '$progress% из $total файлов';
}
@override
String get libraryInLibrary => 'В библиотеке';
@override
String libraryRemovedMissingFiles(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'отсутствующих файлов',
many: 'отсутствующих файлов',
few: 'трека',
one: 'отсутствующий файл',
);
return 'Удалено $count $_temp0 в библиотеке';
}
@override
String get libraryCleared => 'Библиотека очищена';
@override
String get libraryStorageAccessRequired => 'Требуется доступ к хранилищу';
@override
String get libraryStorageAccessMessage =>
'SpotiFLAC требуется доступ к хранилищу для сканирования вашей библиотеки музыки. Пожалуйста, предоставьте разрешение в настройках.';
@override
String get libraryFolderNotExist => 'Выбранной папки не существует';
@override
String get librarySourceDownloaded => 'Скачанные';
@override
String get librarySourceLocal => 'Локальные';
@override
String get libraryFilterAll => 'Все';
@override
String get libraryFilterDownloaded => 'Скачанные';
@override
String get libraryFilterLocal => 'Локальные';
@override
String get libraryFilterTitle => 'Фильтры';
@override
String get libraryFilterReset => 'Сброс';
@override
String get libraryFilterApply => 'Применить';
@override
String get libraryFilterSource => 'Источник';
@override
String get libraryFilterQuality => 'Качество';
@override
String get libraryFilterQualityHiRes => 'Hi-Res (24 бит)';
@override
String get libraryFilterQualityCD => 'CD (16 бит)';
@override
String get libraryFilterQualityLossy => 'С потерями';
@override
String get libraryFilterFormat => 'Формат';
@override
String get libraryFilterMetadata => 'Метаданные';
@override
String get libraryFilterMetadataComplete => 'Complete metadata';
@override
String get libraryFilterMetadataMissingAny => 'Не хватает метаданных';
@override
String get libraryFilterMetadataMissingYear => 'Отсутствует год';
@override
String get libraryFilterMetadataMissingGenre => 'Отсутствует жанр';
@override
String get libraryFilterMetadataMissingAlbumArtist => 'Missing album artist';
@override
String get libraryFilterSort => 'Сортировка';
@override
String get libraryFilterSortLatest => 'Последние';
@override
String get libraryFilterSortOldest => 'Старые';
@override
String get libraryFilterSortAlbumAsc => 'Альбом (А-Я)';
@override
String get libraryFilterSortAlbumDesc => 'Альбом (Я-А)';
@override
String get libraryFilterSortGenreAsc => 'Жанр (А-Я)';
@override
String get libraryFilterSortGenreDesc => 'Жанр (Я-А)';
@override
String get timeJustNow => 'Только что';
@override
String timeMinutesAgo(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count минут',
many: '$count минут',
few: '$count минуты',
one: '$count минуту',
);
return '$_temp0 назад';
}
@override
String timeHoursAgo(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count часов',
many: '$count часов',
few: '$count часа',
one: '$count час',
);
return '$_temp0 назад';
}
@override
String get tutorialWelcomeTitle => 'Добро пожаловать в SpotiFLAC!';
@override
String get tutorialWelcomeDesc =>
'Давайте научимся скачивать свою любимую музыку в качестве без потерь. В этом кратком руководстве мы покажем вам основы.';
@override
String get tutorialWelcomeTip1 =>
'Скачивайте музыку из Spotify, Deezer, или вставьте любой поддерживаемый URL';
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from installed download extensions';
@override
String get tutorialWelcomeTip3 =>
'Автоматическое встраивание метаданных, обложек и текстов песен';
@override
String get tutorialSearchTitle => 'Поиск музыки';
@override
String get tutorialSearchDesc =>
'Есть два простых способа найти музыку, которую вы хотите скачать.';
@override
String get tutorialDownloadTitle => 'Скачивание музыки';
@override
String get tutorialDownloadDesc =>
'Скачивание музыки просто и быстро. Вот как это работает.';
@override
String get tutorialLibraryTitle => 'Ваша библиотека';
@override
String get tutorialLibraryDesc =>
'Вся скачанная музыка организована во вкладке Библиотека.';
@override
String get tutorialLibraryTip1 =>
'Просмотр прогресса загрузки и очереди на вкладке Библиотека';
@override
String get tutorialLibraryTip2 =>
'Нажмите на любой трек, чтобы воспроизвести его с помощью вашего музыкального плеера';
@override
String get tutorialLibraryTip3 =>
'Переключение между списком и сеткой для лучшего просмотра';
@override
String get tutorialExtensionsTitle => 'Расширения';
@override
String get tutorialExtensionsDesc =>
'Расширьте возможности приложения с расширениями от сообщества.';
@override
String get tutorialExtensionsTip1 =>
'Browse the Repo tab to discover useful extensions';
@override
String get tutorialExtensionsTip2 =>
'Добавить новых поставщиков загрузок или поиска';
@override
String get tutorialExtensionsTip3 =>
'Получайте тексты песен, улучшенные метаданные и другие возможности';
@override
String get tutorialSettingsTitle => 'Настройте приложение под себя';
@override
String get tutorialSettingsDesc =>
'Персонализируйте приложение в Настройках, чтобы оно соответствовало вашим предпочтениям.';
@override
String get tutorialSettingsTip1 =>
'Изменить местоположение и организацию папок для скачивания';
@override
String get tutorialSettingsTip2 =>
'Настройте качество и формата аудиофайла по умолчанию';
@override
String get tutorialSettingsTip3 => 'Настроить тему и внешний вид приложения';
@override
String get tutorialReadyMessage =>
'Всё готово! Начните загружать любимую музыку прямо сейчас.';
@override
String get libraryForceFullScan => 'Полное сканирование';
@override
String get libraryForceFullScanSubtitle =>
'Пересканировать все файлы, игнорировать кэш';
@override
String get cleanupOrphanedDownloads => 'Очистка отложенных скачиваний';
@override
String get cleanupOrphanedDownloadsSubtitle =>
'Удалить историю записи для файлов, которых больше не существует';
@override
String cleanupOrphanedDownloadsResult(int count) {
return 'Удалено $count утерянных записей из истории';
}
@override
String get cleanupOrphanedDownloadsNone => 'Записей без описания не найдено';
@override
String get cacheTitle => 'Хранилище и кэш';
@override
String get cacheSummaryTitle => 'Просмотр кэша';
@override
String get cacheSummarySubtitle =>
'Очистка кэша не приведет к удалению загруженных музыкальных файлов.';
@override
String cacheEstimatedTotal(String size) {
return 'Приблизительное использование кэша: $size';
}
@override
String get cacheSectionStorage => 'Кэшированные данные';
@override
String get cacheSectionMaintenance => 'Обслуживание';
@override
String get cacheAppDirectory => 'Папка кэша приложения';
@override
String get cacheAppDirectoryDesc =>
'HTTP-ответы, данные WebView и другие временные данные приложения.';
@override
String get cacheTempDirectory => 'Временная директория';
@override
String get cacheTempDirectoryDesc =>
'Временные файлы из загрузок и аудио конвертации.';
@override
String get cacheCoverImage => 'Кэш обложек';
@override
String get cacheCoverImageDesc =>
'Скачанный альбом и трек обложки. Будет заново скачан после просмотра.';
@override
String get cacheLibraryCover => 'Кэш обложек библиотеки';
@override
String get cacheLibraryCoverDesc =>
'Обложка извлечена из локальных музыкальных файлов. Будет повторно извлечено при следующем сканировании.';
@override
String get cacheExploreFeed => 'Просмотреть кэш ленты';
@override
String get cacheExploreFeedDesc =>
'Изучите содержимое вкладки (новые релизы, тренды). Они обновятся при следующем посещении.';
@override
String get cacheTrackLookup => 'Отслеживать кэш поиска';
@override
String get cacheTrackLookupDesc =>
'Поиск ID трека в Spotify/Deezer. Очистка может замедлить следующие несколько поисков.';
@override
String get cacheCleanupUnusedDesc =>
'Удалить записи из истории загрузок и библиотеки, которые остались без файлов.';
@override
String get cacheNoData => 'Нет кэшированных данных';
@override
String cacheSizeWithFiles(String size, int count) {
return '$size в $count файлах';
}
@override
String cacheSizeOnly(String size) {
return '$size';
}
@override
String cacheEntries(int count) {
return '$count записей';
}
@override
String cacheClearSuccess(String target) {
return 'Очищено: $target';
}
@override
String get cacheClearConfirmTitle => 'Очистить кэш?';
@override
String cacheClearConfirmMessage(String target) {
return 'Это очистит кэш для $target. Загруженные музыкальные файлы не будут удалены.';
}
@override
String get cacheClearAllConfirmTitle => 'Очистить весь кэш?';
@override
String get cacheClearAllConfirmMessage =>
'Это очистит все категории кэша на этой странице. Скачанные музыкальные файлы не будут удалены.';
@override
String get cacheClearAll => 'Очистить весь кэш';
@override
String get cacheCleanupUnused => 'Очистка неиспользуемых данных';
@override
String get cacheCleanupUnusedSubtitle =>
'Удалить историю загрузок, оставшихся без просмотра, и отсутствующие записи в библиотеке';
@override
String cacheCleanupResult(int downloadCount, int libraryCount) {
return 'Очистка завершена: $downloadCount потерянных загрузок, $libraryCount отсутствующих записей в библиотеке';
}
@override
String get cacheRefreshStats => 'Обновить статистику';
@override
String get trackSaveCoverArt => 'Сохранить обложку';
@override
String get trackSaveCoverArtSubtitle => 'Сохранить обложку как файл .jpg';
@override
String get trackSaveLyrics => 'Сохранить текст (.lrc)';
@override
String get trackSaveLyricsSubtitle =>
'Получить и сохранить текст песни в формате .lrc';
@override
String get trackSaveLyricsProgress => 'Сохранение текста...';
@override
String get trackReEnrich => 'Обновить';
@override
String get trackReEnrichOnlineSubtitle =>
'Поиск в сети метаданных и встраивание в файл';
@override
String get trackReEnrichFieldsTitle => 'Поля для обновления';
@override
String get trackReEnrichFieldCover => 'Обложка';
@override
String get trackReEnrichFieldLyrics => 'Текст песни';
@override
String get trackReEnrichFieldBasicTags => 'Альбом, Исполнитель альбома';
@override
String get trackReEnrichFieldTrackInfo => 'Номер трека и диска';
@override
String get trackReEnrichFieldReleaseInfo => 'Дата и ISRC';
@override
String get trackReEnrichFieldExtra => 'Жанр, Название, Авторские права';
@override
String get trackReEnrichSelectAll => 'Выбрать всё';
@override
String get trackEditMetadata => 'Редактировать метаданные';
@override
String trackCoverSaved(String fileName) {
return 'Обложка сохранена в $fileName';
}
@override
String get trackCoverNoSource => 'Нет доступных источников обложки';
@override
String trackLyricsSaved(String fileName) {
return 'Текст песни сохранен в $fileName';
}
@override
String get trackReEnrichProgress => 'Обновление метаданных...';
@override
String get trackReEnrichSearching => 'Поиск метаданных в сети...';
@override
String get trackReEnrichSuccess => 'Метаданные успешно обновлены';
@override
String get trackReEnrichFfmpegFailed =>
'Ошибка встраивания метаданных FFmpeg';
@override
String get queueFlacAction => 'Очередь FLAC';
@override
String queueFlacConfirmMessage(int count) {
return 'Search online matches for the selected tracks and queue FLAC downloads.\n\nExisting files will not be modified or deleted.\n\nOnly high-confidence matches are queued automatically.\n\n$count selected';
}
@override
String queueFlacFindingProgress(int current, int total) {
return 'Поиск совпадений FLAC... ($current/$total)';
}
@override
String get queueFlacNoReliableMatches =>
'No reliable online matches found for the selection';
@override
String queueFlacQueuedWithSkipped(int addedCount, int skippedCount) {
return 'Added $addedCount tracks to queue, skipped $skippedCount';
}
@override
String trackSaveFailed(String error) {
return 'Ошибка: $error';
}
@override
String get trackConvertFormat => 'Переконвертировать формат';
@override
String get trackConvertFormatSubtitle =>
'Convert to AAC/M4A, MP3, Opus, ALAC, or FLAC';
@override
String get trackConvertTitle => 'Конвертировать аудио';
@override
String get trackConvertTargetFormat => 'Целевой формат';
@override
String get trackConvertBitrate => 'Битрейт';
@override
String get trackConvertConfirmTitle => 'Подтвердить конвертацию';
@override
String trackConvertConfirmMessage(
String sourceFormat,
String targetFormat,
String bitrate,
) {
return 'Конвертировать из $sourceFormat в $targetFormat $bitrate?\n\nОригинальный файл будет удален после конвертации.';
}
@override
String trackConvertConfirmMessageLossless(
String sourceFormat,
String targetFormat,
) {
return 'Convert from $sourceFormat to $targetFormat? (Lossless — no quality loss)\n\nThe original file will be deleted after conversion.';
}
@override
String get trackConvertLosslessHint => 'Конвертация без потери качества';
@override
String get trackConvertConverting => 'Конвертация аудио...';
@override
String trackConvertSuccess(String format) {
return 'Успешно конвертировано в $format';
}
@override
String get trackConvertFailed => 'Ошибка конвертации';
@override
String get cueSplitTitle => 'Разделить CUE Sheet';
@override
String get cueSplitSubtitle => 'Разделить файл CUE+FLAC на отдельные треки';
@override
String cueSplitAlbum(String album) {
return 'Альбом: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Артист: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count треков';
}
@override
String get cueSplitConfirmTitle => 'Разделенный CUE-альбом';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Разбить \"$album\" на $count отдельных FLAC-файлов?';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Разделение CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Успешно разделено на $count треков';
}
@override
String get cueSplitFailed => 'Разделение CUE не удалось';
@override
String get cueSplitNoAudioFile => 'Аудиофайл для этого CUE sheet не найден';
@override
String get cueSplitButton => 'Разделить на Треки';
@override
String get actionCreate => 'Создать';
@override
String get collectionFoldersTitle => 'Мои папки';
@override
String get collectionWishlist => 'Список желаемого';
@override
String get collectionLoved => 'Любимые';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Плейлисты';
@override
String get collectionPlaylist => 'Плейлист';
@override
String get collectionAddToPlaylist => 'Добавить в плейлист';
@override
String get collectionCreatePlaylist => 'Создать плейлист';
@override
String get collectionNoPlaylistsYet => 'Плейлисты отсутствуют';
@override
String get collectionNoPlaylistsSubtitle =>
'Создайте плейлист, чтобы начать классифицировать треки';
@override
String collectionPlaylistTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count треков',
many: '$count треков',
few: '$count трека',
one: '$count трек',
);
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Добавлено в \"$playlistName\"';
}
@override
String collectionAlreadyInPlaylist(String playlistName) {
return 'Уже в \"$playlistName\"';
}
@override
String get collectionPlaylistCreated => 'Плейлист создан';
@override
String get collectionPlaylistNameHint => 'Название плейлиста';
@override
String get collectionPlaylistNameRequired => 'Имя плейлиста обязательно';
@override
String get collectionRenamePlaylist => 'Переименовать плейлист';
@override
String get collectionDeletePlaylist => 'Удалить плейлист';
@override
String collectionDeletePlaylistMessage(String playlistName) {
return 'Удалить \"$playlistName\" и все треки внутри него?';
}
@override
String get collectionPlaylistDeleted => 'Плейлист удалён';
@override
String get collectionPlaylistRenamed => 'Плейлист переименован';
@override
String get collectionWishlistEmptyTitle => 'Список желаний пуст';
@override
String get collectionWishlistEmptySubtitle =>
'Нажмите + на треках, чтобы сохранить то, что вы хотите скачать позже';
@override
String get collectionLovedEmptyTitle => 'Папка Любимые пуста';
@override
String get collectionLovedEmptySubtitle =>
'Нажмите \"любовь\" на треках, чтобы сохранить ваши избранные';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Плейлист пуст';
@override
String get collectionPlaylistEmptySubtitle =>
'Удерживайте + на любом треке, чтобы добавить его сюда';
@override
String get collectionRemoveFromPlaylist => 'Удалить из плейлиста';
@override
String get collectionRemoveFromFolder => 'Убрать из папки';
@override
String collectionRemoved(String trackName) {
return '\"$trackName\" удалён';
}
@override
String collectionAddedToLoved(String trackName) {
return '\"$trackName\" добавлен в Любимые';
}
@override
String collectionRemovedFromLoved(String trackName) {
return '\"$trackName\" удалено из Любимых';
}
@override
String collectionAddedToWishlist(String trackName) {
return '\"$trackName\" добавлен в список желаний';
}
@override
String collectionRemovedFromWishlist(String trackName) {
return '\"$trackName\" удалён из списка желаний';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Добавить в Любимое';
@override
String get trackOptionRemoveFromLoved => 'Исключить из Любимых';
@override
String get trackOptionAddToWishlist => 'Добавить в список желаний';
@override
String get trackOptionRemoveFromWishlist => 'Удалить из списка желаний';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Изменить обложку';
@override
String get collectionPlaylistRemoveCover => 'Удалить обложку';
@override
String selectionShareCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'треков',
many: 'треков',
few: 'трека',
one: 'трек',
);
return 'Отправить $count $_temp0';
}
@override
String get selectionShareNoFiles =>
'Файлы, доступные для совместного доступа, не найдены';
@override
String selectionConvertCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'треков',
many: 'треков',
few: 'трека',
one: 'трек',
);
return 'Конвертировать $count $_temp0';
}
@override
String get selectionConvertNoConvertible => 'Не выбраны конвертируемые треки';
@override
String get selectionBatchConvertConfirmTitle => 'Пакетная конвертация';
@override
String selectionBatchConvertConfirmMessage(
int count,
String format,
String bitrate,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Преобразовать $count $_temp0 в $format с $bitrate?';
}
@override
String selectionBatchConvertConfirmMessageLossless(int count, String format) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Конвертировать $count $_temp0 в $format? (Без потери качества)\n\nОригинальные файлы будут удалены после конвертации.';
}
@override
String selectionBatchConvertProgress(int current, int total) {
return 'Конвертация $current из $total...';
}
@override
String selectionBatchConvertSuccess(int success, int total, String format) {
return 'Конвертировано $success треков $total в $format';
}
@override
String downloadedAlbumDownloadedCount(int count) {
return '$count скачано';
}
@override
String get downloadUseAlbumArtistForFoldersAlbumSubtitle =>
'Папка названная в честь тега Альбома Артиста';
@override
String get downloadUseAlbumArtistForFoldersTrackSubtitle =>
'Папка названная в честь тега Трека Артиста';
@override
String get lyricsProvidersTitle => 'Приоритет к поставщику текста песни';
@override
String get lyricsProvidersDescription =>
'Включайте, выключайте, переупорядочивайте источники текстов. Поставщики связаны сверху вниз пока проводится поиск текста.';
@override
String get lyricsProvidersInfoText =>
'Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.';
@override
String lyricsProvidersEnabledSection(int count) {
return 'Включено ($count)';
}
@override
String lyricsProvidersDisabledSection(int count) {
return 'Выключено ($count)';
}
@override
String get lyricsProvidersAtLeastOne =>
'At least one provider must remain enabled';
@override
String get lyricsProvidersSaved => 'Lyrics provider priority saved';
@override
String get lyricsProvidersDiscardContent =>
'У вас есть несохранённые изменения, которые будут потеряны.';
@override
String get lyricsProviderLrclibDesc => 'Open-source synced lyrics database';
@override
String get lyricsProviderNeteaseDesc =>
'NetEase Cloud Music (хорош для азиатских песен)';
@override
String get lyricsProviderMusixmatchDesc =>
'Largest lyrics database (multi-language)';
@override
String get lyricsProviderAppleMusicDesc =>
'Word-by-word synced lyrics (via proxy)';
@override
String get lyricsProviderQqMusicDesc =>
'QQ Музыка (хорошо подходит для китайских песен, через прокси)';
@override
String get lyricsProviderLyricsPlusDesc =>
'Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)';
@override
String get lyricsProviderExtensionDesc => 'Поставщик расширений';
@override
String get safMigrationTitle => 'Storage Update Required';
@override
String get safMigrationMessage1 =>
'SpotiFLAC now uses Android Storage Access Framework (SAF) for downloads. This fixes \"permission denied\" errors on Android 10+.';
@override
String get safMigrationMessage2 =>
'Please select your download folder again to switch to the new storage system.';
@override
String get safMigrationSuccess => 'Download folder updated to SAF mode';
@override
String get settingsDonate => 'Support Development';
@override
String get settingsDonateSubtitle => 'Buy the developer a coffee';
@override
String get tooltipLoveAll => 'Love All';
@override
String get tooltipAddToPlaylist => 'Добавить в плейлист';
@override
String snackbarRemovedTracksFromLoved(int count) {
return 'Removed $count tracks from Loved';
}
@override
String snackbarAddedTracksToLoved(int count) {
return 'Added $count tracks to Loved';
}
@override
String get dialogDownloadAllTitle => 'Скачать всё';
@override
String dialogDownloadAllMessage(int count) {
return 'Download $count tracks?';
}
@override
String get homeSkipAlreadyDownloaded => 'Skip already downloaded songs';
@override
String get homeGoToAlbum => 'Перейти к альбому';
@override
String get homeAlbumInfoUnavailable => 'Album info not available';
@override
String get snackbarLoadingCueSheet => 'Загрузка CUE разметки...';
@override
String get snackbarMetadataSaved => 'Метаданные успешно сохранены';
@override
String get snackbarFailedToEmbedLyrics => 'Failed to embed lyrics';
@override
String get snackbarFailedToWriteStorage => 'Failed to write back to storage';
@override
String snackbarError(String error) {
return 'Ошибка: $error';
}
@override
String get snackbarNoActionDefined => 'No action defined for this button';
@override
String get noTracksFoundForAlbum => 'No tracks found for this album';
@override
String get downloadLocationSubtitle =>
'Choose where to save your downloaded tracks';
@override
String get storageModeAppFolder => 'App Folder (Recommended)';
@override
String get storageModeAppFolderSubtitle =>
'Saves to Music/SpotiFLAC by default';
@override
String get storageModeSaf => 'Custom Folder (SAF)';
@override
String get storageModeSafSubtitle => 'Pick any folder, including SD card';
@override
String downloadFilenameDescription(
Object album,
Object artist,
Object date,
Object disc,
Object title,
Object track,
Object year,
) {
return 'Use $artist, $title, $album, $track, $year, $date, $disc as placeholders.';
}
@override
String get downloadFilenameInsertTag => 'Нажмите для вставки тега:';
@override
String get downloadSeparateSinglesEnabled =>
'Singles and EPs saved in a separate folder';
@override
String get downloadSeparateSinglesDisabled =>
'Singles and albums saved in the same folder';
@override
String get downloadArtistNameFilters => 'Artist Name Filters';
@override
String get downloadCreatePlaylistSourceFolder => 'Playlist Source Folder';
@override
String get downloadCreatePlaylistSourceFolderEnabled =>
'A subfolder is created for each playlist';
@override
String get downloadCreatePlaylistSourceFolderDisabled =>
'All tracks saved directly to download folder';
@override
String get downloadCreatePlaylistSourceFolderRedundant =>
'Handled by folder organization setting';
@override
String get downloadSongLinkRegion => 'Регион SongLink';
@override
String get downloadNetworkCompatibilityMode => 'Network Compatibility Mode';
@override
String get downloadNetworkCompatibilityModeEnabled =>
'Using legacy TLS settings for older networks';
@override
String get downloadNetworkCompatibilityModeDisabled =>
'Using standard network settings';
@override
String get downloadSelectServiceToEnable =>
'Select a provider with quality options to enable this option';
@override
String get downloadSelectTidalQobuz =>
'Select a provider with quality options to choose audio quality';
@override
String get downloadEmbedLyricsDisabled => 'Enable metadata embedding first';
@override
String get downloadNeteaseIncludeTranslation => 'Netease: включение перевода';
@override
String get downloadNeteaseIncludeTranslationEnabled =>
'Chinese translation lines included';
@override
String get downloadNeteaseIncludeTranslationDisabled =>
'Original lyrics only';
@override
String get downloadNeteaseIncludeRomanization =>
'Netease: Include Romanization';
@override
String get downloadNeteaseIncludeRomanizationEnabled =>
'Romanization lines included';
@override
String get downloadNeteaseIncludeRomanizationDisabled => 'No romanization';
@override
String get downloadAppleQqMultiPerson => 'Apple / QQ: Multi-Person Lyrics';
@override
String get downloadAppleQqMultiPersonEnabled =>
'Speaker labels included for duets and group tracks';
@override
String get downloadAppleQqMultiPersonDisabled =>
'Standard lyrics without speaker labels';
@override
String get downloadAppleElrcWordSync => 'Apple Music eLRC Word Sync';
@override
String get downloadAppleElrcWordSyncEnabled =>
'Raw word-by-word timestamps preserved';
@override
String get downloadAppleElrcWordSyncDisabled =>
'Safer line-by-line Apple Music lyrics';
@override
String get downloadMusixmatchLanguage => 'Язык Musixmatch';
@override
String get downloadMusixmatchLanguageAuto => 'Auto (original language)';
@override
String get downloadFilterContributing => 'Filter Contributing Artists';
@override
String get downloadFilterContributingEnabled =>
'Contributing artists removed from Album Artist folder name';
@override
String get downloadFilterContributingDisabled =>
'Full Album Artist string used';
@override
String get downloadProvidersNoneEnabled => 'No providers enabled';
@override
String get downloadMusixmatchLanguageCode => 'Код языка';
@override
String get downloadMusixmatchLanguageHint => 'e.g. en, de, ja';
@override
String get downloadMusixmatchLanguageDesc =>
'Enter a BCP-47 language code (e.g. en, de, ja) to request translated lyrics from Musixmatch.';
@override
String get downloadMusixmatchAuto => 'Авто';
@override
String get downloadNetworkAnySubtitle => 'Use WiFi or mobile data';
@override
String get downloadNetworkWifiOnlySubtitle =>
'Downloads pause when on mobile data';
@override
String get downloadSongLinkRegionDesc =>
'Region used when resolving track links via SongLink. Choose the country where your streaming services are available.';
@override
String get snackbarUnsupportedAudioFormat => 'Неподдерживаемый аудио формат';
@override
String get cacheRefresh => 'Обновить';
@override
String dialogDownloadPlaylistsMessage(int trackCount, int playlistCount) {
String _temp0 = intl.Intl.pluralLogic(
trackCount,
locale: localeName,
other: 'tracks',
one: 'track',
);
String _temp1 = intl.Intl.pluralLogic(
playlistCount,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Download $trackCount $_temp0 from $playlistCount $_temp1?';
}
@override
String bulkDownloadPlaylistsButton(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Download $count $_temp0';
}
@override
String get bulkDownloadSelectPlaylists => 'Select playlists to download';
@override
String get snackbarSelectedPlaylistsEmpty =>
'Selected playlists have no tracks';
@override
String playlistsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count playlists',
one: '1 playlist',
);
return '$_temp0';
}
@override
String get editMetadataAutoFill => 'Auto-fill from online';
@override
String get editMetadataAutoFillDesc =>
'Select fields to fill automatically from online metadata';
@override
String get editMetadataAutoFillFetch => 'Получить и заполнить';
@override
String get editMetadataAutoFillSearching => 'Поиск в сети...';
@override
String get editMetadataAutoFillNoResults =>
'No matching metadata found online';
@override
String editMetadataAutoFillDone(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'fields',
one: 'field',
);
return 'Filled $count $_temp0 from online metadata';
}
@override
String get editMetadataAutoFillNoneSelected =>
'Select at least one field to auto-fill';
@override
String get editMetadataFieldTitle => 'Название';
@override
String get editMetadataFieldArtist => 'Исполнитель';
@override
String get editMetadataFieldAlbum => 'Альбом';
@override
String get editMetadataFieldAlbumArtist => 'Исполнитель альбома';
@override
String get editMetadataFieldDate => 'Дата';
@override
String get editMetadataFieldTrackNum => 'Трек #';
@override
String get editMetadataFieldDiscNum => 'Диск #';
@override
String get editMetadataFieldGenre => 'Жанр';
@override
String get editMetadataFieldIsrc => 'ISRC';
@override
String get editMetadataFieldLabel => 'Заголовок';
@override
String get editMetadataFieldCopyright => 'Авторские права';
@override
String get editMetadataFieldCover => 'Обложка';
@override
String get editMetadataSelectAll => 'Все';
@override
String get editMetadataSelectEmpty => 'Только пустые';
@override
String queueDownloadingCount(int count) {
return 'Скачивание ($count)';
}
@override
String get queueDownloadedHeader => 'Скачано';
@override
String get queueFilteringIndicator => 'Фильтрация...';
@override
String queueTrackCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String queueAlbumCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count albums',
one: '1 album',
);
return '$_temp0';
}
@override
String get queueEmptyAlbums => 'No album downloads';
@override
String get queueEmptyAlbumsSubtitle =>
'Download multiple tracks from an album to see them here';
@override
String get queueEmptySingles => 'No single downloads';
@override
String get queueEmptySinglesSubtitle =>
'Single track downloads will appear here';
@override
String get queueEmptyHistory => 'Нет истории скачиваний';
@override
String get queueEmptyHistorySubtitle => 'Скачанные треки появятся здесь';
@override
String get selectionAllPlaylistsSelected => 'Выбраны все плейлисты';
@override
String get selectionTapPlaylistsToSelect => 'Tap playlists to select';
@override
String get selectionSelectPlaylistsToDelete => 'Select playlists to delete';
@override
String get audioAnalysisTitle => 'Audio Quality Analysis';
@override
String get audioAnalysisDescription =>
'Verify lossless quality with spectrum analysis';
@override
String get audioAnalysisAnalyzing => 'Analyzing audio...';
@override
String get audioAnalysisSampleRate => 'Частота дискретизации';
@override
String get audioAnalysisCodec => 'Codec';
@override
String get audioAnalysisContainer => 'Container';
@override
String get audioAnalysisDecodedFormat => 'Decoded Format';
@override
String get audioAnalysisBitDepth => 'Разрядность';
@override
String get audioAnalysisChannels => 'Каналы';
@override
String get audioAnalysisDuration => 'Продолжительность';
@override
String get audioAnalysisNyquist => 'Nyquist';
@override
String get audioAnalysisFileSize => 'Размер';
@override
String get audioAnalysisDynamicRange => 'Динамический диапазон';
@override
String get audioAnalysisPeak => 'Peak';
@override
String get audioAnalysisRms => 'RMS';
@override
String get audioAnalysisLufs => 'LUFS';
@override
String get audioAnalysisTruePeak => 'True Peak';
@override
String get audioAnalysisClipping => 'Clipping';
@override
String get audioAnalysisNoClipping => 'No clipping';
@override
String get audioAnalysisSpectralCutoff => 'Spectral Cutoff';
@override
String get audioAnalysisChannelStats => 'Per-channel Stats';
@override
String get audioAnalysisSamples => 'Сэмплы';
@override
String get audioAnalysisRescan => 'Re-analyze';
@override
String get audioAnalysisRescanning => 'Re-analyzing audio...';
@override
String extensionsSearchWith(String providerName) {
return 'Искать с помощью $providerName';
}
@override
String get extensionsHomeFeedProvider => 'Home Feed Provider';
@override
String get extensionsHomeFeedDescription =>
'Choose which extension provides the home feed on the main screen';
@override
String get extensionsHomeFeedAuto => 'Авто';
@override
String get extensionsHomeFeedAutoSubtitle =>
'Automatically select the best available';
@override
String get extensionsHomeFeedOff => 'Off';
@override
String get extensionsHomeFeedOffSubtitle =>
'Do not show the home feed on the main screen';
@override
String extensionsHomeFeedUse(String extensionName) {
return 'Use $extensionName home feed';
}
@override
String get extensionsNoHomeFeedExtensions => 'No extensions with home feed';
@override
String get sortAlphaAsc => 'А-Я';
@override
String get sortAlphaDesc => 'Я-А';
@override
String get cancelDownloadTitle => 'Отменить скачивание?';
@override
String cancelDownloadContent(String trackName) {
return 'This will cancel the active download for \"$trackName\".';
}
@override
String get cancelDownloadKeep => 'Удерживать';
@override
String get metadataSaveFailedFfmpeg =>
'Не удалось сохранить метаданные через FFmpeg';
@override
String get metadataSaveFailedStorage =>
'Не удалось записать метаданные обратно в хранилище';
@override
String snackbarFolderPickerFailed(String error) {
return 'Не удалось открыть выбор папок: $error';
}
@override
String get errorLoadAlbum => 'Не удалось загрузить альбом';
@override
String get errorLoadPlaylist => 'Не удалось загрузить плейлист';
@override
String get errorLoadArtist => 'Не удалось загрузить исполнителя';
@override
String get notifChannelDownloadName => 'Прогресс скачивания';
@override
String get notifChannelDownloadDesc => 'Shows download progress for tracks';
@override
String get notifChannelLibraryScanName => 'Сканирование библиотеки';
@override
String get notifChannelLibraryScanDesc => 'Shows local library scan progress';
@override
String notifDownloadingTrack(String trackName) {
return 'Downloading $trackName';
}
@override
String notifFinalizingTrack(String trackName) {
return 'Finalizing $trackName';
}
@override
String get notifEmbeddingMetadata => 'Встраивание метаданных...';
@override
String notifAlreadyInLibraryCount(int completed, int total) {
return 'Уже в библиотеке ($completed/$total)';
}
@override
String get notifAlreadyInLibrary => 'Уже в библиотеке';
@override
String notifDownloadCompleteCount(int completed, int total) {
return 'Загрузка завершена ($completed/$total)';
}
@override
String get notifDownloadComplete => 'Скачивание завершено';
@override
String notifDownloadsFinished(int completed, int failed) {
return 'Загрузка завершена ($completed завершено, $failed не удалось)';
}
@override
String get notifAllDownloadsComplete => 'Все загрузки завершены';
@override
String notifTracksDownloadedSuccess(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks downloaded successfully',
one: '1 track downloaded successfully',
);
return '$_temp0';
}
@override
String notifDownloadsFinishedBody(int completed, int failed) {
String _temp0 = intl.Intl.pluralLogic(
completed,
locale: localeName,
other: '$completed tracks downloaded',
one: '1 track downloaded',
);
String _temp1 = intl.Intl.pluralLogic(
failed,
locale: localeName,
other: '$failed failed',
one: '1 failed',
);
return '$_temp0, $_temp1';
}
@override
String get notifDownloadsCanceledTitle => 'Downloads canceled';
@override
String notifDownloadsCanceledBody(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count downloads canceled by user',
one: '1 download canceled by user',
);
return '$_temp0';
}
@override
String get notifScanningLibrary => 'Сканирование локальной библиотеки';
@override
String notifLibraryScanProgressWithTotal(
int scanned,
int total,
int percentage,
) {
return '$scanned/$total files • $percentage%';
}
@override
String notifLibraryScanProgressNoTotal(int scanned, int percentage) {
return '$scanned files scanned • $percentage%';
}
@override
String get notifLibraryScanComplete => 'Сканирование библиотеки завершено';
@override
String notifLibraryScanCompleteBody(int count) {
return '$count треков индексировано';
}
@override
String notifLibraryScanExcluded(int count) {
return '$count исключено';
}
@override
String notifLibraryScanErrors(int count) {
return '$count ошибок';
}
@override
String get notifLibraryScanFailed => 'Ошибка сканирования библиотеки';
@override
String get notifLibraryScanCancelled => 'Сканирование библиотеки отменено';
@override
String get notifLibraryScanStopped =>
'Сканирование остановлено перед завершением.';
@override
String notifDownloadingUpdate(String version) {
return 'Downloading SpotiFLAC Mobile v$version';
}
@override
String notifUpdateProgress(String received, String total, int percentage) {
return '$received / $total МБ • $percentage%';
}
@override
String get notifUpdateReady => 'Обновление готово';
@override
String notifUpdateReadyBody(String version) {
return 'SpotiFLAC Mobile v$version downloaded. Tap to install.';
}
@override
String get notifUpdateFailed => 'Ошибка обновления';
@override
String get notifUpdateFailedBody =>
'Не удалось скачать обновление. Попробуйте позже.';
@override
String get searchTracks => 'Tracks';
@override
String get homeSearchHintDefault => 'Paste supported URL or search...';
@override
String homeSearchHintProvider(String providerName) {
return 'Search with $providerName...';
}
@override
String get homeImportCsvTooltip => 'Import CSV';
@override
String get homeChangeSearchProviderTooltip => 'Change search provider';
@override
String get actionPaste => 'Paste';
@override
String get searchTracksHint => 'Search tracks...';
@override
String get searchTracksEmptyPrompt => 'Search for tracks';
@override
String get tutorialSearchHint => 'Paste or search...';
@override
String get tutorialDownloadCompletedSemantics => 'Download completed';
@override
String get tutorialDownloadInProgressSemantics => 'Download in progress';
@override
String get tutorialStartDownloadSemantics => 'Start download';
@override
String get optionsEmbedMetadata => 'Embed Metadata';
@override
String get optionsEmbedMetadataSubtitleOn =>
'Write metadata, cover art, and embedded lyrics to files';
@override
String get optionsEmbedMetadataSubtitleOff =>
'Disabled (advanced): skip all metadata embedding';
@override
String get optionsMaxQualityCoverSubtitleDisabled =>
'Disabled when metadata embedding is off';
@override
String downloadFilenameHintExample(Object artist, Object title) {
return '$artist - $title';
}
@override
String get trackCoverNoEmbeddedArt => 'No embedded album art found';
@override
String get trackCoverReplace => 'Replace Cover';
@override
String get trackCoverPick => 'Pick Cover';
@override
String get trackCoverClearSelected => 'Clear selected cover';
@override
String get trackCoverCurrent => 'Current cover';
@override
String get trackCoverSelected => 'Selected cover';
@override
String get trackCoverReplaceNotice =>
'The selected cover will replace the current embedded cover when you tap Save.';
@override
String get actionStop => 'Stop';
@override
String get queueFinalizingDownload => 'Finalizing download';
@override
String get queueDownloadedFileMissing => 'Downloaded file missing';
@override
String get queueDownloadCompleted => 'Download completed';
@override
String get queueRateLimitTitle => 'Service rate limited';
@override
String get queueRateLimitMessage =>
'This track may still be available. Wait a few minutes, reduce parallel downloads, then retry.';
@override
String appearanceSelectAccentColor(String hex) {
return 'Select accent color $hex';
}
@override
String get logAutoScrollOn => 'Auto-scroll ON';
@override
String get logAutoScrollOff => 'Auto-scroll OFF';
@override
String get logCopyLogs => 'Copy logs';
@override
String get logClearSearch => 'Clear search';
@override
String get logIssueIspBlockingLabel => 'ISP BLOCKING DETECTED';
@override
String get logIssueIspBlockingDescription =>
'Your ISP may be blocking access to download services';
@override
String get logIssueIspBlockingSuggestion =>
'Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8';
@override
String get logIssueRateLimitedLabel => 'RATE LIMITED';
@override
String get logIssueRateLimitedDescription =>
'Too many requests to the service';
@override
String get logIssueRateLimitedSuggestion =>
'Wait a few minutes before trying again';
@override
String get logIssueNetworkErrorLabel => 'NETWORK ERROR';
@override
String get logIssueNetworkErrorDescription => 'Connection issues detected';
@override
String get logIssueNetworkErrorSuggestion => 'Check your internet connection';
@override
String get logIssueTrackNotFoundLabel => 'TRACK NOT FOUND';
@override
String get logIssueTrackNotFoundDescription =>
'Some tracks could not be found on download services';
@override
String get logIssueTrackNotFoundSuggestion =>
'The track may not be available in lossless quality';
@override
String get clickableLookingUpArtist => 'Looking up artist...';
@override
String clickableInformationUnavailable(String type) {
return '$type information not available';
}
@override
String get extensionDetailsTags => 'Tags';
@override
String get extensionDetailsInformation => 'Information';
@override
String get extensionUtilityFunctions => 'Utility Functions';
@override
String get actionDismiss => 'Dismiss';
@override
String get setupChangeFolderTooltip => 'Change folder';
@override
String a11yOpenTrackByArtist(String trackName, String artistName) {
return 'Open track $trackName by $artistName';
}
@override
String a11yOpenItem(String itemType, String name) {
return 'Open $itemType $name';
}
@override
String a11yOpenItemCount(String title, int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return 'Open $title, $count $_temp0';
}
@override
String a11yOpenAlbumByArtistTrackCount(
String albumName,
String artistName,
int trackCount,
) {
return 'Open album $albumName by $artistName, $trackCount tracks';
}
@override
String a11yTrackByArtist(String trackName, String artistName) {
return '$trackName by $artistName';
}
@override
String a11ySelectAlbum(String albumName) {
return 'Select album $albumName';
}
@override
String a11yOpenAlbum(String albumName) {
return 'Open album $albumName';
}
@override
String get optionsDefaultSearchTabAlbums => 'Альбомы';
@override
String get optionsDefaultSearchTabTracks => 'Треки';
@override
String get settingsFiles => 'Files & Folders';
@override
String get settingsFilesSubtitle =>
'Download location, filename, folder structure';
@override
String get settingsMetadata => 'Metadata';
@override
String get settingsMetadataSubtitle =>
'Cover art, tags, ReplayGain, providers';
@override
String get settingsLyrics => 'Lyrics';
@override
String get settingsLyricsSubtitle =>
'Embed, mode, providers, language options';
@override
String get settingsApp => 'App';
@override
String get settingsAppSubtitle => 'Updates, data, extension repo, debug';
@override
String get sectionMetadataProviders => 'Providers';
@override
String get sectionDuplicates => 'Duplicates';
@override
String get sectionLyricsProviderOptions => 'Provider Options';
@override
String get metadataProvidersTitle => 'Metadata Provider Priority';
@override
String get metadataProvidersSubtitle =>
'Drag to set search and metadata source order';
@override
String get downloadDeduplication => 'Skip Duplicate Downloads';
@override
String get downloadDeduplicationEnabled =>
'Already-downloaded tracks will be skipped';
@override
String get downloadDeduplicationDisabled =>
'All tracks will be downloaded regardless of history';
@override
String get downloadFallbackExtensions => 'Fallback Extensions';
@override
String get downloadFallbackExtensionsSubtitle =>
'Choose which extensions can be used as fallback';
@override
String get editMetadataFieldDateHint => 'YYYY-MM-DD or YYYY';
@override
String get editMetadataFieldTrackTotal => 'Track Total';
@override
String get editMetadataFieldDiscTotal => 'Disc Total';
@override
String get editMetadataFieldComposer => 'Composer';
@override
String get editMetadataFieldComment => 'Comment';
@override
String get editMetadataAdvanced => 'Advanced';
@override
String get libraryFilterMetadataMissingTrackNumber => 'Missing track number';
@override
String get libraryFilterMetadataMissingDiscNumber => 'Missing disc number';
@override
String get libraryFilterMetadataMissingArtist => 'Missing artist';
@override
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
@override
String collectionDeletePlaylistsMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return 'Delete $count $_temp0?';
}
@override
String collectionPlaylistsDeleted(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'playlists',
one: 'playlist',
);
return '$count $_temp0 deleted';
}
@override
String collectionAddedTracksToPlaylist(int count, String playlistName) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Added $count $_temp0 to $playlistName';
}
@override
String collectionAddedTracksToPlaylistWithExisting(
int count,
String playlistName,
int alreadyCount,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Added $count $_temp0 to $playlistName ($alreadyCount already in playlist)';
}
@override
String itemCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'items',
one: 'item',
);
return '$count $_temp0';
}
@override
String trackReEnrichSuccessWithFailures(
int successCount,
int total,
int failedCount,
) {
return 'Metadata re-enriched successfully ($successCount/$total) - Failed: $failedCount';
}
@override
String selectionDeleteTracksCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Delete $count $_temp0';
}
@override
String queueDownloadSpeedStatus(String speed) {
return 'Downloading - $speed MB/s';
}
@override
String get queueDownloadStarting => 'Starting...';
@override
String get a11ySelectTrack => 'Select track';
@override
String get a11yDeselectTrack => 'Deselect track';
@override
String a11yPlayTrackByArtist(String trackName, String artistName) {
return 'Play $trackName by $artistName';
}
@override
String storeExtensionsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'extensions',
one: 'extension',
);
return '$count $_temp0';
}
@override
String storeRequiresVersion(String version) {
return 'Requires v$version+';
}
@override
String get actionGo => 'Go';
@override
String get logIssueSummary => 'Issue Summary';
@override
String logTotalErrors(int count) {
return 'Total errors: $count';
}
@override
String logAffectedDomains(String domains) {
return 'Affected: $domains';
}
@override
String get libraryScanCancelled => 'Scan cancelled';
@override
String get libraryScanCancelledSubtitle =>
'You can retry the scan when ready.';
@override
String libraryDownloadsHistoryExcluded(int count) {
return '$count from Downloads history (excluded from list)';
}
@override
String get downloadNativeWorker => 'Native download worker';
@override
String get downloadNativeWorkerSubtitle =>
'Beta Android service worker for extension downloads';
@override
String get badgeBeta => 'BETA';
@override
String get extensionServiceStatus => 'Service Status';
@override
String get extensionServiceHealth => 'Service health';
@override
String extensionHealthChecksConfigured(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'checks',
one: 'check',
);
return '$count $_temp0 configured';
}
@override
String get extensionOauthConnectHint =>
'Tap Connect to Spotify to fill this field.';
@override
String extensionLastChecked(String time) {
return 'Last checked $time';
}
@override
String get extensionRefreshStatus => 'Refresh status';
@override
String get extensionCustomUrlHandling => 'Custom URL Handling';
@override
String get extensionCustomUrlHandlingSubtitle =>
'This extension can handle links from these sites';
@override
String get extensionCustomUrlHandlingShareHint =>
'Share links from these sites to SpotiFLAC Mobile and this extension will handle them.';
@override
String extensionSettingsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'settings',
one: 'setting',
);
return '$count $_temp0';
}
@override
String get extensionHealthOnline => 'Online';
@override
String get extensionHealthDegraded => 'Degraded';
@override
String get extensionHealthOffline => 'Offline';
@override
String get extensionHealthNotConfigured => 'Not configured';
@override
String get extensionHealthUnknown => 'Unknown';
@override
String get extensionHealthRequired => 'required';
@override
String get extensionSettingNotSet => 'Not set';
@override
String get extensionActionFailed => 'Action failed';
@override
String get extensionEnterValue => 'Enter value';
@override
String get extensionHealthServiceOnline => 'Service online';
@override
String get extensionHealthServiceDegraded => 'Service degraded';
@override
String get extensionHealthServiceOffline => 'Service offline';
@override
String get extensionHealthServiceUnknown => 'Service status unknown';
@override
String get audioAnalysisStereo => 'Stereo';
@override
String get audioAnalysisMono => 'Mono';
@override
String trackOpenInService(String serviceName) {
return 'Open in $serviceName';
}
@override
String get trackLyricsEmbeddedSource => 'Embedded';
@override
String get unknownAlbum => 'Unknown Album';
@override
String get unknownArtist => 'Unknown Artist';
@override
String get permissionAudio => 'Audio';
@override
String get permissionStorage => 'Storage';
@override
String get permissionNotification => 'Notification';
@override
String get errorInvalidFolderSelected => 'Invalid folder selected';
@override
String get errorCouldNotKeepFolderAccess =>
'Could not keep access to the selected folder';
@override
String get storeAnyVersion => 'Any';
@override
String get storeCategoryMetadata => 'Metadata';
@override
String get storeCategoryDownload => 'Download';
@override
String get storeCategoryUtility => 'Utility';
@override
String get storeCategoryLyrics => 'Lyrics';
@override
String get storeCategoryIntegration => 'Integration';
@override
String get artistReleases => 'Releases';
@override
String get editMetadataSelectNone => 'None';
@override
String queueRetryAllFailed(int count) {
return 'Retry $count failed';
}
@override
String get settingsSaveDownloadHistory => 'Save download history';
@override
String get settingsSaveDownloadHistorySubtitle =>
'Keep completed downloads in history and library views';
@override
String get dialogDisableHistoryTitle => 'Turn off download history?';
@override
String get dialogDisableHistoryMessage =>
'Existing history will be cleared. Downloaded files will not be deleted.';
@override
String get dialogDisableAndClear => 'Turn off and clear';
@override
String get openInOtherServices => 'Open in Other Services';
@override
String get shareSheetNoExtensions => 'No other compatible services';
@override
String get shareSheetNotFound => 'Not found';
@override
String get shareSheetCopyLink => 'Copy Link';
@override
String shareSheetLinkCopied(Object service) {
return '$service link copied';
}
}