Files
personal-ai-assistant/frontend/public/locales/ru/translation.json
dolgolyov.alexei bb53eeee8e Phase 8: Customizable PDF Templates — locale support, admin editor, seed templates
Backend:
- PdfTemplate model with locale field + UNIQUE(name, locale) constraint
- Migration 007: pdf_templates table + template_id FK on generated_pdfs
- Template service: CRUD, Jinja2 validation, render preview with sample data
- Admin endpoints: CRUD /admin/pdf-templates + POST preview
- User endpoint: GET /pdf/templates (active templates list)
- pdf_service: resolves template from DB by ID or falls back to default
  for the appropriate locale
- AI generate_pdf tool accepts optional template_id
- Seed script + 4 HTML template files:
  - Basic Report (en/ru) — general-purpose report
  - Medical Report (en/ru) — health-focused with disclaimers

Frontend:
- Admin PDF templates page with editor, locale selector, live preview (iframe),
  template variables reference panel
- PDF page: template selector dropdown in generation form
- API clients for admin CRUD + user template listing
- Sidebar: admin templates link
- English + Russian translations

Also added Phase 9 (OAuth) and Phase 10 (Rate Limits) placeholders to GeneralPlan.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 15:32:35 +03:00

213 lines
9.3 KiB
JSON
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.
{
"auth": {
"login": "Войти",
"register": "Регистрация",
"email": "Email",
"password": "Пароль",
"confirmPassword": "Подтвердите пароль",
"username": "Имя пользователя",
"fullName": "Полное имя",
"rememberMe": "Запомнить меня",
"submit": "Отправить",
"noAccount": "Нет аккаунта?",
"hasAccount": "Уже есть аккаунт?",
"loginTitle": "С возвращением",
"loginSubtitle": "Войдите в свой аккаунт",
"registerTitle": "Создать аккаунт",
"registerSubtitle": "Начните работу с персональным ИИ-ассистентом",
"errors": {
"invalidCredentials": "Неверный email или пароль",
"emailExists": "Пользователь с таким email или именем уже существует",
"passwordMismatch": "Пароли не совпадают",
"passwordMinLength": "Пароль должен содержать минимум 8 символов",
"usernameFormat": "Имя пользователя: 3-50 символов (буквы, цифры, _ или -)",
"required": "Это поле обязательно"
}
},
"layout": {
"dashboard": "Главная",
"chats": "Чаты",
"documents": "Документы",
"memory": "Память",
"notifications": "Уведомления",
"profile": "Профиль",
"logout": "Выйти",
"settings": "Настройки",
"admin": "Администрирование",
"users": "Пользователи",
"context": "Контекст",
"skills": "Навыки",
"personal_context": "Мой контекст",
"pdf": "PDF отчёты",
"pdf_templates": "Шаблоны"
},
"dashboard": {
"welcome": "Добро пожаловать, {{name}}",
"subtitle": "Ваш персональный ИИ-ассистент"
},
"chat": {
"new_chat": "Новый чат",
"no_chats": "Пока нет чатов. Создайте первый.",
"no_messages": "Начните разговор...",
"select_chat": "Выберите чат для начала общения",
"type_message": "Введите сообщение...",
"send": "Отправить",
"archive": "Архивировать",
"unarchive": "Разархивировать",
"delete_confirm": "Вы уверены, что хотите удалить этот чат?",
"limit_reached": "Достигнут лимит чатов",
"streaming": "ИИ думает..."
},
"admin": {
"context_editor": "Редактор основного контекста",
"context_placeholder": "Введите системный промпт для ИИ-ассистента...",
"save": "Сохранить",
"saved": "Сохранено",
"unsaved_changes": "Несохранённые изменения",
"version": "Версия",
"characters": "символов"
},
"skills": {
"my_skills": "Мои навыки",
"general_skills": "Общие навыки",
"no_skills": "Навыков пока нет.",
"no_personal_skills": "Вы ещё не создали персональных навыков.",
"create_personal": "Создать персональный навык",
"edit_personal": "Редактировать навык",
"create_general": "Создать общий навык",
"edit_general": "Редактировать общий навык",
"name": "Название",
"name_placeholder": "напр. Кардиолог",
"description": "Описание",
"description_placeholder": "Краткое описание специалиста",
"system_prompt": "Системный промпт",
"prompt_placeholder": "Инструкции для ИИ при использовании этого навыка...",
"icon": "Иконка",
"no_skill": "Без специалиста",
"general": "Общие",
"personal": "Персональные"
},
"personal_context": {
"title": "Персональный контекст",
"subtitle": "Этот контекст добавляется ко всем вашим разговорам с ИИ",
"placeholder": "Добавьте личную информацию, которую ИИ должен знать о вас..."
},
"notifications": {
"title": "Уведомления",
"no_notifications": "Уведомлений пока нет.",
"mark_all_read": "Отметить все как прочитанные",
"mark_read": "Отметить как прочитанное",
"view_all": "Все уведомления",
"types": {
"reminder": "Напоминание",
"alert": "Оповещение",
"info": "Информация",
"ai_generated": "От ИИ"
}
},
"documents": {
"upload": "Загрузить",
"drop_or_click": "Перетащите файл или нажмите для выбора",
"doc_type": "Тип документа",
"no_documents": "Документы ещё не загружены.",
"download": "Скачать",
"reindex": "Извлечь текст заново",
"extracted_text": "Извлечённый текст",
"search_placeholder": "Поиск по документам...",
"clear_search": "Очистить",
"types": {
"other": "Другое",
"report": "Отчёт",
"contract": "Договор",
"receipt": "Квитанция",
"certificate": "Сертификат"
},
"status": {
"pending": "Ожидание",
"processing": "Обработка",
"completed": "Готово",
"failed": "Ошибка"
}
},
"memory": {
"create": "Добавить запись",
"edit": "Редактировать запись",
"no_entries": "Записей пока нет. ИИ будет сохранять важную информацию здесь.",
"category": "Категория",
"importance": "Важность",
"title_field": "Заголовок",
"title_placeholder": "напр. Диабет 2 типа",
"content_field": "Содержание",
"content_placeholder": "Подробная информация...",
"categories": {
"health": "Здоровье",
"finance": "Финансы",
"personal": "Личное",
"work": "Работа",
"document_summary": "Сводка документа",
"other": "Другое"
},
"importance_levels": {
"critical": "Критическая",
"high": "Высокая",
"medium": "Средняя",
"low": "Низкая"
}
},
"pdf": {
"title": "PDF отчёты",
"generate": "Сгенерировать PDF",
"title_placeholder": "Название отчёта...",
"no_pdfs": "PDF отчёты ещё не создавались.",
"template": "Шаблон",
"default_template": "Шаблон по умолчанию"
},
"pdf_templates": {
"title": "Шаблоны PDF",
"create": "Создать шаблон",
"edit": "Редактировать шаблон",
"no_templates": "Шаблонов пока нет.",
"default": "По умолчанию",
"inactive": "Неактивен",
"name": "Название",
"locale": "Язык",
"description": "Описание",
"html_content": "HTML шаблон",
"preview": "Предпросмотр",
"variables_ref": "Справка по переменным шаблона",
"var_title": "Заголовок отчёта",
"var_user_name": "Полное имя пользователя",
"var_generated_at": "Дата и время генерации",
"var_memories": "Список записей памяти (category, title, content, importance)",
"var_documents": "Список документов (original_filename, doc_type, excerpt)",
"var_ai_summary": "Резюме от ИИ (необязательно)"
},
"admin_users": {
"title": "Управление пользователями",
"create": "Создать пользователя",
"edit": "Редактировать пользователя",
"max_chats": "Макс. чатов",
"deactivate": "Деактивировать",
"activate": "Активировать"
},
"admin_settings": {
"title": "Настройки приложения",
"self_registration": "Самостоятельная регистрация",
"self_registration_desc": "Разрешить пользователям самим создавать аккаунты",
"default_max_chats": "Лимит чатов по умолчанию",
"default_max_chats_desc": "Лимит чатов для новых пользователей"
},
"common": {
"loading": "Загрузка...",
"error": "Произошла ошибка",
"notFound": "Страница не найдена",
"goHome": "На главную",
"save": "Сохранить",
"cancel": "Отмена",
"delete": "Удалить",
"edit": "Редактировать",
"create": "Создать",
"search": "Поиск"
}
}