"""i18n message definitions for wizard, status, and post-init panel.

~60 keys × 5 languages. Fallback chain handled by get_message() in __init__.py.
"""
from __future__ import annotations

MESSAGES: dict[str, dict[str, str]] = {
    # ── Wizard prompts ─────────────────────────────────────────────────────────
    "wizard.language_prompt": {
        "en": "Select your language",
        "zh": "选择你的语言",
        "ja": "言語を選択してください",
        "ko": "언어를 선택하세요",
        "fr": "Choisissez votre langue",
    },
    "wizard.language_choices": {
        "en": "[1] English  [2] 中文  [3] 日本語  [4] 한국어  [5] Français",
        "zh": "[1] English  [2] 中文  [3] 日本語  [4] 한국어  [5] Français",
        "ja": "[1] English  [2] 中文  [3] 日本語  [4] 한국어  [5] Français",
        "ko": "[1] English  [2] 中文  [3] 日本語  [4] 한국어  [5] Français",
        "fr": "[1] English  [2] 中文  [3] 日本語  [4] 한국어  [5] Français",
    },
    "wizard.tool_prompt": {
        "en": "Which vibe coding tool do you use?",
        "zh": "你使用哪个 AI 编程工具？",
        "ja": "どのバイブコーディングツールを使用しますか？",
        "ko": "어떤 바이브 코딩 도구를 사용하시나요?",
        "fr": "Quel outil de vibe coding utilisez-vous ?",
    },
    "wizard.tool_choices": {
        "en": "[1] Claude Code  [2] Cursor  [3] Codex  [4] Gemini CLI  [5] OpenCode",
        "zh": "[1] Claude Code  [2] Cursor  [3] Codex  [4] Gemini CLI  [5] OpenCode",
        "ja": "[1] Claude Code  [2] Cursor  [3] Codex  [4] Gemini CLI  [5] OpenCode",
        "ko": "[1] Claude Code  [2] Cursor  [3] Codex  [4] Gemini CLI  [5] OpenCode",
        "fr": "[1] Claude Code  [2] Cursor  [3] Codex  [4] Gemini CLI  [5] OpenCode",
    },
    "wizard.output_prompt": {
        "en": "Where should khanote save your research?",
        "zh": "khanote 应该把研究结果保存在哪里？",
        "ja": "khanote はリサーチ結果をどこに保存しますか？",
        "ko": "khanote가 연구 결과를 어디에 저장할까요?",
        "fr": "Où khanote doit-il enregistrer vos recherches ?",
    },
    "wizard.output_default": {
        "en": "~/Documents/khanote-research",
        "zh": "~/Documents/khanote-research",
        "ja": "~/Documents/khanote-research",
        "ko": "~/Documents/khanote-research",
        "fr": "~/Documents/khanote-research",
    },
    "wizard.role_prompt": {
        "en": "What is your role?",
        "zh": "你的角色是什么？",
        "ja": "あなたの役割は何ですか？",
        "ko": "당신의 역할은 무엇인가요?",
        "fr": "Quel est votre rôle ?",
    },
    "wizard.role_choices": {
        "en": "[1] Developer  [2] Product Manager  [3] Researcher  [4] Operations  [5] Mixed",
        "zh": "[1] 开发者  [2] 产品经理  [3] 研究员  [4] 运营  [5] 混合",
        "ja": "[1] 開発者  [2] プロダクトマネージャー  [3] 研究者  [4] オペレーション  [5] 混合",
        "ko": "[1] 개발자  [2] 프로덕트 매니저  [3] 연구자  [4] 운영  [5] 혼합",
        "fr": "[1] Développeur  [2] Product Manager  [3] Chercheur  [4] Opérations  [5] Mixte",
    },
    "wizard.interests_prompt": {
        "en": "What are your interests? (comma-separated, or press Enter to skip)",
        "zh": "你感兴趣的领域是什么？（逗号分隔，或按 Enter 跳过）",
        "ja": "興味のある分野は何ですか？（カンマ区切り、またはEnterでスキップ）",
        "ko": "관심 분야는 무엇인가요? (쉼표로 구분, Enter로 건너뜀)",
        "fr": "Quels sont vos centres d'intérêt ? (séparés par des virgules, ou Entrée pour ignorer)",
    },
    "wizard.interests_hint": {
        "en": "Options: ai, product, market, tech, medical, finance, sports, climate, security, devops, web, saas",
        "zh": "选项：ai、产品、市场、技术、医疗、金融、运动、气候、安全、devops、web、saas",
        "ja": "選択肢: ai, product, market, tech, medical, finance, sports, climate, security, devops, web, saas",
        "ko": "옵션: ai, product, market, tech, medical, finance, sports, climate, security, devops, web, saas",
        "fr": "Options : ai, product, market, tech, medical, finance, sports, climate, security, devops, web, saas",
    },
    "wizard.apikey_prompt": {
        "en": "Optional API keys (press Enter to skip each):",
        "zh": "可选的 API Keys（每个可按 Enter 跳过）：",
        "ja": "オプションのAPIキー（各キーはEnterでスキップ可能）：",
        "ko": "선택적 API 키 (각각 Enter로 건너뜀):",
        "fr": "Clés API optionnelles (appuyez sur Entrée pour ignorer chacune) :",
    },
    "wizard.apikey_validating": {
        "en": "Validating...",
        "zh": "验证中...",
        "ja": "検証中...",
        "ko": "검증 중...",
        "fr": "Validation en cours...",
    },
    "wizard.apikey_valid": {
        "en": "✓ Valid",
        "zh": "✓ 有效",
        "ja": "✓ 有効",
        "ko": "✓ 유효",
        "fr": "✓ Valide",
    },
    "wizard.apikey_invalid": {
        "en": "✗ Invalid (saved anyway — check your key later)",
        "zh": "✗ 无效（已保存 — 请稍后检查 key）",
        "ja": "✗ 無効（保存しました — 後でキーを確認してください）",
        "ko": "✗ 유효하지 않음 (저장됨 — 나중에 키를 확인하세요)",
        "fr": "✗ Invalide (sauvegardé quand même — vérifiez votre clé plus tard)",
    },
    "wizard.apikey_skipped": {
        "en": "— skipped",
        "zh": "— 已跳过",
        "ja": "— スキップ",
        "ko": "— 건너뜀",
        "fr": "— ignoré",
    },
    # ── Re-init detection ──────────────────────────────────────────────────────
    "wizard.reinit_notice": {
        "en": "Existing configuration found — current values shown as defaults.",
        "zh": "检测到已有配置 — 当前值已作为默认值填入。",
        "ja": "既存の設定が見つかりました — 現在の値がデフォルトとして表示されます。",
        "ko": "기존 구성이 발견되었습니다 — 현재 값이 기본값으로 표시됩니다.",
        "fr": "Configuration existante trouvée — les valeurs actuelles sont affichées comme valeurs par défaut.",
    },
    # ── Output path ────────────────────────────────────────────────────────────
    "wizard.path_created": {
        "en": "Directory created: {path}",
        "zh": "目录已创建：{path}",
        "ja": "ディレクトリを作成しました: {path}",
        "ko": "디렉터리 생성됨: {path}",
        "fr": "Répertoire créé : {path}",
    },
    # ── Tool not found warning ─────────────────────────────────────────────────
    "wizard.tool_not_found": {
        "en": "⚠ {tool} not found at expected path — skills may not load until the tool is installed.",
        "zh": "⚠ 未在预期路径找到 {tool} — 请安装该工具后 skills 才能加载。",
        "ja": "⚠ {tool} が期待されるパスに見つかりません — ツールをインストールするまでスキルが読み込まれない場合があります。",
        "ko": "⚠ {tool}이(가) 예상 경로에 없습니다 — 도구를 설치해야 스킬이 로드됩니다.",
        "fr": "⚠ {tool} introuvable au chemin attendu — les compétences ne se chargeront pas tant que l'outil n'est pas installé.",
    },
    # ── Post-init panel ────────────────────────────────────────────────────────
    "init.success_title": {
        "en": "khanote initialized!",
        "zh": "khanote 配置完成！",
        "ja": "khanote が初期化されました！",
        "ko": "khanote가 초기화되었습니다!",
        "fr": "khanote initialisé !",
    },
    "init.next_steps_header": {
        "en": "Next steps:",
        "zh": "接下来：",
        "ja": "次のステップ：",
        "ko": "다음 단계:",
        "fr": "Prochaines étapes :",
    },
    "init.step1_restart": {
        "en": "1. Restart your vibe coding tool:",
        "zh": "1. 重启你的 AI 编程工具：",
        "ja": "1. バイブコーディングツールを再起動してください：",
        "ko": "1. 바이브 코딩 도구를 재시작하세요:",
        "fr": "1. Redémarrez votre outil de vibe coding :",
    },
    "init.step2_run_skill": {
        "en": "2. Then type in your tool:",
        "zh": "2. 然后在工具里输入：",
        "ja": "2. ツールで次を入力してください：",
        "ko": "2. 그런 다음 도구에서 입력하세요:",
        "fr": "2. Puis saisissez dans votre outil :",
    },
    "init.tip_status": {
        "en": "Tip: Run 'khanote status' to verify your setup anytime.",
        "zh": "提示：随时运行 'khanote status' 检查配置状态。",
        "ja": "ヒント：'khanote status' を実行していつでも設定を確認できます。",
        "ko": "팁: 언제든지 'khanote status'를 실행하여 설정을 확인하세요.",
        "fr": "Conseil : Exécutez 'khanote status' pour vérifier votre configuration à tout moment.",
    },
    # ── Restart instructions (per tool) ───────────────────────────────────────
    "restart.claude-code": {
        "en": "Quit Claude Code and reopen it (or restart your terminal session)",
        "zh": "退出 Claude Code 并重新打开（或重启终端会话）",
        "ja": "Claude Code を終了して再起動してください（またはターミナルセッションを再起動）",
        "ko": "Claude Code를 종료하고 다시 여세요 (또는 터미널 세션 재시작)",
        "fr": "Quittez Claude Code et rouvrez-le (ou redémarrez votre session terminal)",
    },
    "restart.cursor": {
        "en": "Press Cmd+Shift+P → 'Developer: Reload Window' (or restart Cursor)",
        "zh": "按 Cmd+Shift+P → 'Developer: Reload Window'（或重启 Cursor）",
        "ja": "Cmd+Shift+P → 'Developer: Reload Window'（またはCursorを再起動）",
        "ko": "Cmd+Shift+P → 'Developer: Reload Window' (또는 Cursor 재시작)",
        "fr": "Appuyez sur Cmd+Shift+P → 'Developer: Reload Window' (ou redémarrez Cursor)",
    },
    "restart.codex": {
        "en": "Restart your Codex session",
        "zh": "重启你的 Codex 会话",
        "ja": "Codex セッションを再起動してください",
        "ko": "Codex 세션을 재시작하세요",
        "fr": "Redémarrez votre session Codex",
    },
    "restart.gemini-cli": {
        "en": "Quit and reopen Gemini CLI",
        "zh": "退出并重新打开 Gemini CLI",
        "ja": "Gemini CLI を終了して再起動してください",
        "ko": "Gemini CLI를 종료하고 다시 여세요",
        "fr": "Quittez et rouvrez Gemini CLI",
    },
    "restart.opencode": {
        "en": "Restart OpenCode",
        "zh": "重启 OpenCode",
        "ja": "OpenCode を再起動してください",
        "ko": "OpenCode를 재시작하세요",
        "fr": "Redémarrez OpenCode",
    },
    # ── Status command ─────────────────────────────────────────────────────────
    "status.title": {
        "en": "khanote status",
        "zh": "khanote 状态",
        "ja": "khanote ステータス",
        "ko": "khanote 상태",
        "fr": "statut khanote",
    },
    "status.not_initialized": {
        "en": "khanote is not initialized.\nRun: khanote init",
        "zh": "khanote 尚未初始化。\n运行：khanote init",
        "ja": "khanote は初期化されていません。\n実行: khanote init",
        "ko": "khanote가 초기화되지 않았습니다.\n실행: khanote init",
        "fr": "khanote n'est pas initialisé.\nExécutez : khanote init",
    },
    "status.label_tool": {
        "en": "Tool",
        "zh": "工具",
        "ja": "ツール",
        "ko": "도구",
        "fr": "Outil",
    },
    "status.label_output": {
        "en": "Output",
        "zh": "输出路径",
        "ja": "出力先",
        "ko": "출력 경로",
        "fr": "Sortie",
    },
    "status.label_feeds": {
        "en": "Feeds",
        "zh": "Feeds",
        "ja": "フィード",
        "ko": "피드",
        "fr": "Flux",
    },
    "status.label_language": {
        "en": "Language",
        "zh": "语言",
        "ja": "言語",
        "ko": "언어",
        "fr": "Langue",
    },
    "status.label_role": {
        "en": "Role",
        "zh": "角色",
        "ja": "役割",
        "ko": "역할",
        "fr": "Rôle",
    },
    "status.label_interests": {
        "en": "Interests",
        "zh": "兴趣",
        "ja": "興味",
        "ko": "관심사",
        "fr": "Intérêts",
    },
    "status.label_depth": {
        "en": "Depth",
        "zh": "深度",
        "ja": "深さ",
        "ko": "깊이",
        "fr": "Profondeur",
    },
    "status.label_api_keys": {
        "en": "API Keys",
        "zh": "API Keys",
        "ja": "APIキー",
        "ko": "API 키",
        "fr": "Clés API",
    },
    "status.feeds_count": {
        "en": "{n} configured",
        "zh": "已配置 {n} 个",
        "ja": "{n} 件設定済み",
        "ko": "{n}개 구성됨",
        "fr": "{n} configuré(s)",
    },
    "status.warning_no_prefs": {
        "en": "⚠ Missing preferences.yaml — run: khanote init",
        "zh": "⚠ 缺少 preferences.yaml — 运行：khanote init",
        "ja": "⚠ preferences.yaml が見つかりません — 実行: khanote init",
        "ko": "⚠ preferences.yaml 누락 — 실행: khanote init",
        "fr": "⚠ preferences.yaml manquant — exécutez : khanote init",
    },
    "status.warning_no_feeds": {
        "en": "⚠ No feeds configured — run /khanote.feed.add in your vibe coding tool",
        "zh": "⚠ 未配置 feeds — 在你的 AI 工具里运行 /khanote.feed.add",
        "ja": "⚠ フィードが設定されていません — バイブコーディングツールで /khanote.feed.add を実行してください",
        "ko": "⚠ 피드가 구성되지 않았습니다 — 바이브 코딩 도구에서 /khanote.feed.add를 실행하세요",
        "fr": "⚠ Aucun flux configuré — exécutez /khanote.feed.add dans votre outil de vibe coding",
    },
    # ── Errors ─────────────────────────────────────────────────────────────────
    "error.interrupted": {
        "en": "\nSetup interrupted. No files were written.\nRun 'khanote init' to try again.",
        "zh": "\n初始化已中断。没有文件被写入。\n运行 'khanote init' 重试。",
        "ja": "\nセットアップが中断されました。ファイルは書き込まれていません。\n'khanote init' を実行して再試行してください。",
        "ko": "\n설정이 중단되었습니다. 파일이 작성되지 않았습니다.\n다시 시도하려면 'khanote init'을 실행하세요.",
        "fr": "\nConfiguration interrompue. Aucun fichier n'a été écrit.\nExécutez 'khanote init' pour réessayer.",
    },
    "error.start_my_day_removed": {
        "en": "start-my-day is now a skill, not a CLI command.\nOpen your vibe coding tool and type: /khanote.start-my-day",
        "zh": "start-my-day 现在是一个 skill，不是 CLI 命令。\n在你的 AI 编程工具里输入：/khanote.start-my-day",
        "ja": "start-my-day はスキルになりました。CLIコマンドではありません。\nバイブコーディングツールで次を入力してください: /khanote.start-my-day",
        "ko": "start-my-day는 이제 스킬입니다. CLI 명령이 아닙니다.\n바이브 코딩 도구에서 입력하세요: /khanote.start-my-day",
        "fr": "start-my-day est maintenant une compétence, pas une commande CLI.\nOuvrez votre outil de vibe coding et tapez : /khanote.start-my-day",
    },
}
