feat(i18n): add Russian language support

This commit is contained in:
Lum1104
2026-05-19 15:01:43 +08:00
parent 0e39f227a4
commit 9d1318a0e7
12 changed files with 711 additions and 16 deletions
+15 -2
View File
@@ -7,7 +7,20 @@
</p>
<p align="center">
<a href="README.md">English</a> | <a href="READMEs/README.zh-CN.md">简体中文</a> | <a href="READMEs/README.zh-TW.md">繁體中文</a> | <a href="READMEs/README.ja-JP.md">日本語</a> | <a href="READMEs/README.ko-KR.md">한국어</a> | <a href="READMEs/README.es-ES.md">Español</a> | <a href="READMEs/README.tr-TR.md">Türkçe</a>
<a href="README.md">English</a> | <a href="READMEs/README.zh-CN.md">简体中文</a> | <a href="READMEs/README.zh-TW.md">繁體中文</a> | <a href="READMEs/README.ja-JP.md">日本語</a> | <a href="READMEs/README.ko-KR.md">한국어</a> | <a href="READMEs/README.es-ES.md">Español</a> | <a href="READMEs/README.tr-TR.md">Türkçe</a> | <a href="READMEs/README.ru-RU.md">Русский</a>
</p>
<p align="center">
<a href="https://www.producthunt.com/products/understand-anything?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-understand-anything" target="_blank" rel="noopener noreferrer">
<img alt="Understand Anything - Onboard to any codebase in minutes, not weeks | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1146892&theme=light">
</a>
</p>
<p align="center">
🚀 Were live on Product Hunt:
<a href="https://www.producthunt.com/products/understand-anything?utm_source=github&utm_medium=readme">
check out Understand Anything
</a>
</p>
<p align="center">
@@ -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:
+2 -2
View File
@@ -6,7 +6,7 @@
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a>
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a> | <a href="README.ru-RU.md">Русский</a>
</p>
<p align="center">
@@ -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:
+2 -2
View File
@@ -7,7 +7,7 @@
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a>
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a> | <a href="README.ru-RU.md">Русский</a>
</p>
<p align="center">
@@ -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` パラメータは以下に影響します:
+2 -2
View File
@@ -6,7 +6,7 @@
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a>
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a> | <a href="README.ru-RU.md">Русский</a>
</p>
<p align="center">
@@ -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` 매개변수는 다음에 영향합니다:
+307
View File
@@ -0,0 +1,307 @@
<h1 align="center">Understand Anything</h1>
<p align="center">
<strong>Превращай любую кодовую базу, базу знаний или документацию в интерактивный граф знаний, который можно исследовать, искать в нём и задавать вопросы.</strong>
<br />
<em>Работает с Claude Code, Codex, Cursor, Copilot, Gemini CLI и другими.</em>
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a> | <a href="README.ru-RU.md">Русский</a>
</p>
<p align="center">
<a href="#-быстрый-старт"><img src="https://img.shields.io/badge/Быстрый_старт-blue" alt="Quick Start" /></a>
<a href="https://github.com/Lum1104/Understand-Anything/blob/main/LICENSE"><img src="https://img.shields.io/badge/Лицензия-MIT-yellow" alt="License: MIT" /></a>
<a href="https://docs.anthropic.com/en/docs/claude-code"><img src="https://img.shields.io/badge/Claude_Code-8A2BE2" alt="Claude Code" /></a>
<a href="#codex"><img src="https://img.shields.io/badge/Codex-000000" alt="Codex" /></a>
<a href="#vs-code--github-copilot"><img src="https://img.shields.io/badge/Copilot-24292e" alt="Copilot" /></a>
<a href="#copilot-cli"><img src="https://img.shields.io/badge/Copilot_CLI-24292e" alt="Copilot CLI" /></a>
<a href="#gemini-cli"><img src="https://img.shields.io/badge/Gemini_CLI-4285F4" alt="Gemini CLI" /></a>
<a href="#opencode"><img src="https://img.shields.io/badge/OpenCode-38bdf8" alt="OpenCode" /></a>
<a href="https://understand-anything.com"><img src="https://img.shields.io/badge/Сайт-d4a574" alt="Homepage" /></a>
<a href="https://understand-anything.com/demo/"><img src="https://img.shields.io/badge/Демо-00c853" alt="Live Demo" /></a>
</p>
<p align="center">
<img src="../assets/hero.png" alt="Understand Anything — Превратите любую кодовую базу в интерактивный граф знаний" width="800" />
</p>
<p align="center">
<strong>💬 <a href="https://discord.gg/pydat66RY">Присоединяйтесь к сообществу в Discord &rarr;</a></strong>
<br />
<em>Задавайте вопросы, делитесь тем, что вы построили, получайте помощь от сообщества.</em>
</p>
---
**Вы только что присоединились к новой команде. Кодовая база — 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-агенты находят неявные связи, извлекают сущности и выявляют утверждения — превращая вашу вики в навигируемый граф взаимосвязанных идей.
<table>
<tr>
<td width="50%" valign="top">
<h3>🧭 Пошаговые обзоры</h3>
<p>Автоматически создаваемые экскурсии по архитектуре, упорядоченные по зависимостям. Изучайте кодовую базу в правильном порядке.</p>
</td>
<td width="50%" valign="top">
<h3>🔍 Нечёткий и семантический поиск</h3>
<p>Находите что угодно по имени или по смыслу. Поищите «какие части отвечают за авторизацию?» и получите релевантные результаты по всему графу.</p>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h3>📊 Анализ влияния изменений</h3>
<p>Смотрите, какие части системы затрагивают ваши изменения, ещё до коммита. Понимайте каскадные эффекты по всей кодовой базе.</p>
</td>
<td width="50%" valign="top">
<h3>🎭 UI, адаптирующийся к роли</h3>
<p>Панель подстраивает уровень детализации под пользователя — junior-разработчика, PM или продвинутого пользователя.</p>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h3>🏗️ Визуализация слоёв</h3>
<p>Автоматическая группировка по архитектурным слоям — API, Service, Data, UI, Utility — с цветовой легендой.</p>
</td>
<td width="50%" valign="top">
<h3>📚 Концепции языка</h3>
<p>12 шаблонов программирования (дженерики, замыкания, декораторы и т.д.) объясняются в контексте там, где они встречаются.</p>
</td>
</tr>
</table>
---
## 🚀 Быстрый старт
### 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.
- Поддерживаемые значения `<platform>`: `gemini`, `codex`, `opencode`, `pi`, `openclaw`, `antigravity`, `vibe`, `vscode`, `hermes`, `cline`, `kimi`
- Обновление: `./install.sh --update`
- Удаление: `./install.sh --uninstall <platform>`
### 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, чтобы можно было обсудить подход.
---
<p align="center">
<strong>Хватит читать код вслепую. Начните понимать всё.</strong>
</p>
## История звёзд
<a href="https://www.star-history.com/?repos=Lum1104%2FUnderstand-Anything&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/image?repos=Lum1104/Understand-Anything&type=date&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/image?repos=Lum1104/Understand-Anything&type=date&legend=top-left" />
<img alt="Star History Chart" src="https://api.star-history.com/image?repos=Lum1104/Understand-Anything&type=date&legend=top-left" />
</picture>
</a>
<p align="center">
<em>Спасибо всем, кто пользовался проектом и вкладывался в него — знание того, что это экономит людям время, и было главной причиной, ради которой стоило его делать.</em>
</p>
<p align="center">
Лицензия MIT &copy; <a href="https://github.com/Lum1104">Lum1104</a>
</p>
+2 -2
View File
@@ -7,7 +7,7 @@
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a>
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a> | <a href="README.ru-RU.md">Русский</a>
</p>
<p align="center">
@@ -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:
+2 -2
View File
@@ -6,7 +6,7 @@
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a>
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a> | <a href="README.ru-RU.md">Русский</a>
</p>
<p align="center">
@@ -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` 参数会影响:
+2 -2
View File
@@ -6,7 +6,7 @@
</p>
<p align="center">
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a>
<a href="../README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.es-ES.md">Español</a> | <a href="README.tr-TR.md">Türkçe</a> | <a href="README.ru-RU.md">Русский</a>
</p>
<p align="center">
@@ -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` 參數會影響:
+51
View File
@@ -44,6 +44,23 @@ const discordUrl = 'https://discord.gg/pydat66RY';
</a>
</div>
<a
href="https://www.producthunt.com/products/understand-anything?utm_source=homepage&utm_medium=hero"
target="_blank"
rel="noopener noreferrer"
class="hero-producthunt anim anim-5"
aria-label="We're live on Product Hunt — check out Understand Anything"
>
<span class="hero-producthunt-text">🚀 We&rsquo;re live on Product Hunt</span>
<img
src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1146892&theme=dark"
alt="Understand Anything - Onboard to any codebase in minutes, not weeks | Product Hunt"
width="250"
height="54"
loading="lazy"
/>
</a>
<a href="mailto:lum@understand-anything.com" class="hero-enterprise anim anim-5">
<span class="hero-enterprise-label">Enterprise</span>
<span class="hero-enterprise-divider">&middot;</span>
@@ -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;
@@ -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<LocaleKey, Locale> = {
@@ -13,6 +14,7 @@ export const locales: Record<LocaleKey, Locale> = {
"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 };
export { en, zh, zhTW as "zh-TW", ja, ko, ru };
@@ -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;
@@ -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`