feat: add full Russian language support; update Readme.md files, and .gitignore update (#514)

* feat: add Russian locale

- Add ru translations and register namespaces

- Add Russian to supported languages list

- Ignore .gemini workspace config

* fix: improve Russian plural forms in sidebar translations

Add proper Russian plural forms (few/many) for correct grammar with different count values

* docs(readme): add Russian translation and fix language switcher order

- Create README.ru.md based on the current English README.
- Update language switchers in all localized README files so
    English comes first, Russian second, and the remaining
    languages follow.
- Fix the issue where the current language was not shown
    correctly in the switcher for some localized README files

* fix(readme): fix language switcher positions and markdown issues

- Fix language switcher positions in README.md.
- Add bash language tags to command code blocks in README.ru.md.

* fix(readme): fix tool setup step numbering

- Fix tool setup step numbering in README.md and localized README files.

* fix(gitignore): allow translation task files to be tracked

Add exceptions to .gitignore for task translation files across multiple locales
(en, ja, ru, ko, zh-CN) to enable version control of translated content while
keeping generated task files ignored.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* feat(i18n): add Russian translation for tasks

Add Russian locale translation file for TaskMaster task management interface.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* fix: ignore missing tasks.json files for ko and zh-cn locales

* Delete .worktrees directory

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Igor Zarubin
2026-03-09 18:07:16 +08:00
committed by GitHub
parent 8afb46af2e
commit c7dcba8d91
15 changed files with 1550 additions and 14 deletions

7
.gitignore vendored
View File

@@ -108,7 +108,7 @@ temp/
.serena/
CLAUDE.md
.mcp.json
.gemini/
# Database files
*.db
@@ -130,3 +130,8 @@ dev-debug.log
# Task files
tasks.json
tasks/
# Translations
!src/i18n/locales/en/tasks.json
!src/i18n/locales/ja/tasks.json
!src/i18n/locales/ru/tasks.json

View File

@@ -6,7 +6,7 @@
[Claude Code](https://docs.anthropic.com/en/docs/claude-code)、[Cursor CLI](https://docs.cursor.com/en/cli/overview)、[Codex](https://developers.openai.com/codex) 向けのデスクトップ・モバイル UI です。ローカルまたはリモートで使用して、Claude Code、Cursor、Codex のアクティブなプロジェクトやセッションを確認し、どこからでも(モバイルやデスクトップから)変更を加えることができます。どこでも使える適切なインターフェースを提供します。
<div align="right"><i><a href="./README.md">English</a> · <a href="./README.ko.md">한국어</a> · <a href="./README.zh-CN.md">中文</a></i></div>
<div align="right"><i><a href="./README.md">English</a> · <a href="./README.ru.md">Русский</a> · <a href="./README.ko.md">한국어</a> · <a href="./README.zh-CN.md">中文</a> · <b>日本語</b></i></div>
## スクリーンショット
@@ -193,8 +193,8 @@ npm run dev
Claude Code の全機能を使用するには、手動でツールを有効にする必要があります:
1. **ツール設定を開く** - サイドバーの歯車アイコンをクリック
3. **選択的に有効化** - 必要なツールのみを有効にする
4. **設定を適用** - 環境設定はローカルに保存されます
2. **選択的に有効化** - 必要なツールのみを有効にする
3. **設定を適用** - 環境設定はローカルに保存されます
<div align="center">

View File

@@ -6,7 +6,7 @@
[Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Cursor CLI](https://docs.cursor.com/en/cli/overview) 및 [Codex](https://developers.openai.com/codex)를 위한 데스크톱 및 모바일 UI입니다. 로컬 또는 원격으로 사용하여 Claude Code, Cursor 또는 Codex의 활성 프로젝트와 세션을 확인하고, 어디서든(모바일 또는 데스크톱) 변경할 수 있습니다. 어디서든 작동하는 적절한 인터페이스를 제공합니다.
<div align="right"><i><a href="./README.md">English</a> · <a href="./README.zh-CN.md">中文</a> · <a href="./README.ja.md">日本語</a></i></div>
<div align="right"><i><a href="./README.md">English</a> · <a href="./README.ru.md">Русский</a> · <b>한국어</b> · <a href="./README.zh-CN.md">中文</a> · <a href="./README.ja.md">日本語</a></i></div>
## 스크린샷
@@ -193,8 +193,8 @@ npm run dev
Claude Code의 전체 기능을 사용하려면 수동으로 도구를 활성화해야 합니다:
1. **도구 설정 열기** - 사이드바의 톱니바퀴 아이콘을 클릭
3. **선택적으로 활성화** - 필요한 도구만 활성화
4. **설정 적용** - 환경설정은 로컬에 저장됩니다
2. **선택적으로 활성화** - 필요한 도구만 활성화
3. **설정 적용** - 환경설정은 로컬에 저장됩니다
<div align="center">

View File

@@ -15,7 +15,7 @@
<a href="https://trendshift.io/repositories/15586" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15586" alt="siteboon%2Fclaudecodeui | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</p>
<div align="right"><i><b>English</b> · <a href="./README.ko.md">한국어</a> · <a href="./README.zh-CN.md">中文</a> · <a href="./README.ja.md">日本語</a></i></div>
<div align="right"><i><b>English</b> · <a href="./README.ru.md">Русский</a> · <a href="./README.ko.md">한국어</a> · <a href="./README.zh-CN.md">中文</a> · <a href="./README.ja.md">日本語</a></i></div>
---
@@ -129,8 +129,8 @@ CloudCLI UI is the open source UI layer that powers CloudCLI Cloud. You can self
To use Claude Code's full functionality, you'll need to manually enable tools:
1. **Open Tools Settings** - Click the gear icon in the sidebar
3. **Enable Selectively** - Turn on only the tools you need
4. **Apply Settings** - Your preferences are saved locally
2. **Enable Selectively** - Turn on only the tools you need
3. **Apply Settings** - Your preferences are saved locally
<div align="center">

218
README.ru.md Normal file
View File

@@ -0,0 +1,218 @@
<div align="center">
<img src="public/logo.svg" alt="CloudCLI UI" width="64" height="64">
<h1>Cloud CLI (aka Claude Code UI)</h1>
</div>
Десктопный и мобильный UI для [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Cursor CLI](https://docs.cursor.com/en/cli/overview), [Codex](https://developers.openai.com/codex) и [Gemini-CLI](https://geminicli.com/). Его можно использовать локально или удаленно, чтобы просматривать активные проекты и сессии и вносить изменения откуда угодно, с мобильного или десктопа. Это дает полноценный интерфейс, который работает везде.
<p align="center">
<a href="https://cloudcli.ai">CloudCLI Cloud</a> · <a href="https://discord.gg/buxwujPNRE">Discord</a> · <a href="https://github.com/siteboon/claudecodeui/issues">Сообщить об ошибке</a> · <a href="CONTRIBUTING.md">Участие в разработке</a>
</p>
<p align="center">
<a href="https://discord.gg/buxwujPNRE"><img src="https://img.shields.io/badge/Discord-Join%20Community-5865F2?logo=discord&logoColor=white" alt="Join our Discord"></a>
<a href="https://trendshift.io/repositories/15586" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15586" alt="siteboon%2Fclaudecodeui | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</p>
<div align="right"><i><a href="./README.md">English</a> · <b>Русский</b> · <a href="./README.ko.md">한국어</a> · <a href="./README.zh-CN.md">中文</a> · <a href="./README.ja.md">日本語</a></i></div>
## Скриншоты
<div align="center">
<table>
<tr>
<td align="center">
<h3>Версия для десктопа</h3>
<img src="public/screenshots/desktop-main.png" alt="Desktop Interface" width="400">
<br>
<em>Основной интерфейс с обзором проекта и чатом</em>
</td>
<td align="center">
<h3>Мобильный режим</h3>
<img src="public/screenshots/mobile-chat.png" alt="Mobile Interface" width="250">
<br>
<em>Адаптивный мобильный интерфейс с сенсорной навигацией</em>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<h3>Выбор CLI</h3>
<img src="public/screenshots/cli-selection.png" alt="CLI Selection" width="400">
<br>
<em>Выбор между Claude Code, Cursor CLI, Codex и Gemini CLI</em>
</td>
</tr>
</table>
</div>
## Возможности
- **Адаптивный дизайн** - одинаково хорошо работает на десктопе, планшете и телефоне, поэтому пользоваться агентами можно и с мобильных устройств
- **Интерактивный чат-интерфейс** - встроенный чат для удобного взаимодействия с агентами
- **Встроенный shell-терминал** - прямой доступ к CLI агентов через встроенную оболочку
- **Файловый менеджер** - интерактивное дерево файлов с подсветкой синтаксиса и live-редактированием
- **Git Explorer** - просмотр, stage и commit изменений, а также переключение веток
- **Управление сессиями** - возобновление диалогов, работа с несколькими сессиями и история
- **Интеграция с TaskMaster AI** *(опционально)* - расширенное управление проектами с AI-планированием задач, разбором PRD и автоматизацией workflows
- **Совместимость с моделями** - работает с Claude Sonnet 4.5, Opus 4.5, GPT-5.2 и Gemini.
## Быстрый старт
### CloudCLI Cloud (рекомендуется)
Самый быстрый способ начать работу: локальная настройка не требуется. Вы получаете полностью управляемую контейнеризированную среду разработки с доступом из браузера, мобильного приложения, API или любимой IDE.
**[Начать с CloudCLI Cloud](https://cloudcli.ai)**
### Self-Hosted (open source)
Попробовать CloudCLI UI можно сразу через **npx** (нужен **Node.js** v22+):
```bash
npx @siteboon/claude-code-ui
```
Или установить **глобально** для постоянного использования:
```bash
npm install -g @siteboon/claude-code-ui
cloudcli
```
Откройте `http://localhost:3001` — все существующие сессии будут обнаружены автоматически.
Больше вариантов настройки, PM2, удаленный сервер и остальное описаны в **[документации →](https://cloudcli.ai/docs)**
---
## Какой вариант подойдет вам?
CloudCLI UI - это open source UI-слой, на котором построен CloudCLI Cloud. Вы можете развернуть его у себя на машине или использовать CloudCLI Cloud, который добавляет полностью управляемую облачную среду, командные функции и более глубокие интеграции.
| | CloudCLI UI (self-hosted) | CloudCLI Cloud |
|---|---|---|
| **Лучше всего подходит для** | Разработчиков, которым нужен полноценный UI для локальных агентских сессий на своей машине | Команд и разработчиков, которым нужны агенты в облаке с доступом откуда угодно |
| **Способ доступа** | Браузер через `[yourip]:port` | Браузер, любая IDE, REST API, n8n |
| **Настройка** | `npx @siteboon/claude-code-ui` | Настройка не требуется |
| **Машина должна оставаться включенной** | Да | Нет |
| **Доступ с мобильных устройств** | Любой браузер в вашей сети | Любое устройство, нативное приложение в разработке |
| **Доступные сессии** | Все сессии автоматически обнаруживаются в `~/.claude` | Все сессии внутри вашей облачной среды |
| **Поддерживаемые агенты** | Claude Code, Cursor CLI, Codex, Gemini CLI | Claude Code, Cursor CLI, Codex, Gemini CLI |
| **Файловый менеджер и Git** | Да, встроены в UI | Да, встроены в UI |
| **Конфигурация MCP** | Управляется через UI, синхронизируется с локальным `~/.claude` | Управляется через UI |
| **Доступ из IDE** | Ваша локальная IDE | Любая IDE, подключенная к облачной среде |
| **REST API** | Да | Да |
| **Узел n8n** | Нет | Да |
| **Совместная работа в команде** | Нет | Да |
| **Стоимость платформы** | Бесплатно, open source | От $7/месяц |
> В обоих вариантах используются ваши собственные AI-подписки (Claude, Cursor и т.д.) — CloudCLI предоставляет среду, а не сам AI.
---
## Безопасность и настройка инструментов
**🔒 Важно**: все инструменты Claude Code **по умолчанию отключены**. Это предотвращает автоматический запуск потенциально опасных операций.
### Включение инструментов
Чтобы использовать всю функциональность Claude Code, инструменты нужно включить вручную:
1. **Откройте настройки инструментов** - нажмите на иконку шестеренки в боковой панели
2. **Включайте выборочно** - активируйте только те инструменты, которые действительно нужны
3. **Примените настройки** - предпочтения сохраняются локально
<div align="center">
![Tools Settings Modal](public/screenshots/tools-modal.png)
*Окно настройки инструментов - включайте только то, что вам нужно*
</div>
**Рекомендуемый подход**: начните с базовых инструментов и добавляйте остальные по мере необходимости. Эти настройки всегда можно поменять позже.
---
## FAQ
<details>
<summary>Чем это отличается от Claude Code Remote Control?</summary>
Claude Code Remote Control позволяет отправлять сообщения в сессию, уже запущенную в локальном терминале. При этом ваша машина должна оставаться включенной, терминал должен быть открыт, а сессии завершаются примерно через 10 минут без сетевого соединения.
CloudCLI UI и CloudCLI Cloud расширяют Claude Code, а не работают рядом с ним — ваши MCP-серверы, разрешения, настройки и сессии остаются теми же самыми, что и в нативном Claude Code. Ничего не дублируется и не управляется отдельно.
Вот что это означает на практике:
- **Все ваши сессии, а не одна** — CloudCLI UI автоматически находит каждую сессию из папки `~/.claude`. Remote Control предоставляет только одну активную сессию, чтобы сделать ее доступной в мобильном приложении Claude.
- **Ваши настройки остаются вашими** — MCP-серверы, права инструментов и конфигурация проекта, измененные в CloudCLI UI, записываются напрямую в конфиг Claude Code и вступают в силу сразу же, и наоборот.
- **Поддержка большего числа агентов** — Claude Code, Cursor CLI, Codex и Gemini CLI, а не только Claude Code.
- **Полноценный UI, а не просто окно чата** — встроены файловый менеджер, Git-интеграция, управление MCP и shell-терминал.
- **CloudCLI Cloud работает в облаке** — можно закрыть ноутбук, а агент продолжит работу. Не нужно держать терминал открытым и машину в активном состоянии.
</details>
<details>
<summary>Нужно ли отдельно платить за AI-подписку?</summary>
Да. CloudCLI предоставляет среду, а не сам AI. Вы используете собственную подписку Claude, Cursor, Codex или Gemini. CloudCLI Cloud стоит от $7/месяц за хостируемую среду сверх этого.
</details>
<details>
<summary>Можно ли пользоваться CloudCLI UI с телефона?</summary>
Да. Для self-hosted запустите сервер на своей машине и откройте `[yourip]:port` в любом браузере внутри вашей сети. Для CloudCLI Cloud откройте сервис с любого устройства — без VPN, проброса портов и дополнительной настройки. Нативное приложение тоже разрабатывается.
</details>
<details>
<summary>Повлияют ли изменения, сделанные в UI, на мой локальный Claude Code?</summary>
Да, в self-hosted режиме. CloudCLI UI читает и записывает тот же конфиг `~/.claude`, который нативно использует Claude Code. MCP-серверы, добавленные через UI, сразу появляются в Claude Code, и наоборот.
</details>
---
## Сообщество и поддержка
- **[Документация](https://cloudcli.ai/docs)** — установка, настройка, возможности и устранение неполадок
- **[Discord](https://discord.gg/buxwujPNRE)** — помощь и общение с другими пользователями
- **[GitHub Issues](https://github.com/siteboon/claudecodeui/issues)** — баг-репорты и запросы новых функций
- **[Руководство для контрибьюторов](CONTRIBUTING.md)** — как участвовать в развитии проекта
## Лицензия
GNU General Public License v3.0 - подробности в файле [LICENSE](LICENSE).
Этот проект открыт и может свободно использоваться, изменяться и распространяться по лицензии GPL v3.
## Благодарности
### Используется
- **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** - официальный CLI от Anthropic
- **[Cursor CLI](https://docs.cursor.com/en/cli/overview)** - официальный CLI от Cursor
- **[Codex](https://developers.openai.com/codex)** - OpenAI Codex
- **[Gemini-CLI](https://geminicli.com/)** - Google Gemini CLI
- **[React](https://react.dev/)** - библиотека пользовательских интерфейсов
- **[Vite](https://vitejs.dev/)** - быстрый инструмент сборки и dev-сервер
- **[Tailwind CSS](https://tailwindcss.com/)** - utility-first CSS framework
- **[CodeMirror](https://codemirror.net/)** - продвинутый редактор кода
- **[TaskMaster AI](https://github.com/eyaltoledano/claude-task-master)** *(опционально)* - AI-управление проектами и планирование задач
### Спонсоры
- [Siteboon - AI powered website builder](https://siteboon.ai)
---
<div align="center">
<strong>Сделано с любовью к сообществу Claude Code, Cursor и Codex.</strong>
</div>

View File

@@ -6,7 +6,7 @@
[Claude Code](https://docs.anthropic.com/en/docs/claude-code)、[Cursor CLI](https://docs.cursor.com/en/cli/overview) 和 [Codex](https://developers.openai.com/codex) 的桌面端和移动端界面。您可以在本地或远程使用它来查看 Claude Code、Cursor 或 Codex 中的活跃项目和会话,并从任何地方(移动端或桌面端)对它们进行修改。这为您提供了一个在任何地方都能正常使用的合适界面。
<div align="right"><i><a href="./README.md">English</a> · <a href="./README.ko.md">한국어</a> · <a href="./README.ja.md">日本語</a></i></div>
<div align="right"><i><a href="./README.md">English</a> · <a href="./README.ru.md">Русский</a> · <a href="./README.ko.md">한국어</a> · <b>中文</b> · <a href="./README.ja.md">日本語</a></i></div>
## 截图
@@ -194,8 +194,8 @@ npm run dev
要使用 Claude Code 的完整功能,您需要手动启用工具:
1. **打开工具设置** - 点击侧边栏中的齿轮图标
3. **选择性启用** - 仅打开您需要的工具
4. **应用设置** - 您的偏好设置将保存在本地
2. **选择性启用** - 仅打开您需要的工具
3. **应用设置** - 您的偏好设置将保存在本地
<div align="center">
@@ -344,4 +344,4 @@ GNU General Public License v3.0 - 详见 [LICENSE](LICENSE) 文件。
<div align="center">
<strong>为 Claude Code、Cursor 和 Codex 社区精心打造。</strong>
</div>
</div>

View File

@@ -49,6 +49,15 @@ import jaCodeEditor from './locales/ja/codeEditor.json';
// eslint-disable-next-line import-x/order
import jaTasks from './locales/ja/tasks.json';
import ruCommon from './locales/ru/common.json';
import ruSettings from './locales/ru/settings.json';
import ruAuth from './locales/ru/auth.json';
import ruSidebar from './locales/ru/sidebar.json';
import ruChat from './locales/ru/chat.json';
import ruCodeEditor from './locales/ru/codeEditor.json';
// eslint-disable-next-line import-x/order
import ruTasks from './locales/ru/tasks.json';
// Import supported languages configuration
import { languages } from './languages.js';
@@ -107,6 +116,15 @@ i18n
codeEditor: jaCodeEditor,
tasks: jaTasks,
},
ru: {
common: ruCommon,
settings: ruSettings,
auth: ruAuth,
sidebar: ruSidebar,
chat: ruChat,
codeEditor: ruCodeEditor,
tasks: ruTasks,
},
},
// Default language

View File

@@ -29,6 +29,11 @@ export const languages = [
label: 'Japanese',
nativeName: '日本語',
},
{
value: 'ru',
label: 'Russian',
nativeName: 'Русский',
},
];
/**

View File

@@ -0,0 +1,37 @@
{
"login": {
"title": "Добро пожаловать",
"description": "Войдите в свой аккаунт Claude Code UI",
"username": "Имя пользователя",
"password": "Пароль",
"submit": "Войти",
"loading": "Вход...",
"errors": {
"invalidCredentials": "Неверное имя пользователя или пароль",
"requiredFields": "Пожалуйста, заполните все поля",
"networkError": "Ошибка сети. Попробуйте снова."
},
"placeholders": {
"username": "Введите имя пользователя",
"password": "Введите пароль"
}
},
"register": {
"title": "Создать аккаунт",
"username": "Имя пользователя",
"password": "Пароль",
"confirmPassword": "Подтвердите пароль",
"submit": "Создать аккаунт",
"loading": "Создание аккаунта...",
"errors": {
"passwordMismatch": "Пароли не совпадают",
"usernameTaken": "Имя пользователя уже занято",
"weakPassword": "Пароль слишком слабый"
}
},
"logout": {
"title": "Выйти",
"confirm": "Вы уверены, что хотите выйти?",
"button": "Выйти"
}
}

View File

@@ -0,0 +1,269 @@
{
"codeBlock": {
"copy": "Копировать",
"copied": "Скопировано",
"copyCode": "Копировать код"
},
"copyMessage": {
"copy": "Копировать сообщение",
"copied": "Сообщение скопировано"
},
"messageTypes": {
"user": "П",
"error": "Ошибка",
"tool": "Инструмент",
"claude": "Claude",
"cursor": "Cursor",
"codex": "Codex",
"gemini": "Gemini"
},
"tools": {
"settings": "Настройки инструмента",
"error": "Ошибка инструмента",
"result": "Результат инструмента",
"viewParams": "Просмотр входных параметров",
"viewRawParams": "Просмотр сырых параметров",
"viewDiff": "Просмотр различий редактирования для",
"creatingFile": "Создание нового файла:",
"updatingTodo": "Обновление списка задач",
"read": "Чтение",
"readFile": "Чтение файла",
"updateTodo": "Обновить список задач",
"readTodo": "Прочитать список задач",
"searchResults": "результаты"
},
"search": {
"found": "Найдено {{count}} {{type}}",
"file": "файл",
"files": "файлов",
"pattern": "шаблон:",
"in": "в:"
},
"fileOperations": {
"updated": "Файл успешно обновлен",
"created": "Файл успешно создан",
"written": "Файл успешно записан",
"diff": "Различия",
"newFile": "Новый файл",
"viewContent": "Просмотр содержимого файла",
"viewFullOutput": "Просмотр полного вывода ({{count}} символов)",
"contentDisplayed": "Содержимое файла отображено в представлении различий выше"
},
"interactive": {
"title": "Интерактивный запрос",
"waiting": "Ожидание вашего ответа в CLI",
"instruction": "Пожалуйста, выберите опцию в терминале, где запущен Claude.",
"selectedOption": "✓ Claude выбрал опцию {{number}}",
"instructionDetail": "В CLI вы бы выбрали эту опцию интерактивно, используя клавиши со стрелками или введя номер."
},
"thinking": {
"title": "Думаю...",
"emoji": "💭 Думаю..."
},
"json": {
"response": "JSON ответ"
},
"permissions": {
"grant": "Предоставить разрешение для {{tool}}",
"added": "Разрешение добавлено",
"addTo": "Добавляет {{entry}} в разрешенные инструменты.",
"retry": "Разрешение сохранено. Повторите запрос для использования инструмента.",
"error": "Не удалось обновить разрешения. Попробуйте снова.",
"openSettings": "Открыть настройки"
},
"todo": {
"updated": "Список задач успешно обновлен",
"current": "Текущий список задач"
},
"plan": {
"viewPlan": "📋 Просмотр плана реализации",
"title": "План реализации"
},
"usageLimit": {
"resetAt": "Достигнут лимит использования Claude. Ваш лимит будет сброшен в **{{time}} {{timezone}}** - {{date}}"
},
"codex": {
"permissionMode": "Режим разрешений",
"modes": {
"default": "Режим по умолчанию",
"acceptEdits": "Принимать правки",
"bypassPermissions": "Обход разрешений",
"plan": "Режим планирования"
},
"descriptions": {
"default": "Только доверенные команды (ls, cat, grep, git status и т.д.) выполняются автоматически. Другие команды пропускаются. Может записывать в рабочее пространство.",
"acceptEdits": "Все команды выполняются автоматически в рабочем пространстве. Полный автоматический режим с изолированным выполнением.",
"bypassPermissions": "Полный системный доступ без ограничений. Все команды выполняются автоматически с полным доступом к диску и сети. Используйте с осторожностью.",
"plan": "Режим планирования - команды не выполняются"
},
"technicalDetails": "Технические детали"
},
"gemini": {
"permissionMode": "Режим разрешений Gemini",
"description": "Управление тем, как Gemini CLI обрабатывает подтверждения операций.",
"modes": {
"default": {
"title": "Стандартный (запрашивать подтверждение)",
"description": "Gemini будет запрашивать подтверждение перед выполнением команд, записью файлов и получением веб-ресурсов."
},
"autoEdit": {
"title": "Автоматическое редактирование (пропускать подтверждения файлов)",
"description": "Gemini будет автоматически подтверждать редактирование файлов и веб-запросы, но все еще будет запрашивать подтверждение для команд оболочки."
},
"yolo": {
"title": "YOLO (обход всех разрешений)",
"description": "Gemini будет выполнять все операции без запроса подтверждения. Будьте осторожны."
}
}
},
"input": {
"placeholder": "Введите / для команд, @ для файлов, или спросите {{provider}} что угодно...",
"placeholderDefault": "Введите ваше сообщение...",
"disabled": "Ввод отключен",
"attachFiles": "Прикрепить файлы",
"attachImages": "Прикрепить изображения",
"send": "Отправить",
"stop": "Остановить",
"hintText": {
"ctrlEnter": "Ctrl+Enter для отправки • Shift+Enter для новой строки • Tab для смены режима • / для команд",
"enter": "Enter для отправки • Shift+Enter для новой строки • Tab для смены режима • / для команд"
},
"clickToChangeMode": "Нажмите для смены режима разрешений (или нажмите Tab в поле ввода)",
"showAllCommands": "Показать все команды",
"clearInput": "Очистить ввод",
"scrollToBottom": "Прокрутить вниз"
},
"thinkingMode": {
"selector": {
"title": "Режим размышления",
"description": "Расширенное размышление дает Claude больше времени для оценки альтернатив",
"active": "Активен",
"tip": "Более высокие режимы размышления занимают больше времени, но обеспечивают более тщательный анализ"
},
"modes": {
"none": {
"name": "Стандартный",
"description": "Обычный ответ Claude",
"prefix": ""
},
"think": {
"name": "Думать",
"description": "Базовое расширенное размышление",
"prefix": "думать"
},
"thinkHard": {
"name": "Думать усердно",
"description": "Более тщательная оценка",
"prefix": "думать усердно"
},
"thinkHarder": {
"name": "Думать еще усерднее",
"description": "Глубокий анализ с альтернативами",
"prefix": "думать еще усерднее"
},
"ultrathink": {
"name": "Ультра-размышление",
"description": "Максимальный бюджет размышления",
"prefix": "ультра-размышление"
}
},
"buttonTitle": "Режим размышления: {{mode}}"
},
"providerSelection": {
"title": "Выберите вашего AI-ассистента",
"description": "Выберите провайдера для начала нового разговора",
"selectModel": "Выбрать модель",
"providerInfo": {
"anthropic": "от Anthropic",
"openai": "от OpenAI",
"cursorEditor": "AI редактор кода",
"google": "от Google"
},
"readyPrompt": {
"claude": "Готов использовать Claude с {{model}}. Начните вводить сообщение ниже.",
"cursor": "Готов использовать Cursor с {{model}}. Начните вводить сообщение ниже.",
"codex": "Готов использовать Codex с {{model}}. Начните вводить сообщение ниже.",
"gemini": "Готов использовать Gemini с {{model}}. Начните вводить сообщение ниже.",
"default": "Выберите провайдера выше для начала"
}
},
"session": {
"continue": {
"title": "Продолжить разговор",
"description": "Задавайте вопросы о вашем коде, запрашивайте изменения или получайте помощь с задачами разработки"
},
"loading": {
"olderMessages": "Загрузка старых сообщений...",
"sessionMessages": "Загрузка сообщений сеанса..."
},
"messages": {
"showingOf": "Показано {{shown}} из {{total}} сообщений",
"scrollToLoad": "Прокрутите вверх для загрузки еще",
"showingLast": "Показаны последние {{count}} сообщений (всего {{total}})",
"loadEarlier": "Загрузить более ранние сообщения",
"loadAll": "Загрузить все сообщения",
"loadingAll": "Загрузка всех сообщений...",
"allLoaded": "Все сообщения загружены",
"perfWarning": "Все сообщения загружены — прокрутка может быть медленнее. Нажмите \"Прокрутить вниз\" для восстановления производительности."
}
},
"shell": {
"selectProject": {
"title": "Выберите проект",
"description": "Выберите проект для открытия интерактивной оболочки в этом каталоге"
},
"status": {
"newSession": "Новый сеанс",
"initializing": "Инициализация...",
"restarting": "Перезапуск..."
},
"actions": {
"disconnect": "Отключиться",
"disconnectTitle": "Отключиться от оболочки",
"restart": "Перезапустить",
"restartTitle": "Перезапустить оболочку (сначала отключитесь)",
"connect": "Продолжить в оболочке",
"connectTitle": "Подключиться к оболочке"
},
"loading": "Загрузка терминала...",
"connecting": "Подключение к оболочке...",
"startSession": "Начать новый сеанс Claude",
"resumeSession": "Возобновить сеанс: {{displayName}}...",
"runCommand": "Выполнить {{command}} в {{projectName}}",
"startCli": "Запуск Claude CLI в {{projectName}}",
"defaultCommand": "команда"
},
"claudeStatus": {
"actions": {
"thinking": "Думает",
"processing": "Обрабатывает",
"analyzing": "Анализирует",
"working": "Работает",
"computing": "Вычисляет",
"reasoning": "Рассуждает"
},
"state": {
"live": "В сети",
"paused": "Приостановлен"
},
"elapsed": {
"seconds": "{{count}}с",
"minutesSeconds": "{{minutes}}м {{seconds}}с",
"label": "Прошло {{time}}",
"startingNow": "Начинается сейчас"
},
"controls": {
"stopGeneration": "Остановить генерацию",
"pressEscToStop": "Нажмите Esc в любое время для остановки"
},
"providers": {
"assistant": "Ассистент"
}
},
"projectSelection": {
"startChatWithProvider": "Выберите проект для начала чата с {{provider}}"
},
"tasks": {
"nextTaskPrompt": "Начать следующую задачу"
}
}

View File

@@ -0,0 +1,36 @@
{
"toolbar": {
"changes": "изменения",
"previousChange": "Предыдущее изменение",
"nextChange": "Следующее изменение",
"hideDiff": "Скрыть подсветку различий",
"showDiff": "Показать подсветку различий",
"settings": "Настройки редактора",
"collapse": "Свернуть редактор",
"expand": "Развернуть редактор на всю ширину"
},
"loading": "Загрузка {{fileName}}...",
"header": {
"showingChanges": "Показаны изменения"
},
"actions": {
"download": "Скачать файл",
"save": "Сохранить",
"saving": "Сохранение...",
"saved": "Сохранено!",
"exitFullscreen": "Выйти из полноэкранного режима",
"fullscreen": "Полноэкранный режим",
"close": "Закрыть",
"previewMarkdown": "Предпросмотр markdown",
"editMarkdown": "Редактировать markdown"
},
"footer": {
"lines": "Строк:",
"characters": "Символов:",
"shortcuts": "Нажмите Ctrl+S для сохранения • Esc для закрытия"
},
"binaryFile": {
"title": "Бинарный файл",
"message": "Файл \"{{fileName}}\" не может быть отображен в текстовом редакторе, так как это бинарный файл."
}
}

View File

@@ -0,0 +1,238 @@
{
"buttons": {
"save": "Сохранить",
"cancel": "Отмена",
"delete": "Удалить",
"create": "Создать",
"edit": "Редактировать",
"close": "Закрыть",
"confirm": "Подтвердить",
"submit": "Отправить",
"retry": "Повторить",
"refresh": "Обновить",
"search": "Поиск",
"clear": "Очистить",
"copy": "Копировать",
"download": "Скачать",
"upload": "Загрузить",
"browse": "Обзор"
},
"tabs": {
"chat": "Чат",
"shell": "Терминал",
"files": "Файлы",
"git": "Система контроля версий",
"tasks": "Задачи"
},
"status": {
"loading": "Загрузка...",
"success": "Успешно",
"error": "Ошибка",
"failed": "Не удалось",
"pending": "Ожидание",
"completed": "Завершено",
"inProgress": "В процессе"
},
"messages": {
"savedSuccessfully": "Успешно сохранено",
"deletedSuccessfully": "Успешно удалено",
"updatedSuccessfully": "Успешно обновлено",
"operationFailed": "Операция не удалась",
"networkError": "Ошибка сети. Проверьте подключение.",
"unauthorized": "Не авторизован. Пожалуйста, войдите.",
"notFound": "Не найдено",
"invalidInput": "Неверный ввод",
"requiredField": "Это поле обязательно",
"unknownError": "Произошла неизвестная ошибка"
},
"navigation": {
"settings": "Настройки",
"home": "Главная",
"back": "Назад",
"next": "Далее",
"previous": "Предыдущий",
"logout": "Выйти"
},
"common": {
"language": "Язык",
"theme": "Тема",
"darkMode": "Темная тема",
"lightMode": "Светлая тема",
"name": "Имя",
"description": "Описание",
"enabled": "Включено",
"disabled": "Отключено",
"optional": "Необязательно",
"version": "Версия",
"select": "Выбрать",
"selectAll": "Выбрать все",
"deselectAll": "Снять выделение"
},
"time": {
"justNow": "Только что",
"minutesAgo": "{{count}} мин. назад",
"hoursAgo": "{{count}} ч. назад",
"daysAgo": "{{count}} дн. назад",
"yesterday": "Вчера"
},
"fileOperations": {
"newFile": "Новый файл",
"newFolder": "Новая папка",
"rename": "Переименовать",
"move": "Переместить",
"copyPath": "Копировать путь",
"openInEditor": "Открыть в редакторе"
},
"mainContent": {
"loading": "Загрузка Claude Code UI",
"settingUpWorkspace": "Настройка рабочего пространства...",
"chooseProject": "Выберите проект",
"selectProjectDescription": "Выберите проект на боковой панели, чтобы начать работу с Claude. Каждый проект содержит ваши сеансы чата и историю файлов.",
"tip": "Совет",
"createProjectMobile": "Нажмите кнопку меню выше для доступа к проектам",
"createProjectDesktop": "Создайте новый проект, нажав на значок папки на боковой панели",
"newSession": "Новый сеанс",
"untitledSession": "Безымянный сеанс",
"projectFiles": "Файлы проекта"
},
"fileTree": {
"loading": "Загрузка файлов...",
"files": "Файлы",
"simpleView": "Простой вид",
"compactView": "Компактный вид",
"detailedView": "Подробный вид",
"searchPlaceholder": "Поиск файлов и папок...",
"clearSearch": "Очистить поиск",
"name": "Имя",
"size": "Размер",
"modified": "Изменено",
"permissions": "Права доступа",
"noFilesFound": "Файлы не найдены",
"checkProjectPath": "Проверьте доступность пути к проекту",
"noMatchesFound": "Совпадений не найдено",
"tryDifferentSearch": "Попробуйте другой поисковый запрос или очистите поиск",
"justNow": "только что",
"minAgo": "{{count}} мин. назад",
"hoursAgo": "{{count}} ч. назад",
"daysAgo": "{{count}} дн. назад",
"newFile": "Новый файл (Cmd+N)",
"newFolder": "Новая папка (Cmd+Shift+N)",
"refresh": "Обновить",
"collapseAll": "Свернуть все",
"context": {
"rename": "Переименовать",
"delete": "Удалить",
"copyPath": "Копировать путь",
"download": "Скачать",
"newFile": "Новый файл",
"newFolder": "Новая папка",
"refresh": "Обновить",
"menuLabel": "Контекстное меню файла",
"loading": "Загрузка..."
}
},
"projectWizard": {
"title": "Создать новый проект",
"steps": {
"type": "Тип",
"configure": "Настройка",
"confirm": "Подтверждение"
},
"step1": {
"question": "У вас уже есть рабочее пространство или вы хотите создать новое?",
"existing": {
"title": "Существующее рабочее пространство",
"description": "У меня уже есть рабочее пространство на сервере, нужно только добавить его в список проектов"
},
"new": {
"title": "Новое рабочее пространство",
"description": "Создать новое рабочее пространство, опционально клонировать из репозитория GitHub"
}
},
"step2": {
"existingPath": "Путь к рабочему пространству",
"newPath": "Путь к рабочему пространству",
"existingPlaceholder": "/путь/к/существующему/пространству",
"newPlaceholder": "/путь/к/новому/пространству",
"existingHelp": "Полный путь к каталогу вашего рабочего пространства",
"newHelp": "Полный путь к каталогу вашего рабочего пространства",
"githubUrl": "URL GitHub (необязательно)",
"githubPlaceholder": "https://github.com/username/repository",
"githubHelp": "Необязательно: укажите URL GitHub для клонирования репозитория",
"githubAuth": "Аутентификация GitHub (необязательно)",
"githubAuthHelp": "Требуется только для приватных репозиториев. Публичные репозитории можно клонировать без аутентификации.",
"loadingTokens": "Загрузка сохраненных токенов...",
"storedToken": "Сохраненный токен",
"newToken": "Новый токен",
"nonePublic": "Нет (публичный)",
"selectToken": "Выбрать токен",
"selectTokenPlaceholder": "-- Выберите токен --",
"tokenPlaceholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"tokenHelp": "Этот токен будет использован только для этой операции",
"publicRepoInfo": "Публичные репозитории не требуют аутентификации. Вы можете пропустить токен при клонировании публичного репозитория.",
"noTokensHelp": "Нет доступных сохраненных токенов. Вы можете добавить токены в Настройки → API ключи для удобного повторного использования.",
"optionalTokenPublic": "Токен GitHub (необязательно для публичных репозиториев)",
"tokenPublicPlaceholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (оставьте пустым для публичных репозиториев)"
},
"step3": {
"reviewConfig": "Проверьте вашу конфигурацию",
"workspaceType": "Тип рабочего пространства:",
"existingWorkspace": "Существующее рабочее пространство",
"newWorkspace": "Новое рабочее пространство",
"path": "Путь:",
"cloneFrom": "Клонировать из:",
"authentication": "Аутентификация:",
"usingStoredToken": "Использование сохраненного токена:",
"usingProvidedToken": "Использование предоставленного токена",
"noAuthentication": "Без аутентификации",
"sshKey": "SSH ключ",
"existingInfo": "Рабочее пространство будет добавлено в список проектов и будет доступно для сеансов Claude/Cursor.",
"newWithClone": "Репозиторий будет клонирован в эту папку.",
"newEmpty": "Рабочее пространство будет добавлено в список проектов и будет доступно для сеансов Claude/Cursor.",
"cloningRepository": "Клонирование репозитория..."
},
"buttons": {
"cancel": "Отмена",
"back": "Назад",
"next": "Далее",
"createProject": "Создать проект",
"creating": "Создание...",
"cloning": "Клонирование..."
},
"errors": {
"selectType": "Пожалуйста, выберите, есть ли у вас существующее рабочее пространство или вы хотите создать новое",
"providePath": "Пожалуйста, укажите путь к рабочему пространству",
"failedToCreate": "Не удалось создать рабочее пространство",
"failedToCreateFolder": "Не удалось создать папку"
}
},
"versionUpdate": {
"title": "Доступно обновление",
"newVersionReady": "Новая версия готова",
"currentVersion": "Текущая версия",
"latestVersion": "Последняя версия",
"whatsNew": "Что нового:",
"viewFullRelease": "Посмотреть полный релиз",
"updateProgress": "Прогресс обновления:",
"manualUpgrade": "Ручное обновление:",
"npmUpgradeCommand": "npm install -g @siteboon/claude-code-ui@latest",
"manualUpgradeHint": "Или нажмите \"Обновить сейчас\" для автоматического обновления.",
"updateCompleted": "Обновление успешно завершено!",
"restartServer": "Пожалуйста, перезапустите сервер для применения изменений.",
"updateFailed": "Обновление не удалось",
"buttons": {
"close": "Закрыть",
"later": "Позже",
"copyCommand": "Копировать команду",
"updateNow": "Обновить сейчас",
"updating": "Обновление..."
},
"ariaLabels": {
"closeModal": "Закрыть модальное окно обновления версии",
"showSidebar": "Показать боковую панель",
"settings": "Настройки",
"updateAvailable": "Доступно обновление",
"closeSidebar": "Закрыть боковую панель"
}
}
}

View File

@@ -0,0 +1,434 @@
{
"title": "Настройки",
"tabs": {
"account": "Аккаунт",
"permissions": "Разрешения",
"mcpServers": "MCP серверы",
"appearance": "Внешний вид"
},
"account": {
"title": "Аккаунт",
"language": "Язык",
"languageLabel": "Язык интерфейса",
"languageDescription": "Выберите предпочитаемый язык для интерфейса",
"username": "Имя пользователя",
"email": "Email",
"profile": "Профиль",
"changePassword": "Изменить пароль"
},
"mcp": {
"title": "MCP серверы",
"addServer": "Добавить сервер",
"editServer": "Редактировать сервер",
"deleteServer": "Удалить сервер",
"serverName": "Имя сервера",
"serverType": "Тип сервера",
"config": "Конфигурация",
"testConnection": "Проверить подключение",
"status": "Статус",
"connected": "Подключен",
"disconnected": "Отключен",
"scope": {
"label": "Область",
"user": "Пользователь",
"project": "Проект"
}
},
"appearance": {
"title": "Внешний вид",
"theme": "Тема",
"codeEditor": "Редактор кода",
"editorTheme": "Тема редактора",
"wordWrap": "Перенос слов",
"showMinimap": "Показать миникарту",
"lineNumbers": "Номера строк",
"fontSize": "Размер шрифта"
},
"actions": {
"saveChanges": "Сохранить изменения",
"resetToDefaults": "Сбросить к значениям по умолчанию",
"cancelChanges": "Отменить изменения"
},
"quickSettings": {
"title": "Быстрые настройки",
"sections": {
"appearance": "Внешний вид",
"toolDisplay": "Отображение инструментов",
"viewOptions": "Параметры просмотра",
"inputSettings": "Настройки ввода",
"whisperDictation": "Диктовка Whisper"
},
"darkMode": "Темная тема",
"autoExpandTools": "Автоматически разворачивать инструменты",
"showRawParameters": "Показывать сырые параметры",
"showThinking": "Показывать размышления",
"autoScrollToBottom": "Автопрокрутка вниз",
"sendByCtrlEnter": "Отправка по Ctrl+Enter",
"sendByCtrlEnterDescription": "Когда включено, нажатие Ctrl+Enter будет отправлять сообщение вместо просто Enter. Это полезно для пользователей IME, чтобы избежать случайной отправки.",
"dragHandle": {
"dragging": "Перетаскивание ручки",
"closePanel": "Закрыть панель настроек",
"openPanel": "Открыть панель настроек",
"draggingStatus": "Перетаскивание...",
"toggleAndMove": "Нажмите для переключения, перетащите для перемещения"
},
"whisper": {
"modes": {
"default": "Режим по умолчанию",
"defaultDescription": "Прямая транскрипция вашей речи",
"prompt": "Улучшение запроса",
"promptDescription": "Преобразование грубых идей в четкие, детальные AI-запросы",
"vibe": "Режим Vibe",
"vibeDescription": "Форматирование идей как четких инструкций агента с деталями"
}
}
},
"terminalShortcuts": {
"title": "Горячие клавиши терминала",
"sectionKeys": "Клавиши",
"sectionNavigation": "Навигация",
"escape": "Escape",
"tab": "Tab",
"shiftTab": "Shift+Tab",
"arrowUp": "Стрелка вверх",
"arrowDown": "Стрелка вниз",
"scrollDown": "Прокрутка вниз",
"handle": {
"closePanel": "Закрыть панель горячих клавиш",
"openPanel": "Открыть панель горячих клавиш"
}
},
"mainTabs": {
"label": "Настройки",
"agents": "Агенты",
"appearance": "Внешний вид",
"git": "Git",
"apiTokens": "API и токены",
"tasks": "Задачи"
},
"appearanceSettings": {
"darkMode": {
"label": "Темная тема",
"description": "Переключение между светлой и темной темами"
},
"projectSorting": {
"label": "Сортировка проектов",
"description": "Как проекты упорядочены на боковой панели",
"alphabetical": "По алфавиту",
"recentActivity": "По недавней активности"
},
"codeEditor": {
"title": "Редактор кода",
"theme": {
"label": "Тема редактора",
"description": "Тема по умолчанию для редактора кода"
},
"wordWrap": {
"label": "Перенос слов",
"description": "Включить перенос слов по умолчанию в редакторе"
},
"showMinimap": {
"label": "Показать миникарту",
"description": "Отображать миникарту для упрощения навигации в представлении различий"
},
"lineNumbers": {
"label": "Показать номера строк",
"description": "Отображать номера строк в редакторе"
},
"fontSize": {
"label": "Размер шрифта",
"description": "Размер шрифта редактора в пикселях"
}
}
},
"mcpForm": {
"title": {
"add": "Добавить MCP сервер",
"edit": "Редактировать MCP сервер"
},
"importMode": {
"form": "Ввод формы",
"json": "Импорт JSON"
},
"scope": {
"label": "Область",
"userGlobal": "Пользователь (глобально)",
"projectLocal": "Проект (локально)",
"userDescription": "Область пользователя: доступно во всех проектах на вашей машине",
"projectDescription": "Локальная область: доступно только в выбранном проекте",
"cannotChange": "Область не может быть изменена при редактировании существующего сервера"
},
"fields": {
"serverName": "Имя сервера",
"transportType": "Тип транспорта",
"command": "Команда",
"arguments": "Аргументы (по одному на строку)",
"jsonConfig": "JSON конфигурация",
"url": "URL",
"envVars": "Переменные окружения (КЛЮЧ=значение, по одной на строку)",
"headers": "Заголовки (КЛЮЧ=значение, по одному на строку)",
"selectProject": "Выберите проект..."
},
"placeholders": {
"serverName": "мой-сервер"
},
"validation": {
"missingType": "Отсутствует обязательное поле: type",
"stdioRequiresCommand": "тип stdio требует поле command",
"httpRequiresUrl": "тип {{type}} требует поле url",
"invalidJson": "Неверный формат JSON",
"jsonHelp": "Вставьте конфигурацию вашего MCP сервера в формате JSON. Примеры форматов:",
"jsonExampleStdio": "• stdio: {\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"@upstash/context7-mcp\"]}",
"jsonExampleHttp": "• http/sse: {\"type\":\"http\",\"url\":\"https://api.example.com/mcp\"}"
},
"configDetails": "Детали конфигурации (из {{configFile}})",
"projectPath": "Путь: {{path}}",
"actions": {
"cancel": "Отмена",
"saving": "Сохранение...",
"addServer": "Добавить сервер",
"updateServer": "Обновить сервер"
}
},
"saveStatus": {
"success": "Настройки успешно сохранены!",
"error": "Не удалось сохранить настройки",
"saving": "Сохранение..."
},
"footerActions": {
"save": "Сохранить настройки",
"cancel": "Отмена"
},
"git": {
"title": "Конфигурация Git",
"description": "Настройте вашу git идентичность для коммитов. Эти настройки будут применены глобально через git config --global",
"name": {
"label": "Имя Git",
"help": "Ваше имя для git коммитов"
},
"email": {
"label": "Email Git",
"help": "Ваш email для git коммитов"
},
"actions": {
"save": "Сохранить конфигурацию",
"saving": "Сохранение..."
},
"status": {
"success": "Успешно сохранено"
}
},
"apiKeys": {
"title": "API ключи",
"description": "Генерируйте API ключи для доступа к внешнему API из других приложений.",
"newKey": {
"alertTitle": "⚠️ Сохраните ваш API ключ",
"alertMessage": "Это единственный раз, когда вы увидите этот ключ. Сохраните его в безопасном месте.",
"iveSavedIt": "Я сохранил его"
},
"form": {
"placeholder": "Имя API ключа (например, Продакшн сервер)",
"createButton": "Создать",
"cancelButton": "Отмена"
},
"newButton": "Новый API ключ",
"empty": "API ключи еще не созданы.",
"list": {
"created": "Создан:",
"lastUsed": "Последнее использование:"
},
"confirmDelete": "Вы уверены, что хотите удалить этот API ключ?",
"status": {
"active": "Активен",
"inactive": "Неактивен"
},
"github": {
"title": "GitHub токены",
"description": "Добавьте персональные токены доступа GitHub для клонирования приватных репозиториев через внешний API.",
"descriptionAlt": "Добавьте персональные токены доступа GitHub для клонирования приватных репозиториев. Вы также можете передавать токены напрямую в API запросах без их сохранения.",
"addButton": "Добавить токен",
"form": {
"namePlaceholder": "Имя токена (например, Личные репозитории)",
"tokenPlaceholder": "Персональный токен доступа GitHub (ghp_...)",
"descriptionPlaceholder": "Описание (необязательно)",
"addButton": "Добавить токен",
"cancelButton": "Отмена",
"howToCreate": "Как создать персональный токен доступа GitHub →"
},
"empty": "GitHub токены еще не добавлены.",
"added": "Добавлен:",
"confirmDelete": "Вы уверены, что хотите удалить этот GitHub токен?"
},
"apiDocsLink": "Документация API",
"documentation": {
"title": "Документация внешнего API",
"description": "Узнайте, как использовать внешний API для запуска сеансов Claude/Cursor из ваших приложений.",
"viewLink": "Просмотр документации API →"
},
"loading": "Загрузка...",
"version": {
"updateAvailable": "Доступно обновление: v{{version}}"
}
},
"tasks": {
"checking": "Проверка установки TaskMaster...",
"notInstalled": {
"title": "TaskMaster AI CLI не установлен",
"description": "TaskMaster CLI требуется для использования функций управления задачами. Установите его для начала работы:",
"installCommand": "npm install -g task-master-ai",
"viewOnGitHub": "Посмотреть на GitHub",
"afterInstallation": "После установки:",
"steps": {
"restart": "Перезапустите это приложение",
"autoAvailable": "Функции TaskMaster станут автоматически доступны",
"initCommand": "Используйте task-master init в каталоге вашего проекта"
}
},
"settings": {
"enableLabel": "Включить интеграцию TaskMaster",
"enableDescription": "Показывать задачи TaskMaster, баннеры и индикаторы боковой панели в интерфейсе"
}
},
"agents": {
"authStatus": {
"checking": "Проверка...",
"connected": "Подключен",
"notConnected": "Не подключен",
"disconnected": "Отключен",
"checkingAuth": "Проверка статуса аутентификации...",
"loggedInAs": "Вошли как {{email}}",
"authenticatedUser": "аутентифицированный пользователь"
},
"account": {
"claude": {
"description": "AI-ассистент Anthropic Claude"
},
"cursor": {
"description": "Редактор кода с AI Cursor"
},
"codex": {
"description": "AI-ассистент OpenAI Codex"
}
},
"connectionStatus": "Статус подключения",
"login": {
"title": "Вход",
"reAuthenticate": "Повторная аутентификация",
"description": "Войдите в ваш аккаунт {{agent}} для включения AI функций",
"reAuthDescription": "Войдите с другим аккаунтом или обновите учетные данные",
"button": "Войти",
"reLoginButton": "Войти снова"
},
"error": "Ошибка: {{error}}"
},
"permissions": {
"title": "Настройки разрешений",
"skipPermissions": {
"label": "Пропускать запросы разрешений (используйте с осторожностью)",
"claudeDescription": "Эквивалентно флагу --dangerously-skip-permissions",
"cursorDescription": "Эквивалентно флагу -f в Cursor CLI"
},
"allowedTools": {
"title": "Разрешенные инструменты",
"description": "Инструменты, которые автоматически разрешены без запроса разрешения",
"placeholder": "например, \"Bash(git log:*)\" или \"Write\"",
"quickAdd": "Быстро добавить общие инструменты:",
"empty": "Разрешенные инструменты не настроены"
},
"blockedTools": {
"title": "Заблокированные инструменты",
"description": "Инструменты, которые автоматически блокируются без запроса разрешения",
"placeholder": "например, \"Bash(rm:*)\"",
"empty": "Заблокированные инструменты не настроены"
},
"allowedCommands": {
"title": "Разрешенные команды оболочки",
"description": "Команды оболочки, которые автоматически разрешены без запроса",
"placeholder": "например, \"Shell(ls)\" или \"Shell(git status)\"",
"quickAdd": "Быстро добавить общие команды:",
"empty": "Разрешенные команды не настроены"
},
"blockedCommands": {
"title": "Заблокированные команды оболочки",
"description": "Команды оболочки, которые автоматически блокируются",
"placeholder": "например, \"Shell(rm -rf)\" или \"Shell(sudo)\"",
"empty": "Заблокированные команды не настроены"
},
"toolExamples": {
"title": "Примеры шаблонов инструментов:",
"bashGitLog": "- Разрешить все команды git log",
"bashGitDiff": "- Разрешить все команды git diff",
"write": "- Разрешить все использование инструмента Write",
"bashRm": "- Заблокировать все команды rm (опасно)"
},
"shellExamples": {
"title": "Примеры команд оболочки:",
"ls": "- Разрешить команду ls",
"gitStatus": "- Разрешить git status",
"npmInstall": "- Разрешить npm install",
"rmRf": "- Заблокировать рекурсивное удаление"
},
"codex": {
"permissionMode": "Режим разрешений",
"description": "Управляет тем, как Codex обрабатывает изменения файлов и выполнение команд",
"modes": {
"default": {
"title": "По умолчанию",
"description": "Только доверенные команды (ls, cat, grep, git status и т.д.) выполняются автоматически. Другие команды пропускаются. Может записывать в рабочее пространство."
},
"acceptEdits": {
"title": "Принимать правки",
"description": "Все команды выполняются автоматически в рабочем пространстве. Полный автоматический режим с изолированным выполнением."
},
"bypassPermissions": {
"title": "Обход разрешений",
"description": "Полный системный доступ без ограничений. Все команды выполняются автоматически с полным доступом к диску и сети. Используйте с осторожностью."
}
},
"technicalDetails": "Технические детали",
"technicalInfo": {
"default": "sandboxMode=workspace-write, approvalPolicy=untrusted. Доверенные команды: cat, cd, grep, head, ls, pwd, tail, git status/log/diff/show, find (без -exec) и т.д.",
"acceptEdits": "sandboxMode=workspace-write, approvalPolicy=never. Все команды автоматически выполняются в каталоге проекта.",
"bypassPermissions": "sandboxMode=danger-full-access, approvalPolicy=never. Полный системный доступ, используйте только в доверенных средах.",
"overrideNote": "Вы можете переопределить это для каждого сеанса, используя кнопку режима в интерфейсе чата."
}
},
"actions": {
"add": "Добавить"
}
},
"mcpServers": {
"title": "MCP серверы",
"description": {
"claude": "Серверы Model Context Protocol предоставляют дополнительные инструменты и источники данных для Claude",
"cursor": "Серверы Model Context Protocol предоставляют дополнительные инструменты и источники данных для Cursor",
"codex": "Серверы Model Context Protocol предоставляют дополнительные инструменты и источники данных для Codex"
},
"addButton": "Добавить MCP сервер",
"empty": "MCP серверы не настроены",
"serverType": "Тип",
"scope": {
"local": "локальный",
"user": "пользователь"
},
"config": {
"command": "Команда",
"url": "URL",
"args": "Аргументы",
"environment": "Окружение"
},
"tools": {
"title": "Инструменты",
"count": "({{count}}):",
"more": "+{{count}} еще"
},
"actions": {
"edit": "Редактировать сервер",
"delete": "Удалить сервер"
},
"help": {
"title": "О Codex MCP",
"description": "Codex поддерживает MCP серверы на основе stdio. Вы можете добавлять серверы, которые расширяют возможности Codex дополнительными инструментами и ресурсами."
}
}
}

View File

@@ -0,0 +1,134 @@
{
"projects": {
"title": "Проекты",
"newProject": "Новый проект",
"deleteProject": "Удалить проект",
"renameProject": "Переименовать проект",
"noProjects": "Проекты не найдены",
"loadingProjects": "Загрузка проектов...",
"searchPlaceholder": "Поиск проектов...",
"projectNamePlaceholder": "Имя проекта",
"starred": "Избранное",
"all": "Все",
"untitledSession": "Безымянный сеанс",
"newSession": "Новый сеанс",
"codexSession": "Сеанс Codex",
"fetchingProjects": "Получение ваших проектов и сеансов Claude",
"projects": "проекты",
"noMatchingProjects": "Нет подходящих проектов",
"tryDifferentSearch": "Попробуйте изменить поисковый запрос",
"runClaudeCli": "Запустите Claude CLI в каталоге проекта для начала работы"
},
"app": {
"title": "Claude Code UI",
"subtitle": "Интерфейс AI помощника для программирования"
},
"sessions": {
"title": "Сеансы",
"newSession": "Новый сеанс",
"deleteSession": "Удалить сеанс",
"renameSession": "Переименовать сеанс",
"noSessions": "Сеансов пока нет",
"loadingSessions": "Загрузка сеансов...",
"unnamed": "Без имени",
"loading": "Загрузка...",
"showMore": "Показать больше сеансов"
},
"tooltips": {
"viewEnvironments": "Просмотр окружений",
"hideSidebar": "Скрыть боковую панель",
"createProject": "Создать новый проект",
"refresh": "Обновить проекты и сеансы (Ctrl+R)",
"renameProject": "Переименовать проект (F2)",
"deleteProject": "Удалить пустой проект (Delete)",
"addToFavorites": "Добавить в избранное",
"removeFromFavorites": "Удалить из избранного",
"editSessionName": "Вручную редактировать имя сеанса",
"deleteSession": "Удалить этот сеанс навсегда",
"save": "Сохранить",
"cancel": "Отмена",
"clearSearch": "Очистить поиск"
},
"navigation": {
"chat": "Чат",
"files": "Файлы",
"git": "Git",
"terminal": "Терминал",
"tasks": "Задачи"
},
"actions": {
"refresh": "Обновить",
"settings": "Настройки",
"collapseAll": "Свернуть все",
"expandAll": "Развернуть все",
"cancel": "Отмена",
"save": "Сохранить",
"delete": "Удалить",
"rename": "Переименовать",
"joinCommunity": "Присоединиться к сообществу"
},
"status": {
"active": "Активен",
"inactive": "Неактивен",
"thinking": "Думает...",
"error": "Ошибка",
"aborted": "Прервано",
"unknown": "Неизвестно"
},
"time": {
"justNow": "Только что",
"oneMinuteAgo": "1 мин. назад",
"minutesAgo": "{{count}} мин. назад",
"oneHourAgo": "1 час назад",
"hoursAgo": "{{count}} ч. назад",
"oneDayAgo": "1 день назад",
"daysAgo": "{{count}} дн. назад"
},
"messages": {
"deleteConfirm": "Вы уверены, что хотите это удалить?",
"renameSuccess": "Успешно переименовано",
"deleteSuccess": "Успешно удалено",
"errorOccurred": "Произошла ошибка",
"deleteSessionConfirm": "Вы уверены, что хотите удалить этот сеанс? Это действие нельзя отменить.",
"deleteProjectConfirm": "Вы уверены, что хотите удалить этот пустой проект? Это действие нельзя отменить.",
"enterProjectPath": "Пожалуйста, введите путь к проекту",
"deleteSessionFailed": "Не удалось удалить сеанс. Попробуйте снова.",
"deleteSessionError": "Ошибка при удалении сеанса. Попробуйте снова.",
"renameSessionFailed": "Не удалось переименовать сеанс. Попробуйте снова.",
"renameSessionError": "Ошибка при переименовании сеанса. Попробуйте снова.",
"deleteProjectFailed": "Не удалось удалить проект. Попробуйте снова.",
"deleteProjectError": "Ошибка при удалении проекта. Попробуйте снова.",
"createProjectFailed": "Не удалось создать проект. Попробуйте снова.",
"createProjectError": "Ошибка при создании проекта. Попробуйте снова."
},
"version": {
"updateAvailable": "Доступно обновление"
},
"search": {
"modeProjects": "Проекты",
"modeConversations": "Разговоры",
"conversationsPlaceholder": "Поиск в разговорах...",
"searching": "Поиск...",
"noResults": "Результаты не найдены",
"tryDifferentQuery": "Попробуйте другой поисковый запрос",
"matches_one": "{{count}} совпадение",
"matches_few": "{{count}} совпадения",
"matches_many": "{{count}} совпадений",
"matches_other": "{{count}} совпадений",
"projectsScanned_one": "{{count}} проект просканирован",
"projectsScanned_few": "{{count}} проекта просканировано",
"projectsScanned_many": "{{count}} проектов просканировано",
"projectsScanned_other": "{{count}} проектов просканировано"
},
"deleteConfirmation": {
"deleteProject": "Удалить проект",
"deleteSession": "Удалить сеанс",
"confirmDelete": "Вы уверены, что хотите удалить",
"sessionCount_one": "Этот проект содержит {{count}} разговор.",
"sessionCount_few": "Этот проект содержит {{count}} разговора.",
"sessionCount_many": "Этот проект содержит {{count}} разговоров.",
"sessionCount_other": "Этот проект содержит {{count}} разговоров.",
"allConversationsDeleted": "Все разговоры будут удалены навсегда.",
"cannotUndo": "Это действие нельзя отменить."
}
}

View File

@@ -0,0 +1,142 @@
{
"notConfigured": {
"title": "TaskMaster AI не настроен",
"description": "TaskMaster помогает разбивать сложные проекты на управляемые задачи с помощью AI",
"whatIsTitle": "🎯 Что такое TaskMaster?",
"features": {
"aiPowered": "Управление задачами с AI: разбивайте сложные проекты на управляемые подзадачи",
"prdTemplates": "Шаблоны PRD: генерируйте задачи из документов требований к продукту",
"dependencyTracking": "Отслеживание зависимостей: понимайте связи задач и порядок выполнения",
"progressVisualization": "Визуализация прогресса: канбан-доски и детальная аналитика задач",
"cliIntegration": "Интеграция с CLI: используйте команды taskmaster для продвинутых рабочих процессов"
},
"initializeButton": "Инициализировать TaskMaster AI"
},
"gettingStarted": {
"title": "Начало работы с TaskMaster",
"subtitle": "TaskMaster инициализирован! Вот что делать дальше:",
"steps": {
"createPRD": {
"title": "Создайте документ требований к продукту (PRD)",
"description": "Обсудите идею вашего проекта и создайте PRD, описывающий то, что вы хотите построить.",
"addButton": "Добавить PRD",
"existingPRDs": "Существующие PRD:"
},
"generateTasks": {
"title": "Генерация задач из PRD",
"description": "Когда у вас есть PRD, попросите вашего AI-ассистента разобрать его, и TaskMaster автоматически разобьет его на управляемые задачи с деталями реализации."
},
"analyzeTasks": {
"title": "Анализ и расширение задач",
"description": "Попросите вашего AI-ассистента проанализировать сложность задач и расширить их в детальные подзадачи для упрощения реализации."
},
"startBuilding": {
"title": "Начните разработку",
"description": "Попросите вашего AI-ассистента начать работу над задачами, обновлять их статус и добавлять новые задачи по мере развития вашего проекта."
}
},
"tip": "💡 Совет: начните с PRD, чтобы получить максимум от AI-генерации задач TaskMaster"
},
"setupModal": {
"title": "Настройка TaskMaster",
"subtitle": "Интерактивный CLI для {{projectName}}",
"willStart": "Инициализация TaskMaster начнется автоматически",
"completed": "Настройка TaskMaster завершена! Теперь вы можете закрыть это окно.",
"closeButton": "Закрыть",
"closeContinueButton": "Закрыть и продолжить"
},
"helpGuide": {
"title": "Начало работы с TaskMaster",
"subtitle": "Ваш гид по продуктивному управлению задачами",
"examples": {
"parsePRD": "💬 Пример:\n\"Я только что инициализировал новый проект с Claude Task Master. У меня есть PRD в .taskmaster/docs/prd.txt. Можете помочь мне разобрать его и настроить начальные задачи?\"",
"expandTask": "💬 Пример:\n\"Задача 5 кажется сложной. Можете разбить её на подзадачи?\"",
"addTask": "💬 Пример:\n\"Пожалуйста, добавьте новую задачу для реализации загрузки изображений профиля пользователя с использованием Cloudinary, изучите лучший подход.\""
},
"moreExamples": "Посмотреть больше примеров и шаблонов использования →",
"proTips": {
"title": "💡 Профессиональные советы",
"search": "Используйте строку поиска для быстрого поиска конкретных задач",
"views": "Переключайтесь между представлениями Канбан, Список и Сетка, используя переключатели представлений",
"filters": "Используйте фильтры для фокусировки на конкретных статусах или приоритетах задач",
"details": "Нажмите на любую задачу для просмотра детальной информации и управления подзадачами"
},
"learnMore": {
"title": "📚 Узнать больше",
"description": "TaskMaster AI - это продвинутая система управления задачами, созданная для разработчиков. Получите документацию, примеры и внесите вклад в проект.",
"githubButton": "Посмотреть на GitHub"
}
},
"search": {
"placeholder": "Поиск задач..."
},
"filters": {
"button": "Фильтры",
"status": "Статус",
"priority": "Приоритет",
"sortBy": "Сортировать по",
"allStatuses": "Все статусы",
"allPriorities": "Все приоритеты",
"showing": "Показано {{filtered}} из {{total}} задач",
"clearFilters": "Очистить фильтры"
},
"sort": {
"id": "ID",
"status": "Статус",
"priority": "Приоритет",
"idAsc": "ID (по возрастанию)",
"idDesc": "ID (по убыванию)",
"titleAsc": "Название (А-Я)",
"titleDesc": "Название (Я-А)",
"statusAsc": "Статус (сначала ожидающие)",
"statusDesc": "Статус (сначала выполненные)",
"priorityAsc": "Приоритет (сначала высокий)",
"priorityDesc": "Приоритет (сначала низкий)"
},
"views": {
"kanban": "Представление Канбан",
"list": "Представление списком",
"grid": "Представление сеткой"
},
"kanban": {
"pending": "📋 К выполнению",
"inProgress": "🚀 В процессе",
"done": "✅ Выполнено",
"blocked": "🚫 Заблокировано",
"deferred": "⏳ Отложено",
"cancelled": "❌ Отменено",
"noTasksYet": "Задач пока нет",
"tasksWillAppear": "Задачи появятся здесь",
"moveTasksHere": "Перемещайте задачи сюда при начале работы",
"completedTasksHere": "Завершенные задачи появляются здесь",
"statusTasksHere": "Задачи с этим статусом появятся здесь"
},
"buttons": {
"help": "Руководство по началу работы с TaskMaster",
"prds": "PRD",
"addPRD": "Добавить PRD",
"addTask": "Добавить задачу",
"createNewPRD": "Создать новый PRD",
"prdsAvailable": "Доступно {{count}} PRD"
},
"prd": {
"modified": "Изменено: {{date}}"
},
"statuses": {
"pending": "Ожидание",
"in-progress": "В процессе",
"done": "Выполнено",
"blocked": "Заблокировано",
"deferred": "Отложено",
"cancelled": "Отменено"
},
"priorities": {
"high": "Высокий",
"medium": "Средний",
"low": "Низкий"
},
"noMatchingTasks": {
"title": "Нет задач, соответствующих вашим фильтрам",
"description": "Попробуйте изменить критерии поиска или фильтрации."
}
}