- LicenseTab/LicenseModal: LemonSqueezy 키 입력 삭제, Payple 구독 UI로 전환 - useLicenseState 훅: 라이선스+클라우드 인증 공용 상태 관리 추출 - PREMIUM_MODEL_LIMITS: 3곳 중복 → @d3ro/core/constants 단일 소스 - i18n: LemonSqueezy 전용 키 18개 삭제, 구독 관련 키 13개 추가 (12 locale) - DashboardPage: dashboard.model* → license.model* 키 통일
309 lines
19 KiB
JSON
309 lines
19 KiB
JSON
{
|
||
"app.name": "D3RO Voice",
|
||
"app.tagline": "Локальный голосовой ИИ-ассистент",
|
||
"nav.dashboard": "Панель",
|
||
"nav.history": "История",
|
||
"nav.dictionary": "Словарь",
|
||
"nav.commands": "Команды",
|
||
"nav.settings": "Настройки",
|
||
"nav.meetings": "Встречи",
|
||
"nav.record": "Запись",
|
||
"nav.chat": "Чат",
|
||
"nav.knowledge": "База знаний",
|
||
"nav.actions": "Действия",
|
||
"nav.teams": "Команды",
|
||
"nav.billing": "Оплата",
|
||
"nav.logout": "Выйти",
|
||
"login.subtitle": "ИИ голосовой помощник",
|
||
"login.google": "Продолжить с Google",
|
||
"login.github": "Продолжить с GitHub",
|
||
"login.terms": "Продолжая, вы соглашаетесь с условиями использования и политикой конфиденциальности.",
|
||
"dashboard.sessionOverview": "Обзор сессий",
|
||
"dashboard.systemStatus": "Состояние системы",
|
||
"dashboard.sessionsToday": "Сессий сегодня",
|
||
"dashboard.pressToRecord": "Нажмите {{key}} для начала записи",
|
||
"dashboard.hotkeyNotSet": "Горячая клавиша не задана",
|
||
"dashboard.words": "Слова",
|
||
"dashboard.total": "Всего",
|
||
"dashboard.streak": "Серия",
|
||
"dashboard.days": "дн.",
|
||
"dashboard.recording": "Запись",
|
||
"dashboard.sessions": "Сессии",
|
||
"dashboard.today": "Сегодня",
|
||
"dashboard.recentTranscriptions": "Последние транскрипции",
|
||
"dashboard.noHistory": "История пуста — нажмите горячую клавишу для начала записи",
|
||
"dashboard.copy": "Копировать",
|
||
"dashboard.entries": "{{count}} записей",
|
||
"dashboard.stat": "Статистика",
|
||
"dashboard.sys": "Система",
|
||
"dashboard.currentBackend": "Текущий бэкенд",
|
||
"dashboard.backendLocal": "Локальный (Ollama)",
|
||
"dashboard.backendPremium": "Премиум (Claude)",
|
||
"dashboard.loginRequired": "Требуется вход",
|
||
"history.title": "История транскрипций",
|
||
"history.search": "Поиск...",
|
||
"history.entries": "{{count}} записей",
|
||
"history.loading": "Загрузка...",
|
||
"history.noResults": "Результаты не найдены",
|
||
"history.noHistory": "История пуста — начните запись",
|
||
"history.count": "{{count}} записей",
|
||
"dictionary.title": "Пользовательский словарь",
|
||
"dictionary.words": "{{count}} слов",
|
||
"dictionary.add": "Добавить",
|
||
"dictionary.search": "Поиск...",
|
||
"dictionary.loading": "Загрузка...",
|
||
"dictionary.noResults": "Результаты не найдены",
|
||
"dictionary.noWords": "Слов нет — добавьте собственные слова для улучшения точности STT",
|
||
"dictionary.used": "Использовано {{count}} раз",
|
||
"dictionary.editTitle": "Редактировать слово",
|
||
"dictionary.addTitle": "Добавить слово",
|
||
"dictionary.word": "Слово",
|
||
"dictionary.pronunciation": "Произношение (необязательно)",
|
||
"commands.title": "Команды LLM",
|
||
"commands.count": "{{count}} шт.",
|
||
"commands.add": "Добавить",
|
||
"commands.activeCommand": "Активная команда",
|
||
"commands.none": "Нет",
|
||
"commands.loading": "Загрузка...",
|
||
"commands.noCommands": "Команд нет — нажмите «Добавить» для создания",
|
||
"commands.editTitle": "Редактировать команду",
|
||
"commands.addTitle": "Добавить команду",
|
||
"commands.name": "Название",
|
||
"commands.description": "Описание",
|
||
"commands.promptTemplate": "Шаблон промпта",
|
||
"commands.promptHelp": "{{text}} будет заменено на транскрибированный текст",
|
||
"commands.defaultPrompt": "Пожалуйста, улучшите {{text}}.",
|
||
"settings.title": "Настройки",
|
||
"settings.tabs.general": "Общие",
|
||
"settings.tabs.audio": "Аудио",
|
||
"settings.tabs.stt": "STT",
|
||
"settings.tabs.llm": "LLM",
|
||
"settings.tabs.cloud": "Облако",
|
||
"settings.tabs.about": "О программе",
|
||
"settings.shortcuts": "Горячие клавиши",
|
||
"settings.dictation": "Диктовка",
|
||
"settings.dictation.desc": "Говорите, удерживая клавишу. Отпустите для начала транскрипции.",
|
||
"settings.agent": "Режим агента",
|
||
"settings.agent.descWithKey": "Дважды нажмите {{key}} для перехода в режим агента.",
|
||
"settings.agent.descNoKey": "Сначала задайте горячую клавишу диктовки.",
|
||
"settings.oneTouch": "Режим одного нажатия",
|
||
"settings.oneTouch.desc": "Нажмите для начала, нажмите снова для остановки. Требуется отдельная горячая клавиша.",
|
||
"settings.key": "Клавиша",
|
||
"settings.notSet": "Не задано",
|
||
"settings.enabled": "Включено",
|
||
"settings.disabled": "Выключено",
|
||
"settings.interface": "Интерфейс",
|
||
"settings.theme": "Тема",
|
||
"settings.theme.system": "Системная",
|
||
"settings.theme.light": "Светлая",
|
||
"settings.theme.dark": "Тёмная",
|
||
"settings.language": "Язык",
|
||
"settings.appBehavior": "Поведение приложения",
|
||
"settings.closeToTray": "Сворачивать в трей",
|
||
"settings.autoLaunch": "Автозапуск при старте системы",
|
||
"settings.autoInsert": "Автоматически вставлять текст после транскрипции",
|
||
"settings.soundEffects": "Звуковые эффекты",
|
||
"settings.microphone": "Микрофон",
|
||
"settings.inputDevice": "Устройство ввода",
|
||
"settings.deviceDefault": "(По умолчанию)",
|
||
"settings.textInsert": "Вставка текста",
|
||
"settings.insertMethod": "Метод вставки",
|
||
"settings.insertClipboard": "Буфер обмена (Ctrl+V)",
|
||
"settings.insertKeyboard": "Эмуляция клавиатуры",
|
||
"settings.whisperModel": "Модель Whisper",
|
||
"settings.model.tiny": "tiny (39 МБ, самая быстрая)",
|
||
"settings.model.base": "base (74 МБ, баланс)",
|
||
"settings.model.small": "small (244 МБ, хорошая)",
|
||
"settings.model.medium": "medium (769 МБ, отличная)",
|
||
"settings.model.large": "large-v3 (1.5 ГБ, лучшая)",
|
||
"settings.sttLanguage": "Язык распознавания",
|
||
"settings.sttLang.auto": "Автоопределение",
|
||
"settings.ollamaServer": "Сервер Ollama",
|
||
"settings.ollamaUrl": "URL сервера Ollama",
|
||
"settings.ollamaHint": "Если Ollama запущена, подключение произойдёт автоматически. Загружайте модели напрямую через Ollama (например: ollama pull gemma4:e4b).",
|
||
"settings.postProcess": "Постобработка речи",
|
||
"settings.defaultAction": "Команда постобработки по умолчанию",
|
||
"settings.action.none": "Нет (оригинальный текст)",
|
||
"settings.action.refine": "Улучшить (грамматика + естественность)",
|
||
"settings.action.translate": "Перевести",
|
||
"settings.action.summarize": "Резюмировать",
|
||
"settings.action.grammar": "Исправить грамматику",
|
||
"settings.action.custom": "Пользовательский промпт",
|
||
"settings.actionHint": "После записи и транскрипции к тексту будет применена выбранная постобработка LLM. Работает только при подключённом Ollama.",
|
||
"settings.about.version": "Версия",
|
||
"settings.about.techStack": "Технический стек",
|
||
"settings.about.techStackValue": "Electron + React 19 + MUI 7 + TypeScript",
|
||
"settings.about.voiceEngine": "Голосовой движок",
|
||
"settings.about.voiceEngineValue": "STT: faster-whisper (локально) / LLM: Ollama (локально)",
|
||
"settings.about.description": "Локальный голосовой ИИ-ассистент, основанный на методах обратной разработки Speakly. Работает полностью локально без зависимости от облачных сервисов.",
|
||
"settings.about.restartOnboarding": "Показать начальную настройку снова",
|
||
"status.ollama": "OLLAMA",
|
||
"status.offline": "OFFLINE",
|
||
"status.nudge.title": "Ollama не запущена",
|
||
"status.nudge.desc": "Для постобработки LLM (перевод, резюмирование и т.д.) требуется Ollama.",
|
||
"status.nudge.guide": "Смотреть инструкцию по установке →",
|
||
"onboarding.welcome.title": "D3RO-VOICE",
|
||
"onboarding.welcome.desc": "Без набора текста — только голос. Локальный голосовой ИИ-ассистент.",
|
||
"onboarding.welcome.start": "Начать",
|
||
"onboarding.mic.title": "Настройка микрофона",
|
||
"onboarding.mic.desc": "Выберите микрофон. Его можно изменить позже в настройках.",
|
||
"onboarding.hotkey.title": "Настройка горячей клавиши",
|
||
"onboarding.hotkey.desc": "Задайте горячую клавишу для диктовки. Удерживайте её для записи.",
|
||
"onboarding.hotkey.notSet": "Горячая клавиша не задана",
|
||
"onboarding.hotkey.change": "Изменить горячую клавишу",
|
||
"onboarding.hotkey.set": "Задать горячую клавишу",
|
||
"onboarding.ollama.title": "Установка Ollama (необязательно)",
|
||
"onboarding.ollama.desc": "Для постобработки LLM (перевод, резюмирование и т.д.) требуется Ollama. Голосовая диктовка работает и без неё.",
|
||
"onboarding.ollama.download": "Скачать Ollama",
|
||
"onboarding.ollama.modelHint": "После установки загрузите модель через терминал",
|
||
"onboarding.done.title": "Настройка завершена!",
|
||
"onboarding.done.descWithKey": "Удерживайте {{key}} и говорите — речь будет преобразована в текст.",
|
||
"onboarding.done.descNoKey": "Задайте горячую клавишу в настройках, чтобы начать голосовую диктовку.",
|
||
"onboarding.done.start": "Начать",
|
||
"onboarding.back": "Назад",
|
||
"onboarding.next": "Далее",
|
||
"hotkey.title": "Настройка горячей клавиши",
|
||
"hotkey.dictationTitle": "Задать горячую клавишу диктовки",
|
||
"hotkey.oneTouchTitle": "Задать горячую клавишу режима одного нажатия",
|
||
"hotkey.prompt": "Нажмите сочетание клавиш...",
|
||
"hotkey.ready": "✓ {{keys}} — нажмите «Сохранить»",
|
||
"hotkey.noKey": "Введите клавишу",
|
||
"hotkey.reserved": "{{keys}} является зарезервированным сочетанием системы",
|
||
"hotkey.current": "Текущее: {{keys}}",
|
||
"hotkey.hint": "Введите сочетание клавиш (например: Ctrl+Shift+Q) или одну клавишу (например: F5)",
|
||
"hotkey.reset": "Ввести снова",
|
||
"ollama.title": "OLLAMA SETUP GUIDE",
|
||
"ollama.step1.title": "ШАГ 1 — Установка Ollama",
|
||
"ollama.step1.desc": "Ollama — бесплатный инструмент для локального запуска LLM.",
|
||
"ollama.step2.title": "ШАГ 2 — Загрузка модели",
|
||
"ollama.step2.desc": "Загрузите нужную модель через терминал. Рекомендуется:",
|
||
"ollama.step2.alt": "Или более крупная модель: ollama pull gemma4:26b (точнее, медленнее)",
|
||
"ollama.step3.title": "ШАГ 3 — Автоподключение",
|
||
"ollama.step3.desc": "При запуске Ollama D3RO-VOICE обнаружит её автоматически. Когда индикатор LED на нижней панели сменится с красного на зелёный — готово!",
|
||
"service.sttEngine": "STT ENGINE",
|
||
"service.ollamaLlm": "OLLAMA LLM",
|
||
"service.hotkeyHook": "HOTKEY HOOK",
|
||
"service.audioInput": "AUDIO INPUT",
|
||
"service.ready": "READY",
|
||
"service.connected": "CONNECTED",
|
||
"service.offline": "OFFLINE",
|
||
"service.active": "ACTIVE",
|
||
"service.standby": "STANDBY",
|
||
"service.premiumLlm": "PREMIUM LLM",
|
||
"service.notConfigured": "NOT SET",
|
||
"common.cancel": "Отмена",
|
||
"common.save": "Сохранить",
|
||
"common.delete": "Удалить",
|
||
"common.add": "Добавить",
|
||
"common.edit": "Изменить",
|
||
"common.close": "Закрыть",
|
||
"common.confirm": "Подтвердить",
|
||
"common.loading": "Загрузка...",
|
||
"common.copy": "Копировать",
|
||
"common.test": "Тест",
|
||
"common.stop": "Стоп",
|
||
"date.today": "Сегодня",
|
||
"date.yesterday": "Вчера",
|
||
"settings.theme.nord": "Nord",
|
||
"settings.theme.solarized": "Solarized",
|
||
"settings.theme.catppuccin": "Catppuccin",
|
||
"settings.theme.dracula": "Dracula",
|
||
"settings.sttLang.ko": "Корейский",
|
||
"settings.sttLang.en": "Английский",
|
||
"settings.sttLang.ja": "Японский",
|
||
"settings.sttLang.zh": "Китайский",
|
||
"template.outputHelperText": "Используйте {{имяПоля}} для заполнителей",
|
||
"nav.meeting": "Совещание",
|
||
"meeting.title": "Режим совещания",
|
||
"meeting.newMeeting": "Новое совещание",
|
||
"meeting.startRecording": "Начать запись",
|
||
"meeting.stopRecording": "Остановить запись",
|
||
"meeting.recording": "Запись",
|
||
"meeting.processing": "Создание протокола...",
|
||
"meeting.completed": "Завершено",
|
||
"meeting.error": "Ошибка",
|
||
"meeting.elapsed": "Прошло",
|
||
"meeting.memoPlaceholder": "Введите заметку (Enter для добавления)",
|
||
"meeting.memoAdded": "Заметка добавлена",
|
||
"meeting.noSessions": "Нет записей совещаний",
|
||
"meeting.noSessionsDesc": "Нажмите «Новое совещание», чтобы начать запись",
|
||
"meeting.summary": "Сводка",
|
||
"meeting.decisions": "Решения",
|
||
"meeting.actionItems": "Задачи",
|
||
"meeting.timeline": "Хронология",
|
||
"meeting.transcript": "Исходная расшифровка",
|
||
"meeting.memos": "Заметки",
|
||
"meeting.exportPdf": "Экспорт в PDF",
|
||
"meeting.exportMarkdown": "Экспорт в Markdown",
|
||
"meeting.delete": "Удалить",
|
||
"meeting.deleteConfirm": "Удалить эту запись совещания?",
|
||
"meeting.backToList": "Вернуться к списку",
|
||
"meeting.notificationTitle": "Протокол готов",
|
||
"meeting.notificationBody": "Протокол совещания сформирован.",
|
||
"meeting.sessions": "{{count}} сессий",
|
||
"meeting.duration": "{{minutes}} мин",
|
||
"meeting.editTitle": "Изменить название",
|
||
"meeting.untitled": "Совещание без названия",
|
||
"meeting.processingStep.merging": "Объединение расшифровки...",
|
||
"meeting.processingStep.generating": "Создание протокола с помощью LLM...",
|
||
"meeting.processingStep.parsing": "Разбор протокола...",
|
||
"meeting.processingStep.saving": "Сохранение...",
|
||
"meeting.processingStep.notifying": "Отправка уведомления...",
|
||
"meeting.transcriptTab": "Транскрипция",
|
||
"meeting.addDocument": "Добавить документ",
|
||
"meeting.selectTemplate": "Выбрать шаблон",
|
||
"meeting.generate": "Создать",
|
||
"meeting.generating": "Создание документа...",
|
||
"meeting.editMode": "Редактировать",
|
||
"meeting.previewMode": "Предпросмотр",
|
||
"meeting.modified": "Изменено",
|
||
"meeting.originalText": "Оригинал",
|
||
"meeting.editedText": "Отредактировано",
|
||
"meeting.exportDocx": "Экспорт DOCX",
|
||
"meeting.exportTxt": "Экспорт TXT",
|
||
"meeting.exportFormat": "Экспорт",
|
||
"meeting.customPrompt": "Пользовательский запрос",
|
||
"meeting.templateName": "Название шаблона",
|
||
"meeting.templatePrompt": "ИИ-запрос",
|
||
"meeting.templateSave": "Сохранить шаблон",
|
||
"meeting.documentDeleted": "Документ удалён",
|
||
"meeting.autoSaved": "Автосохранение",
|
||
"meeting.minutesTemplate": "Протокол встречи",
|
||
"meeting.reportTemplate": "Отчёт",
|
||
"meeting.ideaNoteTemplate": "Заметка с идеями",
|
||
"meeting.customTemplate": "Пользовательский",
|
||
"meeting.downloadTranscript": "Скачать транскрипцию",
|
||
"meeting.polish": "Улучшить с ИИ",
|
||
"meeting.polishing": "ИИ улучшает транскрипцию...",
|
||
"meeting.polished": "Улучшение ИИ завершено",
|
||
"meeting.mindmapTemplate": "Карта мыслей",
|
||
"meeting.chat": "ИИ Чат",
|
||
"meeting.chatPlaceholder": "Задайте вопрос о встрече...",
|
||
"meeting.chatSend": "Отправить",
|
||
"meeting.chatClear": "Очистить чат",
|
||
"meeting.copyToClipboard": "Копировать в буфер обмена",
|
||
"meeting.copied": "Скопировано",
|
||
"meeting.chatCollapse": "Свернуть чат",
|
||
"meeting.chatExpand": "Развернуть чат",
|
||
"meeting.exportMd": "Markdown (.md)",
|
||
"meeting.exportPdfFmt": "PDF (.pdf)",
|
||
"meeting.polishFailed": "Ошибка ИИ-полировки",
|
||
"meeting.viewDetailError": "Не удалось загрузить детали встречи",
|
||
"meeting.startRecordingError": "Не удалось начать запись",
|
||
"meeting.diarize": "Определить говорящих",
|
||
"meeting.diarizing": "Определение говорящих...",
|
||
"meeting.diarizeComplete": "Определение завершено",
|
||
"meeting.speaker": "Говорящий",
|
||
"settings.hfToken": "Токен HuggingFace",
|
||
"settings.hfTokenHint": "Токен HuggingFace необходим для определения говорящих",
|
||
"settings.diarization": "Диаризация",
|
||
"settings.diarizationHint": "Автоматически определять говорящих после завершения записи",
|
||
"theme.label": "Тема",
|
||
"theme.dark": "Тёмная",
|
||
"theme.light": "Светлая",
|
||
"theme.auto": "Авто (система)",
|
||
"theme.nord": "Nord",
|
||
"theme.solarized": "Solarized",
|
||
"theme.catppuccin": "Catppuccin",
|
||
"theme.dracula": "Dracula"
|
||
}
|