169 lines
6.9 KiB
TypeScript
169 lines
6.9 KiB
TypeScript
export const ru = {
|
||
app: {
|
||
title: "AI RPG",
|
||
subtitle: "Гибкая ролевая игра с ИИ",
|
||
},
|
||
nav: {
|
||
home: "Главная",
|
||
dashboard: "Мои миры",
|
||
admin: "Админка",
|
||
logout: "Выйти",
|
||
login: "Войти",
|
||
register: "Регистрация",
|
||
language: "Язык",
|
||
},
|
||
auth: {
|
||
login_title: "Вход",
|
||
register_title: "Регистрация",
|
||
email: "Email",
|
||
username: "Имя пользователя",
|
||
password: "Пароль",
|
||
login_btn: "Войти",
|
||
register_btn: "Зарегистрироваться",
|
||
no_account: "Нет аккаунта? Зарегистрируйтесь",
|
||
have_account: "Уже есть аккаунт? Войдите",
|
||
admin_setup_title: "Создание администратора",
|
||
admin_setup_desc: "Введите токен из консоли backend, чтобы создать первого администратора.",
|
||
admin_setup_token: "Токен инициализации",
|
||
setup_btn: "Создать администратора",
|
||
},
|
||
worlds: {
|
||
title: "Ваши миры",
|
||
new: "Создать новый мир",
|
||
empty: "У вас пока нет ни одного мира.",
|
||
preset_choice: "Выберите пресет или начните с нуля",
|
||
use_preset: "Из пресета",
|
||
from_scratch: "С нуля",
|
||
name: "Название мира",
|
||
language: "Язык мира",
|
||
create: "Создать",
|
||
cancel: "Отмена",
|
||
start: "Начать игру",
|
||
continue: "Продолжить",
|
||
edit: "Редактировать",
|
||
delete: "Удалить",
|
||
builder_title: "Конструктор мира",
|
||
builder_desc: "Опишите свой мир — ИИ поможет его достроить.",
|
||
setting_brief: "Сеттинг",
|
||
setting_brief_ph: "Тёмное фэнтези в духе позднего средневековья...",
|
||
character_brief: "Персонаж",
|
||
character_brief_ph: "Молодой авантюрист, ищущий славы...",
|
||
rules_brief: "Правила мира",
|
||
rules_brief_ph: "Система магии с маной, пошаговый бой d20...",
|
||
notes: "Дополнительные заметки",
|
||
notes_ph: "Хочу сложную систему репутации с фракциями...",
|
||
start_builder: "Начать диалог с ИИ",
|
||
builder_history: "История диалога",
|
||
builder_message_ph: "Ваш ответ или правки...",
|
||
send: "Отправить",
|
||
accept: "Принять мир и создать",
|
||
accepting: "Создаём мир...",
|
||
status_draft: "Черновик",
|
||
status_ready: "Готов",
|
||
status_active: "Активен",
|
||
status_archived: "В архиве",
|
||
},
|
||
session: {
|
||
title: "Сессия",
|
||
back: "Назад к мирам",
|
||
glossary: "Глоссарий",
|
||
character: "Персонаж",
|
||
edit_world: "Редактировать мир",
|
||
history: "История",
|
||
action_placeholder: "Что вы делаете?",
|
||
send: "Действие",
|
||
sending: "Думаю...",
|
||
options: "Варианты",
|
||
custom_action: "Или своё действие",
|
||
status_planning: "Планирование...",
|
||
status_orchestrator_turn: "Ход GM...",
|
||
status_writing_scene: "Пишем сцену...",
|
||
world_time: "Время мира",
|
||
triggers_panel: "Отложенные события",
|
||
no_messages: "Начните с первого действия!",
|
||
new_session: "Новая сессия",
|
||
error_iter: "Ошибка при выполнении итерации",
|
||
},
|
||
admin: {
|
||
title: "Панель администратора",
|
||
settings: "Настройки LLM",
|
||
base_url: "OpenAI-совместимый endpoint",
|
||
api_key: "API ключ",
|
||
model: "Модель",
|
||
temperature: "Temperature (orchestrator)",
|
||
step_temperature: "Temperature (step writer)",
|
||
summary_temperature: "Temperature (summarizer)",
|
||
max_tokens: "Max tokens",
|
||
request_timeout: "Таймаут (сек)",
|
||
streaming: "Стриминг",
|
||
context_settings: "Контекстный менеджер",
|
||
recent_messages: "Гарантированных сообщений",
|
||
compress_threshold: "Порог сжатия",
|
||
summary_messages: "Сообщений на сводку",
|
||
max_tokens_total: "Бюджет токенов контекста",
|
||
trigger_settings: "Отложенные триггеры",
|
||
triggers_enabled: "Включены",
|
||
triggers_check_interval: "Интервал проверки (сек)",
|
||
embedding_settings: "Эмбеддинги (RAG)",
|
||
embedding_provider: "Провайдер",
|
||
embedding_provider_hash: "Hash (офлайн-фолбэк, без семантики)",
|
||
embedding_provider_openai: "OpenAI-compatible /embeddings",
|
||
embedding_base_url: "Endpoint (пусто = как у LLM)",
|
||
embedding_api_key: "API ключ (пусто = как у LLM)",
|
||
embedding_model: "Модель эмбеддингов",
|
||
embedding_dim: "Размерность (0 = авто-проба)",
|
||
embedding_timeout: "Таймаут (сек)",
|
||
embedding_test: "Проверить эмбеддинги",
|
||
embedding_testing: "Проверяю...",
|
||
embedding_test_ok: "OK: {{provider}} | dim={{dim}} | norm={{norm}}",
|
||
embedding_test_fail: "Ошибка: {{error}}",
|
||
save: "Сохранить",
|
||
saved: "Сохранено!",
|
||
llm_logs: "Логи LLM",
|
||
users: "Пользователи",
|
||
back: "Назад",
|
||
},
|
||
glossary: {
|
||
title: "Глоссарий мира",
|
||
npc: "NPC",
|
||
location: "Локации",
|
||
item: "Предметы",
|
||
lore: "Лор",
|
||
event: "События",
|
||
rule: "Правила",
|
||
empty: "Пока пусто. ИИ заполнит глоссарий по ходу игры.",
|
||
},
|
||
character: {
|
||
title: "Лист персонажа",
|
||
name: "Имя",
|
||
race: "Раса",
|
||
class: "Класс",
|
||
level: "Уровень",
|
||
stats: "Характеристики",
|
||
inventory: "Инвентарь",
|
||
effects: "Эффекты",
|
||
gold: "Золото",
|
||
location: "Локация",
|
||
empty: "Нет данных о персонаже.",
|
||
},
|
||
common: {
|
||
save: "Сохранить",
|
||
cancel: "Отмена",
|
||
delete: "Удалить",
|
||
edit: "Редактировать",
|
||
confirm: "Подтвердить",
|
||
yes: "Да",
|
||
no: "Нет",
|
||
loading: "Загрузка...",
|
||
error: "Ошибка",
|
||
success: "Готово",
|
||
not_found: "Не найдено",
|
||
forbidden: "Доступ запрещён",
|
||
},
|
||
errors: {
|
||
network: "Сетевая ошибка. Проверьте подключение.",
|
||
unauthorized: "Не авторизован.",
|
||
unknown: "Неизвестная ошибка.",
|
||
},
|
||
};
|