{
  "source": {
    "eyebrow": "Источник",
    "title": "Запуск review датасета",
    "description": "Вставьте ссылку Superset или укажите ссылку на датасет, чтобы начать возобновляемую review-сессию.",
    "state_idle": "Ожидание",
    "state_validating": "Проверка",
    "state_rejected": "Отклонено",
    "environment_label": "Окружение",
    "environment_required": "Перед запуском review выберите окружение Superset.",
    "superset_link_tab": "Ссылка Superset",
    "superset_link_tab_hint": "Импортирует контекст dashboard/explore и поэтапно восстанавливает фильтры.",
    "dataset_selection_tab": "Выбор датасета",
    "dataset_selection_tab_hint": "Используйте известную ссылку на датасет, если цель уже определена.",
    "superset_link_label": "URL Superset",
    "superset_link_placeholder": "https://superset.example.com/superset/dashboard/42/?native_filters=...",
    "superset_link_hint": "Распознанная ссылка Superset сразу создает сессию, а затем продолжает частичное восстановление в фоне.",
    "superset_link_required": "Вставьте ссылку Superset, чтобы продолжить.",
    "superset_link_invalid": "Введите полный URL Superset, начинающийся с http:// или https://.",
    "superset_link_recovery_note": "Частичное восстановление остается видимым. Отсутствующие фильтры и неразрешенный контекст явно показываются.",
    "recognized_link_hint": "Ссылка Superset распознана. Восстановление продолжится после создания оболочки сессии.",
    "dataset_selection_label": "Ссылка на датасет",
    "dataset_selection_placeholder": "dataset_id:123 или sales.daily_revenue",
    "dataset_selection_hint": "Используйте id датасета или стабильную ссылку на датасет из выбранного окружения.",
    "dataset_selection_required": "Введите ссылку на датасет, чтобы продолжить.",
    "dataset_selection_recovery_note": "Для intake по датасету также явно показываются confidence и неразрешенный контекст.",
    "async_recovery_hint": "Долгие шаги восстановления выполняются асинхронно: статус и следующий шаг будут видны в workspace.",
    "dataset_selection_acknowledged": "Ссылка на датасет принята. Загружается возобновляемая review-оболочка.",
    "submit_superset_link": "Старт по ссылке",
    "submit_dataset_selection": "Старт по датасету",
    "submitting": "Запуск review...",
    "submit_failed": "Не удалось запустить review-сессию датасета."
  },
  "findings": {
    "eyebrow": "Результаты валидации",
    "title": "Проверьте блокеры, предупреждения и информационные заметки",
    "description": "Результаты сгруппированы по severity, чтобы самые важные риски оставались видимыми, а частичное восстановление оставалось пригодным к использованию.",
    "next_action_label": "Рекомендованный следующий шаг",
    "empty": "Результаты пока не записаны. Сессию можно продолжать с текущим восстановленным контекстом.",
    "blocking_title": "Блокеры",
    "blocking_empty": "Открытых блокирующих результатов сейчас нет.",
    "warning_title": "Предупреждения",
    "warning_empty": "Сейчас нет warning-результатов, требующих внимания.",
    "informational_title": "Информационные",
    "informational_empty": "Информационные результаты сейчас отсутствуют.",
    "resolution_label": "Статус",
    "reference_label": "Ссылка",
    "jump_action": "Открыть связанный раздел",
    "resolution": {
      "open": "Открыто",
      "resolved": "Решено",
      "approved": "Подтверждено",
      "skipped": "Пропущено",
      "deferred": "Отложено",
      "expert_review": "Экспертная проверка"
    },
    "areas": {
      "source_intake": "Источник",
      "dataset_profile": "Профиль датасета",
      "semantic_enrichment": "Семантическое обогащение",
      "clarification": "Уточнение",
      "filter_recovery": "Восстановление фильтров",
      "template_mapping": "Маппинг шаблонов",
      "compiled_preview": "Скомпилированный preview",
      "launch": "Запуск",
      "audit": "Аудит"
    }
  },
  "workspace_entry": {
    "resume_eyebrow": "Возобновление сессии",
    "resume_title": "Продолжить существующую review-сессию",
    "resume_description": "Если review уже была начата, откройте нужную сессию и продолжайте с последнего сохраненного состояния.",
    "resume_available_badge": "Доступно сессий",
    "resume_loading": "Загрузка доступных сессий...",
    "resume_load_failed": "Не удалось загрузить существующие review-сессии.",
    "resume_empty_title": "Сохраненных сессий пока нет",
    "resume_empty_body": "Запустите новую review-сессию через блок источника справа, чтобы она появилась здесь для повторного открытия.",
    "resume_action": "Возобновить",
    "session_id_label": "ID сессии",
    "dataset_ref_label": "Ссылка на датасет",
    "environment_id_label": "Окружение",
    "status_label": "Статус",
    "readiness_label": "Готовность",
    "phase_label": "Фаза",
    "updated_at_label": "Обновлено",
    "last_activity_at_label": "Последняя активность"
  },
  "workspace": {
    "eyebrow": "Оркестрация датасета",
    "title": "Workspace review датасета",
    "description": "Возобновляйте предыдущую сессию или просматривайте восстановленный контекст, findings, provenance и exports в одном месте.",
    "loading": "Загрузка review workspace...",
    "load_failed": "Не удалось загрузить review-сессию датасета.",
    "resume_failed": "Не удалось возобновить текущую review-сессию.",
    "save_failed": "Не удалось обновить review-сессию.",
    "export_failed": "Не удалось экспортировать выбранный артефакт review.",
    "empty_state_title": "Сессия не загружена",
    "state_label": "Workspace",
    "state": {
      "empty": "Пусто",
      "importing": "Импорт",
      "review": "Проверка"
    },
    "readiness_label": "Готовность",
    "source_badge_fallback": "review-сессия",
    "save_session_action": "Сохранить сессию",
    "export_summary_action": "Экспортировать summary",
    "save_summary_action": "Сохранить summary",
    "summary_edit_saved": "Черновик summary обновлен для текущего review workspace.",
    "import_progress_eyebrow": "Прогресс импорта",
    "import_progress_title": "Контекст датасета восстанавливается поэтапно",
    "import_progress_body": "Workspace последовательно показывает этапы распознавания источника, фильтров, переменных и семантических кандидатов.",
    "import_milestones": {
      "recognized": "Датасет распознан",
      "filters": "Сохраненные native filters восстановлены",
      "variables": "Переменные шаблона датасета обнаружены",
      "semantic_sources": "Найдены ближайшие семантические источники",
      "summary": "Подготовлено предварительное summary"
    },
    "source_session_title": "Источник и сессия",
    "source_label": "Источник датасета",
    "import_status_title": "Статус импорта Superset",
    "recent_actions_title": "Таймлайн последних действий",
    "timeline": {
      "source": "Источник принят",
      "status": "Состояние сессии обновлено",
      "filters": "Фильтры восстановлены",
      "findings": "Findings записаны",
      "exports": "Последний экспорт создан"
    },
    "next_action_label": "Следующее действие",
    "next_action_card_eyebrow": "Основное действие",
    "next_action_card_body": "Основное действие всегда соответствует самому ценному следующему шагу для текущего состояния сессии.",
    "session_label": "Сводка сессии",
    "session_id_label": "ID сессии",
    "summary_source_label": "Источник summary",
    "confidence_label": "Уверенность",
    "business_summary_title": "Бизнес-summary",
    "summary_missing": "Читаемое бизнес-summary пока недоступно.",
    "partial_recovery_badge": "Частичное восстановление",
    "phase_label": "Фаза",
    "status_label": "Статус",
    "active_task_label": "Активная задача",
    "recovery_title": "Восстановленные фильтры и provenance",
    "recovery_empty": "Импортированные фильтры пока не восстановлены.",
    "provenance_label": "Provenance",
    "recovered_value_label": "Восстановленное значение",
    "health_title": "Обзор findings",
    "open_findings_label": "Открытые findings",
    "phase_card_label": "Фаза",
    "preview_gate_card_label": "Статус preview",
    "clarification_queue_card_label": "Очередь уточнений",
    "launch_blockers_card_label": "Блокеры запуска",
    "launch_blockers_title": "Сводка блокеров запуска",
    "filter_count_label": "Фильтры",
    "mapping_count_label": "Маппинги",
    "finding_count_label": "Findings",
    "clarification_focus_label": "Фокус уточнения",
    "partial_recovery_notice": "Сессия работает в режиме частичного восстановления. Review и помощь ассистента доступны, но запуск останется заблокирован до закрытия блокеров и получения актуального SQL preview.",
    "recovered_filters_title": "Восстановленные фильтры",
    "execution_rail_body": "Правая колонка остается execution rail: preview, блокеры, экспорт и запуск всегда видимы, пока ассистент остается главным рабочим пространством.",
    "launch_blockers": {
      "blocking_findings": "Блокирующие findings",
      "mapping_approvals": "Подтверждения маппинга",
      "preview_state": "Состояние SQL preview",
      "readiness": "Готовность"
    },
    "assistant_context": {
      "ask_prefix": "Помоги проверить",
      "improve_prefix": "Улучши",
      "section_label": "Раздел",
      "context_label": "Контекст"
    },
    "exports_title": "Экспорт",
    "exports_description": "Генерируйте inline-артефакты документации и валидации из текущего review-состояния.",
    "export_documentation_json": "Экспорт документации (JSON)",
    "export_documentation_markdown": "Экспорт документации (Markdown)",
    "export_validation_json": "Экспорт валидации (JSON)",
    "export_validation_markdown": "Экспорт валидации (Markdown)",
    "preview_title": "Статус preview",
    "preview_status_label": "Статус",
    "preview_compiler_label": "Скомпилировано",
    "preview_pending_note": "Скомпилированный preview не входит в этот пакет US1, но workspace сохраняет его видимым, если он уже существует.",
    "jump_target_label": "Выбранная зона",
    "semantic_review_visible": "Семантический review активен для полей с решениями по источникам.",
    "clarification_visible": "Уточнение доступно в режиме одного активного вопроса.",
    "resume_action": "Возобновить сессию",
    "pause_action": "Поставить сессию на паузу",
    "actions": {
      "import_from_superset": "Импорт из Superset",
      "review_documentation": "Проверить документацию",
      "apply_semantic_source": "Применить семантический источник",
      "start_clarification": "Начать уточнение",
      "answer_next_question": "Ответить на следующий вопрос",
      "approve_mapping": "Подтвердить маппинг",
      "generate_sql_preview": "Сгенерировать SQL preview",
      "complete_required_values": "Заполнить обязательные значения",
      "launch_dataset": "Запустить датасет",
      "resume_session": "Возобновить сессию",
      "export_outputs": "Экспортировать результаты"
    },
    "readiness": {
      "empty": "Пусто",
      "importing": "Импорт",
      "review_ready": "Готово к review",
      "semantic_source_review_needed": "Нужен review источника семантики",
      "clarification_needed": "Нужно уточнение",
      "clarification_active": "Уточнение активно",
      "mapping_review_needed": "Нужен review маппинга",
      "compiled_preview_ready": "Скомпилированный preview готов",
      "partially_ready": "Частично готово",
      "run_ready": "Готово к запуску",
      "run_in_progress": "Запуск выполняется",
      "completed": "Завершено",
      "recovery_required": "Требуется восстановление"
    },
    "summary_sources": {
      "confirmed": "Подтверждено",
      "imported": "Импортировано",
      "inferred": "Выведено",
      "ai_draft": "Черновик AI",
      "manual_override": "Ручное переопределение"
    },
    "confidence": {
      "confirmed": "Подтверждено",
      "mostly_confirmed": "Почти подтверждено",
      "mixed": "Смешанное",
      "low_confidence": "Низкая уверенность",
      "unresolved": "Не разрешено"
    }
  },
  "semantics": {
    "eyebrow": "Семантический слой",
    "title": "Проверьте семантические значения полей",
    "description": "Сравнивайте активное семантическое значение с ранжированными кандидатами, сохраняйте provenance и явно блокируйте или разблокируйте ручные решения.",
    "field_count_label": "Поля в review",
    "empty": "Семантические поля сейчас не требуют review.",
    "unknown_source": "Неизвестный источник",
    "active_value_label": "Активное семантическое значение",
    "provenance_label": "Provenance",
    "confidence_label": "Уверенность",
    "confidence_unset": "Ранг уверенности отсутствует",
    "confidence_rank_label": "Ранг",
    "source_label": "Источник",
    "changed_by_label": "Изменил",
    "locked_badge": "Заблокировано",
    "unlocked_badge": "Разблокировано",
    "conflict_badge": "Конфликт",
    "needs_review_badge": "Нужен review",
    "manual_verbose_name_label": "Ручное verbose name",
    "manual_description_label": "Ручное описание",
    "manual_display_format_label": "Ручной display format",
    "manual_override_action": "Ручное переопределение",
    "approve_all_action": "Подтвердить видимые кандидаты",
    "save_manual_action": "Сохранить ручное значение",
    "lock_action": "Заблокировать поле",
    "unlock_action": "Разблокировать поле",
    "feedback_up_action": "👍",
    "feedback_down_action": "👎",
    "candidates_title": "Варианты кандидатов",
    "candidates_empty": "Для этого поля не возвращены ранжированные кандидаты.",
    "candidate_description_empty": "Для этого кандидата описание не предложено.",
    "display_format_label": "Формат отображения",
    "score_label": "Оценка",
    "apply_candidate_action": "Применить",
    "apply_and_lock_action": "Применить и заблокировать",
    "empty_value": "Текущее значение отсутствует",
    "provenance": {
      "unresolved": "Не разрешено",
      "dictionary_exact": "Точное совпадение словаря",
      "reference_imported": "Импортированная ссылка",
      "ai_generated": "Сгенерировано AI",
      "fuzzy_inferred": "Нечеткий вывод",
      "manual_override": "Ручное переопределение"
    },
    "candidate_status": {
      "pending": "В ожидании",
      "accepted": "Принято",
      "superseded": "Заменено",
      "rejected": "Отклонено"
    },
    "messages": {
      "saving": "Сохранение семантического решения...",
      "save_failed": "Не удалось сохранить семантическое решение.",
      "manual_override_required": "Перед сохранением укажите хотя бы одно ручное семантическое значение.",
      "manual_saved": "Ручное семантическое значение сохранено и заблокировано.",
      "candidate_applied": "Значение кандидата применено.",
      "candidate_locked": "Значение кандидата применено и заблокировано.",
      "locked": "Поле заблокировано от тихой перезаписи.",
      "unlocked": "Поле разблокировано для повторного review.",
      "feedback_up": "Позитивный feedback для этого семантического значения сохранен.",
      "feedback_down": "Негативный feedback для этого семантического значения сохранен."
    }
  },
  "clarification": {
    "eyebrow": "Уточнение",
    "title": "Разрешайте неоднозначности по одному вопросу",
    "description": "Ответьте на активный вопрос уточнения, пропустите его или отправьте на экспертный review, сохраняя возможность возобновления.",
    "progress_label": "Прогресс уточнения",
    "state_label": "Состояние диалога",
    "status_label": "Статус",
    "remaining_label": "Оставшиеся вопросы",
    "summary_delta_label": "Изменение summary",
    "active_question_label": "Активный вопрос",
    "why_it_matters_label": "Почему это важно",
    "current_guess_label": "Текущая гипотеза",
    "current_guess_empty": "Текущая гипотеза отсутствует.",
    "topic_label": "Ссылка на тему",
    "options_title": "Доступные варианты",
    "recommended_badge": "Рекомендовано",
    "custom_answer_label": "Свой ответ",
    "answer_action": "Ответить выбранным вариантом",
    "custom_answer_action": "Отправить свой ответ",
    "skip_action": "Пропустить пока",
    "assistant_action": "Открыть помощь ассистента",
    "expert_review_action": "Передать на экспертный review",
    "resume_action": "Возобновить уточнение",
    "completed": "Активных вопросов уточнения не осталось. Сессию можно возобновить позже, если появится новая неоднозначность.",
    "messages": {
      "saving": "Сохранение ответа на уточнение...",
      "saved": "Ответ на уточнение сохранен.",
      "skipped": "Вопрос пропущен и сохранен как возобновляемый.",
      "expert_review_requested": "Вопрос отправлен на экспертный review.",
      "assistant_opened": "Для этого шага уточнения открыта помощь ассистента.",
      "resumed": "Уточнение возобновлено с самого приоритетного неразрешенного вопроса.",
      "resume_failed": "Не удалось возобновить уточнение.",
      "save_failed": "Не удалось сохранить ответ на уточнение.",
      "option_required": "Перед отправкой выберите один вариант.",
      "custom_required": "Перед отправкой введите свой ответ."
    }
  },
  "mapping": {
    "eyebrow": "Маппинг шаблонов",
    "title": "Проверьте маппинг фильтров и шаблонов",
    "description": "Проверьте импортированные значения фильтров, итоговые execution values и warning-преобразования перед preview или запуском.",
    "state_label": "Состояние маппинга",
    "state": {
      "Incomplete": "Неполный",
      "WarningApproval": "Требуется подтверждение",
      "Approved": "Подтверждено"
    },
    "pending_approvals_label": "Ожидают подтверждения",
    "required_values_label": "Отсутствуют обязательные значения",
    "empty": "Execution mappings пока отсутствуют.",
    "required_blockers_notice": "Еще {count} обязательных значений требуют внимания перед preview или запуском.",
    "approval_notice": "Еще {count} преобразований маппинга требуют явного подтверждения.",
    "to_variable_label": "В переменную",
    "required_badge": "Обязательно",
    "approval_required_badge": "Нужно подтверждение",
    "approved_badge": "Подтверждено",
    "source_filter_label": "Исходный фильтр",
    "source_value_label": "Исходное значение",
    "confidence_label": "Уверенность",
    "recovery_label": "Восстановление",
    "effective_value_label": "Итоговое значение",
    "method_label": "Метод",
    "approval_label": "Подтверждение",
    "warning_label": "Предупреждение",
    "transformation_note_label": "Комментарий к преобразованию",
    "missing_required_value": "Для этого маппинга все еще отсутствует обязательное итоговое значение.",
    "manual_value_label": "Ручное итоговое значение",
    "manual_note_label": "Комментарий к ручному переопределению",
    "save_override_action": "Сохранить ручное переопределение",
    "manual_override_action": "Ручное переопределение",
    "approve_action": "Подтвердить маппинг",
    "approve_all_action": "Подтвердить все ожидающие маппинги",
    "approval_state": {
      "pending": "Ожидает",
      "approved": "Подтверждено",
      "rejected": "Отклонено",
      "not_required": "Не требуется"
    },
    "warning_level": {
      "none": "Нет",
      "low": "Низкий",
      "medium": "Средний",
      "high": "Высокий"
    },
    "method": {
      "direct_match": "Прямое совпадение",
      "heuristic_match": "Эвристическое совпадение",
      "semantic_match": "Семантическое совпадение",
      "manual_override": "Ручное переопределение"
    },
    "messages": {
      "saving": "Сохранение решения по маппингу...",
      "approval_saved": "Подтверждение маппинга сохранено.",
      "approval_failed": "Не удалось сохранить подтверждение маппинга.",
      "override_saved": "Ручное переопределение маппинга сохранено. Preview нужно обновить.",
      "override_failed": "Не удалось сохранить ручное переопределение маппинга.",
      "required_value_missing": "Перед сохранением ручного переопределения укажите обязательное значение."
    }
  },
  "preview": {
    "eyebrow": "Скомпилированный SQL preview",
    "title": "Проверьте SQL, скомпилированный Superset",
    "description": "Истина preview приходит только от Superset. Перегенерируйте preview после изменений маппинга или обязательных входных значений.",
    "state_label": "Состояние preview",
    "state": {
      "missing": "Отсутствует",
      "pending": "Генерируется",
      "ready": "Готов",
      "stale": "Устарел",
      "failed": "Ошибка"
    },
    "generate_action": "Сгенерировать SQL preview",
    "generate_loading": "Генерация preview...",
    "missing_body": "Preview от Superset пока отсутствует. Сгенерируйте его перед запуском.",
    "pending_body": "Superset компилирует текущий execution context. Запуск остается заблокированным до завершения preview.",
    "ready_body": "Этот SQL preview был скомпилирован Superset для текущих execution inputs.",
    "stale_body": "После последнего успешного preview были изменены маппинги или итоговые значения. Перед запуском нужно перегенерировать preview.",
    "error_body": "Superset не смог скомпилировать текущий execution context.",
    "compiler_label": "Источник компиляции",
    "compiled_by_superset": "Скомпилировано Superset",
    "compiled_source_unknown": "Источник компиляции недоступен",
    "fingerprint_label": "Fingerprint preview",
    "compiled_at_label": "Время компиляции",
    "sql_block_title": "SQL от Superset",
    "compiled_truth_note": "Точный SQL, возвращенный Superset",
    "go_to_mapping_action": "Проверить mapping inputs",
    "review_inputs_action": "Проверить измененные inputs",
    "messages": {
      "generated": "Preview от Superset обновлен.",
      "generate_failed": "Не удалось сгенерировать preview от Superset."
    }
  },
  "launch": {
    "eyebrow": "Подтверждение запуска",
    "title": "Подтвердите запуск в SQL Lab",
    "description": "Запуск остается заблокированным, пока preview, approvals и readiness gates не соответствуют проверенному execution context.",
    "state_label": "Состояние запуска",
    "state": {
      "Blocked": "Заблокирован",
      "Ready": "Готов",
      "Submitted": "Отправлен"
    },
    "blocked_title": "Блокеры запуска",
    "blocked_body": "Разрешите следующие пункты перед отправкой запуска датасета в SQL Lab.",
    "resolve_action": "Открыть связанный раздел",
    "dataset_ref_label": "Ссылка на датасет",
    "readiness_label": "Готовность",
    "approved_mappings_label": "Подтвержденные маппинги",
    "preview_fingerprint_label": "Fingerprint preview",
    "sql_lab_target_title": "Цель запуска",
    "sql_lab_target_body": "Каноническая цель запуска — сессия Superset SQL Lab с использованием проверенного preview и итоговых execution inputs.",
    "preview_status_label": "Статус preview",
    "compiled_by_label": "Скомпилировано",
    "launch_action": "Запустить датасет",
    "launch_loading": "Запуск датасета...",
    "submitted_title": "Запуск отправлен",
    "submitted_body": "Передача в SQL Lab и аудитируемый run context были записаны для этого запроса запуска.",
    "run_context_label": "Run context",
    "sql_lab_session_label": "Сессия SQL Lab",
    "launch_status_label": "Статус запуска",
    "preview_ref_label": "Ссылка на preview",
    "blockers": {
      "blocking_finding": "Есть неразрешенные блокирующие findings",
      "mapping_approval_required": "Маппинг все еще требует подтверждения",
      "preview_missing": "Перед запуском требуется preview от Superset",
      "preview_pending": "Preview все еще генерируется",
      "preview_stale": "Preview больше не соответствует текущим execution inputs",
      "preview_failed": "Preview завершился ошибкой, запуск заблокирован",
      "readiness_not_run_ready": "Сессия еще не находится в состоянии run-ready",
      "preview_fingerprint_missing": "Fingerprint preview отсутствует, поэтому запуску нельзя доверять"
    },
    "messages": {
      "launch_started": "Запрос запуска датасета отправлен в SQL Lab.",
      "launch_failed": "Не удалось запустить датасет в SQL Lab."
    }
  }
}
