9005bb61c1
Added a new Simplified Chinese translation file (zh.json) and updated all language files to include Chinese as a selectable language. Updated format quality color logic in the format table to recognize Chinese quality terms, ensuring proper color coding for quality labels in the UI. Also updated the localization manager to include Chinese in the language selection.
329 lines
22 KiB
JSON
329 lines
22 KiB
JSON
{
|
||
"language": {
|
||
"display_name": "Русский (Russian)",
|
||
"select_language": "Выберите язык:",
|
||
"current_language": "Текущий язык: {language}",
|
||
"restart_required": "Изменения языка вступят в силу после перезапуска приложения.",
|
||
"english": "Английский",
|
||
"spanish": "Испанский",
|
||
"portuguese": "Португальский",
|
||
"russian": "Русский",
|
||
"chinese": "中文 (简体) (Chinese Simplified)",
|
||
"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": "Аудио",
|
||
"notes": "Заметки",
|
||
"will_merge_audio": "Объединит аудио",
|
||
"has_audio": "✓ Есть аудио",
|
||
"audio_only": "Только аудио",
|
||
"large_size": "Большой размер",
|
||
"medium_size": "Средний размер",
|
||
"standard_size": "Стандартный размер",
|
||
"compatible": "Совместимый",
|
||
"efficient": "Эффективный",
|
||
"high_quality": "Высокое качество",
|
||
"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": "Подготовка загрузки...",
|
||
"please_enter_url": "Пожалуйста, введите URL сначала.",
|
||
"please_set_path": "Пожалуйста, установите путь загрузки сначала.",
|
||
"please_enter_url_and_path": "Пожалуйста, введите URL и установите путь загрузки.",
|
||
"please_select_format": "Пожалуйста, выберите формат сначала."
|
||
},
|
||
"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}"
|
||
},
|
||
"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..."
|
||
},
|
||
"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": "⚠️ Файл уже существует",
|
||
"cancelling": "Отмена загрузки..."
|
||
}
|
||
} |