diff --git a/README.md b/README.md index d9b29e2..bf4f907 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,20 @@

- English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe + English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский +

+ +

+ + Understand Anything - Onboard to any codebase in minutes, not weeks | Product Hunt + +

+ +

+ 🚀 We’re live on Product Hunt: + + check out Understand Anything +

@@ -119,7 +132,7 @@ A multi-agent pipeline scans your project, extracts every file, function, class, # Generate Chinese content (知识图节点描述和 Dashboard UI) /understand --language zh -# Supported languages: en (default), zh, zh-TW, ja, ko +# Supported languages: en (default), zh, zh-TW, ja, ko, ru ``` The `--language` parameter affects: diff --git a/READMEs/README.es-ES.md b/READMEs/README.es-ES.md index e6fea6b..536a14f 100644 --- a/READMEs/README.es-ES.md +++ b/READMEs/README.es-ES.md @@ -6,7 +6,7 @@

- English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe + English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский

@@ -117,7 +117,7 @@ Un pipeline multi-agente escanea tu proyecto, extrae cada archivo, función, cla # Genera contenido en el idioma preferido (descripciones de nodos y UI del dashboard) /understand --language en -# Idiomas soportados: en (default), zh, zh-TW, ja, ko +# Idiomas soportados: en (default), zh, zh-TW, ja, ko, ru ``` El parámetro `--language` afecta: diff --git a/READMEs/README.ja-JP.md b/READMEs/README.ja-JP.md index 3be96fc..d981250 100644 --- a/READMEs/README.ja-JP.md +++ b/READMEs/README.ja-JP.md @@ -7,7 +7,7 @@

- English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe + English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский

