Files
MyTube/frontend/src/utils/locales/ru.ts
2025-12-24 17:26:19 -05:00

576 lines
41 KiB
TypeScript
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.
export const ru = {
// Header
myTube: "MyTube",
manage: "Управление",
settings: "Настройки",
logout: "Выйти",
pleaseEnterUrlOrSearchTerm:
"Пожалуйста, введите URL видео или поисковый запрос",
unexpectedErrorOccurred:
"Произошла непредвиденная ошибка. Пожалуйста, попробуйте снова.",
uploadVideo: "Загрузить видео",
enterUrlOrSearchTerm: "Введите URL видео или поисковый запрос",
manageVideos: "Управление видео",
instruction: "Инструкция",
// Home
pasteUrl: "Вставьте URL видео или коллекции",
download: "Скачать",
search: "Поиск",
recentDownloads: "Недавние загрузки",
noDownloads: "Загрузок пока нет",
downloadStarted: "Загрузка началась",
downloadFailed: "Ошибка загрузки",
loadingVideos: "Загрузка видео...",
searchResultsFor: "Результаты поиска для",
fromYourLibrary: "Из вашей библиотеки",
noMatchingVideos: "В вашей библиотеке нет подходящих видео.",
proxyOnlyApplyToYoutube: "Прокси применяется только к Youtube",
moveSubtitlesToVideoFolder: "Расположение субтитров",
moveSubtitlesToVideoFolderOn: "Вместе с видео",
moveSubtitlesToVideoFolderOff: "В изолированной папке субтитров",
moveSubtitlesToVideoFolderDescription:
"Если включено, файлы субтитров будут перемещены в ту же папку, что и видеофайл. Если отключено, они будут перемещены в изолированную папку субтитров.",
moveThumbnailsToVideoFolder: "Расположение миниатюр",
moveThumbnailsToVideoFolderOn: "Вместе с видео",
moveThumbnailsToVideoFolderOff: "В отдельной папке изображений",
moveThumbnailsToVideoFolderDescription:
"Если включено, файлы миниатюр будут перемещены в ту же папку, что и видеофайл. Если выключено, они будут перемещены в отдельную папку изображений.",
loadingYouTubeResults: "Загрузка результатов YouTube...",
noYouTubeResults: "Результаты YouTube не найдены",
noVideosYet: "Видео пока нет. Отправьте URL видео, чтобы скачать первое!",
views: "просмотров",
// Settings
general: "Общие",
security: "Безопасность",
videoDefaults: "Настройки плеера по умолчанию",
downloadSettings: "Настройки загрузки",
language: "Язык",
websiteName: "Название веб-сайта",
websiteNameHelper: "{current}/{max} символов (По умолчанию: {default})",
infiniteScroll: "Бесконечная прокрутка",
infiniteScrollDisabled: "Отключено, когда включена бесконечная прокрутка",
maxVideoColumns: "Максимальное количество колонок видео (Главная страница)",
videoColumns: "Колонки видео (Главная страница)",
columnsCount: "{count} колонок",
enableLogin: "Включить защиту входа",
password: "Пароль",
enterPassword: "Введите пароль",
togglePasswordVisibility: "Показать/скрыть пароль",
passwordHelper:
"Оставьте пустым, чтобы сохранить текущий пароль, или введите новый для изменения",
passwordSetHelper: "Установите пароль для доступа к приложению",
autoPlay: "Автовоспроизведение видео",
autoLoop: "Автоповтор видео",
maxConcurrent: "Макс. одновременных загрузок",
saveSettings: "Сохранить настройки",
saving: "Сохранение...",
backToManage: "Назад к управлению",
settingsSaved: "Настройки успешно сохранены",
settingsFailed: "Не удалось сохранить настройки",
debugMode: "Режим отладки",
debugModeDescription:
"Показать или скрыть сообщения консоли (требуется обновление)",
tagsManagement: "Управление тегами",
newTag: "Новый тег",
tags: "Теги",
tagsManagementNote:
"Пожалуйста, не забудьте нажать «Сохранить настройки» после добавления или удаления тегов, чтобы применить изменения.",
// Database
database: "База данных",
migrateDataDescription:
"Перенос данных из устаревших файлов JSON в новую базу данных SQLite. Это действие безопасно запускать несколько раз (дубликаты будут пропущены).",
migrateDataButton: "Перенести данные из JSON",
scanFiles: "Сканировать файлы",
scanFilesSuccess: "Сканирование завершено. Добавлено {count} новых видео.",
scanFilesDeleted: " Удалено {count} отсутствующих файлов.",
scanFilesFailed: "Сканирование не удалось",
scanFilesConfirmMessage:
"Система просканирует корневую папку с видео. Новые файлы будут добавлены, а отсутствующие видеофайлы будут удалены из системы.",
scanning: "Сканирование...",
migrateConfirmation:
"Вы уверены, что хотите перенести данные? Это может занять некоторое время.",
migrationResults: "Результаты миграции",
migrationReport: "Отчет о миграции",
migrationSuccess: "Миграция завершена. Подробности см. в оповещении.",
migrationNoData: "Миграция завершена, но данные не найдены.",
migrationFailed: "Ошибка миграции",
migrationWarnings: "ПРЕДУПРЕЖДЕНИЯ",
migrationErrors: "ОШИБКИ",
itemsMigrated: "элементов перенесено",
fileNotFound: "Файл не найден в",
noDataFilesFound:
"Файлы данных для миграции не найдены. Пожалуйста, проверьте сопоставления томов.",
removeLegacyData: "Удалить устаревшие данные",
removeLegacyDataDescription:
"Удалите старые файлы JSON (videos.json, collections.json и т.д.), чтобы освободить место на диске. Делайте это только после проверки успешной миграции ваших данных.",
removeLegacyDataConfirmTitle: "Удалить устаревшие данные?",
removeLegacyDataConfirmMessage:
"Вы уверены, что хотите удалить устаревшие файлы данных JSON? Это действие нельзя отменить.",
legacyDataDeleted: "Устаревшие данные успешно удалены.",
formatLegacyFilenames: "Format Legacy Filenames",
formatLegacyFilenamesDescription:
"Batch rename all video files, thumbnails, and subtitles to the new standard format: Title-Author-YYYY. This operation will modify filenames on the disk and update the database logic.",
formatLegacyFilenamesButton: "Форматировать имена файлов",
formatFilenamesSuccess:
"Обработано: {processed}\nПереименовано: {renamed}\nОшибки: {errors}",
formatFilenamesDetails: "Подробности:",
formatFilenamesMore: "...и еще {count}",
formatFilenamesError: "Не удалось отформатировать имена файлов: {error}",
deleteLegacyDataButton: "Удалить устаревшие данные",
cleanupTempFiles: "Очистить временные файлы",
cleanupTempFilesDescription:
"Удалить все временные файлы загрузки (.ytdl, .part) из каталога загрузок. Это помогает освободить место на диске от незавершенных или отмененных загрузок.",
cleanupTempFilesConfirmTitle: "Очистить временные файлы?",
cleanupTempFilesConfirmMessage:
"Это навсегда удалит все файлы .ytdl и .part в каталоге загрузок. Убедитесь, что нет активных загрузок перед продолжением.",
cleanupTempFilesActiveDownloads:
"Невозможно очистить, пока активны загрузки. Пожалуйста, дождитесь завершения всех загрузок или сначала отмените их.",
itemsPerPage: "Элементов на странице",
itemsPerPageHelper: "Количество видео на странице (По умолчанию: 12)",
showYoutubeSearch: "Показать результаты поиска YouTube",
visitorMode: "Режим посетителя (Только чтение)",
visitorModeReadOnly: "Режим посетителя: Только чтение",
visitorModeDescription: "Режим только чтения. Скрытые видео не будут видны посетителям.",
visitorModePasswordPrompt: "Пожалуйста, введите пароль веб-сайта для изменения настроек режима посетителя.",
cleanupTempFilesSuccess: "Успешно удалено {count} временных файлов.",
cleanupTempFilesFailed: "Не удалось очистить временные файлы",
// Cookie Settings
cookieSettings: "Настройки Cookie",
cookieUploadDescription:
'Загрузите cookies.txt, чтобы пройти проверку ботов YouTube и включить скачивание субтитров Bilibili. Файл будет автоматически переименован в cookies.txt. (Пример: используйте расширение "Get cookies.txt LOCALLY" для экспорта cookie)',
uploadCookies: "Загрузить Cookie",
onlyTxtFilesAllowed: "Разрешены только файлы .txt",
cookiesUploadedSuccess: "Cookie успешно загружены",
cookiesUploadFailed: "Не удалось загрузить cookie",
cookiesFound: "cookies.txt найден",
cookiesNotFound: "cookies.txt не найден",
deleteCookies: "Удалить Cookie",
confirmDeleteCookies:
"Вы уверены, что хотите удалить файл cookie? Это повлияет на возможность скачивания видео с возрастными ограничениями или только для участников.",
cookiesDeletedSuccess: "Cookie успешно удалены",
cookiesDeleteFailed: "Не удалось удалить cookie",
// Cloud Drive
cloudDriveSettings: "Облачное хранилище (OpenList)",
cloudDriveDescription:
"Автоматически загружать видео в облачное хранилище (Alist) и сканировать новые файлы в облаке. Локальные файлы будут удалены после успешной загрузки.",
enableAutoSave: "Включить облачную синхронизацию",
apiUrl: "URL API",
apiUrlHelper: "напр. https://your-alist-instance.com/api/fs/put",
token: "Токен",
publicUrl: "Публичный URL",
publicUrlHelper: "Публичный домен для доступа к файлам (напр. https://your-cloudflare-tunnel-domain.com). Если установлен, будет использоваться вместо URL API для доступа к файлам.",
uploadPath: "Путь загрузки",
cloudDrivePathHelper: "Путь к каталогу в облаке, напр. /mytube-uploads",
scanPaths: "Пути сканирования",
scanPathsHelper: "Один путь в строке. Видео будут сканироваться из этих путей. Если пусто, будет использоваться путь загрузки. Пример:\n/a/Фильмы\n/b/Документальные",
cloudDriveNote:
"После включения этой функции недавно загруженные видео будут автоматически загружены в облачное хранилище, а локальные файлы будут удалены. Видео будут воспроизводиться из облачного хранилища через прокси.",
cloudScanAdded: "Добавлено из облака",
testing: "Тестирование...",
testConnection: "Тестировать соединение",
sync: "Синхронизировать",
syncToCloud: "Двусторонняя синхронизация",
syncWarning: "Эта операция загрузит локальные видео в облако и просканирует облачное хранилище на наличие новых файлов. Локальные файлы будут удалены после загрузки.",
syncing: "Синхронизация...",
syncCompleted: "Синхронизация завершена",
syncFailed: "Ошибка синхронизации",
syncReport: "Всего: {total} | Загружено: {uploaded} | Ошибок: {failed}",
syncErrors: "Ошибки:",
fillApiUrlToken: "Пожалуйста, сначала заполните URL API и токен",
connectionTestSuccess: "Тест соединения прошел успешно! Настройки верны.",
connectionFailedStatus: "Ошибка соединения: Сервер вернул статус {status}",
connectionFailedUrl: "Невозможно подключиться к серверу. Пожалуйста, проверьте URL API.",
authFailed: "Ошибка аутентификации. Пожалуйста, проверьте ваш токен.",
connectionTestFailed: "Тест соединения не удался: {error}",
syncFailedMessage: "Ошибка синхронизации. Пожалуйста, попробуйте снова.",
foundVideosToSync: "Найдено {count} видео с локальными файлами для синхронизации",
uploadingVideo: "Загрузка: {title}",
// Manage
manageContent: "Управление контентом",
videos: "Видео",
collections: "Коллекции",
allVideos: "Все видео",
delete: "Удалить",
backToHome: "Назад на главную",
confirmDelete: "Вы уверены, что хотите удалить это?",
deleteSuccess: "Успешно удалено",
previouslyDeletedVideo: "Ранее удаленное видео",
previouslyDeleted: "Ранее удалено",
videoWasDeleted: "Это видео было ранее загружено, но удалено.",
deleteFailed: "Не удалось удалить",
noVideos: "Видео не найдено",
noCollectionsFound: "Коллекции не найдены",
noCollections: "Коллекции не найдены",
searchVideos: "Поиск видео...",
thumbnail: "Миниатюра",
title: "Название",
author: "Автор",
authors: "Авторы",
created: "Создано",
name: "Имя",
size: "Размер",
actions: "Действия",
deleteCollection: "Удалить коллекцию",
deleteVideo: "Удалить видео",
noVideosFoundMatching: "Видео, соответствующие вашему поиску, не найдены.",
// Video Player
playing: "Воспроизведение",
paused: "Пауза",
next: "Следующее",
previous: "Предыдущее",
loop: "Повтор",
autoPlayOn: "Автовоспроизведение вкл.",
autoPlayOff: "Автовоспроизведение выкл.",
autoPlayNext: "Автовоспроизведение следующего",
videoNotFound: "Видео не найдено",
videoNotFoundOrLoaded: "Видео не найдено или не может быть загружено.",
deleting: "Удаление...",
addToCollection: "Добавить в коллекцию",
originalLink: "Оригинальная ссылка",
source: "Источник:",
addedDate: "Дата добавления:",
hideComments: "Скрыть комментарии",
showComments: "Показать комментарии",
latestComments: "Последние комментарии",
noComments: "Комментарии недоступны.",
upNext: "Далее",
noOtherVideos: "Других видео нет",
currentlyIn: "Сейчас в:",
collectionWarning: "Добавление в другую коллекцию удалит его из текущей.",
addToExistingCollection: "Добавить в существующую коллекцию:",
selectCollection: "Выберите коллекцию",
add: "Добавить",
createNewCollection: "Создать новую коллекцию:",
collectionName: "Название коллекции",
create: "Создать",
removeFromCollection: "Удалить из коллекции",
confirmRemoveFromCollection:
"Вы уверены, что хотите удалить это видео из коллекции?",
remove: "Удалить",
loadingVideo: "Загрузка видео...",
current: "(Текущее)",
rateThisVideo: "Оценить это видео",
enterFullscreen: "На весь экран",
exitFullscreen: "Выйти из полноэкранного режима",
share: "Поделиться",
editTitle: "Редактировать название",
hideVideo: "Скрыть видео для режима посетителя",
showVideo: "Сделать видео видимым для режима посетителя",
toggleVisibility: "Переключить видимость",
titleUpdated: "Название успешно обновлено",
titleUpdateFailed: "Не удалось обновить название",
refreshThumbnail: "Обновить миниатюру",
thumbnailRefreshed: "Миниатюра успешно обновлена",
thumbnailRefreshFailed: "Не удалось обновить миниатюру",
videoUpdated: "Видео успешно обновлено",
videoUpdateFailed: "Не удалось обновить видео",
failedToLoadVideos:
"Не удалось загрузить видео. Пожалуйста, попробуйте позже.",
videoRemovedSuccessfully: "Видео успешно удалено",
failedToDeleteVideo: "Не удалось удалить видео",
pleaseEnterSearchTerm: "Пожалуйста, введите поисковый запрос",
failedToSearch: "Поиск не удался. Пожалуйста, попробуйте снова.",
searchCancelled: "Поиск отменен",
openInExternalPlayer: "Открыть во внешнем плеере",
playWith: "Воспроизвести с помощью...",
deleteAllFilteredVideos: "Удалить все отфильтрованные видео",
confirmDeleteFilteredVideos: "Вы уверены, что хотите удалить {count} видео, отфильтрованных по выбранным тегам?",
deleteFilteredVideosSuccess: "Успешно удалено {count} видео.",
deletingVideos: "Удаление видео...",
// Login
signIn: "Войти",
verifying: "Проверка...",
incorrectPassword: "Неверный пароль",
loginFailed: "Ошибка проверки пароля",
defaultPasswordHint: "Пароль по умолчанию: 123",
checkingConnection: "Проверка соединения...",
connectionError: "Ошибка соединения",
backendConnectionFailed:
"Не удалось подключиться к серверу. Убедитесь, что сервер запущен и порт открыт, затем повторите попытку.",
retry: "Повторить",
resetPassword: "Сбросить пароль",
resetPasswordTitle: "Сбросить пароль",
resetPasswordMessage:
"Вы уверены, что хотите сбросить пароль? Текущий пароль будет сброшен на случайную 8-символьную строку и отображен в логе бэкенда.",
resetPasswordConfirm: "Сбросить",
resetPasswordSuccess:
"Пароль был сброшен. Проверьте логи бэкенда для нового пароля.",
waitTimeMessage: "Пожалуйста, подождите {time} перед повторной попыткой.",
tooManyAttempts: "Слишком много неудачных попыток.",
linkCopied: "Ссылка скопирована в буфер обмена",
copyFailed: "Не удалось скопировать ссылку",
// Collection Page
loadingCollection: "Загрузка коллекции...",
collectionNotFound: "Коллекция не найдена",
noVideosInCollection: "В этой коллекции нет видео.",
// Snackbar Messages
videoDownloading: "Видео скачивается",
downloadStartedSuccessfully: "Загрузка успешно началась",
collectionCreatedSuccessfully: "Коллекция успешно создана",
videoAddedToCollection: "Видео добавлено в коллекцию",
videoRemovedFromCollection: "Видео удалено из коллекции",
collectionDeletedSuccessfully: "Коллекция успешно удалена",
failedToDeleteCollection: "Не удалось удалить коллекцию",
back: "Назад",
// Author Videos
loadVideosError: "Не удалось загрузить видео. Пожалуйста, попробуйте позже.",
unknownAuthor: "Неизвестно",
noVideosForAuthor: "Видео этого автора не найдены.",
deleteAuthor: "Удалить автора",
deleteAuthorConfirmation: "Вы уверены, что хотите удалить автора {author}? Это удалит все видео, связанные с этим автором.",
authorDeletedSuccessfully: "Автор успешно удален",
failedToDeleteAuthor: "Не удалось удалить автора",
// Delete Collection Modal
deleteCollectionTitle: "Удалить коллекцию",
deleteCollectionConfirmation: "Вы уверены, что хотите удалить коллекцию",
collectionContains: "Эта коллекция содержит",
deleteCollectionOnly: "Удалить только коллекцию",
deleteCollectionAndVideos: "Удалить коллекцию и все видео",
// Common
loading: "Загрузка...",
error: "Ошибка",
success: "Успех",
cancel: "Отмена",
close: "Закрыть",
ok: "ОК",
confirm: "Подтвердить",
save: "Сохранить",
note: "Примечание",
on: "Вкл.",
off: "Выкл",
continue: "Продолжить",
expand: "Развернуть",
collapse: "Свернуть",
// Video Card
unknownDate: "Неизвестная дата",
part: "Часть",
collection: "Коллекция",
// Upload Modal
selectVideoFile: "Выберите видеофайл",
pleaseSelectVideo: "Пожалуйста, выберите видеофайл",
uploadFailed: "Ошибка загрузки",
failedToUpload: "Не удалось загрузить видео",
uploading: "Загрузка...",
upload: "Загрузить",
// Bilibili Modal
bilibiliCollectionDetected: "Обнаружена коллекция Bilibili",
bilibiliSeriesDetected: "Обнаружена серия Bilibili",
multiPartVideoDetected: "Обнаружено многочастное видео",
collectionHasVideos: "В этой коллекции Bilibili {count} видео.",
seriesHasVideos: "В этой серии Bilibili {count} видео.",
videoHasParts: "В этом видео Bilibili {count} частей.",
downloadAllVideos: "Скачать все {count} видео",
downloadAllParts: "Скачать все {count} частей",
downloadThisVideoOnly: "Скачать только это видео",
downloadCurrentPartOnly: "Скачать только текущую часть",
processing: "Обработка...",
wouldYouLikeToDownloadAllParts: "Хотите скачать все части?",
wouldYouLikeToDownloadAllVideos: "Хотите скачать все видео?",
allPartsAddedToCollection: "Все части будут добавлены в эту коллекцию",
allVideosAddedToCollection: "Все видео будут добавлены в эту коллекцию",
queued: "В очереди",
waitingInQueue: "Ожидание в очереди",
// Downloads
downloads: "Загрузки",
activeDownloads: "Активные загрузки",
manageDownloads: "Управление загрузками",
queuedDownloads: "Загрузки в очереди",
downloadHistory: "История загрузок",
clearQueue: "Очистить очередь",
clearHistory: "Очистить историю",
noActiveDownloads: "Нет активных загрузок",
noQueuedDownloads: "Нет загрузок в очереди",
noDownloadHistory: "История загрузок пуста",
downloadCancelled: "Загрузка отменена",
queueCleared: "Очередь очищена",
historyCleared: "История очищена",
removedFromQueue: "Удалено из очереди",
removedFromHistory: "Удалено из истории",
status: "Статус",
progress: "Прогресс",
speed: "Скорость",
finishedAt: "Завершено в",
failed: "Ошибка",
// Batch Download
batchDownload: "Пакетная загрузка",
batchDownloadDescription: "Вставьте несколько URL ниже, по одному в строке.",
urls: "URL",
addToQueue: "Добавить в очередь",
batchTasksAdded: "Добавлено задач: {count}",
addBatchTasks: "Добавить пакетные задачи",
// Subscriptions
subscribeToAuthor: "Подписаться на автора",
subscribeConfirmationMessage: "Вы хотите подписаться на {author}?",
subscribeDescription:
"Система будет автоматически проверять новые видео от этого автора и скачивать их.",
checkIntervalMinutes: "Интервал проверки (минуты)",
subscribe: "Подписаться",
subscriptions: "Подписки",
interval: "Интервал",
lastCheck: "Последняя проверка",
platform: "Платформа",
unsubscribe: "Отписаться",
confirmUnsubscribe: "Вы уверены, что хотите отписаться от {author}?",
subscribedSuccessfully: "Успешно подписаны",
unsubscribedSuccessfully: "Успешно отписаны",
subscriptionAlreadyExists: "Вы уже подписаны на этого автора.",
minutes: "минут",
never: "Никогда",
downloadAllPreviousVideos: "Скачать все предыдущие видео этого автора",
downloadAllPreviousWarning:
"Предупреждение: Это скачает все предыдущие видео этого автора. Это может потребовать значительного объема хранилища и может вызвать механизмы обнаружения ботов, что может привести к временным или постоянным запретам на платформе. Используйте на свой риск.",
continuousDownloadTasks: "Задачи непрерывной загрузки",
taskStatusActive: "Активна",
taskStatusPaused: "Приостановлена",
taskStatusCompleted: "Завершена",
taskStatusCancelled: "Отменена",
downloaded: "Скачано",
cancelTask: "Отменить задачу",
confirmCancelTask: "Вы уверены, что хотите отменить задачу загрузки для {author}?",
taskCancelled: "Задача успешно отменена",
deleteTask: "Удалить задачу",
confirmDeleteTask: "Вы уверены, что хотите удалить запись задачи для {author}? Это действие нельзя отменить.",
taskDeleted: "Задача успешно удалена",
// Instruction Page
instructionSection1Title: "1. Загрузка и управление задачами",
instructionSection1Desc:
"Этот модуль включает функции получения видео, пакетных задач и импорта файлов.",
instructionSection1Sub1: "Загрузка по ссылке:",
instructionSection1Item1Label: "Базовая загрузка:",
instructionSection1Item1Text:
"Вставьте ссылки с различных видеосайтов в поле ввода для прямой загрузки.",
instructionSection1Item2Label: "Разрешения:",
instructionSection1Item2Text:
"Для сайтов, требующих членства или входа в систему, пожалуйста, сначала войдите в соответствующую учетную запись на новой вкладке браузера, чтобы получить разрешения на загрузку.",
instructionSection1Sub2: "Умное распознавание:",
instructionSection1Item3Label: "Подписка на автора YouTube:",
instructionSection1Item3Text:
"Когда вставленная ссылка является каналом автора, система спросит, хотите ли вы подписаться. После подписки система может автоматически сканировать и загружать обновления автора через заданные интервалы.",
instructionSection1Item4Label: "Загрузка коллекции Bilibili:",
instructionSection1Item4Text:
"Когда вставленная ссылка является избранным/коллекцией Bilibili, система спросит, хотите ли вы загрузить все содержимое коллекции.",
instructionSection1Sub3:
"Расширенные инструменты (Страница управления загрузками):",
instructionSection1Item5Label: "Пакетное добавление задач:",
instructionSection1Item5Text:
"Поддерживает вставку нескольких ссылок для загрузки одновременно (по одной в строке) для пакетного добавления.",
instructionSection1Item6Label: "Сканировать файлы:",
instructionSection1Item6Text:
"Автоматически ищет все файлы в корневом каталоге хранения видео и папках первого уровня. Эта функция подходит для синхронизации файлов с системой после того, как администраторы вручную поместили их на сервер.",
instructionSection1Item7Label: "Загрузить видео:",
instructionSection1Item7Text:
"Поддерживает загрузку локальных видеофайлов непосредственно с клиента на сервер.",
instructionSection2Title: "2. Управление видеотекой",
instructionSection2Desc:
"Обслуживание и редактирование загруженных или импортированных видеоресурсов.",
instructionSection2Sub1: "Удаление коллекции/видео:",
instructionSection2Text1:
"При удалении коллекции на странице управления система предлагает два варианта: удалить только элемент списка коллекции (сохранить файлы) или полностью удалить физические файлы внутри коллекции.",
instructionSection2Sub2: "Восстановление миниатюры:",
instructionSection2Text2:
"Если у видео нет обложки после загрузки, нажмите кнопку обновления на миниатюре видео, и система повторно захватит первый кадр видео в качестве новой миниатюры.",
instructionSection3Title: "3. Настройки системы",
instructionSection3Desc:
"Настройка параметров системы, обслуживание данных и расширение функций.",
instructionSection3Sub1: "Настройки безопасности:",
instructionSection3Text1:
"Установите пароль для входа в систему (начальный пароль по умолчанию — 123, рекомендуется изменить после первого входа).",
instructionSection3Sub2: "Управление тегами:",
instructionSection3Text2:
"Поддерживает добавление или удаление тегов классификации видео. Примечание: Вы должны нажать кнопку «Сохранить» внизу страницы, чтобы изменения вступили в силу.",
instructionSection3Sub3: "Обслуживание системы:",
instructionSection3Item1Label: "Очистить временные файлы:",
instructionSection3Item1Text:
"Используется для очистки остаточных временных файлов загрузки, вызванных случайными сбоями бэкенда, для освобождения места.",
instructionSection3Item2Label: "Миграция базы данных:",
instructionSection3Item2Text:
"Предназначено для пользователей ранних версий. Используйте эту функцию для миграции данных из JSON в новую базу данных SQLite. После успешной миграции нажмите кнопку удаления, чтобы очистить старые исторические данные.",
instructionSection3Sub4: "Расширенные сервисы:",
instructionSection3Item3Label: "Облачный диск OpenList:",
instructionSection3Item3Text:
"(В разработке) Поддерживает подключение к развернутым пользователем сервисам OpenList. Добавьте конфигурацию здесь, чтобы включить интеграцию с облачным диском.",
history: "История",
downloading: "Скачивание...",
poweredBy: "Работает на MyTube",
existingVideoDetected: "Обнаружено существующее видео",
videoAlreadyDownloaded: "Это видео уже загружено.",
viewVideo: "Посмотреть видео",
downloadAgain: "Скачать снова",
downloadedOn: "Скачано",
deletedOn: "Удалено",
existingVideo: "Существующее видео",
skipped: "Пропущено",
videoSkippedExists: "Видео уже существует, загрузка пропущена",
videoSkippedDeleted: "Видео было ранее удалено, загрузка пропущена",
// Sorting
sort: "Сортировка",
sortBy: "Сортировать по",
dateDesc: "Дата добавления (Сначала новые)",
dateAsc: "Дата добавления (Сначала старые)",
viewsDesc: "Просмотры (По убыванию)",
viewsAsc: "Просмотры (По возрастанию)",
nameAsc: "Имя (А-Я)",
random: "Случайно",
// yt-dlp Configuration
ytDlpConfiguration: "Конфигурация yt-dlp",
ytDlpConfigurationDescription: "Настройте параметры загрузки yt-dlp. См.",
ytDlpConfigurationDocs: "документацию",
ytDlpConfigurationDescriptionEnd: "для получения дополнительной информации.",
customize: "Настроить",
hide: "Скрыть",
reset: "Сбросить",
more: "Ещё",
// Database Export/Import
exportImportDatabase: "Экспорт/Импорт Базы Данных",
exportImportDatabaseDescription:
"Экспортируйте базу данных как файл резервной копии или импортируйте ранее экспортированную резервную копию. Импорт перезапишет существующие данные данными из резервной копии.",
exportDatabase: "Экспортировать Базу Данных",
importDatabase: "Импортировать Базу Данных",
onlyDbFilesAllowed: "Разрешены только файлы .db",
importDatabaseWarning:
"Предупреждение: Импорт базы данных перезапишет все существующие данные. Убедитесь, что вы сначала экспортировали текущую базу данных в качестве резервной копии.",
selectDatabaseFile: "Выбрать Файл Базы Данных",
databaseExportedSuccess: "База данных успешно экспортирована",
databaseExportFailed: "Не удалось экспортировать базу данных",
databaseImportedSuccess:
"База данных успешно импортирована. Существующие данные были перезаписаны данными из резервной копии.",
databaseImportFailed: "Не удалось импортировать базу данных",
cleanupBackupDatabases: "Очистить Резервные Копии Базы Данных",
cleanupBackupDatabasesWarning:
"Предупреждение: Это навсегда удалит все файлы резервных копий базы данных (mytube-backup-*.db.backup), которые были созданы во время предыдущих импортов. Это действие нельзя отменить. Вы уверены, что хотите продолжить?",
backupDatabasesCleanedUp: "Резервные копии базы данных успешно очищены",
backupDatabasesCleanupFailed:
"Не удалось очистить резервные копии базы данных",
restoreFromLastBackup: "Восстановить из Последней Резервной Копии",
restoreFromLastBackupWarning:
"Предупреждение: Это восстановит базу данных из последнего файла автоматической резервной копии. Все текущие данные будут перезаписаны данными из резервной копии. Это действие нельзя отменить. Вы уверены, что хотите продолжить?",
restoreFromLastBackupSuccess:
"База данных успешно восстановлена из резервной копии",
restoreFromLastBackupFailed: "Не удалось восстановить из резервной копии",
lastBackupDate: "Дата последней резервной копии",
noBackupAvailable: "Резервная копия недоступна",
};