fix(i18n): shorten nav labels and complete translations in all locales
Nav bar labels that overflow their tab slot on phones are shortened to idiomatic short forms: fr (Bibliothèque, Téléchargement, Recherche), ru/bg/it (Live TV), pl (Home). All 21 locales get the ~280 keys that were empty (falling back to English at runtime): explore detail/badges/stats, fileInfo, startup repair flow, mediaMenu delete dialogs, addServer, rating sources, downloads sync-rule removal, and more. settings.displayScale was missing entirely in 16 locales; the new exoplayer playbackBuffer keys (upstream feat) are translated too. Fixes mis-translations found in review: es/zh/zh-Hant sidecar-format wording, sv adaptation, nb transcoding. Regenerated with dart run slang; translation hygiene and i18n tests pass. Close #1823
This commit is contained in:
+306
-306
@@ -11,7 +11,7 @@
|
||||
"waitingForAuth": "Ожидание аутентификации...\nВыполните вход в браузере.",
|
||||
"useBrowser": "Использовать браузер",
|
||||
"or": "или",
|
||||
"connectToMediaBrowser": "",
|
||||
"connectToMediaBrowser": "Подключиться к ${product}",
|
||||
"useQuickConnect": "Использовать Quick Connect",
|
||||
"quickConnectInstructions": "Откройте Quick Connect в Jellyfin и введите этот код.",
|
||||
"quickConnectWaiting": "Ожидание подтверждения…",
|
||||
@@ -66,17 +66,17 @@
|
||||
"exitFullscreen": "Выйти из полноэкранного режима",
|
||||
"pressBackAgainToExit": "Нажмите ещё раз для выхода",
|
||||
"ratingSource": {
|
||||
"critic": "",
|
||||
"audience": "",
|
||||
"imdb": "",
|
||||
"tmdb": "",
|
||||
"rottenTomatoes": "",
|
||||
"simkl": "",
|
||||
"mal": "",
|
||||
"anilist": "",
|
||||
"trakt": "",
|
||||
"rottenTomatoesCritic": "",
|
||||
"rottenTomatoesAudience": ""
|
||||
"critic": "Критики",
|
||||
"audience": "Зрители",
|
||||
"imdb": "IMDb",
|
||||
"tmdb": "TMDB",
|
||||
"rottenTomatoes": "Rotten Tomatoes",
|
||||
"simkl": "Simkl",
|
||||
"mal": "MyAnimeList",
|
||||
"anilist": "AniList",
|
||||
"trakt": "Trakt",
|
||||
"rottenTomatoesCritic": "Критики Rotten Tomatoes",
|
||||
"rottenTomatoesAudience": "Зрители Rotten Tomatoes"
|
||||
}
|
||||
},
|
||||
"screens": {
|
||||
@@ -120,7 +120,7 @@
|
||||
"darkTheme": "Тёмная",
|
||||
"oledTheme": "OLED",
|
||||
"libraryDensity": "Плотность библиотеки",
|
||||
"displayScale": "",
|
||||
"displayScale": "Масштаб отображения",
|
||||
"compact": "Компактный",
|
||||
"comfortable": "Комфортный",
|
||||
"tvCornerSpotlightBackdrop": "Фоновое изображение в углу",
|
||||
@@ -170,11 +170,11 @@
|
||||
"bufferSizeMB": "${size}МБ",
|
||||
"bufferSizeAuto": "Авто (Рекомендуется)",
|
||||
"bufferSizeWarning": "Доступно памяти: ${heap} МБ. Буфер размером ${size} МБ может повлиять на воспроизведение.",
|
||||
"playbackBuffer": "",
|
||||
"playbackBufferAuto": "",
|
||||
"playbackBufferLarge": "",
|
||||
"playbackBufferExtraLarge": "",
|
||||
"playbackBufferDescription": "",
|
||||
"playbackBuffer": "Буфер воспроизведения",
|
||||
"playbackBufferAuto": "Авто (рекомендуется)",
|
||||
"playbackBufferLarge": "Большой",
|
||||
"playbackBufferExtraLarge": "Очень большой",
|
||||
"playbackBufferDescription": "Буферизирует больше при нестабильном соединении. Также ограничено размером буфера.",
|
||||
"defaultQualityTitle": "Качество по умолчанию",
|
||||
"musicQualityTitle": "Качество музыки",
|
||||
"subtitleStyling": "Стиль субтитров",
|
||||
@@ -208,9 +208,9 @@
|
||||
"debugLoggingDescription": "Включить подробное журналирование для устранения неполадок",
|
||||
"viewLogs": "Просмотр логов",
|
||||
"viewLogsDescription": "Просмотр логов приложения",
|
||||
"clearImageCache": "",
|
||||
"clearImageCacheDescription": "",
|
||||
"clearImageCacheSuccess": "",
|
||||
"clearImageCache": "Очистить кэш изображений",
|
||||
"clearImageCacheDescription": "Очистить кэшированные обложки и миниатюры. Изображения могут загружаться медленнее, пока не будут загружены снова.",
|
||||
"clearImageCacheSuccess": "Кэш изображений успешно очищен",
|
||||
"resetSettings": "Сбросить настройки",
|
||||
"resetSettingsDescription": "Восстановить настройки по умолчанию. Это нельзя отменить.",
|
||||
"resetSettingsSuccess": "Настройки успешно сброшены",
|
||||
@@ -402,118 +402,118 @@
|
||||
},
|
||||
"fileInfo": {
|
||||
"title": "Информация о файле",
|
||||
"overview": "",
|
||||
"overview": "Обзор",
|
||||
"video": "Видео",
|
||||
"audio": "Аудио",
|
||||
"subtitles": "Субтитры",
|
||||
"images": "",
|
||||
"dataStreams": "",
|
||||
"lyrics": "",
|
||||
"images": "Встроенные изображения",
|
||||
"dataStreams": "Потоки данных",
|
||||
"lyrics": "Текст песни",
|
||||
"file": "Файл",
|
||||
"attachments": "",
|
||||
"delivery": "",
|
||||
"versionCounter": "",
|
||||
"fileCounter": "",
|
||||
"noStreams": "",
|
||||
"copyPath": "",
|
||||
"pathCopied": "",
|
||||
"attachments": "Вложения",
|
||||
"delivery": "Доставка",
|
||||
"versionCounter": "Версия ${index} из ${count}",
|
||||
"fileCounter": "Файл ${index} из ${count}",
|
||||
"noStreams": "Сервер не сообщил о потоках для этого файла.",
|
||||
"copyPath": "Копировать путь",
|
||||
"pathCopied": "Путь к файлу скопирован",
|
||||
"codec": "Кодек",
|
||||
"codecTag": "",
|
||||
"codecTag": "Тег кодека",
|
||||
"resolution": "Разрешение",
|
||||
"codedResolution": "",
|
||||
"codedResolution": "Кодированное разрешение",
|
||||
"bitrate": "Битрейт",
|
||||
"frameRate": "Частота кадров",
|
||||
"rotation": "",
|
||||
"comment": "",
|
||||
"audioDescription": "",
|
||||
"headerCompression": "",
|
||||
"sidecarFile": "",
|
||||
"transportTimestamp": "",
|
||||
"displayOffset": "",
|
||||
"previewFailureCode": "",
|
||||
"previewRetries": "",
|
||||
"rotation": "Поворот",
|
||||
"comment": "Комментарий",
|
||||
"audioDescription": "Аудиоописание",
|
||||
"headerCompression": "Сжатие заголовков",
|
||||
"sidecarFile": "Файл-спутник",
|
||||
"transportTimestamp": "Метка времени транспорта",
|
||||
"displayOffset": "Смещение отображения",
|
||||
"previewFailureCode": "Код ошибки превью",
|
||||
"previewRetries": "Повторные попытки превью",
|
||||
"aspectRatio": "Соотношение сторон",
|
||||
"pixelAspectRatio": "",
|
||||
"pixelAspectRatio": "Попиксельное соотношение сторон",
|
||||
"profile": "Профиль",
|
||||
"level": "",
|
||||
"level": "Уровень",
|
||||
"bitDepth": "Глубина цвета",
|
||||
"pixelFormat": "",
|
||||
"pixelFormat": "Формат пикселей",
|
||||
"colorSpace": "Цветовое пространство",
|
||||
"colorRange": "Цветовой диапазон",
|
||||
"colorPrimaries": "Основные цвета",
|
||||
"colorTransfer": "",
|
||||
"colorTransfer": "Передача цвета",
|
||||
"chromaSubsampling": "Субдискретизация цветности",
|
||||
"chromaLocation": "",
|
||||
"scanType": "",
|
||||
"interlaced": "",
|
||||
"anamorphic": "",
|
||||
"referenceFrames": "",
|
||||
"dynamicRange": "",
|
||||
"dolbyVision": "",
|
||||
"dolbyVisionLevel": "",
|
||||
"dolbyVisionVersion": "",
|
||||
"dolbyVisionLayers": "",
|
||||
"baseLayerCompatibility": "",
|
||||
"avcBitstream": "",
|
||||
"nalLengthSize": "",
|
||||
"scalingMatrix": "",
|
||||
"streamIdentifier": "",
|
||||
"streamIndex": "",
|
||||
"streamId": "",
|
||||
"language": "",
|
||||
"languageCode": "",
|
||||
"streamTitle": "",
|
||||
"chromaLocation": "Расположение цветности",
|
||||
"scanType": "Тип развёртки",
|
||||
"interlaced": "Чересстрочный",
|
||||
"anamorphic": "Анаморфный",
|
||||
"referenceFrames": "Опорные кадры",
|
||||
"dynamicRange": "Динамический диапазон",
|
||||
"dolbyVision": "Dolby Vision",
|
||||
"dolbyVisionLevel": "Уровень Dolby Vision",
|
||||
"dolbyVisionVersion": "Версия Dolby Vision",
|
||||
"dolbyVisionLayers": "Слои Dolby Vision",
|
||||
"baseLayerCompatibility": "Совместимость базового слоя",
|
||||
"avcBitstream": "Битовый поток AVC",
|
||||
"nalLengthSize": "Размер длины NAL",
|
||||
"scalingMatrix": "Пользовательская матрица масштабирования",
|
||||
"streamIdentifier": "Идентификатор потока",
|
||||
"streamIndex": "Индекс потока",
|
||||
"streamId": "ID потока",
|
||||
"language": "Язык",
|
||||
"languageCode": "Код языка",
|
||||
"streamTitle": "Название дорожки",
|
||||
"channels": "Каналы",
|
||||
"sampleRate": "",
|
||||
"spatialAudio": "",
|
||||
"textBased": "",
|
||||
"subtitleFormat": "",
|
||||
"provider": "",
|
||||
"matchScore": "",
|
||||
"externalDelivery": "",
|
||||
"sidecarPath": "",
|
||||
"sourceStream": "",
|
||||
"temporary": "",
|
||||
"timeBase": "",
|
||||
"sampleRate": "Частота дискретизации",
|
||||
"spatialAudio": "Пространственное аудио",
|
||||
"textBased": "Текстовый",
|
||||
"subtitleFormat": "Формат файла-спутника",
|
||||
"provider": "Провайдер",
|
||||
"matchScore": "Оценка совпадения",
|
||||
"externalDelivery": "Может передаваться отдельно",
|
||||
"sidecarPath": "Путь к файлу-спутнику",
|
||||
"sourceStream": "Скопировано из",
|
||||
"temporary": "Временный",
|
||||
"timeBase": "Временная база",
|
||||
"overallBitrate": "Общий битрейт",
|
||||
"path": "Путь",
|
||||
"fileName": "",
|
||||
"fileName": "Имя файла",
|
||||
"size": "Размер",
|
||||
"totalSize": "",
|
||||
"totalSize": "Общий размер",
|
||||
"container": "Контейнер",
|
||||
"duration": "Длительность",
|
||||
"previewThumbnails": "",
|
||||
"previewIndex": "",
|
||||
"packetLength": "",
|
||||
"filePresent": "",
|
||||
"fileReadable": "",
|
||||
"streamPath": "",
|
||||
"previewThumbnails": "Миниатюры превью",
|
||||
"previewIndex": "Индекс превью",
|
||||
"packetLength": "Длина пакета",
|
||||
"filePresent": "Файл присутствует",
|
||||
"fileReadable": "Доступен для чтения сервером",
|
||||
"streamPath": "Путь потока",
|
||||
"optimizedForStreaming": "Оптимизировано для потоковой передачи",
|
||||
"has64bitOffsets": "64-битные смещения",
|
||||
"protocol": "",
|
||||
"mediaType": "",
|
||||
"sourceKind": "",
|
||||
"optimizedVersion": "",
|
||||
"optimizationTarget": "",
|
||||
"deletedAt": "",
|
||||
"remoteSource": "",
|
||||
"infiniteStream": "",
|
||||
"directPlay": "",
|
||||
"directStream": "",
|
||||
"transcoding": "",
|
||||
"etag": "",
|
||||
"versionId": "",
|
||||
"fileId": "",
|
||||
"defaultAudioTrack": "",
|
||||
"defaultSubtitleTrack": "",
|
||||
"subtitlesOff": "",
|
||||
"flagDefault": "",
|
||||
"flagForced": "",
|
||||
"flagSelected": "",
|
||||
"flagExternal": "",
|
||||
"flagHearingImpaired": "",
|
||||
"flagDub": "",
|
||||
"flagOriginal": ""
|
||||
"protocol": "Протокол",
|
||||
"mediaType": "Тип медиа",
|
||||
"sourceKind": "Тип источника",
|
||||
"optimizedVersion": "Оптимизированная версия",
|
||||
"optimizationTarget": "Цель оптимизации",
|
||||
"deletedAt": "Удалено",
|
||||
"remoteSource": "Удалённый источник",
|
||||
"infiniteStream": "Бесконечный поток",
|
||||
"directPlay": "Прямое воспроизведение",
|
||||
"directStream": "Прямой поток",
|
||||
"transcoding": "Транскодирование",
|
||||
"etag": "ETag",
|
||||
"versionId": "ID версии",
|
||||
"fileId": "ID файла",
|
||||
"defaultAudioTrack": "Аудиодорожка по умолчанию",
|
||||
"defaultSubtitleTrack": "Дорожка субтитров по умолчанию",
|
||||
"subtitlesOff": "Выкл.",
|
||||
"flagDefault": "По умолчанию",
|
||||
"flagForced": "Принудительная",
|
||||
"flagSelected": "Выбрана",
|
||||
"flagExternal": "Внешняя",
|
||||
"flagHearingImpaired": "Для слабослышащих",
|
||||
"flagDub": "Дубляж",
|
||||
"flagOriginal": "Оригинал"
|
||||
},
|
||||
"mediaMenu": {
|
||||
"markAsWatched": "Отметить как просмотренное",
|
||||
@@ -524,41 +524,41 @@
|
||||
"shufflePlay": "Случайное воспроизведение",
|
||||
"shuffleNotAvailableOffline": "Перемешивание недоступно офлайн",
|
||||
"fileInfo": "Информация о файле",
|
||||
"deleteEpisodeFromServer": "",
|
||||
"deleteSeasonFromServer": "",
|
||||
"deleteShowFromServer": "",
|
||||
"deleteMovieFromServer": "",
|
||||
"deleteEpisodeTitle": "",
|
||||
"deleteSeasonTitle": "",
|
||||
"deleteShowTitle": "",
|
||||
"deleteMovieTitle": "",
|
||||
"deleteEpisodeConfirm": "",
|
||||
"deleteSeasonConfirm": "",
|
||||
"deleteShowConfirm": "",
|
||||
"deleteMovieConfirm": "",
|
||||
"deleteAnyway": "",
|
||||
"confirmDeleteTarget": "",
|
||||
"deleteEpisodeFromServer": "Удалить эпизод с сервера",
|
||||
"deleteSeasonFromServer": "Удалить сезон с сервера",
|
||||
"deleteShowFromServer": "Удалить сериал с сервера",
|
||||
"deleteMovieFromServer": "Удалить фильм с сервера",
|
||||
"deleteEpisodeTitle": "Удалить этот эпизод?",
|
||||
"deleteSeasonTitle": "Удалить этот сезон?",
|
||||
"deleteShowTitle": "Удалить этот сериал?",
|
||||
"deleteMovieTitle": "Удалить этот фильм?",
|
||||
"deleteEpisodeConfirm": "Удалить эпизод",
|
||||
"deleteSeasonConfirm": "Удалить сезон",
|
||||
"deleteShowConfirm": "Удалить сериал",
|
||||
"deleteMovieConfirm": "Удалить фильм",
|
||||
"deleteAnyway": "Всё равно удалить",
|
||||
"confirmDeleteTarget": "Навсегда удалить ${title} с вашего сервера?",
|
||||
"deleteMultipleWarning": "Это включает все эпизоды и их файлы.",
|
||||
"deleteEpisodeCountWarning": {
|
||||
"one": "",
|
||||
"few": "",
|
||||
"many": "",
|
||||
"other": ""
|
||||
"one": "Это удалит содержащийся в нём ${n} эпизод и его файл.",
|
||||
"few": "Это удалит содержащиеся в нём ${n} эпизода и их файлы.",
|
||||
"many": "Это удалит содержащиеся в нём ${n} эпизодов и их файлы.",
|
||||
"other": "Это удалит содержащиеся в нём ${n} эпизодов и их файлы."
|
||||
},
|
||||
"deleteMultiPartWarning": {
|
||||
"one": "",
|
||||
"few": "",
|
||||
"many": "",
|
||||
"other": ""
|
||||
"one": "Этот элемент хранится как ${n} файл, который будет удалён.",
|
||||
"few": "Этот элемент хранится в ${n} файлах, и все они будут удалены.",
|
||||
"many": "Этот элемент хранится в ${n} файлах, и все они будут удалены.",
|
||||
"other": "Этот элемент хранится в ${n} файлах, и все они будут удалены."
|
||||
},
|
||||
"deleteSharedFileHeading": {
|
||||
"one": "",
|
||||
"few": "",
|
||||
"many": "",
|
||||
"other": ""
|
||||
"one": "В этом же файле хранится ещё ${n} эпизод, и он тоже будет удалён:",
|
||||
"few": "В этом же файле хранятся ещё ${n} эпизода, и они тоже будут удалены:",
|
||||
"many": "В этом же файле хранятся ещё ${n} эпизодов, и они тоже будут удалены:",
|
||||
"other": "В этом же файле хранятся ещё ${n} эпизодов, и они тоже будут удалены:"
|
||||
},
|
||||
"deleteScopeUnverifiedProbeFailed": "",
|
||||
"deleteScopeUnverifiedNoFileInfo": "",
|
||||
"deleteScopeUnverifiedProbeFailed": "Plezy не смог проверить, какие файлы будут удалены, поэтому может быть удалено больше, чем указанный выше элемент. Отмените и попробуйте снова либо удалите в любом случае.",
|
||||
"deleteScopeUnverifiedNoFileInfo": "Ваш сервер не предоставил сведения о файлах для этого элемента, поэтому Plezy не может проверить, какие файлы будут удалены. Может быть удалено больше, чем указанный выше элемент.",
|
||||
"mediaDeletedSuccessfully": "Медиаэлемент успешно удалён",
|
||||
"mediaFailedToDelete": "Не удалось удалить медиаэлемент",
|
||||
"rate": "Оценить",
|
||||
@@ -634,9 +634,9 @@
|
||||
"playNext": "Следующее",
|
||||
"playButton": "Воспроизвести",
|
||||
"pauseButton": "Пауза",
|
||||
"playbackPaused": "",
|
||||
"playbackResumed": "",
|
||||
"loadingVideo": "",
|
||||
"playbackPaused": "На паузе",
|
||||
"playbackResumed": "Воспроизведение",
|
||||
"loadingVideo": "Загрузка видео",
|
||||
"showPlaybackControls": "Показать элементы управления воспроизведением",
|
||||
"hidePlaybackControls": "Скрыть элементы управления воспроизведением",
|
||||
"seekBackwardButton": "Перемотать назад на ${seconds} с",
|
||||
@@ -710,7 +710,7 @@
|
||||
},
|
||||
"removedFromContinueWatching": "Удалено из «Продолжить просмотр»",
|
||||
"errorLoading": "Ошибка: ${error}",
|
||||
"searchPartialResults": "",
|
||||
"searchPartialResults": "Поиск по некоторым медиасерверам не удался. Показываем доступные результаты.",
|
||||
"streamInterrupted": "Поток прервался. Нажмите «Воспроизвести» или перемотайте, чтобы повторить попытку.",
|
||||
"liveStreamInterrupted": "Прямая трансляция прервалась. Нажмите «Воспроизвести», чтобы повторить попытку.",
|
||||
"fileInfoNotAvailable": "Информация о файле недоступна",
|
||||
@@ -749,8 +749,8 @@
|
||||
"switchingToCompatiblePlayer": "Переключение на совместимый плеер...",
|
||||
"serverLimitTitle": "Ошибка воспроизведения",
|
||||
"serverLimitBody": "Ошибка сервера (HTTP 500). Лимит пропускной способности/транскодирования, вероятно, отклонил сессию. Попросите владельца изменить настройки.",
|
||||
"mediaUnreadableTitle": "",
|
||||
"mediaUnreadableBody": "",
|
||||
"mediaUnreadableTitle": "Файл недоступен",
|
||||
"mediaUnreadableBody": "Сервер нашёл этот элемент, но не смог прочитать его файл (HTTP 404). Вероятно, файл был перемещён, удалён или его хранилище недоступно. Попросите владельца сервера проверить файл и пересканировать библиотеку.",
|
||||
"logsUploaded": "Логи загружены",
|
||||
"logsUploadFailed": "Не удалось загрузить логи",
|
||||
"logId": "ID лога"
|
||||
@@ -869,8 +869,8 @@
|
||||
"sessionExpiredOne": "Сессия истекла для ${name}",
|
||||
"sessionExpiredMany": "Сессия истекла для ${count} серверов",
|
||||
"signInAgain": "Войти снова",
|
||||
"editMediaBrowserTitle": "",
|
||||
"editMediaBrowserIntro": ""
|
||||
"editMediaBrowserTitle": "Изменить подключение ${product}",
|
||||
"editMediaBrowserIntro": "Добавьте или удалите URL-адреса для ${serverName}. Plezy будет использовать доступный URL с наименьшей задержкой."
|
||||
},
|
||||
"discover": {
|
||||
"title": "Обзор",
|
||||
@@ -900,7 +900,7 @@
|
||||
},
|
||||
"errors": {
|
||||
"searchFailed": "Ошибка поиска: ${error}",
|
||||
"searchUnavailable": "",
|
||||
"searchUnavailable": "Поиску не удалось связаться ни с одним медиасервером.",
|
||||
"connectionTimeout": "Таймаут подключения при загрузке ${context}",
|
||||
"connectionFailed": "Не удалось подключиться к медиасерверу",
|
||||
"unableToLoad": "Не удалось загрузить ${context}. Повторите попытку.",
|
||||
@@ -1028,36 +1028,36 @@
|
||||
"uploadLogs": "Загрузить логи"
|
||||
},
|
||||
"startup": {
|
||||
"failedTitle": "",
|
||||
"failedBody": "",
|
||||
"failedBodyRepairable": "",
|
||||
"phaseLabel": "",
|
||||
"showDetails": "",
|
||||
"hideDetails": "",
|
||||
"copyDetails": "",
|
||||
"detailsCopied": "",
|
||||
"uploadDetails": "",
|
||||
"repairStorage": "",
|
||||
"repairTitle": "",
|
||||
"repairBodyCommon": "",
|
||||
"repairBodyOneCredential": "",
|
||||
"repairBodySignInsKept": "",
|
||||
"repairBodySignInsLost": "",
|
||||
"repairBodySessionsUncertain": "",
|
||||
"repairConfirm": "",
|
||||
"repairSucceeded": "",
|
||||
"repairNeedsRestart": "",
|
||||
"restartRequiredBody": "",
|
||||
"quitPlezy": "",
|
||||
"repairFailed": "",
|
||||
"repairKeptSignIns": "",
|
||||
"repairLostSignIns": "",
|
||||
"repairLostSessions": "",
|
||||
"backupTitle": "",
|
||||
"backupWarning": "",
|
||||
"deleteBackup": "",
|
||||
"backupDeleted": "",
|
||||
"previousFailureTitle": ""
|
||||
"failedTitle": "Plezy не удалось запустить",
|
||||
"failedBody": "Во время запуска что-то пошло не так. Сведения ниже показывают, что именно не удалось.",
|
||||
"failedBodyRepairable": "Сохранённый файл настроек Plezy повреждён, и его необходимо пересоздать, прежде чем Plezy сможет запуститься. Повторные попытки не помогут — выберите «Восстановить хранилище».",
|
||||
"phaseLabel": "Шаг",
|
||||
"showDetails": "Показать сведения",
|
||||
"hideDetails": "Скрыть сведения",
|
||||
"copyDetails": "Копировать сведения",
|
||||
"detailsCopied": "Сведения скопированы в буфер обмена",
|
||||
"uploadDetails": "Отправить сведения",
|
||||
"repairStorage": "Восстановить хранилище",
|
||||
"repairTitle": "Восстановить сохранённые данные?",
|
||||
"repairBodyCommon": "Файл настроек Plezy повреждён и не может быть прочитан. Восстановление сбросит все настройки к значениям по умолчанию.",
|
||||
"repairBodyOneCredential": "Одна сохранённая учётная запись повреждена и не может быть прочитана. Восстановление удалит только её; остальные настройки не будут затронуты.",
|
||||
"repairBodySignInsKept": "Вход в ваши серверы и профили будет сохранён.",
|
||||
"repairBodySignInsLost": "Ключ, защищающий сохранённые входы, невозможно восстановить из этого файла, поэтому вам придётся снова войти на каждый сервер и в каждый профиль. На вашем медиасервере ничего не изменится.",
|
||||
"repairBodySessionsUncertain": "Трекеры (MAL, AniList, Simkl, Trakt) и Seerr хранятся отдельно и могут сохраниться или нет. Plezy точно сообщит, что удалось сохранить.",
|
||||
"repairConfirm": "Восстановить",
|
||||
"repairSucceeded": "Хранилище восстановлено",
|
||||
"repairNeedsRestart": "Хранилище восстановлено — требуется перезапуск",
|
||||
"restartRequiredBody": "Ваши данные были восстановлены, но Plezy должен запуститься заново, чтобы использовать их. Закройте Plezy и откройте его снова.",
|
||||
"quitPlezy": "Выйти из Plezy",
|
||||
"repairFailed": "Не удалось восстановить",
|
||||
"repairKeptSignIns": "Ваши серверы и профили по-прежнему в системе.",
|
||||
"repairLostSignIns": "Ключ, защищающий сохранённые входы, не удалось восстановить. Вам придётся снова войти на каждый сервер и в каждый профиль.",
|
||||
"repairLostSessions": "Потеряно как минимум одно подключение трекера или Seerr — его нужно восстановить.",
|
||||
"backupTitle": "Сохранена копия повреждённого файла",
|
||||
"backupWarning": "Она содержит ваши учётные данные для входа. Не загружайте и не передавайте её.",
|
||||
"deleteBackup": "Удалить копию",
|
||||
"backupDeleted": "Копия удалена.",
|
||||
"previousFailureTitle": "В прошлый раз Plezy не удалось запустить"
|
||||
},
|
||||
"licenses": {
|
||||
"relatedPackages": "Связанные пакеты",
|
||||
@@ -1068,7 +1068,7 @@
|
||||
"navigation": {
|
||||
"libraries": "Библиотеки",
|
||||
"downloads": "Загрузки",
|
||||
"liveTv": "ТВ в прямом эфире",
|
||||
"liveTv": "Прямой эфир",
|
||||
"explore": "Обзор"
|
||||
},
|
||||
"explore": {
|
||||
@@ -1117,140 +1117,140 @@
|
||||
"searchPrompt": "Ищите фильмы и сериалы в ${source}.",
|
||||
"searchFailed": "Ошибка поиска. Проверьте подключение и повторите попытку.",
|
||||
"badge": {
|
||||
"rankPopular": "",
|
||||
"rankAiring": "",
|
||||
"rankRated": "",
|
||||
"rankFavorited": "",
|
||||
"rankTrending": "",
|
||||
"rankSeasonal": "",
|
||||
"watchingNow": "",
|
||||
"available": "",
|
||||
"partiallyAvailable": "",
|
||||
"availableIn4k": "",
|
||||
"requested": "",
|
||||
"pendingApproval": "",
|
||||
"processing": "",
|
||||
"declined": "",
|
||||
"requestFailed": "",
|
||||
"requested4k": "",
|
||||
"seasonsAvailable": "",
|
||||
"nextEpisodeIn": "",
|
||||
"nextAiringIn": "",
|
||||
"episodesShort": "",
|
||||
"minutesPerEpisode": "",
|
||||
"adult": ""
|
||||
"rankPopular": "#${n} по популярности",
|
||||
"rankAiring": "#${n} в эфире",
|
||||
"rankRated": "#${n} по оценкам",
|
||||
"rankFavorited": "#${n} по избранному",
|
||||
"rankTrending": "#${n} в тренде",
|
||||
"rankSeasonal": "#${n} в сезоне ${season}",
|
||||
"watchingNow": "${n} смотрят",
|
||||
"available": "Доступно",
|
||||
"partiallyAvailable": "Доступно частично",
|
||||
"availableIn4k": "Доступно в 4K",
|
||||
"requested": "Запрошено",
|
||||
"pendingApproval": "Ожидает одобрения",
|
||||
"processing": "В обработке",
|
||||
"declined": "Отклонено",
|
||||
"requestFailed": "Запрос не удался",
|
||||
"requested4k": "Запрошено в 4K",
|
||||
"seasonsAvailable": "${available}/${total} сезонов",
|
||||
"nextEpisodeIn": "Серия ${episode} через ${duration}",
|
||||
"nextAiringIn": "Далее через ${duration}",
|
||||
"episodesShort": "${n} эп.",
|
||||
"minutesPerEpisode": "${n} мин/эп.",
|
||||
"adult": "18+"
|
||||
},
|
||||
"stats": {
|
||||
"listed": "",
|
||||
"viewersDay": "",
|
||||
"viewersWeek": "",
|
||||
"viewersMonth": "",
|
||||
"viewersYear": "",
|
||||
"viewersAllTime": "",
|
||||
"planning": "",
|
||||
"favorited": "",
|
||||
"dropRate": "",
|
||||
"listed": "${n} в списках",
|
||||
"viewersDay": "${n} посмотрели сегодня",
|
||||
"viewersWeek": "${n} посмотрели на этой неделе",
|
||||
"viewersMonth": "${n} посмотрели в этом месяце",
|
||||
"viewersYear": "${n} посмотрели в этом году",
|
||||
"viewersAllTime": "${n} зрителей",
|
||||
"planning": "${n} планируют посмотреть",
|
||||
"favorited": "${n} в избранном",
|
||||
"dropRate": "${percent} бросили",
|
||||
"comments": {
|
||||
"one": "",
|
||||
"few": "",
|
||||
"many": "",
|
||||
"other": ""
|
||||
"one": "${n} комментарий",
|
||||
"few": "${n} комментария",
|
||||
"many": "${n} комментариев",
|
||||
"other": "${n} комментариев"
|
||||
},
|
||||
"votes": "",
|
||||
"watching": "",
|
||||
"completed": "",
|
||||
"onHold": "",
|
||||
"dropped": ""
|
||||
"votes": "${n} голосов",
|
||||
"watching": "${n} смотрят",
|
||||
"completed": "${n} завершили",
|
||||
"onHold": "${n} отложили",
|
||||
"dropped": "${n} бросили"
|
||||
},
|
||||
"season": {
|
||||
"winter": "",
|
||||
"spring": "",
|
||||
"summer": "",
|
||||
"fall": "",
|
||||
"withYear": ""
|
||||
"winter": "Зима",
|
||||
"spring": "Весна",
|
||||
"summer": "Лето",
|
||||
"fall": "Осень",
|
||||
"withYear": "${season} ${year}"
|
||||
},
|
||||
"format": {
|
||||
"tv": "",
|
||||
"tvShort": "",
|
||||
"movie": "",
|
||||
"special": "",
|
||||
"ova": "",
|
||||
"ona": "",
|
||||
"music": "",
|
||||
"other": ""
|
||||
"tv": "ТВ",
|
||||
"tvShort": "Короткометражное ТВ",
|
||||
"movie": "Фильм",
|
||||
"special": "Спецвыпуск",
|
||||
"ova": "OVA",
|
||||
"ona": "ONA",
|
||||
"music": "Музыка",
|
||||
"other": "Другое"
|
||||
},
|
||||
"sourceMaterial": {
|
||||
"original": "",
|
||||
"manga": "",
|
||||
"lightNovel": "",
|
||||
"novel": "",
|
||||
"visualNovel": "",
|
||||
"game": "",
|
||||
"webComic": "",
|
||||
"musicRelease": "",
|
||||
"otherMedia": ""
|
||||
"original": "Оригинал",
|
||||
"manga": "Манга",
|
||||
"lightNovel": "Ранобэ",
|
||||
"novel": "Новелла",
|
||||
"visualNovel": "Визуальная новелла",
|
||||
"game": "Игра",
|
||||
"webComic": "Веб-комикс",
|
||||
"musicRelease": "Музыка",
|
||||
"otherMedia": "Другое"
|
||||
},
|
||||
"creditRole": {
|
||||
"director": "",
|
||||
"writer": "",
|
||||
"producer": "",
|
||||
"creator": "",
|
||||
"composer": ""
|
||||
"director": "Режиссёр",
|
||||
"writer": "Сценарист",
|
||||
"producer": "Продюсер",
|
||||
"creator": "Создатель",
|
||||
"composer": "Композитор"
|
||||
},
|
||||
"relation": {
|
||||
"prequel": "",
|
||||
"sequel": "",
|
||||
"sideStory": "",
|
||||
"spinOff": "",
|
||||
"alternativeVersion": "",
|
||||
"summary": "",
|
||||
"parentStory": "",
|
||||
"adaptation": "",
|
||||
"other": ""
|
||||
"prequel": "Приквел",
|
||||
"sequel": "Сиквел",
|
||||
"sideStory": "Побочная история",
|
||||
"spinOff": "Спин-офф",
|
||||
"alternativeVersion": "Альтернативная версия",
|
||||
"summary": "Краткое изложение",
|
||||
"parentStory": "Основная история",
|
||||
"adaptation": "Адаптация",
|
||||
"other": "Связано"
|
||||
},
|
||||
"broadcast": "",
|
||||
"broadcastWithZone": "",
|
||||
"broadcast": "Выходит ${day} в ${time}",
|
||||
"broadcastWithZone": "Выходит ${day} в ${time} ${timezone}",
|
||||
"detail": {
|
||||
"originalTitle": "",
|
||||
"alsoKnownAs": "",
|
||||
"studios": "",
|
||||
"country": "",
|
||||
"language": "",
|
||||
"released": "",
|
||||
"physicalRelease": "",
|
||||
"ended": "",
|
||||
"addedOn": "",
|
||||
"yourRating": "",
|
||||
"budget": "",
|
||||
"revenue": "",
|
||||
"contentAdvisory": "",
|
||||
"tags": "",
|
||||
"revealSpoilerTags": "",
|
||||
"links": "",
|
||||
"watchOn": "",
|
||||
"watchTrailer": "",
|
||||
"openOn": "",
|
||||
"crew": "",
|
||||
"ratings": "",
|
||||
"schedule": "",
|
||||
"originalTitle": "Оригинальное название",
|
||||
"alsoKnownAs": "Также известен как",
|
||||
"studios": "Студии",
|
||||
"country": "Страна",
|
||||
"language": "Язык",
|
||||
"released": "Выпущено",
|
||||
"physicalRelease": "На диске",
|
||||
"ended": "Завершено",
|
||||
"addedOn": "Добавлено ${date}",
|
||||
"yourRating": "Ваша оценка",
|
||||
"budget": "Бюджет",
|
||||
"revenue": "Сборы",
|
||||
"contentAdvisory": "Возрастные ограничения",
|
||||
"tags": "Теги",
|
||||
"revealSpoilerTags": "Показать теги со спойлерами",
|
||||
"links": "Ссылки",
|
||||
"watchOn": "Смотреть на",
|
||||
"watchTrailer": "Смотреть трейлер",
|
||||
"openOn": "Открыть на ${site}",
|
||||
"crew": "Съёмочная группа",
|
||||
"ratings": "Рейтинги",
|
||||
"schedule": "Расписание",
|
||||
"recommendedByUsers": {
|
||||
"one": "",
|
||||
"few": "",
|
||||
"many": "",
|
||||
"other": ""
|
||||
"one": "Рекомендуют ${n} пользователь",
|
||||
"few": "Рекомендуют ${n} пользователя",
|
||||
"many": "Рекомендуют ${n} пользователей",
|
||||
"other": "Рекомендуют ${n} пользователей"
|
||||
},
|
||||
"recommendedBy": "",
|
||||
"favoritedBy": "",
|
||||
"unairedEpisodes": "",
|
||||
"recommendedByPercent": "",
|
||||
"relatedTitles": "",
|
||||
"background": ""
|
||||
"recommendedBy": "Рекомендовано: ${who}",
|
||||
"favoritedBy": "В избранном у ${who}",
|
||||
"unairedEpisodes": "${n} ещё не вышли",
|
||||
"recommendedByPercent": "Рекомендуют ${percent} зрителей",
|
||||
"relatedTitles": "Связанные названия",
|
||||
"background": "Фон"
|
||||
},
|
||||
"totalResults": {
|
||||
"one": "",
|
||||
"few": "",
|
||||
"many": "",
|
||||
"other": ""
|
||||
"one": "${n} результат",
|
||||
"few": "${n} результата",
|
||||
"many": "${n} результатов",
|
||||
"other": "${n} результатов"
|
||||
}
|
||||
},
|
||||
"liveTv": {
|
||||
@@ -1519,15 +1519,15 @@
|
||||
"editSyncRule": "Редактировать правило синхронизации",
|
||||
"removeSyncRule": "Удалить правило синхронизации",
|
||||
"removeSyncRuleConfirm": "Прекратить синхронизацию «${title}»? Скачанные эпизоды будут сохранены.",
|
||||
"removeListSyncRuleConfirm": "",
|
||||
"deleteSyncRuleDownloads": "",
|
||||
"deleteSyncRuleDownloadsDescription": "",
|
||||
"removeListSyncRuleConfirm": "Прекратить синхронизацию \"${title}\"?",
|
||||
"deleteSyncRuleDownloads": "Также удалить связанные загрузки",
|
||||
"deleteSyncRuleDownloadsDescription": "Загрузки, используемые другим правилом синхронизации или профилем, будут сохранены.",
|
||||
"syncRuleCreated": "Правило синхронизации создано — хранится ${count} непросмотренных эпизодов",
|
||||
"syncRuleUpdated": "Правило синхронизации обновлено",
|
||||
"syncRuleRemoved": "Правило синхронизации удалено",
|
||||
"syncRuleAndDownloadsRemoved": "",
|
||||
"syncRuleCleanupBusy": "",
|
||||
"syncRuleCleanupUnavailable": "",
|
||||
"syncRuleAndDownloadsRemoved": "Правило синхронизации и связанные загрузки удалены",
|
||||
"syncRuleCleanupBusy": "Правила синхронизации сейчас обновляются. Попробуйте снова чуть позже.",
|
||||
"syncRuleCleanupUnavailable": "Не удалось надёжно определить связанные загрузки. Переподключите сервер и повторите попытку либо удалите правило без удаления загрузок.",
|
||||
"syncedNewEpisodes": "Синхронизировано ${count} новых эпизодов для ${title}",
|
||||
"activeSyncRules": "Правила синхронизации",
|
||||
"noSyncRules": "Нет правил синхронизации",
|
||||
@@ -1892,7 +1892,7 @@
|
||||
"anilist": "AniList",
|
||||
"simkl": "Simkl",
|
||||
"seerr": "Seerr",
|
||||
"mdblist": ""
|
||||
"mdblist": "MDBList"
|
||||
},
|
||||
"deviceCode": {
|
||||
"title": "Активируйте Plezy в ${service}",
|
||||
@@ -1925,12 +1925,12 @@
|
||||
}
|
||||
},
|
||||
"addServer": {
|
||||
"addMediaBrowserTitle": "",
|
||||
"addMediaBrowserTitle": "Добавить сервер ${product}",
|
||||
"serverUrls": "URL-адреса сервера",
|
||||
"serverUrlsHelper": "Можно указать несколько URL через запятую.",
|
||||
"findServer": "Найти сервер",
|
||||
"searchingLocalMediaBrowserServers": "",
|
||||
"localMediaBrowserServers": "",
|
||||
"searchingLocalMediaBrowserServers": "Поиск локальных серверов ${product}...",
|
||||
"localMediaBrowserServers": "Локальные серверы ${product}",
|
||||
"username": "Имя пользователя",
|
||||
"password": "Пароль",
|
||||
"signIn": "Войти",
|
||||
@@ -1942,15 +1942,15 @@
|
||||
"addPlexTitle": "Войти через Plex",
|
||||
"pinExpired": "Срок действия PIN истёк до входа. Попробуйте снова.",
|
||||
"failedToRegisterAccount": "Не удалось зарегистрировать учётную запись: ${error}",
|
||||
"enterMediaBrowserUrlError": "",
|
||||
"enterMediaBrowserUrlError": "Введите URL вашего сервера ${product}",
|
||||
"addConnectionTitle": "Добавить подключение",
|
||||
"addConnectionTitleScoped": "Добавить в ${name}",
|
||||
"signInWithPlexCard": "Войти через Plex",
|
||||
"signInWithPlexCardSubtitle": "Авторизуйте это устройство. Общие серверы будут добавлены.",
|
||||
"signInWithPlexCardSubtitleScoped": "Авторизуйте аккаунт Plex. Пользователи Home станут профилями.",
|
||||
"connectToMediaBrowserCard": "",
|
||||
"connectToMediaBrowserCardSubtitle": "",
|
||||
"connectToMediaBrowserCardSubtitleScoped": "",
|
||||
"connectToMediaBrowserCard": "Подключиться к ${product}",
|
||||
"connectToMediaBrowserCardSubtitle": "Введите URL сервера, имя пользователя и пароль.",
|
||||
"connectToMediaBrowserCardSubtitleScoped": "Войдите на свой сервер ${product}. Будет привязано к ${name}.",
|
||||
"borrowFromAnotherProfile": "Использовать подключение другого профиля",
|
||||
"borrowFromAnotherProfileSubtitle": "Повторно используйте подключение другого профиля. Для защищённых профилей потребуется PIN."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user