Files
cortiq-gateway/web/js/i18n/ru.js
T
infosave2007 cbc385f6c7 feat: universal LLM gateway with embedded multilingual admin console
- OpenAI-compatible gateway with intelligent routing via cortiq-router (allaigate)
- Embedded build-free admin SPA at /admin: 7 languages (en/ru/de/fr/es/zh/tr),
  light/dark themes, hot config reload (no restart)
- Admin API, per-request statistics + Prometheus /metrics, secret store, playground
- English documentation (primary) with Russian translations (*.ru.md)
2026-06-30 10:51:37 +03:00

257 lines
13 KiB
JavaScript
Vendored
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.
// Russian — ru. Keys must match en.js exactly; missing keys fall back to English.
export default {
// brand / common
"brand.sub": "Шлюз",
"common.loading": "Загрузка…",
"common.save": "Сохранить",
"common.saving": "Сохранение…",
"common.cancel": "Отмена",
"common.add": "Добавить",
"common.edit": "Изменить",
"common.delete": "Удалить",
"common.close": "Закрыть",
"common.test": "Тест",
"common.copy": "Копировать",
"common.copied": "Скопировано",
"common.confirm": "Подтвердить",
"common.none": "нет",
"common.saved": "Сохранено",
"common.error": "Ошибка",
"common.ok": "OK",
"common.refresh": "Обновить",
"common.actions": "Действия",
"common.optional": "необязательно",
"common.search": "Поиск",
"common.all": "все",
// nav
"nav.dashboard": "Дашборд",
"nav.models": "Модели",
"nav.routing": "Роутинг",
"nav.protocols": "Протоколы",
"nav.keys": "API-ключи",
"nav.playground": "Playground",
"nav.settings": "Настройки",
"nav.foot": "Шлюз · v{v}",
// topbar / status
"status.router": "Роутер",
"status.gateway": "Шлюз",
"status.online": "в сети",
"status.offline": "недоступен",
"status.checking": "проверка…",
"theme.toggle": "Тема",
"logout": "Выйти",
// login
"login.title": "allaigate Gateway",
"login.subtitle": "Введите токен администратора для управления этим шлюзом.",
"login.token": "Токен администратора",
"login.tokenPlaceholder": "вставьте токен",
"login.submit": "Войти в консоль",
"login.hint": "Токен печатается в логе шлюза при запуске или задаётся через [admin].token_env.",
"login.failed": "Неверный токен администратора.",
// dashboard
"dash.title": "Дашборд",
"dash.subtitle": "Трафик в реальном времени, расходы и аналитика роутинга по пулу моделей.",
"dash.range": "Период",
"dash.range.1h": "1ч",
"dash.range.24h": "24ч",
"dash.range.7d": "7д",
"dash.kpi.requests": "Запросы",
"dash.kpi.tokens": "Токены",
"dash.kpi.cost": "Стоимость",
"dash.kpi.latency": "Ср. задержка",
"dash.kpi.success": "Успешность",
"dash.kpi.failovers": "Переключения",
"dash.series.title": "Запросы по времени",
"dash.series.cost": "Расходы по времени",
"dash.series.empty": "Трафика за этот период нет.",
"dash.breakdown.title": "Разбивка",
"dash.groupby.model": "по модели",
"dash.groupby.tier": "по уровню",
"dash.groupby.label": "по задаче",
"dash.groupby.account": "по аккаунту",
"dash.recent.title": "Последние запросы",
"dash.recent.empty": "Запросов ещё нет. Попробуйте Playground.",
"dash.col.time": "Время",
"dash.col.model": "Модель",
"dash.col.tier": "Уровень",
"dash.col.task": "Задача",
"dash.col.tokens": "Токены",
"dash.col.cost": "Стоимость",
"dash.col.latency": "Задержка",
"dash.col.outcome": "Результат",
"dash.col.requests": "Запросы",
"dash.col.errors": "Ошибки",
"dash.health.title": "Состояние",
"dash.health.reachable": "доступен",
"dash.health.unreachable": "недоступен",
// models
"models.title": "Модели",
"models.subtitle": "Пул моделей — сочетайте дешёвые локальные модели с облачными API.",
"models.add": "Добавить модель",
"models.empty": "Моделей нет. Добавьте первую модель.",
"models.col.id": "ID",
"models.col.provider": "Провайдер",
"models.col.model": "Модель",
"models.col.tier": "Уровень цены",
"models.col.key": "Ключ",
"models.col.caps": "Возможности",
"models.col.price": "Цена (вх/исх)",
"models.probe": "Проверить",
"models.probe.ok": "Доступна ({ms} мс)",
"models.probe.fail": "Ошибка: {err}",
"models.form.addTitle": "Добавить модель",
"models.form.editTitle": "Редактировать модель",
"models.form.id": "ID",
"models.form.idHint": "Уникальный ID для роутинга, например local-qwen",
"models.form.provider": "Провайдер",
"models.form.baseUrl": "Base URL",
"models.form.model": "Имя модели",
"models.form.kind": "Тип",
"models.form.costTier": "Уровень цены",
"models.form.priceIn": "Цена вх. ($/1M)",
"models.form.priceOut": "Цена исх. ($/1M)",
"models.form.apiKeyEnv": "Имя env-переменной с ключом",
"models.form.apiKeyEnvHint": "Имя переменной окружения или секрета с ключом провайдера.",
"models.form.caps": "Возможности",
"models.form.secret": "Значение секрета",
"models.form.secretStored": "сохранён",
"models.form.secretEnv": "из env",
"models.form.secretMissing": "не задан",
"models.form.secretPlaceholder": "задать или заменить ключ (только запись)",
"models.deleteConfirm": "Удалить модель \"{id}\"?",
// routing
"routing.title": "Роутинг",
"routing.subtitle": "Сопоставьте уровни сложности с упорядоченным списком моделей (приоритет = fallback).",
"routing.default": "Модель по умолчанию",
"routing.defaultHint": "Используется, если роутер недоступен.",
"routing.tiers": "Уровни",
"routing.tierHint": "Перетащите чипы для изменения порядка; первый — предпочтительный, остальные — резервные.",
"routing.addModel": "+ добавить",
"routing.addTier": "Добавить уровень",
"routing.tierName": "Название уровня",
"routing.policy": "Политика",
"routing.policy.mode": "Режим",
"routing.policy.fixed": "Фиксированная таблица",
"routing.policy.costAware": "С учётом стоимости",
"routing.policy.maxCost": "Макс. стоимость запроса ($)",
"routing.policy.minClass": "Мин. класс на уровень",
"routing.empty": "Моделей нет — сначала добавьте модели.",
// protocols
"protocols.title": "Протоколы",
"protocols.subtitle": "Включайте только нужные входящие API. Переключатели применяются мгновенно.",
"protocols.implemented": "реализован",
"protocols.planned": "планируется",
"protocols.openai_chat": "OpenAI Chat Completions",
"protocols.openai_chat.d": "POST /v1/chat/completions — работает с OpenAI SDK, LangChain, crewAI.",
"protocols.openai_completions": "OpenAI Completions (устаревший)",
"protocols.openai_completions.d": "POST /v1/completions — устаревшие интеграции.",
"protocols.openai_embeddings": "OpenAI Embeddings",
"protocols.openai_embeddings.d": "POST /v1/embeddings — RAG-пайплайны.",
"protocols.openai_models": "OpenAI Models",
"protocols.openai_models.d": "GET /v1/models — автообнаружение клиентами.",
"protocols.anthropic_messages": "Anthropic Messages",
"protocols.anthropic_messages.d": "POST /v1/messages — Claude-нативные агенты.",
"protocols.mcp": "MCP (Model Context Protocol)",
"protocols.mcp.d": "JSON-RPC / SSE — MCP-нативные оркестраторы.",
"protocols.native_passthrough": "Нативный проброс",
"protocols.native_passthrough.d": "POST /route — прямой доступ к решению роутера.",
// keys
"keys.title": "API-ключи",
"keys.subtitle": "Виртуальные ключи шлюза для агентов. Ключи провайдеров не покидают шлюз.",
"keys.add": "Новый ключ",
"keys.empty": "Ключей нет — шлюз в открытом режиме (без аутентификации).",
"keys.openMode": "Открытый режим: любой запрос принимается (ключ не нужен).",
"keys.col.key": "Ключ",
"keys.col.account": "Аккаунт",
"keys.col.rate": "Лимит / мин",
"keys.col.models": "Разрешённые модели",
"keys.form.title": "Новый API-ключ",
"keys.form.account": "Аккаунт",
"keys.form.rate": "Лимит запросов / мин",
"keys.form.allow": "Разрешённые модели",
"keys.form.allowHint": "Оставьте пустым, чтобы разрешить все модели.",
"keys.form.custom": "Произвольный ключ (необязательно)",
"keys.form.customHint": "Оставьте пустым для автогенерации sk-gw-…",
"keys.created": "Ключ создан — скопируйте его сейчас, он больше не отобразится:",
"keys.revoke": "Отозвать",
"keys.revokeConfirm": "Отозвать этот ключ?",
"keys.allowAll": "все",
// playground
"pg.title": "Playground",
"pg.subtitle": "Отправьте запрос через активный пайплайн и изучите решение роутера.",
"pg.system": "Системный промпт",
"pg.systemPlaceholder": "необязательное системное сообщение",
"pg.prompt": "Промпт",
"pg.promptPlaceholder": "Задайте вопрос…",
"pg.mode": "Режим",
"pg.mode.auto": "Авто (роутинг)",
"pg.mode.pinned": "Фиксированная модель",
"pg.profile": "Профиль",
"pg.model": "Модель",
"pg.temp": "Температура",
"pg.maxTokens": "Макс. токены",
"pg.send": "Отправить",
"pg.sending": "Отправка…",
"pg.answer": "Ответ",
"pg.empty": "Ответ и решение роутера появятся здесь.",
"pg.decision": "Решение роутера",
"pg.task": "Задача",
"pg.tier": "Уровень",
"pg.score": "Сложность",
"pg.selected": "Выбранная модель",
"pg.source": "Источник маршрута",
"pg.cost": "Стоимость",
"pg.latency": "Задержка",
"pg.tokens": "Токены (вх/исх)",
"pg.failover": "Failover",
"pg.error": "Ошибка запроса",
// settings
"settings.title": "Настройки",
"settings.subtitle": "Подключение к шлюзу, входные данные роутинга, надёжность и наблюдаемость.",
"settings.router": "Подключение к роутеру",
"settings.router.url": "URL роутера",
"settings.router.keyEnv": "Имя env-переменной с ключом роутера",
"settings.router.timeout": "Таймаут (мс)",
"settings.router.verifyTls": "Проверять TLS-сертификат",
"settings.router.taxonomy": "ID таксономии",
"settings.route": "Входные данные роутинга",
"settings.route.strategy": "Стратегия текста",
"settings.route.maxChars": "Макс. символов",
"settings.route.cacheTtl": "TTL кэша",
"settings.route.profile": "Профиль по умолчанию",
"settings.breaker": "Автоматический выключатель",
"settings.breaker.threshold": "Порог ошибок",
"settings.breaker.cooldown": "Время восстановления",
"settings.log": "Логирование",
"settings.log.level": "Уровень логов",
"settings.log.bodies": "Логировать тела сообщений (приватность отключена)",
"settings.telemetry": "Телеметрия",
"settings.telemetry.metrics": "Включить Prometheus /metrics",
"settings.cortiq": "Метаданные ответа",
"settings.cortiq.echo": "Включать блок роутинга cortiq в ответы",
"settings.stats": "Статистика",
"settings.stats.enabled": "Записывать статистику запросов",
"settings.stats.file": "Файл статистики (JSONL)",
"settings.stats.retention": "Срок хранения",
"settings.listen": "Адрес прослушивания",
"settings.export": "Экспорт конфигурации",
"settings.import": "Импорт конфигурации",
"settings.needsRestart": "Сохранено. Некоторые изменения (адрес прослушивания) требуют перезапуска.",
// toasts / misc
"toast.saved": "Изменения сохранены",
"toast.deleted": "Удалено",
"toast.probing": "Проверка…",
"toast.imported": "Конфигурация импортирована",
};