diff --git a/gitnexus-web/src/locales/ru/graph.json b/gitnexus-web/src/locales/ru/graph.json index afe3059b3..f6f7e35af 100644 --- a/gitnexus-web/src/locales/ru/graph.json +++ b/gitnexus-web/src/locales/ru/graph.json @@ -1,190 +1,206 @@ { "statusBar": { - "sponsor": "", - "sponsorHint": "" + "sponsor": "Спонсор", + "sponsorHint": "нужно купить немного кредитов API, чтобы запустить SWE-bench 😅" }, "loading": { - "filesProgress": "" + "filesProgress": "{{processed}} / {{total}} файлов" }, "toolCall": { "status": { - "running": "", - "completed": "", - "error": "", - "stopped": "" + "running": "выполняется", + "completed": "завершено", + "error": "ошибка", + "stopped": "остановлено" }, "tools": { - "search": "", - "cypher": "", - "grep": "", - "read": "", - "overview": "", - "explore": "", - "impact": "" + "search": "🔍 Поиск по коду", + "cypher": "🔗 Запрос на Cypher", + "grep": "🔎 Поиск по шаблону", + "read": "📄 Чтение файла", + "overview": "🗺️ Обзор кодовой базы", + "explore": "🔬 Исследование", + "impact": "💥 Анализ влияния" }, - "query": "", - "input": "", - "result": "", - "searchPrefix": "" + "query": "Запрос", + "input": "Входные данные", + "result": "Результат", + "searchPrefix": "Поиск: \"{{query}}\"" }, "embedding": { - "generateTitle": "", - "enable": "", - "loadingModel": "", - "embeddingNodes": "", - "creatingIndex": "", - "readyTitle": "", - "ready": "", - "errorTitle": "", - "failedRetry": "", + "generateTitle": "Сгенерировать эмбеддинги для семантического поиска", + "enable": "Включить семантический поиск", + "loadingModel": "Загрузка AI-модели...", + "embeddingNodes": "Эмбеддинг {{processed}}/{{total}} узлов", + "creatingIndex": "Создание векторного индекса...", + "readyTitle": "Семантический поиск готов! Используйте естественный язык в чате с AI.", + "ready": "Семантический готов", + "errorTitle": "Создание эмбеддингов не удалось. Нажмите для повтора.", + "failedRetry": "Ошибка — повторить", "fallback": { - "title": "", - "subtitle": "", - "description": "", - "options": "", - "useCpu": "", - "useCpuDescriptionSmall": "", - "useCpuDescriptionLarge": "", - "estimated": "", - "skipIt": "", - "skipDescription": "", - "smallCodebase": "", - "tip": "", - "skipEmbeddings": "", - "useCpuRecommended": "", - "useCpuSlow": "" + "title": "WebGPU сказал – «Нет!»", + "subtitle": "Ваш браузер не поддерживает ускорение через GPU", + "description": "Не удалось создать эмбеддинги с WebGPU, поэтому семантический поиск (графовый RAG) будет не таким умным. Но граф всё равно работает отлично!", + "options": "Ваши варианты:", + "useCpu": "Использовать CPU", + "useCpuDescriptionSmall": "Работает, но немного медленнее", + "useCpuDescriptionLarge": "Работает, но намного медленнее", + "estimated": "(~{{minutes}} мин. для {{count}} узлов)", + "skipIt": "Пропустить", + "skipDescription": "Граф работает, просто без AI-семантического поиска", + "smallCodebase": "Обнаружена маленькая кодовая база! CPU подойдёт.", + "tip": "💡 Совет: попробуйте Chrome или Edge для поддержки WebGPU", + "skipEmbeddings": "Пропустить эмбеддинги", + "useCpuRecommended": "Использовать CPU (рекомендуется)", + "useCpuSlow": "Использовать CPU (медленно)" } }, "queryFab": { - "query": "", - "cypherQuery": "", - "examples": "", - "run": "", - "noProject": "", - "dbNotReady": "", - "executionFailed": "", + "query": "Запрос", + "cypherQuery": "Запрос Cypher", + "examples": "Примеры", + "run": "Выполнить", + "noProject": "Проект не загружен. Сначала загрузите проект.", + "dbNotReady": "База данных не готова. Подождите завершения загрузки.", + "executionFailed": "Не удалось выполнить запрос", "exampleLabels": { - "functions": "", - "classes": "", - "interfaces": "", - "calls": "", - "imports": "" + "functions": "Все функции", + "classes": "Все классы", + "interfaces": "Все интерфейсы", + "calls": "Вызовы функций", + "imports": "Импортирования" }, - "clear": "", - "rows": "", - "highlighted": "", - "showingRows": "" + "clear": "Очистить", + "rows": "строк", + "highlighted": "выделено", + "showingRows": "Показано 50 из {{count}} строк" }, "fileTree": { - "expandPanel": "", - "fileExplorer": "", - "filters": "", - "collapsePanel": "", - "searchFiles": "", - "noFilesLoaded": "", - "all": "", - "selectNodeDepth": "", - "explorer": "", - "nodeTypes": "", - "nodeTypesDesc": "", - "edgeTypes": "", - "edgeTypesDesc": "", - "focusDepth": "", - "focusDepthDesc": "", - "hops_one": "", - "hops_other": "", - "colorLegend": "" + "expandPanel": "Развернуть панель", + "fileExplorer": "Файловый проводник", + "filters": "Фильтры", + "collapsePanel": "Свернуть панель", + "searchFiles": "Поиск файлов...", + "noFilesLoaded": "Файлы не загружены", + "all": "Все", + "selectNodeDepth": "Выберите узел, чтобы применить фильтр по глубине", + "explorer": "Проводник", + "nodeTypes": "Типы узлов", + "nodeTypesDesc": "Включение/отключение типов узлов в графе", + "edgeTypes": "Типы рёбер", + "edgeTypesDesc": "Включение/отключение типов связей", + "focusDepth": "Глубина фокуса", + "focusDepthDesc": "Показывать узлы в пределах N переходов от выбранного", + "hops_one": "{{count}} переход", + "hops_few": "{{count}} перехода", + "hops_many": "{{count}} перехода", + "hops_other": "{{count}} переходов", + "colorLegend": "Цветовая легенда" }, "codePanel": { - "expand": "", - "dragResize": "", - "title": "", - "clearCitations": "", - "clearSelection": "", - "loadingSource": "", - "selectFile": "", - "code": "", - "selected": "", - "aiCitations": "", - "references_one": "", - "references_other": "", - "lines_one": "", - "lines_other": "", - "codeNotAvailable": "" + "expand": "Развернуть панель кода", + "dragResize": "Перетащите для изменения размера", + "title": "Инспектор кода", + "clearCitations": "Очистить цитаты AI", + "clearSelection": "Снять выделение", + "loadingSource": "Загрузка исходного кода...", + "selectFile": "Выберите файловый узел, чтобы просмотреть его содержимое.", + "code": "Код", + "selected": "Выбрано", + "aiCitations": "Цитаты AI", + "references_one": "{{count}} ссылка", + "references_few": "{{count}} ссылки", + "references_many": "{{count}} ссылки", + "references_other": "{{count}} ссылок", + "lines_one": "{{count}} строка", + "lines_few": "{{count}} строки", + "lines_many": "{{count}} строки", + "lines_other": "{{count}} строк", + "codeNotAvailable": "Код недоступен в памяти для {{path}}" }, "canvas": { "viewModes": { - "label": "", - "force": "", - "tree": "", - "circles": "" + "label": "Режим отображения графа", + "force": "Силовой граф", + "tree": "Последовательная раскладка", + "circles": "Радиальная раскладка" }, - "zoomIn": "", - "zoomOut": "", - "fit": "", - "focusSelected": "", - "clearSelection": "", - "clear": "", - "stopLayout": "", - "runLayout": "", - "layoutOptimizing": "", - "turnOffHighlights": "", - "turnOnHighlights": "", + "zoomIn": "Приблизить", + "zoomOut": "Отдалить", + "fit": "По размеру экрана", + "focusSelected": "Сфокусироваться на выбранном узле", + "clearSelection": "Снять выделение", + "clear": "Очистить", + "stopLayout": "Остановить раскладку", + "runLayout": "Запустить раскладку заново", + "layoutOptimizing": "Оптимизация раскладки...", + "turnOffHighlights": "Выключить все подсветки", + "turnOnHighlights": "Включить подсветки AI", "chatOnly": { - "title": "", - "description": "", - "descriptionWithCount": "", - "citationNote": "", - "loadAnyway": "", - "loadAnywayWarning": "", - "loadAnywayWarningUnknown": "" + "title": "Граф не загружен", + "description": "Это большой проект, поэтому граф был пропущен, чтобы браузер не тормозил. AI‑чат работает нормально.", + "descriptionWithCount": "В этом проекте {{count}} узлов, поэтому граф был пропущен, чтобы браузер не тормозил. AI‑чат работает нормально.", + "citationNote": "Пока граф не загружен, встроенные ссылки на файлы из чата не будут автоматически открываться в панели кода.", + "loadAnyway": "Всё равно загрузить граф", + "loadAnywayWarning": "В этом проекте {{count}} узлов. Загрузка полного графа может замедлить браузер или сделать его неотзывчивым. Продолжить?", + "loadAnywayWarningUnknown": "Возможно, это большой проект. Загрузка полного графа может замедлить браузер или сделать его неотзывчивым. Продолжить?" } }, "processes": { - "unknownStep": "", - "allProcessesLabel_one": "", - "allProcessesLabel_other": "", - "emptyTitle": "", - "emptyDescription": "", - "filterPlaceholder": "", - "detected_one": "", - "detected_other": "", - "fullMap": "", - "viewCombined_one": "", - "viewCombined_other": "", - "crossCommunity": "", - "intraCommunity": "", - "steps_one": "", - "steps_other": "", - "clusters_one": "", - "clusters_other": "", - "highlightTitle": "", - "removeHighlightTitle": "", - "loading": "", - "viewing": "", - "view": "" + "unknownStep": "Неизвестно", + "allProcessesLabel_one": "Все процессы (объединено {{count}})", + "allProcessesLabel_other": "Все процессы (объединено {{count}})", + "emptyTitle": "Процессы не обнаружены", + "emptyDescription": "Процессы — это потоки выполнения, прослеженные от точек входа. Загрузите кодовую базу, чтобы увидеть обнаруженные процессы.", + "filterPlaceholder": "Фильтровать процессы...", + "detected_one": "Обнаружен {{count}} процесс", + "detected_few": "Обнаружено {{count}} процесса", + "detected_many": "Обнаружено {{count}} процесса", + "detected_other": "Обнаружено {{count}} процессов", + "fullMap": "Полная карта процессов", + "viewCombined_one": "Просмотреть объединённую карту {{count}} процесса", + "viewCombined_other": "Просмотреть объединённую карту {{count}} процессов", + "crossCommunity": "Межсообщественный", + "intraCommunity": "Внутрисообщественный", + "steps_one": "{{count}} шаг", + "steps_few": "{{count}} шага", + "steps_many": "{{count}} шага", + "steps_other": "{{count}} шагов", + "clusters_one": "{{count}} кластер", + "clusters_few": "{{count}} кластера", + "clusters_many": "{{count}} кластера", + "clusters_other": "{{count}} кластеров", + "highlightTitle": "Нажмите, чтобы включить подсветку в графе", + "removeHighlightTitle": "Нажмите, чтобы выключить подсветку в графе", + "loading": "Загрузка...", + "viewing": "Просмотр", + "view": "Смотреть" }, "processFlow": { - "title": "", - "diagramTooLarge": "", - "renderError": "", - "tooComplex_one": "", - "tooComplex_other": "", - "unableToRender_one": "", - "unableToRender_other": "", - "zoomOutTitle": "", - "zoomInTitle": "", - "resetTitle": "", - "resetView": "", - "toggleFocus": "", - "copyMermaid": "" + "title": "Процесс: {{label}}", + "diagramTooLarge": "📊 Диаграмма слишком большая", + "renderError": "⚠️ Ошибка рендеринга", + "tooComplex_one": "Эта диаграмма содержит {{count}} шаг и слишком сложна для отображения. Попробуйте просматривать отдельные процессы вместо «Все процессы».", + "tooComplex_few": "Эта диаграмма содержит {{count}} шага и слишком сложна для отображения. Попробуйте просматривать отдельные процессы вместо «Все процессы».", + "tooComplex_many": "Эта диаграмма содержит {{count}} шагов и слишком сложна для отображения. Попробуйте просматривать отдельные процессы вместо «Все процессы».", + "tooComplex_other": "Эта диаграмма содержит {{count}} шагов и слишком сложна для отображения. Попробуйте просматривать отдельные процессы вместо «Все процессы».", + "unableToRender_one": "Не удалось отобразить диаграмму. Шаг: {{count}}", + "unableToRender_few": "Не удалось отобразить диаграмму. Шага: {{count}}", + "unableToRender_many": "Не удалось отобразить диаграмму. Шага: {{count}}", + "unableToRender_other": "Не удалось отобразить диаграмму. Шагов: {{count}}", + "zoomOutTitle": "Отдалить (-)", + "zoomInTitle": "Приблизить (+)", + "resetTitle": "Сбросить масштаб и панорамирование", + "resetView": "Сбросить вид", + "toggleFocus": "Переключить фокус", + "copyMermaid": "Копировать Mermaid-запись диаграммы" }, "diagram": { - "aiGenerated": "", - "error": "", - "showSource": "", - "label": "", - "expandTitle": "", - "loading": "" + "aiGenerated": "Диаграмма, сгенерированная AI", + "error": "Ошибка диаграммы", + "showSource": "Показать исходник", + "label": "Диаграмма", + "expandTitle": "Развернуть", + "loading": "Загрузка диаграммы…" } } \ No newline at end of file