@@ -118,7 +118,7 @@ Understand Anything は [Claude Code Plugin](https://code.claude.com/docs/en/plu # 日本語でコンテンツを生成(ナレッジグラフのノード説明とダッシュボードUI) /understand --language ja -# サポート言語:en(デフォルト)、zh、zh-TW、ja、ko +# サポート言語:en(デフォルト)、zh、zh-TW、ja、ko、ru ``` `--language` パラメータは以下に影響します: diff --git a/READMEs/README.ko-KR.md b/READMEs/README.ko-KR.md index ee717af..986f8e6 100644 --- a/READMEs/README.ko-KR.md +++ b/READMEs/README.ko-KR.md @@ -6,7 +6,7 @@

- English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe + English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский

@@ -117,7 +117,7 @@ Understand Anything은 [Claude Code Plugin](https://code.claude.com/docs/en/plug # 한국어로 내용 생성 (지식 그래프 노드 설명과 대시보드 UI) /understand --language ko -# 지원 언어: en(기본값), zh, zh-TW, ja, ko +# 지원 언어: en(기본값), zh, zh-TW, ja, ko, ru ``` `--language` 매개변수는 다음에 영향합니다: diff --git a/READMEs/README.ru-RU.md b/READMEs/README.ru-RU.md new file mode 100644 index 0000000..ad8894a --- /dev/null +++ b/READMEs/README.ru-RU.md @@ -0,0 +1,307 @@ +

Understand Anything

+ +

+ Превращай любую кодовую базу, базу знаний или документацию в интерактивный граф знаний, который можно исследовать, искать в нём и задавать вопросы. +
+ Работает с Claude Code, Codex, Cursor, Copilot, Gemini CLI и другими. +

+ +

+ English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский +

+ +

+ Quick Start + License: MIT + Claude Code + Codex + Copilot + Copilot CLI + Gemini CLI + OpenCode + Homepage + Live Demo +

+ +

+ Understand Anything — Превратите любую кодовую базу в интерактивный граф знаний +

+ +

+ 💬 Присоединяйтесь к сообществу в Discord → +
+ Задавайте вопросы, делитесь тем, что вы построили, получайте помощь от сообщества. +

+ +--- + +**Вы только что присоединились к новой команде. Кодовая база — 200 000 строк. С чего вообще начинать?** + +Understand Anything — это [плагин для Claude Code](https://code.claude.com/docs/en/plugins-reference#plugins-reference), который анализирует ваш проект с помощью мультиагентного пайплайна, строит граф знаний из всех файлов, функций, классов и зависимостей, а затем предоставляет интерактивную панель, чтобы исследовать всё это визуально. Хватит читать код вслепую. Пора увидеть общую картину. + +> **Цель — не граф, который поражает сложностью вашей кодовой базы, а граф, который ненавязчиво объясняет, как все части складываются вместе.** + +--- + +## ✨ Возможности + +> [!NOTE] +> **Хотите пропустить чтение?** Попробуйте [живое демо](https://understand-anything.com/demo/) на нашем [сайте](https://understand-anything.com/) — полностью интерактивная панель, по которой можно перемещаться, масштабировать, искать и исследовать прямо в браузере. + +### Исследуйте структурный граф + +Перемещайтесь по своему коду как по интерактивному графу знаний — каждый файл, функция и класс является узлом, который можно кликнуть, найти и изучить. Выберите любой узел, чтобы увидеть понятные описания, связи и пошаговые обзоры. + +### Понимайте бизнес-логику + +Переключитесь на доменное представление и увидите, как ваш код отображается на реальные бизнес-процессы — домены, потоки и шаги, выстроенные в виде горизонтального графа. + +### Анализируйте базы знаний + +Направьте `/understand-knowledge` на [LLM-вики в стиле Карпати](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) и получите force-directed граф знаний с кластеризацией по сообществам. Детерминированный парсер извлекает wikilinks и категории из `index.md`, а LLM-агенты находят неявные связи, извлекают сущности и выявляют утверждения — превращая вашу вики в навигируемый граф взаимосвязанных идей. + + + + + + + + + + + + + + +
+

🧭 Пошаговые обзоры

+

Автоматически создаваемые экскурсии по архитектуре, упорядоченные по зависимостям. Изучайте кодовую базу в правильном порядке.

+
+

🔍 Нечёткий и семантический поиск

+

Находите что угодно по имени или по смыслу. Поищите «какие части отвечают за авторизацию?» и получите релевантные результаты по всему графу.

+
+

📊 Анализ влияния изменений

+

Смотрите, какие части системы затрагивают ваши изменения, ещё до коммита. Понимайте каскадные эффекты по всей кодовой базе.

+
+

🎭 UI, адаптирующийся к роли

+

Панель подстраивает уровень детализации под пользователя — junior-разработчика, PM или продвинутого пользователя.

+
+

🏗️ Визуализация слоёв

+

Автоматическая группировка по архитектурным слоям — API, Service, Data, UI, Utility — с цветовой легендой.

+
+

📚 Концепции языка

+

12 шаблонов программирования (дженерики, замыкания, декораторы и т.д.) объясняются в контексте там, где они встречаются.

+
+ +--- + +## 🚀 Быстрый старт + +### 1. Установите плагин + +```bash +/plugin marketplace add Lum1104/Understand-Anything +/plugin install understand-anything +``` + +### 2. Проанализируйте кодовую базу + +```bash +/understand +``` + +Мультиагентный пайплайн сканирует ваш проект, извлекает каждый файл, функцию, класс и зависимость, а затем строит граф знаний и сохраняет его в `.understand-anything/knowledge-graph.json`. + +**Локализованный вывод:** используйте `--language`, чтобы генерировать контент на нужном языке: + +```bash +# Генерация контента на русском (описания узлов графа знаний и UI панели) +/understand --language ru + +# Поддерживаемые языки: en (по умолчанию), zh, zh-TW, ja, ko, ru +``` + +Параметр `--language` влияет на: +- Резюме и описания узлов в графе знаний +- Подписи, кнопки и подсказки UI панели +- Объяснения в пошаговых обзорах + +### 3. Откройте панель + +```bash +/understand-dashboard +``` + +Открывается интерактивная веб-панель с визуализацией вашей кодовой базы в виде графа — с цветовой кодировкой по архитектурным слоям, поиском и кликабельными узлами. Выберите любой узел, чтобы увидеть его код, связи и описание простым языком. + +### 4. Продолжайте учиться + +```bash +# Задайте любой вопрос о кодовой базе +/understand-chat How does the payment flow work? + +# Проанализируйте влияние ваших текущих изменений +/understand-diff + +# Подробно разберитесь с конкретным файлом или функцией +/understand-explain src/auth/login.ts + +# Сгенерируйте онбординг-гайд для новых членов команды +/understand-onboard + +# Извлеките знания о бизнес-доменах (домены, потоки, шаги) +/understand-domain + +# Проанализируйте LLM-вики в стиле Карпати +/understand-knowledge ~/path/to/wiki +``` + +--- + +## 🌐 Установка на разных платформах + +Understand-Anything работает с несколькими платформами AI-разработки. + +### Claude Code (нативно) + +```bash +/plugin marketplace add Lum1104/Understand-Anything +/plugin install understand-anything +``` + +### Установка одной командой (Codex / OpenCode / OpenClaw / Antigravity / Gemini CLI / Pi Agent / Vibe CLI / VS Code Copilot / Hermes / Cline / KIMI CLI) + +**macOS / Linux:** +```bash +curl -fsSL https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.sh | bash +# или передайте платформу, чтобы пропустить интерактивный выбор: +curl -fsSL https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.sh | bash -s codex +``` + +**Windows (PowerShell):** +```powershell +iwr -useb https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.ps1 | iex +``` + +Установщик клонирует репозиторий в `~/.understand-anything/repo` и создаёт нужные симлинки для выбранной платформы. После установки перезапустите свой CLI/IDE. + +- Поддерживаемые значения ``: `gemini`, `codex`, `opencode`, `pi`, `openclaw`, `antigravity`, `vibe`, `vscode`, `hermes`, `cline`, `kimi` +- Обновление: `./install.sh --update` +- Удаление: `./install.sh --uninstall ` + +### Cursor + +Cursor автоматически обнаруживает плагин через `.cursor-plugin/plugin.json` при клонировании этого репозитория. Ручная установка не требуется — просто склонируйте и откройте в Cursor. + +### VS Code + GitHub Copilot + +VS Code с GitHub Copilot (v1.108+) автоматически обнаруживает плагин через `.copilot-plugin/plugin.json` при клонировании этого репозитория. Ручная установка не требуется — просто склонируйте и откройте в VS Code. + +Для персональных skills (доступных во всех проектах) запустите `install.sh` выше с платформой `vscode`. + +### Copilot CLI + +```bash +copilot plugin install Lum1104/Understand-Anything:understand-anything-plugin +``` + +### Совместимость с платформами + +| Платформа | Статус | Способ установки | +|----------|--------|----------------| +| Claude Code | ✅ Нативно | Marketplace плагинов | +| Cursor | ✅ Поддерживается | Автообнаружение | +| VS Code + GitHub Copilot | ✅ Поддерживается | Автообнаружение | +| Copilot CLI | ✅ Поддерживается | Установка плагина | +| Codex | ✅ Поддерживается | `install.sh codex` | +| OpenCode | ✅ Поддерживается | `install.sh opencode` | +| OpenClaw | ✅ Поддерживается | `install.sh openclaw` | +| Antigravity | ✅ Поддерживается | `install.sh antigravity` | +| Gemini CLI | ✅ Поддерживается | `install.sh gemini` | +| Pi Agent | ✅ Поддерживается | `install.sh pi` | +| Vibe CLI | ✅ Поддерживается | `install.sh vibe` | +| Hermes | ✅ Поддерживается | `install.sh hermes` | +| Cline | ✅ Поддерживается | `install.sh cline` | +| KIMI CLI | ✅ Поддерживается | `install.sh kimi` | + +--- + +## 📦 Поделитесь графом с командой + +Граф — это просто JSON. **Зафиксируйте его один раз, и коллеги смогут пропустить весь пайплайн.** Полезно для онбординга, ревью PR и подхода docs-as-code. + +> **Пример:** [GoogleCloudPlatform/microservices-demo (форк)](https://github.com/Lum1104/microservices-demo) — мультиязыковой проект (Go / Java / Python / Node) с уже зафиксированным графом. + +**Что коммитить:** всё содержимое `.understand-anything/`, *кроме* `intermediate/` и `diff-overlay.json` (это локальные временные файлы). + +```gitignore +.understand-anything/intermediate/ +.understand-anything/diff-overlay.json +``` + +**Держите граф в актуальном состоянии:** включите `/understand --auto-update` — post-commit хук будет инкрементально обновлять граф, так что каждый коммит сопровождается соответствующим графом. Либо запускайте `/understand` вручную перед релизами. + +**Большие графы (10 МБ+):** храните через **git-lfs**. + +```bash +git lfs install +git lfs track ".understand-anything/*.json" +git add .gitattributes .understand-anything/ +``` + +--- + +## 🔧 Под капотом + +### Мультиагентный пайплайн + +Команда `/understand` оркестрирует 5 специализированных агентов, а `/understand-domain` добавляет шестого: + +| Агент | Роль | +|-------|------| +| `project-scanner` | Обнаружение файлов, определение языков и фреймворков | +| `file-analyzer` | Извлечение функций, классов, импортов; создание узлов и рёбер графа | +| `architecture-analyzer` | Определение архитектурных слоёв | +| `tour-builder` | Генерация пошаговых обучающих обзоров | +| `graph-reviewer` | Проверка полноты и целостности ссылок графа (по умолчанию выполняется inline; используйте `--review` для полного ревью с участием LLM) | +| `domain-analyzer` | Извлечение бизнес-доменов, потоков и шагов процессов (используется командой `/understand-domain`) | +| `article-analyzer` | Извлечение сущностей, утверждений и неявных связей из статей вики (используется командой `/understand-knowledge`) | + +Анализаторы файлов работают параллельно (до 5 одновременно, 20–30 файлов на батч). Поддерживаются инкрементальные обновления — повторно анализируются только файлы, изменившиеся с прошлого запуска. + +--- + +## 🤝 Вклад в проект + +Будем рады вашим контрибьюшенам! Как начать: + +1. Сделайте форк репозитория +2. Создайте ветку для фичи (`git checkout -b feature/my-feature`) +3. Запустите тесты (`pnpm --filter @understand-anything/core test`) +4. Закоммитьте изменения и откройте pull request + +Для крупных изменений сначала откройте issue, чтобы можно было обсудить подход. + +--- + +

+ Хватит читать код вслепую. Начните понимать всё. +

+ +## История звёзд + + + + + + Star History Chart + + + +

+ Спасибо всем, кто пользовался проектом и вкладывался в него — знание того, что это экономит людям время, и было главной причиной, ради которой стоило его делать. +

+ +

+ Лицензия MIT © Lum1104 +

diff --git a/READMEs/README.tr-TR.md b/READMEs/README.tr-TR.md index aeeb5ef..8e1c928 100644 --- a/READMEs/README.tr-TR.md +++ b/READMEs/README.tr-TR.md @@ -7,7 +7,7 @@

- English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe + English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский

@@ -118,7 +118,7 @@ Alan görünümüne geçin ve kodunuzun gerçek iş süreçleriyle nasıl eşle # İstediğiniz dilde içerik oluştur (düğüm açıklamaları ve dashboard UI) /understand --language en -# Desteklenen diller: en (varsayılan), zh, zh-TW, ja, ko +# Desteklenen diller: en (varsayılan), zh, zh-TW, ja, ko, ru ``` `--language` parametresi şunları etkiler: diff --git a/READMEs/README.zh-CN.md b/READMEs/README.zh-CN.md index f131493..11f670f 100644 --- a/READMEs/README.zh-CN.md +++ b/READMEs/README.zh-CN.md @@ -6,7 +6,7 @@

- English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe + English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский

@@ -117,7 +117,7 @@ Understand Anything 是一个 [Claude Code Plugin](https://code.claude.com/docs/ # 生成中文内容(知识图节点描述和 Dashboard UI) /understand --language zh -# 支持的语言:en(默认)、zh、zh-TW、ja、ko +# 支持的语言:en(默认)、zh、zh-TW、ja、ko、ru ``` `--language` 参数会影响: diff --git a/READMEs/README.zh-TW.md b/READMEs/README.zh-TW.md index 8d14599..1fea5be 100644 --- a/READMEs/README.zh-TW.md +++ b/READMEs/README.zh-TW.md @@ -6,7 +6,7 @@

- English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe + English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский

@@ -117,7 +117,7 @@ Understand Anything 是一個 [Claude Code Plugin](https://code.claude.com/docs/ # 產生繁體中文內容(知識圖節點描述和 Dashboard UI) /understand --language zh-TW -# 支援的語言:en(預設)、zh、zh-TW、ja、ko +# 支援的語言:en(預設)、zh、zh-TW、ja、ko、ru ``` `--language` 參數會影響: diff --git a/homepage/src/components/Hero.astro b/homepage/src/components/Hero.astro index 40dfc52..837979f 100644 --- a/homepage/src/components/Hero.astro +++ b/homepage/src/components/Hero.astro @@ -44,6 +44,23 @@ const discordUrl = 'https://discord.gg/pydat66RY'; + + 🚀 We’re live on Product Hunt + Understand Anything - Onboard to any codebase in minutes, not weeks | Product Hunt + + Enterprise · @@ -286,6 +303,40 @@ const discordUrl = 'https://discord.gg/pydat66RY'; text-decoration: none; } + /* Product Hunt launch announcement */ + .hero-producthunt { + margin-top: 2rem; + display: inline-flex; + flex-direction: column; + align-items: center; + gap: 0.6rem; + text-decoration: none; + transition: transform 0.2s ease; + } + + .hero-producthunt:hover { + text-decoration: none; + transform: translateY(-2px); + } + + .hero-producthunt-text { + font-family: var(--font-code); + font-size: 0.78rem; + letter-spacing: 0.12em; + text-transform: uppercase; + color: #d4a574; + } + + .hero-producthunt img { + display: block; + border-radius: 6px; + transition: box-shadow 0.25s ease; + } + + .hero-producthunt:hover img { + box-shadow: 0 0 24px rgba(212, 165, 116, 0.2); + } + /* Enterprise contact — pill that mirrors the hero badge at the top */ .hero-enterprise { margin-top: 1.75rem; diff --git a/understand-anything-plugin/packages/dashboard/src/locales/index.ts b/understand-anything-plugin/packages/dashboard/src/locales/index.ts index 911861b..27f022c 100644 --- a/understand-anything-plugin/packages/dashboard/src/locales/index.ts +++ b/understand-anything-plugin/packages/dashboard/src/locales/index.ts @@ -3,8 +3,9 @@ import zh from "./zh"; import zhTW from "./zh-TW"; import ja from "./ja"; import ko from "./ko"; +import ru from "./ru"; -export type LocaleKey = "en" | "zh" | "zh-TW" | "ja" | "ko"; +export type LocaleKey = "en" | "zh" | "zh-TW" | "ja" | "ko" | "ru"; export type Locale = typeof en; export const locales: Record = { @@ -13,6 +14,7 @@ export const locales: Record = { "zh-TW": zhTW, ja, ko, + ru, }; export function getLocale(key: LocaleKey): Locale { @@ -26,7 +28,8 @@ export function resolveLocaleKey(lang: string | undefined): LocaleKey { if (normalized === "zh-tw" || normalized === "traditional-chinese") return "zh-TW"; if (normalized === "ja" || normalized === "japanese") return "ja"; if (normalized === "ko" || normalized === "korean") return "ko"; + if (normalized === "ru" || normalized === "russian" || normalized === "ru-ru") return "ru"; return "en"; } -export { en, zh, zhTW as "zh-TW", ja, ko }; \ No newline at end of file +export { en, zh, zhTW as "zh-TW", ja, ko, ru }; diff --git a/understand-anything-plugin/packages/dashboard/src/locales/ru.ts b/understand-anything-plugin/packages/dashboard/src/locales/ru.ts new file mode 100644 index 0000000..d43cd93 --- /dev/null +++ b/understand-anything-plugin/packages/dashboard/src/locales/ru.ts @@ -0,0 +1,272 @@ +export const ru = { + common: { + loading: "Загрузка проекта...", + noGraphLoaded: "Граф знаний не загружен", + selectNode: "Выберите узел, чтобы увидеть подробности", + back: "Назад", + focus: "Фокус", + unfocus: "Снять фокус", + openCode: "Открыть код", + file: "Файл", + tags: "Теги", + connections: "Связи", + filter: "Фильтр", + resetAll: "Сбросить всё", + analyzed: "Проанализировано", + startGuidedTour: "Начать обзор", + truncated: "(сокращено)", + preview: "Предпросмотр", + doubleClickToOpen: "двойной клик, чтобы открыть", + appName: "Understand Anything", + pressKeyboard: "Нажмите ? для горячих клавиш", + path: "Путь", + theme: "Тема", + }, + projectOverview: { + nodes: "Узлы", + edges: "Рёбра", + layers: "Слои", + types: "Типы", + fileTypes: "Типы файлов", + code: "Код", + config: "Конфиг", + docs: "Документация", + infra: "Инфраструктура", + data: "Данные", + domain: "Домен", + knowledge: "Знания", + languages: "Языки", + frameworks: "Фреймворки", + nodeTypeDistribution: "Распределение типов узлов", + complexityDistribution: "Распределение сложности", + simple: "Простой", + moderate: "Средний", + complex: "Сложный", + mostConnectedNodes: "Самые связанные узлы", + avgConnectionsPerNode: "Среднее число связей на узел", + }, + nodeInfo: { + definedInThisFile: "Определено в этом файле", + languageConcepts: "Концепции языка", + category: "Категория", + wikilinks: "Wiki-ссылки", + backlinks: "Обратные ссылки", + entities: "Сущности", + businessRules: "Бизнес-правила", + crossDomain: "Междоменные связи", + flows: "Потоки", + entryPoint: "Точка входа", + steps: "Шаги", + implementation: "Реализация", + }, + fileExplorer: { + analyzedFiles: "Проанализированные файлы", + filesFromGraph: "файлы из текущего графа знаний", + noFilePathsFound: "Пути файлов не найдены.", + }, + filterPanel: { + nodeTypes: "Типы узлов", + complexity: "Сложность", + layers: "Слои", + edgeCategories: "Категории рёбер", + }, + personaSelector: { + overview: "Обзор", + overviewDesc: "Высокоуровневый архитектурный вид", + learn: "Обучение", + learnDesc: "Полная панель с пошаговым обучением", + deepDive: "Погружение", + deepDiveDesc: "Фокус на коде с чатом", + }, + sidebar: { + info: "Информация", + files: "Файлы", + }, + mobile: { + graph: "Граф", + info: "Информация", + files: "Файлы", + }, + drawer: { + controls: "Управление", + dashboard: "Панель", + role: "Роль", + view: "Вид", + diffOverlay: "Наложение изменений", + nodeTypes: "Типы узлов", + layers: "Слои", + tools: "Инструменты", + path: "Путь", + help: "Помощь", + structural: "Структура", + domain: "Домен", + }, + domainView: { + backToDomains: "Назад к доменам", + }, + detailLevel: { + filesTitle: "Только файлы — зависимости архитектурного уровня (быстро)", + classesTitle: "Файлы + классы — структура кода с наследованием", + files: "Файлы", + classes: "+Классы", + fnTitle: "Переключить узлы функций (может замедлить отрисовку)", + fn: "fn", + }, + nodeTypeLabels: { + all: "Все", + code: "Код", + config: "Конфиг", + docs: "Документация", + infra: "Инфраструктура", + data: "Данные", + domain: "Домен", + knowledge: "Знания", + }, + tokenGate: { + validating: "Проверка...", + continue: "Продолжить", + }, + diffToggle: { + hideOverlay: "Скрыть наложение изменений", + showOverlay: "Показать наложение изменений", + noData: "Данные об изменениях не загружены", + changed: "Изменено", + affected: "Затронуто", + }, + learnPanel: { + finish: "Завершить", + next: "Далее", + prev: "Назад", + noTour: "Обзор недоступен", + noTourHint: "Сгенерируйте обзор из графа знаний, чтобы получить пошаговое руководство по кодовой базе", + projectTour: "Обзор проекта", + steps: "шагов", + stepsTitle: "Шаги", + guidedWalkthrough: "Пошаговое знакомство с кодовой базой", + startTour: "Начать обзор", + tour: "Обзор", + exitTour: "Завершить обзор", + }, + layer: { + defaultName: "Слой", + label: "слои", + }, + breadcrumb: { + projectOverview: "Обзор проекта", + project: "Проект", + escBack: "Esc — назад", + }, + warningBanner: { + dropped: "Отброшено", + fatal: "Критично", + }, + themePicker: { + changeTheme: "Сменить тему", + theme: "Тема", + accentColor: "Акцентный цвет", + headingFont: "Шрифт заголовков", + serif: "Серифный", + sans: "Без засечек", + mono: "Моноширинный", + }, + codeViewer: { + fullFile: "Весь файл", + lines: "Строки", + linesLabel: "строк", + noFile: "Файл не выбран", + loading: "Загрузка исходного кода...", + openLarger: "Открыть увеличенный просмотрщик кода", + closeExpanded: "Закрыть расширенный просмотрщик кода", + closeViewer: "Закрыть просмотрщик кода", + sourceUnavailable: "Исходный код недоступен", + }, + customNode: { + tested: "Покрыт тестами", + hasTests: "Есть тесты", + }, + ariaLabels: { + openMenu: "Открыть меню", + closeMenu: "Закрыть меню", + settings: "Настройки", + hideSearch: "Скрыть поиск", + showSearch: "Показать поиск", + }, + nodeTypeFilter: { + hide: "Скрыть", + show: "Показать", + nodesLabel: "узлов", + }, + keyboardShortcuts: { + showHelp: "Показать горячие клавиши", + general: "Общие", + navigation: "Навигация", + tour: "Обзор", + view: "Вид", + focusSearch: "Перейти к строке поиска", + nextStep: "Следующий шаг обзора", + prevStep: "Предыдущий шаг обзора", + toggleDiff: "Переключить режим изменений", + toggleFilter: "Переключить панель фильтров", + toggleExport: "Переключить меню экспорта", + openPathFinder: "Открыть поиск пути", + title: "Горячие клавиши", + toggleHint: "Нажмите ?, чтобы открыть или закрыть эту справку", + closeHint: "Нажмите ESC, чтобы закрыть", + escapeDesc: "Закрыть панели и модальные окна / вернуться к обзору", + }, + search: { + placeholder: "Поиск узлов по имени, описанию или тегам...", + fuzzy: "Нечёткий", + semantic: "Семантический", + result: "результат", + }, + export: { + label: "Экспорт", + title: "Экспортировать граф (E)", + asPNG: "Экспортировать как PNG", + asSVG: "Экспортировать как SVG", + asJSON: "Экспортировать как JSON", + }, + edgeLabels: { + imports: { forward: "импортирует", backward: "импортируется" }, + exports: { forward: "экспортирует в", backward: "экспортируется" }, + contains: { forward: "содержит", backward: "содержится в" }, + inherits: { forward: "наследует от", backward: "наследуется" }, + implements: { forward: "реализует", backward: "реализуется" }, + calls: { forward: "вызывает", backward: "вызывается" }, + subscribes: { forward: "подписывается на", backward: "подписан" }, + publishes: { forward: "публикует в", backward: "получает события" }, + middleware: { forward: "middleware для", backward: "использует middleware" }, + reads_from: { forward: "читает из", backward: "читается" }, + writes_to: { forward: "пишет в", backward: "записывается" }, + transforms: { forward: "преобразует", backward: "преобразуется" }, + validates: { forward: "валидирует", backward: "валидируется" }, + depends_on: { forward: "зависит от", backward: "является зависимостью" }, + tested_by: { forward: "тестируется", backward: "тестирует" }, + configures: { forward: "конфигурирует", backward: "конфигурируется" }, + related: { forward: "связан с", backward: "связан с" }, + similar_to: { forward: "похож на", backward: "похож на" }, + deploys: { forward: "разворачивает", backward: "разворачивается" }, + serves: { forward: "обслуживает", backward: "обслуживается" }, + migrates: { forward: "мигрирует", backward: "мигрируется" }, + documents: { forward: "документирует", backward: "документируется" }, + provisions: { forward: "обеспечивает", backward: "обеспечивается" }, + routes: { forward: "маршрутизирует в", backward: "маршрутизируется из" }, + defines_schema: { forward: "определяет схему для", backward: "схема определена" }, + triggers: { forward: "запускает", backward: "запускается" }, + contains_flow: { forward: "содержит поток", backward: "поток в" }, + flow_step: { forward: "шаг потока", backward: "шаг" }, + cross_domain: { forward: "междоменно к", backward: "междоменно из" }, + cites: { forward: "цитирует", backward: "цитируется" }, + contradicts: { forward: "противоречит", backward: "опровергается" }, + builds_on: { forward: "основан на", backward: "основа для" }, + exemplifies: { forward: "иллюстрирует", backward: "иллюстрируется" }, + categorized_under: { forward: "относится к", backward: "категоризирует" }, + authored_by: { forward: "автор", backward: "автор" }, + }, + pathFinder: { + title: "Найти путь между узлами (P)", + }, +}; + +export default ru; diff --git a/understand-anything-plugin/skills/understand/locales/ru.md b/understand-anything-plugin/skills/understand/locales/ru.md new file mode 100644 index 0000000..1e34b6d --- /dev/null +++ b/understand-anything-plugin/skills/understand/locales/ru.md @@ -0,0 +1,49 @@ +# Руководство по выводу на русском языке (Russian) + +Этот файл содержит языковые рекомендации для генерации контента графа знаний на русском языке. + +## Соглашения по тегам + +Используйте русские теги или общепринятые английские технические термины: + +| Шаблон | Рекомендуемые теги | +|--------|--------------------| +| Точка входа | `точка-входа`, `barrel`, `exports` или `entry-point` | +| Утилитарные функции | `утилиты`, `helpers`, `common` или `utility` | +| API-обработчики | `api-handler`, `контроллер`, `endpoint` | +| Модели данных | `модель-данных`, `entity`, `schema` или `data-model` | +| Тестовые файлы | `тесты`, `unit-test`, `test` | +| Конфигурационные файлы | `конфигурация`, `build-system`, `settings` или `configuration` | +| Инфраструктура | `инфраструктура`, `deployment`, `контейнеризация` или `infrastructure` | +| Документация | `документация`, `руководство`, `documentation` | + +**Смешанная стратегия:** общепринятые технические термины оставляйте на английском (например, `middleware`, `api-handler`), описательные теги можно писать на русском. + +## Стиль резюме + +Пишите резюме на русском в 1–2 предложениях: +- Описывайте **назначение** и **роль** файла +- Используйте активный залог («предоставляет…», «обрабатывает…», «управляет…») +- Избегайте повторения имени файла + +**Примеры:** +- Хорошо: «Предоставляет вспомогательные функции для форматирования дат и очистки строк, широко используемые на API-слое.» +- Плохо: «Файл utils содержит утилитарные функции.» + +## Технические термины + +Следующие термины рекомендуется оставлять на английском (устоявшегося перевода нет): +- `middleware`, `hook`, `barrel`, `entry-point` +- `ORM`, `REST API`, `CI/CD`, `CRUD` +- `singleton`, `factory`, `observer` +- `interceptor`, `guard` + +## Имена слоёв + +Используйте русские имена слоёв: +- `API-слой`, `сервисный слой`, `слой данных`, `UI-слой` +- `инфраструктура`, `конфигурация`, `документация` +- `утилитарный слой`, `слой middleware`, `тестовый слой` + +Или оставляйте английские (по договорённости команды): +- `API Layer`, `Service Layer`, `Data Layer`