Files
SageTube/languages/ru.json
T
oop7 3c8fa38a94 Add Keys for update and error messages
Replaces hardcoded update and error strings in ytsage_dialogs_update.py with internationalized messages. Adds new translation keys for update success, already latest, network error, general error, pip update errors, and pip update failed in all supported languages.
2025-10-13 15:15:27 +03:00

409 lines
27 KiB
JSON
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.
{
"language": {
"display_name": "Русский (Russian)",
"select_language": "Выберите язык:",
"current_language": "Текущий язык: {language}",
"restart_required": "Изменения языка вступят в силу после перезапуска приложения.",
"english": "Английский",
"spanish": "Испанский",
"portuguese": "Португальский",
"russian": "Русский",
"chinese": "中文 (简体) (Chinese Simplified)",
"german": "Немецкий",
"french": "Французский",
"hindi": "Хинди",
"indonesian": "Индонезийский",
"turkish": "Турецкий",
"polish": "Польский",
"italian": "Итальянский",
"arabic": "Арабский",
"japanese": "Японский",
"help_text": "Выберите предпочитаемый язык для интерфейса.",
"restart_notice": "Изменение языка вступит в силу после перезапуска приложения."
},
"app": {
"title": "YTSage",
"version": "v{version}",
"ready": "Готово"
},
"formats": {
"show_formats": "Показать форматы:",
"video_format": "Видео формат:",
"audio_format": "Аудио формат:",
"no_formats": "Форматы недоступны",
"loading": "Загрузка форматов...",
"select": "Выбрать",
"quality": "Качество",
"extension": "Расширение",
"resolution": "Разрешение",
"file_size": "Размер файла",
"codec": "Кодек",
"audio": "Аудио",
"fps": "Кадр/с",
"hdr": "HDR",
"will_merge_audio": "Объединит аудио",
"has_audio": "✓ Есть аудио",
"audio_only": "Только аудио",
"best_4k": "Лучшее (4K)",
"best_2k": "Лучшее (2K)",
"high_1080p": "Высокое (1080p)",
"high_720p": "Высокое (720p)",
"medium_480p": "Среднее (480p)",
"low_quality": "Низкое качество",
"best_audio": "Лучшее аудио",
"high_audio": "Высокое аудио",
"medium_audio": "Среднее аудио",
"low_audio": "Низкое аудио",
"audio_only_resolution": "Только аудио"
},
"buttons": {
"download": "Скачать",
"pause": "Пауза",
"resume": "Продолжить",
"cancel": "Отмена",
"browse": "Обзор",
"clear": "Очистить",
"ok": "OK",
"apply": "Применить",
"close": "Закрыть",
"run_command": "Выполнить команду",
"custom_command_help": "Помощь",
"about": "О программе",
"analyze": "Анализировать",
"paste_url": "Вставить URL",
"select_videos": "Выбрать видео...",
"video": "Видео",
"audio_only": "Только аудио",
"custom_options": "Пользовательские опции",
"trim_video": "Обрезать видео",
"download_settings": "Настройки загрузки",
"update": "Обновить yt-dlp",
"select_defaults": "Выбрать по умолчанию",
"select_all": "Выбрать всё",
"deselect_all": "Снять выделение"
},
"dialogs": {
"custom_options": "Пользовательские опции",
"settings": "Настройки",
"select_folder": "Выбрать папку загрузки",
"sponsorblock_categories": "Категории SponsorBlock",
"sponsorblock_description": "Выберите типы сегментов видео, которые будут автоматически удалены во время загрузки.\nSponsorBlock использует данные, отправленные сообществом, для идентификации этих сегментов.",
"select_subtitles": "Выбрать субтитры",
"filter_languages_placeholder": "Фильтр языков (например, en, ru)...",
"no_subtitles_available": "Субтитры недоступны",
"matching": "соответствующие"
},
"tabs": {
"cookies": "Войти через Cookie",
"custom_command": "Пользовательская команда",
"proxy": "Прокси",
"language": "Язык"
},
"cookies": {
"help_text": "Выберите способ предоставления cookie для входа в систему.\nЭто позволяет загружать приватные видео и аудио премиум качества.",
"cookie_source": "Источник Cookie",
"use_cookie_file": "Использовать файл cookie",
"extract_from_browser": "Извлечь из браузера",
"cookie_file": "Файл Cookie",
"cookie_file_placeholder": "Путь к файлу cookies.txt...",
"browser_selection": "Выбор браузера",
"browser_help": "Выберите браузер для извлечения cookie:",
"browser_label": "Браузер:",
"profile_label": "Профиль:",
"profile_placeholder": "по умолчанию",
"browser_extract_message": "Cookie браузера будут извлечены при применении",
"file_selected_message": "Файл cookie выбран - Нажмите OK для применения",
"select_file_title": "Выбрать файл Cookie",
"file_filter": "Файлы cookie (*.txt *.lwp)"
},
"custom_command": {
"help_text": "Введите пользовательскую команду yt-dlp ниже. Текущий URL будет добавлен автоматически.<br><br>Для полного списка опций и примеров использования, <a href=\"{docs_url}\">нажмите здесь для просмотра официальной документации yt-dlp</a>.<br><br>Примечание: Путь загрузки и шаблон имени файла будут обработаны автоматически.",
"input_label": "Аргументы yt-dlp:",
"input_placeholder": "Введите аргументы yt-dlp здесь...\n\nнапример: --extract-audio --audio-format mp3",
"output_label": "Вывод команды:",
"output_placeholder": "Вывод команды появится здесь...",
"command_placeholder": "Введите пользовательскую команду yt-dlp...",
"command_help": "Доступные заполнители:\n{url} - URL видео\n{output} - Выходной каталог\n\nПример: --write-info-json --write-thumbnail",
"full_command": "🔧 Полная команда: {command}",
"command_success": "✅ Пользовательская команда выполнена успешно!",
"command_failed": "❌ Команда завершилась с кодом ошибки {code}",
"command_error": "❌ Ошибка выполнения пользовательской команды: {error}"
},
"proxy": {
"help_text": "Настройте параметры прокси для загрузки. Оставьте пустым для прямого подключения.",
"main_proxy": "Основной прокси",
"main_proxy_help": "Основной прокси-сервер для всех загрузок. Поддерживает протоколы HTTP/HTTPS и SOCKS5.",
"proxy_url_label": "URL прокси:",
"proxy_url_placeholder": "http://proxy:port или socks5://proxy:port",
"proxy_examples": "Примеры:\n• HTTP: http://proxy.example.com:8080\n• SOCKS5: socks5://proxy.example.com:1080",
"geo_proxy": "Прокси для обхода географических ограничений",
"geo_proxy_help": "Вторичный прокси специально для обхода географических ограничений.",
"geo_proxy_url_label": "URL прокси для обхода гео-ограничений:",
"geo_proxy_url_placeholder": "http://geo-proxy:port",
"clear_main_proxy": "Очистить основной прокси",
"clear_geo_proxy": "Очистить гео-прокси",
"proxy_url": "URL прокси",
"proxy_placeholder": "http://proxy:port или socks5://proxy:port",
"geo_bypass": "Прокси для обхода гео-ограничений",
"geo_bypass_placeholder": "http://proxy:port для обхода гео-блокировок",
"invalid_main_url": "Неверный формат URL основного прокси",
"invalid_geo_url": "Неверный формат URL гео-прокси",
"main_configured": "Основной прокси настроен",
"geo_configured": "Гео-прокси настроен"
},
"download": {
"preparing": "Подготовка загрузки...",
"starting": "🚀 Начинается загрузка...",
"fetching_info": "🔍 Получение информации о видео...",
"preparing_streams": "🎯 Подготовка видеопотоков...",
"downloading_audio": "⏬ Загрузка аудио...",
"downloading_video": "⏬ Загрузка видео...",
"downloading_subtitle": "⏬ Загрузка субтитров...",
"downloading": "⏬ Загрузка...",
"completed": "✅ Загрузка завершена!",
"video_completed": "✅ Загрузка видео завершена!",
"audio_completed": "✅ Загрузка аудио завершена!",
"subtitle_completed": "✅ Загрузка субтитров завершена!",
"completed_cleaning": "✅ Загрузка завершена! Очистка...",
"cancelled": "Загрузка отменена",
"processing_playlist": "📋 Обработка данных плейлиста...",
"paused": "Загрузка приостановлена",
"resumed": "Загрузка возобновлена",
"merging_formats": "✨ Постобработка: Слияние форматов...",
"removing_sponsor_segments": "✨ Постобработка: Удаление рекламных сегментов...",
"speed": "Скорость",
"eta": "Осталось",
"please_enter_url": "Пожалуйста, введите URL сначала.",
"please_set_path": "Пожалуйста, установите путь загрузки сначала.",
"please_enter_url_and_path": "Пожалуйста, введите URL и установите путь загрузки.",
"please_select_format": "Пожалуйста, выберите формат сначала.",
"downloading_fallback": "⚡ Загрузка..."
},
"update": {
"title": "Обновить yt-dlp",
"checking": "Проверка обновлений...",
"update_available": "Доступно обновление!\nТекущая версия: {current}\nПоследняя версия: {latest}",
"up_to_date": "yt-dlp актуален (версия {version})",
"could_not_determine": "Не удалось определить версии.",
"error_comparing": "Ошибка сравнения версий: {error}",
"update_available_failed": "Доступно обновление! (Сравнение не удалось)\nТекущая: {current}\nПоследняя: {latest}",
"updating": "Обновление...",
"initializing": "🚀 Инициализация процесса обновления...",
"checking_current": "🔍 Проверка текущей установки...",
"found_at": "📍 yt-dlp найден в: {path}",
"error_getting_path": "❌ Ошибка получения пути yt-dlp: {error}",
"updating_binary": "📦 Обновление бинарного файла yt-dlp, управляемого приложением...",
"updating_pip": "🐍 Обновление системного yt-dlp через pip...",
"update_failed": "❌ Не удалось обновить yt-dlp. Попробуйте еще раз или проверьте подключение к интернету.",
"binary_updated": "✅ Бинарный файл успешно обновлен!",
"update_failed_stderr": "❌ Обновление yt-dlp не удалось: {error}",
"update_timeout": "❌ Время ожидания обновления yt-dlp истекло.",
"unexpected_error": "❌ Неожиданная ошибка во время обновления: {error}",
"checking_pip": "🔍 Проверка текущей установки pip...",
"current_version": "📋 Текущая версия: {version}",
"not_found_pip": "⚠️ yt-dlp не найден через pip, попытка установки...",
"checking_latest": "🌐 Проверка последней версии...",
"failed_check_updates": "❌ Не удалось проверить обновления",
"latest_version": "🆕 Последняя версия: {version}",
"updating_from_to": "⬆️ Обновление с {current} до {latest}...",
"running_pip_install": "📦 Выполнение pip install --upgrade...",
"pip_completed": "✅ Обновление pip завершено успешно!",
"pip_failed": "❌ Обновление pip не удалось: {error}",
"already_up_to_date": "✅ yt-dlp уже актуален!",
"pip_timeout": "❌ Время ожидания обновления pip истекло через 5 минут",
"update_success": "✅ yt-dlp был успешно обновлен!",
"already_latest": "yt-dlp актуален (версия {version})",
"network_error": "❌ Ошибка сети во время обновления: {error}",
"general_error": "❌ Обновление не удалось: {error}",
"error_pip_update": "❌ Ошибка во время обновления pip: {error}",
"pip_update_failed": "❌ Обновление pip не удалось: {error}"
},
"about": {
"title": "О YTSage",
"version": "Версия {version}",
"description": "Современный загрузчик YouTube с чистым интерфейсом PySide6.",
"author": "Автор: {author}",
"github": "GitHub: {repo}",
"system_info": "Системная информация",
"loading": "🔄 Загрузка системной информации...",
"refresh": "🔄",
"refreshing": "🔄 Обновление...",
"refresh_failed": "Обновление не удалось",
"refresh_failed_message": "Не удалось обновить информацию о версии.",
"detected": "✓ Обнаружено",
"missing": "✗ Отсутствует",
"not_available": "Недоступно"
},
"time_range": {
"title": "Обрезать видео",
"time_range_group": "Временной диапазон",
"start_time": "Время начала (HH:MM:SS)",
"end_time": "Время окончания (HH:MM:SS)",
"start_placeholder": "00:00:00",
"end_placeholder": "00:00:00",
"start_time_placeholder": "Время начала (HH:MM:SS)",
"end_time_placeholder": "Время окончания (HH:MM:SS)",
"force_keyframes": "Принудительные ключевые кадры в точках обрезки",
"help_text": "Установите время начала и окончания для обрезки видео.\nОставьте пустым для загрузки полного видео.",
"invalid_format": "Неверный формат времени. Используйте формат HH:MM:SS.",
"start_after_end": "Время начала не может быть после времени окончания."
},
"settings": {
"title": "Настройки загрузки",
"download_path": "Путь загрузки",
"browse": "Обзор...",
"speed_limit": "Ограничение скорости",
"speed_limit_placeholder": "Нет",
"auto_update_ytdlp": "Автообновление yt-dlp",
"enable_auto_updates": "Включить автоматические обновления yt-dlp",
"update_frequency": "Частота обновления:",
"check_startup": "Проверять при каждом запуске (минимум 1 час между проверками)",
"check_daily": "Проверять ежедневно",
"check_weekly": "Проверять еженедельно",
"check_updates_now": "Проверить обновления сейчас",
"update_check_title": "Проверка обновлений",
"could_not_determine_version": "Не удалось определить текущую версию yt-dlp.",
"update_available_dialog": "Доступно обновление!\n\nТекущая: {current}\nПоследняя: {latest}\n\nИспользуйте кнопку 'Обновить yt-dlp' в главном окне для обновления.",
"up_to_date_dialog": "yt-dlp актуален!\n\nТекущая версия: {version}",
"error_checking_updates": "Ошибка проверки обновлений: {error}",
"settings_saved_title": "Настройки сохранены",
"settings_saved_message": "Настройки автообновления успешно сохранены!",
"error_title": "Ошибка",
"failed_save_settings": "Не удалось сохранить настройки автообновления.",
"error_saving_settings": "Ошибка сохранения настроек автообновления: {error}",
"auto_update_title": "Настройки автообновления",
"auto_update_header": "🔄 Настройки автообновления",
"auto_update_description": "Настройте автоматические обновления для yt-dlp, чтобы всегда иметь последние функции и исправления ошибок.",
"current_status": "Текущий статус",
"current_version_label": "Текущая версия yt-dlp: Проверка...",
"last_check_label": "Последняя проверка обновлений: Никогда",
"next_check_label": "Следующая проверка: Основана на настройках",
"manual_check_button": "🔍 Проверить обновления сейчас",
"update_frequency_group": "Частота обновления",
"save_settings": "Сохранить настройки",
"settings_saved_successfully": "✅ Настройки успешно сохранены!",
"error_saving": "❌ Ошибка сохранения настроек: {error}"
},
"main_ui": {
"url_placeholder": "Введите URL видео или плейлиста YouTube",
"merge_subtitles": "Объединить субтитры",
"save_thumbnail": "Сохранить миниатюру",
"save_description": "Сохранить описание",
"embed_chapters": "Встроить главы",
"subtitles_selected": "выбрано: {count}",
"all_selected": "Все выбраны",
"select_videos_all": "Выбрать видео... (Все выбраны)",
"please_enter_url": "Пожалуйста, введите URL сначала",
"cookie_file_selected_title": "Файл Cookie выбран",
"cookie_file_selected_message": "Файл cookie выбран: {path}",
"browser_cookies_selected_title": "Cookie браузера выбраны",
"browser_cookies_selected_message": "Cookie браузера будут извлечены из: {browser}",
"error_no_format_info": "Ошибка: Информация о формате недоступна.",
"error_extract_info": "Ошибка: Не удалось извлечь базовую информацию о видео. Проверьте вашу ссылку.",
"analyzing_preparing": "Анализ (0%)... Подготовка запроса",
"analyzing_extracting_basic": "Анализ (15%)... Извлечение базовой информации",
"analyzing_extracting_detailed": "Анализ (30%)... Извлечение подробной информации",
"analyzing_processing_video": "Анализ (45%)... Обработка данных видео",
"analyzing_processing_formats": "Анализ (60%)... Обработка форматов",
"analyzing_loading_thumbnail": "Анализ (75%)... Загрузка миниатюры",
"analyzing_processing_subtitles": "Анализ (85%)... Обработка субтитров",
"analyzing_updating_table": "Анализ (95%)... Обновление таблицы форматов",
"analysis_complete": "Анализ завершен!",
"analyzing_extracting_ytdlp": "Анализ (30%)... Извлечение информации с исполняемым файлом yt-dlp",
"analyzing_processing_data": "Анализ (60%)... Обработка данных",
"analyzing_processing_formats_ytdlp": "Анализ (75%)... Обработка форматов",
"analyzing_loading_thumbnail_ytdlp": "Анализ (85%)... Загрузка миниатюры",
"analyzing_processing_subtitles_ytdlp": "Анализ (90%)... Обработка субтитров",
"select_subtitles": "Выбрать субтитры...",
"sponsorblock_categories": "Категории SponsorBlock...",
"invalid_url_or_enter": "Неверный URL или пожалуйста введите URL.",
"zero_selected": "0 выбрано"
},
"sponsorblock": {
"sponsor": "Спонсор",
"sponsor_desc": "Платная реклама, платные рефералы и прямая реклама",
"selfpromo": "Неоплачиваемая/Собственная реклама",
"selfpromo_desc": "Неоплачиваемая реклама собственного контента создателей",
"interaction": "Напоминание о взаимодействии",
"interaction_desc": "Просьба к зрителям поставить лайк, подписаться или подписаться в социальных сетях",
"intro": "Вступление",
"intro_desc": "Вступление к видео, которое можно пропустить",
"outro": "Концовка/Финальные карточки",
"outro_desc": "Титры или когда видео заканчивается",
"preview": "Предварительный просмотр/Краткое изложение",
"preview_desc": "Краткое изложение предыдущих видео или предварительный просмотр предстоящего",
"music_offtopic": "Немузыкальная секция",
"music_offtopic_desc": "Только для музыкальных видео. Отмечает немузыкальные секции",
"filler": "Отступление-заполнитель",
"filler_desc": "Касательные сцены, добавленные только для заполнения или юмора"
},
"video_info": {
"channel": "Канал",
"views": "Просмотры",
"likes": "Лайки",
"upload_date": "Дата загрузки",
"duration": "Продолжительность",
"unknown_channel": "Неизвестный канал",
"unknown_date": "Неизвестная дата",
"unknown_title": "Неизвестный заголовок"
},
"command": {
"running": "Выполняется...",
"run_command": "Выполнить команду"
},
"selection": {
"none_selected": "0 выбрано",
"one_selected": "1 категория выбрана",
"count_selected": "выбрано: {count}"
},
"status": {
"ready": "Готово",
"file_exists": "⚠️ Файл уже существует",
"video_file_exists": "⚠️ Видеофайл уже существует",
"audio_file_exists": "⚠️ Аудиофайл уже существует",
"subtitle_file_exists": "⚠️ Файл субтитров уже существует",
"cancelling": "Отмена загрузки..."
},
"errors": {
"playlist_no_videos": "Ошибка: Плейлист не содержит действительных видео.",
"playlist_no_url": "Ошибка: Не удалось получить URL для первого видео плейлиста.",
"ytdlp_not_found": "Ошибка: Исполняемый файл yt-dlp не найден. Пожалуйста, сначала установите yt-dlp.",
"ytdlp_not_found_path": "Ошибка: Исполняемый файл yt-dlp не найден. Это может быть связано с неправильной установкой или проблемой PATH.",
"no_data_returned": "Ошибка: Данные от yt-dlp не возвращены",
"no_format_info": "Ошибка: Информация о формате недоступна.",
"analysis_timeout": "Ошибка: Тайм-аут анализа. Пожалуйста, попробуйте снова.",
"invalid_speed_limit": "❌ Ошибка: Неверное значение ограничения скорости в настройках.",
"ytdlp_failed": "Ошибка: yt-dlp завершился с ошибкой: {error}",
"parse_failed": "Ошибка: Не удалось разобрать вывод yt-dlp: {error}",
"analysis_failed": "Ошибка: Анализ не удался: {error}",
"generic_error": "Ошибка: {error}"
},
"update_dialog": {
"title": "Доступно обновление"
},
"playlist": {
"unknown": "Неизвестный плейлист",
"total_videos": "Всего видео: {count}",
"display_format": "Плейлист: {title} | {count} видео",
"select_videos_title": "Выбрать Видео из Плейлиста"
},
"subtitle_selection": {
"count_selected": "выбрано: {count}"
},
"file_exists_dialog": {
"title": "Файл уже существует",
"message": "Файл уже существует:\n{filename}",
"info": "Это видео уже было загружено."
},
"auto_update": {
"last_check_never": "Последняя проверка: Никогда",
"last_check": "Последняя проверка: {time}",
"next_check_disabled": "Следующая проверка: Отключена",
"next_check_startup": "Следующая проверка: При запуске",
"next_check_overdue": "Следующая проверка: Сейчас (просрочено)",
"next_check": "Следующая проверка: {time}",
"next_check_error": "Следующая проверка: Ошибка расчета",
"checking": "🔄 Проверка...",
"check_now": "🔍 Проверить обновления сейчас"
}
}