Files
Senko-san 885fa4c273 fix
2026-06-14 23:42:39 +03:00

154 lines
12 KiB
Bash
Raw Permalink 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.
# Русские строки. Каждая запись задаёт MSG[<key>]. Загружается lib/i18n.sh.
# Ключи должны совпадать с i18n/en.sh.
MSG[yes]="да"
MSG[no]="нет"
MSG[default_label]="по умолчанию"
MSG[invalid_input]="Неверный ввод, попробуйте ещё раз."
MSG[aborted]="Прервано."
MSG[enter_to_keep]="(Enter — оставить по умолчанию)"
# -- preflight -------------------------------------------------------------
MSG[err_need_docker]="Docker не установлен или не в PATH. См. https://docs.docker.com/get-docker/"
MSG[err_docker_daemon]="Демон Docker недоступен. Docker запущен?"
MSG[err_need_compose]="Требуется Docker Compose v2 ('docker compose'). Обновите Docker Desktop или установите плагин compose."
MSG[err_need_openssl]="Для генерации секретов требуется openssl."
MSG[preflight_ok]="Предварительные проверки пройдены."
MSG[port_in_use]="Порт %s, похоже, занят. Выберите другой или освободите его."
# -- locale / welcome ------------------------------------------------------
MSG[choose_locale]="Choose language / Выберите язык"
MSG[welcome_title]="Установщик MCMA"
MSG[welcome_body]="Мастер задаст несколько вопросов, создаст .env.deploy и docker-compose.yml, скачает образы, выполнит миграции БД, создаст первого администратора и проверит работоспособность. Секреты генерируются автоматически — ничего секретного не печатается. Ctrl+C в любой момент — чистый выход."
# -- existing install ------------------------------------------------------
MSG[existing_found]="Найдена существующая установка (.env.deploy). Что сделать?"
MSG[menu_update_images]="Обновить образы (pull + перезапуск, конфиг не трогаем)"
MSG[menu_reconfigure]="Перенастроить (бэкап конфига и запуск мастера заново)"
MSG[menu_cancel]="Отмена"
MSG[backup_made]="Текущий конфиг сохранён в %s"
# -- services --------------------------------------------------------------
MSG[step_services]="Какие сервисы запустить?"
MSG[svc_backend]="mcma-backend — ядро + синк-нода + worker (обязателен)"
MSG[svc_webui]="mcma-webui — веб-интерфейс"
MSG[backend_required]="Backend обязателен и не может быть отключён."
# -- image tag -------------------------------------------------------------
MSG[step_tag]="Какой тег образов развернуть?"
MSG[tag_latest]="latest — всегда свежее (может иногда ломаться)"
MSG[tag_custom]="Ввести конкретный тег (например, версию релиза)"
MSG[tag_prompt]="Тег образа"
# -- database --------------------------------------------------------------
MSG[step_db]="База данных"
MSG[db_embedded]="Использовать встроенный Postgres (рекомендуется)"
MSG[db_external]="Подключиться к внешнему Postgres"
MSG[db_host]="Хост Postgres"
MSG[db_port]="Порт Postgres"
MSG[db_name]="Имя базы"
MSG[db_user]="Пользователь базы"
MSG[db_pass]="Пароль базы"
# -- redis -----------------------------------------------------------------
MSG[step_redis]="Redis"
MSG[redis_embedded]="Использовать встроенный Redis (рекомендуется)"
MSG[redis_external]="Подключиться к внешнему Redis"
MSG[redis_url_prompt]="URL Redis (redis://host:port/db)"
# -- storage ---------------------------------------------------------------
MSG[step_storage]="Где хранить медиафайлы?"
MSG[storage_local]="Локальный каталог на хосте (рекомендуется)"
MSG[storage_s3]="S3-совместимое хранилище"
MSG[storage_path_prompt]="Каталог на хосте для медиа"
MSG[s3_choice]="Хранилище S3"
MSG[s3_embedded]="Использовать встроенный MinIO"
MSG[s3_external]="Подключиться к внешнему S3"
MSG[s3_endpoint]="URL эндпоинта S3 (https://...)"
MSG[s3_bucket]="Имя бакета S3"
MSG[s3_region]="Регион S3 (пусто, если не нужно)"
MSG[s3_key]="Access key S3"
MSG[s3_secret]="Secret key S3"
# -- network ---------------------------------------------------------------
MSG[step_network]="Сеть и доступ"
MSG[proxy_note]="Веб-интерфейс и API должны быть на одном origin. Встроенный прокси Caddy обеспечивает это как единая точка входа."
MSG[net_caddy_http]="Встроенный прокси (Caddy), обычный HTTP на порту — рекомендуется"
MSG[net_caddy_https]="Встроенный прокси (Caddy), авто-HTTPS для домена"
MSG[net_direct]="Без встроенного прокси — публикую порты / свой прокси"
MSG[direct_cors_warn]="Без встроенного прокси веб-интерфейс и API должны быть на одном origin: backend не отправляет CORS-заголовки, поэтому кросс-origin URL заблокирует браузер. Используйте '/api/v1', только если ваш прокси отдаёт оба на одном origin."
MSG[domain_prompt]="Доменное имя (например, music.example.com)"
MSG[acme_email_prompt]="Email для Let's Encrypt (необязательно, для уведомлений)"
MSG[http_port_prompt]="HTTP-порт для публикации"
MSG[api_port_prompt]="Порт API backend для публикации"
MSG[webui_port_prompt]="Порт веб-интерфейса для публикации"
MSG[public_api_prompt]="Базовый URL API для браузера"
# -- admin -----------------------------------------------------------------
MSG[step_admin]="Первый администратор"
MSG[admin_q]="Создать первого администратора сейчас?"
MSG[admin_user]="Логин администратора"
MSG[admin_pass]="Пароль администратора (мин. 8 символов)"
MSG[admin_pass_confirm]="Подтвердите пароль"
MSG[pass_mismatch]="Пароли не совпадают."
MSG[pass_too_short]="Пароль должен быть не короче 8 символов."
MSG[admin_skip_note]="Администратора можно создать позже (см. README)."
# -- ml --------------------------------------------------------------------
MSG[step_ml]="Опциональный ML-сервис"
MSG[ml_prompt]="URL ML-сервиса (оставьте пустым — backend деградирует штатно)"
# -- enrichment / acoustid -------------------------------------------------
MSG[step_enrichment]="Обогащение метаданных (опционально)"
MSG[enrichment_note]="Импортируемые файлы тегируются из встроенных тегов. Добавьте ключ AcoustID, чтобы опознавать файлы без тегов по аудио-отпечатку (бесплатно: https://acoustid.org/new-application)."
MSG[acoustid_prompt]="API-ключ AcoustID (пусто — только встроенные теги)"
MSG[musicbrainz_note]="MusicBrainz/AcoustID требуют контактный email в User-Agent, иначе запросы могут ограничиваться (throttling)."
MSG[musicbrainz_email_prompt]="Контактный email для MusicBrainz/AcoustID (пусто — использовать значение по умолчанию)"
# -- youtube source --------------------------------------------------------
MSG[step_youtube]="YouTube Music (поиск + скачивание)"
MSG[youtube_note]="Позволяет искать в YouTube Music и скачивать треки в библиотеку (через yt-dlp). Поиск и большинство загрузок работают без настройки."
MSG[youtube_q]="Включить источник YouTube Music?"
MSG[youtube_cookies_note]="Опционально: файл cookies браузера (формат Netscape) позволяет yt-dlp скачивать контент с возрастными/региональными ограничениями. Папка ниже монтируется в backend; положите cookies.txt в неё в любой момент (если не уверены — оставьте по умолчанию)."
MSG[youtube_cookies_prompt]="Папка на хосте для монтирования файла cookies"
MSG[summary_youtube]="YouTube"
MSG[done_youtube_title]="Скачивание из YouTube включено."
MSG[done_youtube_cookies]="Для контента с ограничениями положите экспортированный cookies.txt в: %s"
# -- summary / run ---------------------------------------------------------
MSG[summary_title]="Сводка (секреты скрыты)"
MSG[summary_services]="Сервисы"
MSG[summary_tag]="Тег образа"
MSG[summary_db]="База данных"
MSG[summary_redis]="Redis"
MSG[summary_storage]="Хранилище"
MSG[summary_access]="Доступ"
MSG[confirm_start]="Сгенерировать конфиг и запустить сейчас?"
MSG[embedded]="встроенный"
MSG[external]="внешний"
MSG[enabled]="включено"
MSG[disabled]="выключено"
MSG[pull_images]="Скачивание образов (%s)..."
MSG[pull_hint]="Если pull падает с 'unauthorized', выполните 'docker login git.ollyhearn.ru' (приватный регистри)."
MSG[starting_deps]="Запуск зависимостей..."
MSG[waiting_health]="Ожидание готовности %s..."
MSG[running_migrations]="Выполнение миграций БД..."
MSG[creating_admin]="Создание первого администратора..."
MSG[starting_app]="Запуск сервисов приложения..."
MSG[checking_health]="Проверка работоспособности API..."
# -- done / errors ---------------------------------------------------------
MSG[done_title]="MCMA запущен."
MSG[done_url]="Откройте"
MSG[done_config]="Конфиг (храните в секрете)"
MSG[done_admin_login]="Логин администратора"
MSG[done_commands]="Управление: make status | make logs | make update | make down"
MSG[err_migrations_failed]="Миграции не выполнились. Backend НЕ запущен поверх битой БД. Смотрите 'make logs'."
MSG[err_health_timeout]="API не стал healthy вовремя. Смотрите 'make logs' и 'make status'."
MSG[hint_logs]="Выполните 'make logs', чтобы увидеть причину."
MSG[no_config]="Установка не найдена. Сначала выполните 'make deploy'."
MSG[clean_confirm]="Удалить сгенерированные файлы конфигурации?"
MSG[clean_volumes_confirm]="Также УДАЛИТЬ все тома данных (база, медиа)? Это необратимо."
MSG[clean_done]="Очистка завершена."