136 lines
9.6 KiB
Bash
136 lines
9.6 KiB
Bash
# Русские строки. Каждая запись задаёт 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_bash_version]="Требуется Bash 4+ (найден %s). Установите более новый bash."
|
||
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 деградирует штатно)"
|
||
|
||
# -- 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[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]="Очистка завершена."
|