const jaJP = {
  sidebar: {
    home: 'ホーム',
    extensions: '拡張機能',
    installedPlugins: 'インストール済みプラグイン',
    pluginMarket: 'プラグインマーケット',
    mcpServers: 'MCPサーバー',
    quickStart: 'クイックスタート',
  },
  common: {
    login: 'ログイン',
    logout: 'ログアウト',
    accountOptions: 'システム設定',
    account: 'アカウント',
    integration: '連携',
    email: 'メールアドレス',
    password: 'パスワード',
    welcome: 'LangBot へおかえりなさい 👋',
    continueToLogin: 'ログインしてください',
    loginSuccess: 'ログインに成功しました',
    loginFailed:
      'ログインに失敗しました。メールアドレスまたはパスワードをご確認ください',
    loginLoadError: 'サーバーに接続できません',
    loginLoadErrorDesc:
      'LangBot バックエンドに接続できません。サービスが起動していることを確認してから再試行してください。',
    retry: '再試行',
    enterEmail: 'メールアドレスを入力',
    enterPassword: 'パスワードを入力',
    invalidEmail: '有効なメールアドレスを入力してください',
    emptyPassword: 'パスワードを入力してください',
    language: '言語',
    helpDocs: 'ヘルプドキュメント',
    featureRequest: '機能リクエスト',
    starOnGitHub: 'GitHubでStarする',
    create: '作成',
    edit: '編集',
    delete: '削除',
    add: '追加',
    select: '選択してください',
    cancel: 'キャンセル',
    submit: '送信',
    error: 'エラー',
    success: '成功',
    save: '保存',
    saving: '保存中...',
    confirm: '確認',
    confirmDelete: '削除の確認',
    deleteConfirmation: '本当に削除しますか？',
    selectOption: 'オプションを選択',
    selectPreset: 'プリセットを選択',
    required: '必須',
    enable: '有効にする',
    name: '名前',
    description: '説明',
    icon: 'アイコン',
    close: '閉じる',
    deleteSuccess: '削除に成功しました',
    deleteError: '削除に失敗しました：',
    addRound: 'ラウンドを追加',
    copy: 'コピー',
    copySuccess: 'コピーに成功しました',
    copyFailed: 'コピーに失敗しました',
    test: 'テスト',
    forgotPassword: 'パスワードを忘れた？',
    agreementNotice: '続行することで、以下に同意したものとみなされます：',
    privacyPolicy: 'プライバシーポリシー',
    and: 'および',
    dataCollectionPolicy: 'データ収集ポリシー',
    dataCollectionPolicyUrl: 'https://link.langbot.app/ja/docs/data-policy',
    loading: '読み込み中...',
    fieldRequired: 'この項目は必須です',
    or: 'または',
    loginWithSpace: 'Space でログイン',
    spaceLoginRecommended:
      'おすすめ：公式の安定したモデル API とクラウドサービスを利用',
    loginLocal: 'ローカルアカウントでログイン',
    loginWithPassword: 'パスワードでログイン',
    spaceLoginTitle: 'Space でログイン',
    spaceLoginDescription:
      'QRコードをスキャンするか、下のリンクにアクセスして認証してください',
    spaceLoginUserCode: '認証コード',
    spaceLoginExpires: 'コードは {{seconds}} 秒後に期限切れになります',
    spaceLoginWaiting: '認証を待っています...',
    spaceLoginSuccess: '認証に成功しました',
    spaceLoginFailed: 'Space ログインに失敗しました',
    spaceLoginExpired:
      '認証コードの有効期限が切れました。もう一度お試しください',
    spaceLoginCancel: 'キャンセル',
    spaceLoginVisitLink: 'リンクにアクセス',
    spaceLoginProcessing: 'Space でログイン中',
    spaceLoginProcessingDescription:
      'ログインを完了しています。しばらくお待ちください...',
    spaceLoginSuccessDescription: 'LangBot にリダイレクト中...',
    spaceLoginError: 'ログインに失敗しました',
    spaceLoginNoCode: '認証コードがありません',
    backToLogin: 'ログインに戻る',
    backToHome: 'ホームに戻る',
    spaceAccountCannotChangePassword:
      'Space アカウントはここでパスワードを変更できません',
    theme: 'テーマ',
    changePassword: 'パスワードを変更',
    currentPassword: '現在のパスワード',
    newPassword: '新しいパスワード',
    confirmNewPassword: '新しいパスワードを確認',
    enterCurrentPassword: '現在のパスワードを入力',
    enterNewPassword: '新しいパスワードを入力',
    enterConfirmPassword: '新しいパスワードを確認',
    currentPasswordRequired: '現在のパスワードは必須です',
    newPasswordRequired: '新しいパスワードは必須です',
    confirmPasswordRequired: '新しいパスワードを確認してください',
    passwordsDoNotMatch: '新しいパスワードが一致しません',
    changePasswordSuccess: 'パスワードの変更に成功しました',
    changePasswordFailed:
      'パスワードの変更に失敗しました。現在のパスワードを確認してください',
    apiIntegration: 'API統合',
    apiKeys: 'API キー',
    manageApiIntegration: 'API統合の管理',
    manageApiKeys: 'API キーの管理',
    createApiKey: 'API キーを作成',
    apiKeyName: 'API キー名',
    apiKeyDescription: 'API キーの説明',
    apiKeyValue: 'API キー値',
    apiKeyCreated: 'API キーの作成に成功しました',
    apiKeyDeleted: 'API キーの削除に成功しました',
    apiKeyDeleteConfirm: 'この API キーを削除してもよろしいですか？',
    apiKeyNameRequired: 'API キー名は必須です',
    copyApiKey: 'API キーをコピー',
    apiKeyCopied: 'API キーをクリップボードにコピーしました',
    noApiKeys: 'API キーが設定されていません',
    apiKeyHint:
      'API キーを使用すると、外部システムが LangBot Service API にアクセスできます',
    webhooks: 'Webhooks',
    createWebhook: 'Webhook を作成',
    webhookName: 'Webhook 名',
    webhookUrl: 'Webhook URL',
    webhookDescription: 'Webhook の説明',
    webhookEnabled: '有効',
    webhookCreated: 'Webhook が正常に作成されました',
    webhookDeleted: 'Webhook が正常に削除されました',
    webhookDeleteConfirm: 'この Webhook を削除してもよろしいですか？',
    webhookNameRequired: 'Webhook 名は必須です',
    webhookUrlRequired: 'Webhook URL は必須です',
    noWebhooks: 'Webhook が設定されていません',
    webhookHint:
      'Webhook を使用すると、LangBot は個人メッセージとグループメッセージイベントを外部システムにプッシュできます',
    actions: 'アクション',
    apiKeyCreatedMessage:
      'この API キーをコピーしてください。もしボタンが無効な場合は手動でコピーしてください。',
    none: 'なし',
    more: 'もっと見る ({{count}})',
    less: '折りたたむ',
    noItems: '項目がありません',
  },
  notFound: {
    title: 'ページが見つかりません',
    description:
      'お探しのページは存在しないようです。入力したURLが正しいか確認するか、ホームページに戻ってください。',
    back: '戻る',
    home: 'ホームに戻る',
    help: 'ヘルプドキュメントを見る',
  },
  models: {
    title: 'モデル設定',
    description: 'パイプラインで使用できるモデルを設定・管理',
    createModel: 'モデルを作成',
    editModel: 'モデルを編集',
    getModelListError: 'モデルリストの取得に失敗しました：',
    modelName: 'モデル名',
    modelProvider: 'モデルプロバイダー',
    modelBaseURL: 'ベースURL',
    modelAbilities: 'モデル機能',
    saveSuccess: '保存に成功しました',
    saveError: '保存に失敗しました：',
    createSuccess: '作成に成功しました',
    createError: '作成に失敗しました：',
    deleteSuccess: '削除に成功しました',
    deleteError: '削除に失敗しました：',
    deleteConfirmation: '本当にこのモデルを削除しますか？',
    modelNameRequired: 'モデル名は必須です',
    modelProviderRequired: 'モデルプロバイダーは必須です',
    requestURLRequired: 'リクエストURLは必須です',
    apiKeyRequired: 'APIキーは必須です',
    keyNameRequired: 'キー名は必須です',
    mustBeValidNumber: '有効な数値である必要があります',
    mustBeTrueOrFalse: 'true または false である必要があります',
    requestURL: 'リクエストURL',
    scanURL: 'モデルスキャンURL',
    scanURLPlaceholder: '空のままにするとリクエストURL + /modelsを使用します',
    scanURLDescription:
      'モデルスキャンがモデル呼び出しと同じアドレスを使用しない場合は、実際のモデルリストのエンドポイントを入力してください。',
    apiKey: 'APIキー',
    abilities: '機能',
    selectModelAbilities: 'モデル機能を選択',
    visionAbility: '視覚機能',
    functionCallAbility: '関数呼び出し',
    extraParameters: '追加パラメータ',
    addParameter: 'パラメータを追加',
    keyName: 'キー名',
    type: 'タイプ',
    value: '値',
    string: '文字列',
    number: '数値',
    boolean: 'ブール値',
    selectModelProvider: 'モデルプロバイダーを選択',
    modelProviderDescription: 'プロバイダーが提供するモデル名をご入力ください',
    modelManufacturer: 'モデルメーカー',
    aggregationPlatform: 'アグリゲーションプラットフォーム',
    selfDeployed: 'セルフデプロイ',
    builtin: 'ビルトイン',
    selectModel: 'モデルを選択してください',
    testSuccess: 'テストに成功しました',
    testError: 'テストに失敗しました。モデル設定を確認してください',
    llmModels: 'LLM モデル',
    localProvider: 'ローカル',
    localProviderDescription: 'ローカルで設定・管理されているモデル',
    spaceProviderDescription: 'Space アカウントから同期されたモデル',
    spaceDisabledForLocalAccount: 'Space でログインしてクラウドモデルを使用',
    syncModels: '同期',
    syncSuccess: '同期完了：{{created}} 件作成、{{updated}} 件更新',
    syncError: '同期に失敗しました：',
    spaceModelReadOnly: 'Space モデルは読み取り専用です',
    noSpaceModels:
      'Space モデルがありません。同期ボタンをクリックして Space からモデルを取得してください。',
    noLocalModels:
      'ローカルモデルがありません。作成ボタンをクリックしてモデルを追加してください。',
    providerCount: '{{count}} 件のプロバイダー',
    addModel: 'モデルを追加',
    manualAdd: '手動追加',
    scanAdd: 'スキャン追加',
    scanModels: 'モデルをスキャン',
    scanModelsHint:
      '現在のプロバイダーから利用可能なモデルを取得し、追加するモデルを選択します。',
    scannedModels: 'スキャン結果',
    scanDebug: 'デバッグ情報',
    searchScannedModels: 'スキャン結果を検索',
    noScannedModels:
      'まだスキャン結果がありません。上のボタンからスキャンしてください。',
    noScannedModelsMatch: '一致するモデルがありません',
    addSelectedModels: '選択したモデルを追加',
    addSelectedModelsSuccess: '{{count}} 件のモデルを追加しました',
    selectAll: 'すべて選択',
    alreadyAdded: '追加済み',
    addLLMModel: 'LLMモデルを追加',
    addEmbeddingModel: '埋め込みモデルを追加',
    provider: 'プロバイダー',
    existingProvider: '既存のプロバイダー',
    newProvider: '新規プロバイダー',
    selectProvider: 'プロバイダーを選択',
    requester: 'プロバイダータイプ',
    selectRequester: 'プロバイダータイプを選択',
    langbotModelsDescription: 'LangBot Space が提供するクラウドモデル',
    credits: 'クレジット',
    loginWithSpace: 'Space でログイン',
    loginToUseModels: 'Space でログインしてクラウドモデルを使用',
    noModels: 'モデルがありません',
    langbotModels: 'LangBot モデル',
    spaceTrialTooltip:
      '無料トライアルクレジットが利用可能！Space でログインして、設定不要でクラウドモデルを使用できます。',
    unlockModels: 'ログインして使用',
    editProvider: 'プロバイダーを編集',
    addProvider: 'プロバイダーを追加',
    addProviderHint:
      '他のソースのモデルを使用するにはプロバイダーを追加してください',
    addProviderHintSimple: 'モデルを使用するにはプロバイダーを追加してください',
    noProviders: 'プロバイダーがありません',
    providerName: 'プロバイダー名',
    providerNameRequired: 'プロバイダー名は必須です',
    requesterRequired: 'プロバイダータイプは必須です',
    providerSaved: 'プロバイダーを保存しました',
    providerCreated: 'プロバイダーを作成しました',
    providerSaveError: 'プロバイダーの保存に失敗しました：',
    providerDeleted: 'プロバイダーを削除しました',
    providerDeleteError: 'プロバイダーの削除に失敗しました：',
    deleteProviderConfirmation: 'このプロバイダーを削除してもよろしいですか？',
    loadError: 'データの読み込みに失敗しました',
    chat: 'チャット',
    embedding: '埋め込み',
    rerank: '再順位付け',
    rerankUrlTooltip:
      '再順位付けエンドポイントの完全URL（例: https://dashscope.aliyuncs.com/compatible-api/v1/reranks）',
    rerankPathTooltip:
      'ベースURLに追加するパス（デフォルト: rerank、一部サービスはreranksを使用）',
    modelsCount: '{{count}} 個のモデル',
    expandModels: '展開',
    collapseModels: '折りたたむ',
    fallback: {
      primary: 'プライマリモデル',
      fallbackList: 'フォールバックモデル',
      addFallback: 'フォールバックモデルを追加',
    },
  },
  bots: {
    title: 'ボット',
    description:
      'ボットの作成と管理を行います。LangBotと各プラットフォームを接続するためのエントリーポイントです',
    createBot: 'ボットを作成',
    selectFromSidebar: 'サイドバーからボットを選択してください',
    editBot: 'ボットを編集',
    getBotListError: 'ボットリストの取得に失敗しました：',
    botName: 'ボット名',
    botDescription: 'ボットの説明',
    botNameRequired: 'ボット名は必須です',
    botDescriptionRequired: 'ボットの説明は必須です',
    adapterRequired: 'アダプターは必須です',
    defaultDescription: 'ボット',
    getBotConfigError: 'ボット設定の取得に失敗しました：',
    saveSuccess: '保存に成功しました',
    saveError: '保存に失敗しました：',
    createSuccess:
      '作成が完了しました。有効化するか、パイプラインの設定を行ってください',
    createError: '作成に失敗しました：',
    deleteSuccess: '削除に成功しました',
    deleteError: '削除に失敗しました：',
    deleteConfirmation: '本当にこのボットを削除しますか？',
    platformAdapter: 'プラットフォーム/アダプター選択',
    selectAdapter: 'アダプターを選択',
    adapterConfig: 'アダプター設定',
    viewAdapterDocs: 'ドキュメントを見る',
    bindPipeline: 'パイプラインを紐付け',
    selectPipeline: 'パイプラインを選択',
    selectBot: 'ボットを選択してください',
    botLogTitle: 'ボットログ',
    enableAutoRefresh: '自動更新を有効にする',
    session: 'セッション',
    yesterday: '昨日',
    earlier: 'それ以前',
    dateFormat: '{{month}}月{{day}}日',
    setBotEnableError: 'ボットの有効状態の設定に失敗しました',
    log: 'ログ',
    configuration: '設定',
    logs: 'ログ',
    basicInfo: '基本情報',
    basicInfoDescription: 'ボットの名前と説明を設定',
    routingConnection: 'ルーティングと接続',
    routingConnectionDescription:
      'このボットのメッセージを処理するパイプラインを紐付け',
    routingRules: '条件付きルーティングルール',
    routingRulesDescription:
      'ルールは順番に評価され、最初に一致したルールのパイプラインにルーティングされます。一致しない場合はデフォルトパイプラインが使用されます。',
    addRoutingRule: 'ルールを追加',
    ruleTypeLauncherType: 'セッションタイプ',
    ruleTypeLauncherId: 'セッション ID',
    ruleTypeMessageContent: 'メッセージ内容',
    operatorEq: '等しい',
    operatorNeq: '等しくない',
    operatorContains: '含む',
    operatorNotContains: '含まない',
    operatorStartsWith: '前方一致',
    operatorRegex: '正規表現',
    operatorHas: '含む',
    operatorNotHas: '含まない',
    ruleTypeMessageHasElement: 'メッセージ要素',
    ruleValueElementPlaceholder: '要素タイプを選択',
    elementImage: '画像',
    elementVoice: '音声',
    elementFile: 'ファイル',
    elementForward: '転送',
    elementFace: '絵文字',
    elementAt: '@メンション',
    elementAtAll: '@全員',
    elementQuote: '引用',
    ruleValuePlaceholder: '一致値',
    ruleValueLauncherIdPlaceholder: 'グループまたはユーザー ID',
    ruleValueMessagePlaceholder: 'メッセージテキスト',
    ruleValuePrefixPlaceholder: '例: !draw',
    ruleValueRegexpPlaceholder: '例: ^/help',
    pipelineDiscard: 'メッセージを破棄',
    sessionTypePerson: 'プライベートチャット',
    sessionTypeGroup: 'グループチャット',
    adapterConfigDescription: '選択したプラットフォームアダプターを設定',
    dangerZone: '危険ゾーン',
    dangerZoneDescription: '元に戻せない操作',
    deleteBotAction: 'このボットを削除',
    deleteBotHint:
      '削除すると、関連する全ての設定が完全に削除され、復元できません。',
    webhookUrl: 'Webhook コールバック URL',
    webhookUrlCopied: 'Webhook URL をコピーしました',
    webhookUrlHint:
      '入力ボックスをクリックして全選択し、Ctrl+C (Mac: Cmd+C) でコピーするか、右側のボタンをクリックしてください',
    webhookUrlHintEither:
      '上記の2つのURLのいずれかをプラットフォーム設定に使用してください',
    webhookSaasHint:
      'Webhook には公開アクセス可能なドメインが必要です。LangBot Cloud では、ボット用のパブリックエンドポイントをすぐにご利用いただけます。',
    webhookSaasLink: 'LangBot Cloud の詳細はこちら',
    adapterCategory: {
      popular: '人気',
      china: '中国',
      global: 'グローバル',
      protocol: 'プロトコル',
    },
    logLevel: 'ログレベル',
    allLevels: 'すべてのレベル',
    selectLevel: 'レベルを選択',
    levelsSelected: 'レベル選択済み',
    viewDetailedLogs: '詳細ログを表示',
    viewDetails: '詳細',
    collapse: '折りたたむ',
    imagesAttached: '枚の画像が添付されています',
    noLogs: 'ログはまだありません',
    sessionMonitor: {
      title: 'セッション監視',
      sessions: 'セッション一覧',
      noSessions: 'セッションが見つかりません',
      selectSession: 'セッションを選択してメッセージを表示',
      noMessages: 'このセッションにはメッセージがありません',
      messages: '件のメッセージ',
      messageCount: '{{count}} 件のメッセージ',
      loading: '読み込み中...',
      loadingSessions: 'セッションを読み込み中...',
      loadingMessages: 'メッセージを読み込み中...',
      user: 'ユーザー',
      variables: '変数',
      platform: 'プラットフォーム',
      lastActive: '最終アクティブ',
      refresh: '更新',
      active: 'アクティブ',
      inactive: '非アクティブ',
      discarded: '破棄済み',
      userMessage: 'ユーザー',
      botMessage: 'アシスタント',
    },
  },
  plugins: {
    title: '拡張機能',
    description:
      'LangBotの機能を拡張するプラグインをインストール・設定。流水線設定で使用します',
    createPlugin: 'プラグインを作成',
    editPlugin: 'プラグインを編集',
    installed: 'インストール済み',
    marketplace: 'プラグインマーケット',
    arrange: '並び替え',
    install: 'インストール',
    installPlugin: 'プラグインをインストール',
    onlySupportGithub: '現在はGitHubからのインストールのみサポートしています',
    enterGithubLink: 'プラグインのGitHubリンクを入力してください',
    installing: 'プラグインをインストール中...',
    installSuccess: 'プラグインのインストールに成功しました',
    installFailed: 'プラグインのインストールに失敗しました：',
    searchPlugin: 'プラグインを検索',
    sortBy: '並び順',
    mostStars: 'スター数順',
    recentlyAdded: '最近追加',
    recentlyUpdated: '最近更新',
    noMatchingPlugins: '一致するプラグインが見つかりません',
    loading: '読み込み中...',
    getPluginListError: 'プラグインリストの取得に失敗しました：',
    noPluginInstalled: 'プラグインがインストールされていません',
    pluginConfig: 'プラグイン設定',
    pluginSort: 'プラグインの並び替え',
    pluginSortDescription:
      'プラグインの順序は、同一イベント内での処理順序に影響します。カードをドラッグして並び替えが可能です',
    pluginSortSuccess: 'プラグインの並び替えに成功しました',
    pluginSortError: 'プラグインの並び替えに失敗しました：',
    pluginNoConfig: 'プラグインに設定項目がありません。',
    systemDisabled: 'プラグインシステムが無効になっています',
    systemDisabledDesc:
      'プラグインシステムが無効になっています。プラグインシステムを有効にするか、ドキュメントに従って設定を変更してください',
    connectionError: 'プラグインシステム接続エラー',
    connectionErrorDesc:
      'プラグインシステム設定を確認するか、管理者に連絡してください',
    errorDetails: 'エラー詳細',
    loadingStatus: 'プラグインシステム状態を確認中...',
    failedToGetStatus: 'プラグインシステム状態の取得に失敗しました',
    pluginSystemNotReady:
      'プラグインシステムが準備されていません。この操作を実行できません',
    debugInfo: 'デバッグ情報',
    debugInfoTitle: 'プラグインデバッグ情報',
    debugUrl: 'デバッグURL',
    debugKey: 'デバッグキー',
    noDebugKey: '(未設定)',
    debugKeyDisabled:
      'デバッグキーが設定されていません。プラグインデバッグには認証が不要です',
    failedToGetDebugInfo: 'デバッグ情報の取得に失敗しました',
    copiedToClipboard: 'クリップボードにコピーしました',
    deleting: '削除中...',
    deletePlugin: 'プラグインを削除',
    cancel: 'キャンセル',
    saveConfig: '設定を保存',
    saving: '保存中...',
    confirmDeletePlugin:
      'プラグイン「{{author}}/{{name}}」を削除してもよろしいですか？',
    deleteDataCheckbox: 'プラグイン設定と永続化ストレージも削除する',
    confirmDelete: '削除を確認',
    deleteError: '削除に失敗しました：',
    close: '閉じる',
    deleteConfirm: '削除の確認',
    deleteSuccess: '削除に成功しました',
    modifyFailed: '変更に失敗しました：',
    componentName: {
      Tool: 'ツール',
      EventListener: 'イベント監視器',
      Command: 'コマンド',
      KnowledgeEngine: '知識エンジン',
      Parser: 'パーサー',
    },
    uploadLocal: 'ローカルアップロード',
    debugging: 'デバッグ中',
    uploadLocalPlugin: 'ローカルプラグインのアップロード',
    dragToUpload: 'ファイルをここにドラッグしてアップロード',
    unsupportedFileType:
      'サポートされていないファイルタイプです。.lbpkg と .zip ファイルのみサポートされています',
    uploadingPlugin: 'プラグインをアップロード中...',
    uploadSuccess: 'アップロード成功',
    uploadFailed: 'アップロード失敗',
    selectFileToUpload: 'アップロードするプラグインファイルを選択',
    askConfirm: 'プラグイン "{{name}}" ({{version}}) をインストールしますか？',
    fromGithub: 'GitHubから',
    fromLocal: 'ローカルから',
    fromMarketplace: 'プラグインマーケットから',
    componentsList: '部品：',
    noComponents: '部品がありません',
    delete: 'プラグインを削除',
    update: 'プラグインを更新',
    new: 'New',
    updateConfirm: '更新の確認',
    confirmUpdatePlugin:
      'プラグイン「{{author}}/{{name}}」を更新してもよろしいですか？',
    confirmUpdate: '更新を確認',
    updating: '更新中...',
    updateSuccess: 'プラグインの更新に成功しました',
    updateError: '更新に失敗しました：',
    saveConfigSuccessNormal: '設定を保存しました',
    saveConfigError: '設定の保存に失敗しました：',
    config: '設定',
    readme: 'ドキュメント',
    viewSource: 'ソースを表示',
    loadingReadme: 'ドキュメントを読み込み中...',
    noReadme: 'このプラグインはREADMEドキュメントを提供していません',
    fileUpload: {
      tooLarge: 'ファイルサイズが 10MB の制限を超えています',
      success: 'ファイルのアップロードに成功しました',
      failed: 'ファイルのアップロードに失敗しました',
      uploading: 'アップロード中...',
      chooseFile: 'ファイルを選択',
      addFile: 'ファイルを追加',
    },
    installFromGithub: 'GitHubから',
    enterRepoUrl: 'GitHubリポジトリのURLを入力してください',
    repoUrlPlaceholder: '例: https://github.com/owner/repo',
    fetchingReleases: 'リリース一覧を取得中...',
    selectRelease: 'リリースを選択',
    noReleasesFound: 'リリースが見つかりません',
    fetchReleasesError: 'リリース一覧の取得に失敗しました：',
    selectAsset: 'インストールするファイルを選択',
    noAssetsFound: 'このリリースには利用可能な .lbpkg ファイルがありません',
    fetchAssetsError: 'ファイル一覧の取得に失敗しました：',
    backToReleases: 'リリース一覧に戻る',
    backToRepoUrl: 'リポジトリURLに戻る',
    backToAssets: 'ファイル選択に戻る',
    releaseTag: 'タグ: {{tag}}',
    releaseName: '名前: {{name}}',
    publishedAt: '公開日: {{date}}',
    prerelease: 'プレリリース',
    assetSize: 'サイズ: {{size}}',
    confirmInstall: 'インストールを確認',
    installFromGithubDesc: 'GitHubリリースからプラグインをインストール',
    goToMarketplace: 'マーケットプレイスへ',
    installProgress: {
      title: '{{name}} をインストール中',
      titleGeneric: 'プラグインのインストール',
      overallProgress: '全体の進捗',
      downloading: 'プラグインをダウンロード中',
      installingDeps: '依存関係をインストール中',
      initializing: '設定を初期化中',
      launching: 'プラグインを起動中',
      completed: '完了',
      failed: '失敗',
      downloadSize: 'パッケージサイズ: {{size}}',
      depsInfo: '{{count}} 個の依存関係をインストール',
      depsProgress:
        '{{installed}}/{{total}} インストール済み · 残り {{remaining}} 個',
      installComplete: 'プラグインのインストール完了',
      dismiss: '閉じる',
      background: 'バックグラウンドで実行',
      taskQueue: 'インストールタスク',
      clearCompleted: '完了を消去',
      noTasks: 'インストールタスクはありません',
    },
  },
  market: {
    searchPlaceholder: 'プラグインを検索...',
    searchResults: '{{count}} 個のプラグインが見つかりました',
    totalPlugins: '合計 {{count}} 個のプラグイン',
    noPlugins: '利用可能なプラグインがありません',
    noResults: '関連するプラグインが見つかりません',
    loadingMore: 'さらに読み込み中...',
    loading: '読み込み中...',
    allLoaded: 'すべてのプラグインが表示されました',
    install: 'インストール',
    installConfirm:
      'プラグイン "{{name}}" ({{version}}) をインストールしますか？',
    downloadComplete: 'プラグイン "{{name}}" のダウンロードが完了しました',
    installFailed: 'インストールに失敗しました。後でもう一度お試しください',
    loadFailed:
      'プラグインリストの取得に失敗しました。後でもう一度お試しください',
    noDescription: '説明がありません',
    notFound: 'プラグイン情報が見つかりません',
    sortBy: '並び順',
    sort: {
      recentlyAdded: '最近追加',
      recentlyUpdated: '最近更新',
      mostDownloads: 'ダウンロード数多',
      leastDownloads: 'ダウンロード数少',
    },
    downloads: '回ダウンロード',
    download: 'ダウンロード',
    repository: 'リポジトリ',
    downloadFailed: 'ダウンロード失敗',
    noReadme: 'このプラグインはREADMEドキュメントを提供していません',
    description: '説明',
    tagLabel: 'タグ',
    submissionTitle: 'プラグインの提出が審査中です： {{name}}',
    submissionPending: 'プラグインの提出が審査中です： {{name}}',
    submissionApproved: 'プラグインの提出が承認されました： {{name}}',
    submissionRejected: 'プラグインの提出が拒否されました： {{name}}',
    clickToRevoke: '取り消し',
    revokeSuccess: '取り消し成功',
    revokeFailed: '取り消し失敗',
    submissionDetails: 'プラグイン提出詳細',
    markAsRead: '既読',
    markAsReadSuccess: '既読に設定しました',
    markAsReadFailed: '既読に設定に失敗しました',
    filterByComponent: 'コンポーネント',
    allComponents: '全部コンポーネント',
    requestPlugin: 'プラグインをリクエスト',
    tags: {
      filterByTags: 'タグで絞り込み',
      selected: '選択済み',
      selectTags: 'タグを選択',
      clearAll: 'クリア',
      noTags: 'タグがありません',
    },
    viewDetails: '詳細を表示',
    deprecated: '非推奨',
    deprecatedTooltip:
      '対応する「ナレッジエンジン」プラグインをインストールしてください。',
  },
  mcp: {
    title: 'MCP',
    createServer: 'MCPサーバーを追加',
    editServer: 'MCPサーバーを編集',
    deleteServer: 'MCPサーバーを削除',
    confirmDeleteServer: 'このMCPサーバーを削除してもよろしいですか？',
    confirmDeleteTitle: 'MCPサーバーを削除',
    getServerListError: 'MCPサーバーリストの取得に失敗しました：',
    serverName: 'サーバー名',
    serverMode: '接続モード',
    stdio: 'Stdioモード',
    sse: 'SSEモード',
    http: 'HTTPモード',
    selectMode: '接続モードを選択',
    noServerInstalled: 'MCPサーバーが設定されていません',
    serverNameRequired: 'サーバー名は必須です',
    commandRequired: 'コマンドは必須です',
    urlRequired: 'URLは必須です',
    timeoutMustBePositive: 'タイムアウトは正の数でなければなりません',
    command: 'コマンド',
    args: '引数',
    env: '環境変数',
    url: 'URL',
    headers: 'ヘッダー',
    timeout: 'タイムアウト',
    addArgument: '引数を追加',
    addEnvVar: '環境変数を追加',
    addHeader: 'ヘッダーを追加',
    keyName: 'キー名',
    value: '値',
    testing: 'テスト中...',
    connecting: '接続中...',
    testSuccess: '刷新に成功しました',
    testFailed: '刷新に失敗しました：',
    testError: '刷新エラー',
    refreshSuccess: '刷新に成功しました',
    refreshFailed: '刷新に失敗しました：',
    connectionSuccess: '接続に成功しました',
    connectionFailed: '接続に失敗しました，URLを確認してください',
    connectionFailedStatus: '接続失敗',
    toolsFound: '個のツール',
    unknownError: '不明なエラー',
    noToolsFound: 'ツールが見つかりません',
    parseResultFailed: 'テスト結果の解析に失敗しました',
    noResultReturned: 'テスト結果が返されませんでした',
    getTaskFailed: 'タスクステータスの取得に失敗しました',
    noTaskId: 'タスクIDを取得できませんでした',
    deleteSuccess: '削除に成功しました',
    deleteFailed: '削除に失敗しました：',
    deleteError: '削除に失敗しました：',
    saveSuccess: '保存に成功しました',
    saveError: '保存に失敗しました：',
    createSuccess: '作成に成功しました',
    createFailed: '作成に失敗しました：',
    createError: '作成に失敗しました：',
    loadFailed: '読み込みに失敗しました',
    modifyFailed: '変更に失敗しました：',
    toolCount: 'ツール：{{count}}',
    statusConnected: '接続済み',
    statusDisconnected: '未接続',
    statusError: '接続エラー',
    statusDisabled: '無効',
    loading: '読み込み中...',
    starCount: 'スター：{{count}}',
    install: 'インストール',
    installFromGithub: 'GitHubからMCPサーバーをインストール',
    add: '追加',
    name: '名前',
    nameRequired: '名前は必須です',
    sseTimeout: 'SSEタイムアウト',
    sseTimeoutDescription: 'SSE接続を確立するためのタイムアウト',
    extraParametersDescription:
      'MCPサーバーの特定の動作を設定するための追加パラメータ',
    timeoutMustBeNumber: 'タイムアウトは数値である必要があります',
    timeoutNonNegative: 'タイムアウトは負の数にできません',
    sseTimeoutMustBeNumber: 'SSEタイムアウトは数値である必要があります',
    sseTimeoutNonNegative: 'SSEタイムアウトは負の数にできません',
    updateSuccess: '更新に成功しました',
    updateFailed: '更新に失敗しました：',
    selectFromSidebar: 'サイドバーからMCPサーバーを選択してください',
    dangerZone: '危険ゾーン',
    dangerZoneDescription: 'このMCPサーバーに対する不可逆的な操作です。',
    deleteMCPAction: 'このMCPサーバーを削除',
    deleteMCPHint: '削除すると、このMCPサーバーの設定は復元できません。',
  },
  pipelines: {
    title: 'パイプライン',
    description:
      'メッセージイベントの処理フローを定義し、ボットに紐付けて使用するパイプラインです',
    createPipeline: 'パイプラインを作成',
    selectFromSidebar: 'サイドバーからパイプラインを選択してください',
    editPipeline: 'パイプラインを編集',
    chat: 'チャット',
    configuration: '設定',
    debugChat: 'チャットデバッグ',
    getPipelineListError: 'パイプラインリストの取得に失敗しました：',
    daysAgo: '日前',
    today: '今日',
    updateTime: '更新日時',
    defaultBadge: 'デフォルト',
    sortBy: '並び順',
    newestCreated: '最新作成',
    earliestCreated: '最古作成',
    recentlyEdited: '最近編集',
    earliestEdited: '最古編集',
    basicInfo: '基本情報',
    basicInfoDescription: 'パイプラインの名前、アイコン、説明を設定',
    aiCapabilities: 'AI機能',
    triggerConditions: 'トリガー条件',
    safetyControls: '安全制御',
    outputProcessing: '出力処理',
    nameRequired: '名前は必須です',
    descriptionRequired: '説明は必須です',
    createSuccess:
      '作成が完了しました。パイプラインの詳細パラメータを設定してください',
    createError: '作成に失敗しました：',
    saveSuccess: '保存に成功しました',
    saveError: '保存に失敗しました：',
    copySuffix: ' Copy',
    deleteConfirmation:
      '本当にこのパイプラインを削除しますか？このパイプラインに紐付けられたボットは動作しなくなります。',
    defaultPipelineCannotDelete: 'デフォルトパイプラインは削除できません',
    deleteSuccess: '削除に成功しました',
    deleteError: '削除に失敗しました：',
    copyConfirmTitle: 'コピーの確認',
    copyConfirmation:
      'このパイプラインをコピーしますか？すべての設定を含む新しいパイプラインが作成されます。',
    unsavedChanges: '未保存の変更があります',
    dangerZone: '危険ゾーン',
    dangerZoneDescription: '元に戻せない操作',
    deletePipelineAction: 'このパイプラインを削除',
    deletePipelineHint:
      '削除すると、このパイプラインに紐付けられたボットは動作しなくなります。',
    copyPipelineAction: 'このパイプラインをコピー',
    copyPipelineHint: 'すべての設定を複製した新しいパイプラインを作成します。',
    extensions: {
      title: 'プラグイン統合',
      loadError: 'プラグインリストの読み込みに失敗しました',
      saveSuccess: '保存に成功しました',
      saveError: '保存に失敗しました',
      noPluginsAvailable: '利用可能なプラグインがありません',
      disabled: '無効',
      noPluginsSelected: 'プラグインが選択されていません',
      addPlugin: 'プラグインを追加',
      selectPlugins: 'プラグインを選択',
      pluginsTitle: 'プラグイン',
      mcpServersTitle: 'MCPサーバー',
      noMCPServersSelected: 'MCPサーバーが選択されていません',
      addMCPServer: 'MCPサーバーを追加',
      selectMCPServers: 'MCPサーバーを選択',
      toolCount: '{{count}}個のツール',
      noPluginsInstalled: 'インストールされているプラグインがありません',
      noMCPServersConfigured: '設定されているMCPサーバーがありません',
      selectAll: 'すべて選択',
      enableAllPlugins: 'すべてのプラグインを有効にする',
      enableAllMCPServers: 'すべてのMCPサーバーを有効にする',
      allPluginsEnabled: 'すべてのプラグインが有効になっています',
      allMCPServersEnabled: 'すべてのMCPサーバーが有効になっています',
    },
    debugDialog: {
      title: 'パイプラインのチャット',
      selectPipeline: 'パイプラインを選択',
      sessionType: 'セッションタイプ',
      privateChat: 'プライベートチャット',
      groupChat: 'グループチャット',
      send: '送信',
      reset: '会話をリセット',
      inputPlaceholder: '{{type}}メッセージを送信...',
      noMessages: 'メッセージがありません',
      userMessage: 'ユーザー',
      botMessage: 'ボット',
      sendFailed: '送信に失敗しました',
      resetSuccess: '会話がリセットされました',
      resetFailed: 'リセットに失敗しました',
      loadMessagesFailed: 'メッセージの読み込みに失敗しました',
      loadPipelinesFailed: 'パイプラインの読み込みに失敗しました',
      atTips: 'ボットをメンション',
      streaming: 'ストリーミング',
      streamOutput: 'ストリーム',
      connected: 'WebSocket接続済み',
      disconnected: 'WebSocket未接続',
      connectionError: 'WebSocket接続エラー',
      connectionFailed: 'WebSocket接続に失敗しました',
      notConnected:
        'WebSocketに接続されていません。しばらくしてからやり直してください',
      imageUploadFailed: '画像のアップロードに失敗しました',
      reply: '返信',
      replyTo: '返信先',
      showMarkdown: 'Markdownで表示',
      showRaw: '原文で表示',
      allMembers: '全メンバー',
      file: 'ファイル',
      voice: '音声',
      uploadImage: '画像をアップロード',
      uploading: 'アップロード中...',
    },
    monitoring: {
      title: 'ダッシュボード',
      description: 'このパイプラインの実行ログとエラー情報を表示（過去24時間）',
      detailedLogs: '詳細ログ',
    },
  },
  knowledge: {
    title: '知識ベース',
    createKnowledgeBase: '知識ベースを作成',
    selectFromSidebar: 'サイドバーから知識ベースを選択してください',
    editKnowledgeBase: '知識ベースを編集',
    selectKnowledgeBase: '知識ベースを選択',
    selectKnowledgeBases: '知識ベースを選択',
    addKnowledgeBase: '知識ベースを追加',
    noKnowledgeBaseSelected: '知識ベースが選択されていません',
    empty: 'なし',
    editDocument: 'ドキュメント',
    description: 'LLMの回答品質向上のための知識ベースを設定します',
    metadata: 'メタデータ',
    documents: 'ドキュメント',
    kbNameRequired: '知識ベース名は必須です',
    kbDescriptionRequired: '知識ベースの説明は必須です',
    embeddingModelUUIDRequired: '埋め込みモデルは必須です',
    daysAgo: '日前',
    today: '今日',
    kbName: '知識ベース名',
    kbDescription: '知識ベースの説明',
    topK: 'Top K',
    topKRequired: 'Top Kは必須です',
    topKMax: 'Top Kの最大値は30です',
    topKdescription:
      '取得する関連性の高い上位K件の文書の数。1～30の範囲で設定できます',
    defaultDescription: '知識ベース',
    embeddingModelUUID: '埋め込みモデル',
    selectEmbeddingModel: '埋め込みモデルを選択',
    embeddingModelDescription:
      'テキストのベクトル化に使用する埋め込みモデルを管理します',
    updateTime: '更新日時',
    cannotChangeEmbeddingModel:
      '知識ベース作成後は埋め込みモデルを変更できません',
    updateKnowledgeBaseSuccess: '知識ベースの更新に成功しました',
    updateKnowledgeBaseFailed: '知識ベースの更新に失敗しました：',
    documentsTab: {
      name: '名前',
      status: 'ステータス',
      noResults: 'ドキュメントがありません',
      dragAndDrop:
        'ファイルをここにドラッグ&ドロップするか、クリックしてアップロードしてください',
      uploading: 'アップロード中...',
      supportedFormats:
        'PDF、Word、TXT、Markdownなどのドキュメントファイルをサポートしています',
      uploadSuccess: 'ファイルのアップロードに成功しました！',
      uploadError: 'ファイルのアップロードに失敗しました：',
      uploadingFile: 'ファイルをアップロード中...',
      fileSizeExceeded:
        'ファイルサイズが10MBの制限を超えています。より小さいファイルに分割してください。',
      actions: 'アクション',
      delete: 'ドキュメントを削除',
      fileDeleteSuccess: 'ドキュメントの削除に成功しました',
      fileDeleteFailed: 'ドキュメントの削除に失敗しました：',
      processing: '処理中',
      completed: '完了',
      failed: '失敗',
      selectParser: 'パーサーを選択',
      builtInParser: '知識エンジンが提供',
      noParserAvailable:
        'このファイル形式に対応するパーサーがありません。対応するパーサープラグインをインストールしてください。',
      installParserHint: 'マーケットプレイスでパーサープラグインを探す →',
      confirmUpload: 'アップロード',
      cancelUpload: 'キャンセル',
    },
    deleteKnowledgeBaseConfirmation:
      '本当にこの知識ベースを削除しますか？この知識ベースに紐付けられたドキュメントは削除されます。',
    retrieve: '検索テスト',
    retrieveTest: '検索テスト',
    query: '検索',
    queryPlaceholder: '検索内容を入力...',
    distance: '距離',
    content: '内容',
    fileName: 'ファイル名',
    noResults: '検索結果がありません',
    retrieveError: '検索に失敗しました：',
    basicInfo: '基本情報',
    basicInfoDescription: 'ナレッジベースの名前、アイコン、説明を設定',
    engineSettings: 'エンジン設定',
    engineSettingsDescription: '選択したナレッジエンジンの設定',
    engineSettingsReadonly: '編集モードでは変更できません',
    retrievalSettings: '検索設定',
    retrievalSettingsDescription: 'このナレッジベースからの文書検索方法を設定',
    dangerZone: '危険ゾーン',
    dangerZoneDescription: '元に戻せない操作',
    deleteKbAction: 'このナレッジベースを削除',
    deleteKbHint:
      '削除すると、このナレッジベース内のすべての文書とデータが完全に削除されます。',
    noEnginesAvailable: '利用可能なナレッジエンジンがありません',
    installEngineHint:
      '先に「ナレッジエンジン」プラグインをインストールしてください',
    unknownEngine: '不明なエンジン',
    knowledgeEngine: 'ナレッジエンジン',
    knowledgeEngineRequired: 'ナレッジエンジンは必須です',
    selectKnowledgeEngine: 'ナレッジエンジンを選択',
    builtInEngine: '組み込みエンジン',
    cannotChangeKnowledgeEngine:
      '作成後にナレッジエンジンを変更することはできません',
    createKnowledgeBaseFailed: 'ナレッジベースの作成に失敗しました：',
    loadKnowledgeBaseFailed: 'ナレッジベースの読み込みに失敗しました：',
    deleteKnowledgeBaseFailed: 'ナレッジベースの削除に失敗しました：',
    getKnowledgeBaseListError: 'ナレッジベース一覧の取得に失敗しました：',
    embeddingModel: 'Embeddingモデル',
    embeddingModelRequired: 'このエンジンにはEmbeddingモデルが必要です',
    addExternal: '外部ナレッジベースを追加',
    createExternalSuccess: '外部ナレッジベースが正常に作成されました',
    updateExternalSuccess: '外部ナレッジベースが正常に更新されました',
    deleteExternalSuccess: '外部ナレッジベースが正常に削除されました',
    retriever: '検索器',
    selectRetriever: '検索器を選択...',
    retrieverConfiguration: '検索器設定',
    retrieverInstallInfo: 'ナレッジ検索器プラグインは',
    retrieverMarketLink: 'こちらからインストールできます',
    migration: {
      title: 'ナレッジベースの移行',
      description:
        '新バージョンではナレッジベースをプラグインベースのアーキテクチャに再構築し、内蔵ナレッジベースと外部ナレッジベースを「ナレッジエンジン」プラグインとして統合しました。旧ナレッジベースデータの移行が必要です。旧データはデータベースに自動的にバックアップされています。',
      detected:
        '移行が必要なナレッジベースが{{total}}件見つかりました（内部{{internal}}件、外部{{external}}件）。',
      startWithInstall: 'プラグインを自動インストールして移行',
      startDataOnly: 'データのみ移行',
      dataOnlyHint:
        '「データのみ移行」はオフライン環境向けです。移行完了後に対応するプラグインを手動でインストールしてください。',
      dismiss: '元データを破棄',
      running: 'ナレッジベースを移行中です。しばらくお待ちください...',
      success: 'ナレッジベースの移行が完了しました',
      error: 'ナレッジベースの移行に失敗しました：',
      dismissError: '操作に失敗しました',
      retry: 'リトライ',
    },
  },
  register: {
    title: 'LangBot を初期化 👋',
    description: 'これはLangBotの初回起動です',
    adminAccountNote:
      'ここで初期化されたアカウントは管理者アカウントとして使用されます',
    register: '登録',
    initWithSpace: 'Space で初期化',
    spaceRecommended:
      'おすすめ：公式の安定したモデル API とクラウドサービスを利用',
    spaceInfoTip1:
      'Space は統一されたアカウント認証サービスを提供し、機密情報をアップロードすることはありません。',
    spaceInfoTip2:
      'Space アカウントでログインすると、LangBot Models などのクラウドサービスを利用でき、無料のモデル呼び出しクレジットで迅速に開始できます。',
    spaceInfoTip3:
      'ログイン方法は他の機能に影響しません。いつでも他のソースからモデルを設定して使用できます。',
    registerLocal: 'ローカルアカウントを登録',
    registerWithPassword: 'メールアドレスとパスワードで登録',
    initSuccess: '初期化に成功しました。ログインしてください',
    initFailed: '初期化に失敗しました：',
  },
  resetPassword: {
    title: 'パスワードをリセット 🔐',
    description:
      '復旧キーと新しいパスワードを入力して、アカウントのパスワードをリセットします',
    recoveryKey: '復旧キー',
    recoveryKeyDescription:
      '設定ファイル `data/config.yaml` の `system.recovery_key` に保存されています',
    newPassword: '新しいパスワード',
    enterRecoveryKey: '復旧キーを入力',
    enterNewPassword: '新しいパスワードを入力',
    recoveryKeyRequired: '復旧キーは必須です',
    newPasswordRequired: '新しいパスワードは必須です',
    resetPassword: 'パスワードをリセット',
    resetting: 'リセット中...',
    resetSuccess: 'パスワードのリセットに成功しました。ログインしてください',
    resetFailed:
      'パスワードのリセットに失敗しました。メールアドレスと復旧キーを確認してください',
    backToLogin: 'ログインに戻る',
  },
  embedding: {
    description: 'テキストのベクトル化に使用する埋め込みモデルを管理します',
    createModel: '埋め込みモデルを作成',
    editModel: '埋め込みモデルを編集',
    getModelListError: '埋め込みモデルリストの取得に失敗しました：',
    embeddingModels: '埋め込みモデル',
    extraParametersDescription:
      'リクエストボディに追加されるパラメータ（encoding_format、dimensions など）',
  },
  llm: {
    description: 'チャットメッセージの生成に使用するLLMモデルを管理します',
    llmModels: 'LLMモデル',
    extraParametersDescription:
      'リクエストボディに追加されるパラメータ（max_tokens、temperature、top_p など）',
  },
  version: {
    newVersionAvailable: '新しいバージョンが利用可能',
    viewUpdateGuide: 'アップデート方法を見る',
    noReleaseNotes: 'リリースノートはありません',
  },
  account: {
    settings: 'アカウント設定',
    setPassword: 'パスワードを設定',
    passwordSetSuccess: 'パスワードの設定に成功しました',
    passwordStatus: 'ローカルパスワード',
    passwordSet: '設定済み',
    passwordNotSet: '未設定',
    passwordSetDescription:
      'パスワードが設定されています。メールとパスワードでログインできます',
    spaceStatus: 'Space アカウント',
    spaceBound: '連携済み',
    spaceNotBound: '未連携',
    spaceBoundDescription:
      'Space アカウントと連携済み、公式モデル API とクラウドサービスが利用可能',
    bindSpace: 'Space アカウントを連携',
    bindSpaceDescription: '連携して公式モデル API とクラウドサービスを利用',
    bindSpaceButton: '連携',
    bindSpaceConfirmTitle: '連携を確認',
    bindSpaceConfirmDescription:
      'ローカルインスタンスを Space アカウントに連携しようとしています',
    bindSpaceWarning:
      '連携後、ログインメールアドレスは {{localEmail}} から Space アカウントのメールアドレスに変更されます。',
    bindSpaceSuccess: 'Space アカウントの連携に成功しました',
    bindSpaceFailed: 'Space アカウントの連携に失敗しました',
    bindSpaceInvalidState:
      '無効な連携リクエストです。アカウント設定から再度お試しください。',
    setPasswordHint:
      'パスワードを設定するとメールとパスワードでログインできます',
    spaceEmailMismatch:
      'Spaceログインのメールアドレスがローカルアカウントのメールアドレスと一致しません',
  },
  monitoring: {
    title: 'ダッシュボード',
    description:
      'ボットアクティビティ、LLM呼び出し、システムパフォーマンスを監視',
    overview: '概要',
    totalMessages: '総メッセージ数',
    llmCallsCount: 'LLM呼び出し',
    modelCallsCount: 'モデル呼び出し',
    successRate: '成功率',
    activeSessions: 'アクティブセッション',
    last24Hours: '過去24時間',
    filters: {
      title: 'フィルター',
      bot: 'ボット',
      pipeline: 'パイプライン',
      allBots: 'すべてのボット',
      selectBot: 'ボットを選択',
      allPipelines: 'すべてのパイプライン',
      selectPipeline: 'パイプラインを選択',
      loading: '読み込み中...',
      timeRange: '時間範囲',
      customRange: 'カスタム範囲',
      from: '開始',
      to: '終了',
      apply: '適用',
      reset: 'フィルターをリセット',
      lastHour: '過去1時間',
      last6Hours: '過去6時間',
      last24Hours: '過去24時間',
      last7Days: '過去7日間',
      last30Days: '過去30日間',
    },
    tabs: {
      messages: 'メッセージ記録',
      llmCalls: 'LLM呼び出し',
      embeddingCalls: 'Embedding呼び出し',
      modelCalls: 'モデル呼び出し',
      sessions: 'セッション分析',
      feedback: 'ユーザーフィードバック',
      errors: 'エラーログ',
    },
    messageList: {
      timestamp: 'タイムスタンプ',
      bot: 'ボット',
      pipeline: 'パイプライン',
      message: 'メッセージ',
      sessionId: 'セッションID',
      status: 'ステータス',
      actions: 'アクション',
      viewDetails: '詳細を表示',
      copyId: 'IDをコピー',
      noMessages: 'メッセージが見つかりません',
      noMessagesDescription: 'フィルターを調整するか、後で確認してください',
      loading: 'メッセージを読み込んでいます...',
      loadMore: 'もっと読み込む',
      autoRefresh: '自動更新',
      platform: 'プラットフォーム',
      user: 'ユーザー',
      level: 'レベル',
      runner: 'ランナー',
      viewConversation: '会話詳細を表示',
    },
    llmCalls: {
      title: 'LLM呼び出し',
      model: 'モデル',
      tokens: 'トークン数',
      duration: '期間',
      cost: 'コスト',
      noData: 'LLM呼び出し記録が見つかりません',
      inputTokens: '入力トークン',
      outputTokens: '出力トークン',
      totalTokens: '合計トークン数',
      avgDuration: '平均期間',
      calls: '呼び出し',
    },
    embeddingCalls: {
      title: 'Embedding呼び出し',
      model: 'モデル',
      tokens: 'トークン数',
      duration: '期間',
      noData: 'Embedding呼び出し記録が見つかりません',
      promptTokens: '入力トークン',
      totalTokens: '合計トークン数',
      inputCount: '入力数',
      knowledgeBase: 'ナレッジベース',
      queryText: 'クエリ',
    },
    modelCalls: {
      title: 'モデル呼び出し',
      llmModel: '対話モデル',
      embeddingModel: '埋め込みモデル',
      embeddingCall: '埋め込み呼び出し',
      retrieveCall: '検索呼び出し',
      noData: 'モデル呼び出し記録が見つかりません',
    },
    sessions: {
      sessionId: 'セッションID',
      messageCount: 'メッセージ数',
      duration: '期間',
      lastActivity: '最終アクティビティ',
      noSessions: 'セッションが見つかりません',
      startTime: '開始時刻',
      messageStats: 'メッセージ統計',
      totalMessages: '総メッセージ数',
      successMessages: '成功',
      errorMessages: '失敗',
      llmStats: 'LLM統計',
      noData: 'セッションが見つかりません',
    },
    errors: {
      errorType: 'エラータイプ',
      errorMessage: 'エラーメッセージ',
      occurredAt: '発生時刻',
      noErrors: 'エラーが見つかりません',
      stackTrace: 'スタックトレース',
      title: 'エラー',
    },
    feedback: {
      title: 'ユーザーフィードバック',
      totalFeedback: 'フィードバック合計',
      totalLikes: 'いいね数',
      totalDislikes: 'よくないね数',
      satisfactionRate: '満足度',
      like: 'いいね',
      dislike: 'よくないね',
      noFeedback: 'フィードバックはまだありません',
      noFeedbackDescription: 'ユーザーフィードバックがここに表示されます',
      feedbackList: 'フィードバック一覧',
      feedbackContent: 'フィードバック内容',
      contextInfo: 'コンテキスト情報',
      userId: 'ユーザーID',
      messageId: 'メッセージID',
      streamId: '関連質問ID',
      inaccurateReasons: '不正確な理由',
      platform: 'プラットフォーム',
      exportFeedback: 'フィードバックをエクスポート',
    },
    messageDetails: {
      noData: 'このクエリにはLLM呼び出しやエラーがありません',
    },
    queries: {
      title: 'クエリ',
    },
    queryVariables: {
      title: 'クエリ変数',
    },
    trafficChart: {
      title: 'トラフィック概要',
      messages: 'メッセージ',
      llmCalls: 'LLM呼び出し',
      noData: 'トラフィックデータがありません',
    },
    viewMonitoring: 'モニタリングを表示',
    refreshData: 'データを更新',
    exportData: 'データをエクスポート',
    export: {
      title: 'データをエクスポート',
      exporting: 'エクスポート中...',
      messages: 'メッセージ',
      llmCalls: 'LLM コール',
      embeddingCalls: 'Embedding コール',
      errors: 'エラーログ',
      sessions: 'セッション',
      feedback: 'ユーザーフィードバック',
    },
  },
  limitation: {
    maxBotsReached:
      'ボット数が上限（{{max}}個）に達しました。新しいボットを作成するには、既存のボットを削除してください。',
    maxPipelinesReached:
      'パイプライン数が上限（{{max}}個）に達しました。新しいパイプラインを作成するには、既存のパイプラインを削除してください。',
    maxExtensionsReached:
      '拡張機能数が上限（{{max}}個）に達しました。新しい MCP サーバーやプラグインを追加するには、既存のものを削除してください。',
  },
  wizard: {
    sidebarDescription: 'ガイド付きステップでボットを作成',
    loading: 'ウィザードを読み込み中...',
    loadError: 'ウィザードデータの読み込みに失敗しました',
    skip: 'スキップ',
    skipConfirmMessage:
      'アカウントメニューからクイックスタートウィザードに再度アクセスするか、手動でボットを作成できます。',
    skipConfirmOk: 'OK',
    prev: '前へ',
    next: '次へ',
    finish: '作成＆デプロイ',
    confirmCreateBot: '確定、ボットを作成',
    createSuccess: 'パイプラインが作成され、ボットにリンクされました！',
    botCreateSuccess: 'ボットが正常に作成されました！',
    botSaveSuccess: 'ボット設定が保存され、有効になりました！',
    createError: 'リソースの作成に失敗しました',
    spaceAuthError: 'Space 認証の開始に失敗しました',
    skipSaveError: 'スキップ状態の保存に失敗しました。もう一度お試しください。',
    completeSaveError: '完了状態の保存に失敗しました。もう一度お試しください。',
    step: {
      platform: 'プラットフォーム',
      botConfig: 'ボット設定',
      aiEngine: 'AIエンジン',
      done: '完了',
    },
    platform: {
      title: 'プラットフォームを選択',
      description:
        'ボットが接続するメッセージングプラットフォームを選択してください。',
    },
    botConfig: {
      title: 'ボットを設定',
      description:
        'ボットをセットアップし、正常に動作することを確認してから続行してください。',
      saveBot: '保存して有効化',
      resaveBot: '設定を再保存',
      botSaved:
        'ボット設定が保存され、有効になりました。ログを確認して接続を検証してください。',
      logsTitle: 'ボットログ',
      logsDescription:
        'ボットの活動を監視して、プラットフォーム接続が正常に動作していることを確認します。',
    },
    aiEngine: {
      title: 'AIエンジンを選択',
      description:
        'ボットのインテリジェンスを駆動するAIエンジンを選択してください。',
    },
    spaceBanner: {
      message:
        'LangBot Spaceに接続して、無料トライアルモデルクレジットとゼロ設定の即時セットアップを入手！',
      action: 'Spaceで認証',
    },
    config: {
      botInfo: 'ボット情報',
      botNamePlaceholder: 'ボット名を入力',
      botDescPlaceholder: 'ボットの説明を入力（任意）',
      platformConfig: '{{platform}} 設定',
      aiConfig: '{{engine}} 設定',
    },
    done: {
      title: '完了しました！',
      description:
        'ボットが作成され、AIパイプラインに接続されました。ワークベンチから管理できます。',
      backToWorkbench: 'ワークベンチに戻る',
    },
  },
  workflows: {
    title: 'Workflows',
    description: 'Create and manage visual workflows for complex message processing logic',
    createWorkflow: 'Create Workflow',
    selectFromSidebar: 'Select a workflow from the sidebar',
    editWorkflow: 'Edit Workflow',
    newWorkflow: 'New Workflow',
    getWorkflowListError: 'Failed to get workflow list: ',
    workflowName: 'Workflow Name',
    workflowDescription: 'Workflow Description',
    workflowNameRequired: 'Workflow name is required',
    defaultDescription: 'A workflow',
    getWorkflowError: 'Failed to get workflow: ',
    loadError: 'Failed to load workflow',
    saveSuccess: 'Saved successfully',
    saveError: 'Failed to save: ',
    createSuccess: 'Workflow created successfully',
    createError: 'Failed to create: ',
    deleteSuccess: 'Deleted successfully',
    deleteError: 'Failed to delete: ',
    deleteConfirmation: 'Are you sure you want to delete this workflow?',
    copySuccess: 'Copied successfully',
    copyError: 'Failed to copy: ',
    export: 'Export',
    import: 'Import',
    exportSuccess: 'Workflow exported',
    importSuccess: 'Workflow imported',
    importError: 'Import failed: Invalid file format',
    publish: 'Publish',
    publishSuccess: 'Published successfully',
    publishError: 'Failed to publish',
    configuration: 'Configuration',
    executions: 'Executions',
    editor: 'Editor',
    debugChat: 'チャットデバッグ',
    basicInfo: 'Basic Info',
    basicInfoDesc: 'Set workflow name, icon and description',
    basicInfoDescription: 'Set workflow name and description',
    dangerZone: 'Danger Zone',
    dangerZoneDesc: 'Irreversible operations',
    dangerZoneDescription: 'Irreversible operations',
    deleteWorkflowAction: 'Delete this workflow',
    deleteWorkflowHint: 'Once deleted, all associated configurations will be permanently removed and cannot be recovered.',
    deleteWorkflow: 'Delete Workflow',
    deleteConfirm: 'Confirm Delete',
    deleteConfirmDesc: 'Are you sure you want to delete workflow "{{name}}"? This action cannot be undone.',
    // Form component
    name: 'Name',
    namePlaceholder: 'Enter workflow name',
    descriptionPlaceholder: 'Enter workflow description (optional)',
    enabled: 'Enabled',
    enabledDesc: 'When enabled, the workflow can be triggered for execution',
    loading: 'Loading...',
    info: 'Workflow Info',
    uuid: 'UUID',
    version: 'Version',
    createdAt: 'Created At',
    updatedAt: 'Updated At',
    // Executions tab
    totalExecutions: '{{count}} execution(s) total',
    statistics: 'Statistics',
    successfulCount: '{{count}} successful',
    successRate: 'Success Rate',
    averageDuration: 'Avg. Duration',
    perExecution: 'per execution',
    failedExecutions: 'Failed',
    lastExecution: 'Last run',
    filterByStatus: 'Filter by status',
    allStatuses: 'All statuses',
    manualTrigger: 'Manual Trigger',
    executionId: 'Execution ID',
    status: 'Status',
    triggerType: 'Trigger Type',
    startedAt: 'Started At',
    duration: 'Duration',
    noExecutions: 'No executions yet',
    executionDetails: 'Execution Details',
    error: 'Error',
    nodeExecutions: 'Node Executions',
    result: 'Result',
    'status.pending': 'Pending',
    'status.running': 'Running',
    'status.completed': 'Completed',
    'status.failed': 'Failed',
    'status.cancelled': 'Cancelled',
    // Editor component translations
    nodePalette: 'Node Palette',
    properties: 'Properties',
    zoomIn: 'Zoom In',
    zoomOut: 'Zoom Out',
    fitView: 'Fit View',
    unsavedChanges: 'Unsaved changes',
    paste: 'Paste',
    deleted: 'Deleted',
    nothingToCopy: 'No nodes selected to copy',
    nothingToPaste: 'Clipboard is empty',
    copied: 'Copied {{count}} node(s)',
    pasted: 'Pasted {{count}} node(s)',
    nodesSelected: '{{count}} node(s) selected',
    edgesSelected: '{{count}} edge(s) selected',
    // Node palette
    searchNodes: 'Search nodes...',
    loadingNodeTypes: 'Loading node types...',
    noNodesFound: 'No matching nodes found',
    clearSearch: 'Clear search',
    dragToAdd: 'Drag nodes to add to canvas',
    // Property panel
    selectNodeOrEdge: 'Select a node or edge',
    selectNodeOrEdgeHint: 'Click on a node or edge in the canvas to view and edit its properties',
    edgeProperties: 'Edge Properties',
    nodeProperties: 'Node Properties',
    condition: 'Condition',
    hasCondition: 'Set',
    conditionPlaceholder: 'Enter condition expression, e.g. output.success == true',
    conditionHelp: 'When condition is empty, this edge will always be executed. Use {{variable}} to reference context variables.',
    deleteEdge: 'Delete Edge',
    deleteEdgeConfirm: 'Confirm Delete Edge',
    deleteEdgeConfirmDesc: 'This edge will be permanently removed.',
    nodeLabel: 'Node Label',
    nodeLabelPlaceholder: 'Enter node display name',
    nodeId: 'Node ID',
    inputOutputVariables: 'Input/Output Variables',
    inputs: 'Inputs',
    outputs: 'Outputs',
    availableVariables: 'Available Variables',
    globalVariables: 'Global Variables',
    messageContent: 'Message Content',
    messageSender: 'Sender',
    platform: 'Platform',
    sessionId: 'Session ID',
    timestamp: 'Timestamp',
    nodeConfig: 'Node Configuration',
    noConfigOptions: 'No configuration options for this node type',
    deleteNode: 'Delete Node',
    deleteNodeConfirm: 'Confirm Delete Node',
    deleteNodeConfirmDesc: 'This node and all its connections will be permanently removed.',
    // Node inputs/outputs i18n (for port labels)
    nodeInputs: {
      // Common inputs
      input: 'Input',
      message: 'Message',
      text: 'Text',
      query: 'Query',
      data: 'Data',
      condition: 'Condition',
      value: 'Value',
      // Trigger inputs
      content: 'Content',
      context: 'Context',
      body: 'Request Body',
      variables: 'Variables',
      items: 'Items',
      arguments: 'Arguments',
      // AI/Process inputs
      question: 'Question',
      parameters: 'Parameters',
      key: 'Key',
      // Control inputs
      case_1: 'Case 1',
      case_2: 'Case 2',
      branch_1: 'Branch 1',
      branch_2: 'Branch 2',
      // Action inputs
      notification_id: 'Notification ID',
      // Integration inputs
      key_template: 'Key Template',
      hash_field: 'Hash Field',
      server_name: 'Server Name',
      tool_name: 'Tool Name',
      arguments_template: 'Arguments Template',
      scope: 'Scope',
    },
    // Data type labels
    'type.string': 'String',
    'type.object': 'Object',
    'type.array': 'Array',
    'type.boolean': 'Boolean',
    'type.number': 'Number',
    'type.any': 'Any',
    'type.datetime': 'DateTime',
    nodes: {
      trigger: 'Triggers',
      triggerDescription: 'Starting nodes for workflows',
      messageTrigger: 'Message Trigger',
      messageTriggerDescription: 'Triggered when a message is received',
      scheduleTrigger: 'Schedule Trigger',
      scheduleTriggerDescription: 'Triggered on a schedule',
      cronTrigger: 'Cron Trigger',
      cronTriggerDescription: 'Trigger workflow on a scheduled time',
      webhookTrigger: 'Webhook Trigger',
      webhookTriggerDescription: 'Triggered via HTTP request',
      eventTrigger: 'Event Trigger',
      eventTriggerDescription: 'Triggered on system events',
      process: 'AI/Process',
      processDescription: 'Data processing nodes',
      aiProcess: 'AI Processing',
      aiProcessDescription: 'Process messages using AI models',
      llmCall: 'LLM Call',
      llmCallDescription: 'Invoke large language model for conversation or generation',
      codeProcess: 'Code Processing',
      codeProcessDescription: 'Execute custom code',
      codeExecutor: 'Code Executor',
      codeExecutorDescription: 'Execute Python/JavaScript code',
      templateProcess: 'Template Processing',
      templateProcessDescription: 'Format output using templates',
      httpRequest: 'HTTP Request',
      httpRequestDescription: 'Send HTTP requests',
      dataTransform: 'Data Transform',
      dataTransformDescription: 'Transform data format',
      questionClassifier: 'Question Classifier',
      questionClassifierDescription: 'Classify user questions into predefined categories using LLM',
      parameterExtractor: 'Parameter Extractor',
      parameterExtractorDescription: 'Extract structured parameters from text using LLM',
      knowledgeRetrieval: 'Knowledge Retrieval',
      knowledgeRetrievalDescription: 'Retrieve relevant content from knowledge base',
      textTemplate: 'Text Template',
      textTemplateDescription: 'Generate text using templates with variable interpolation',
      jsonTransform: 'JSON Transform',
      jsonTransformDescription: 'Transform JSON data using expressions',
      dataAggregator: 'Data Aggregator',
      dataAggregatorDescription: 'Aggregate data from multiple sources',
      textSplitter: 'Text Splitter',
      textSplitterDescription: 'Split text into smaller chunks',
      variableAssignment: 'Variable Assignment',
      variableAssignmentDescription: 'Assign values to workflow variables',
      control: 'Control Flow',
      controlDescription: 'Flow control nodes',
      condition: 'Condition Branch',
      conditionDescription: 'Branch based on conditions',
      switch: 'Switch',
      switchDescription: 'Multi-way branching',
      loop: 'Loop',
      loopDescription: 'Repeat execution',
      iterator: 'Iterator',
      iteratorDescription: 'Iterate over array elements',
      parallel: 'Parallel',
      parallelDescription: 'Execute multiple branches in parallel',
      wait: 'Wait',
      waitDescription: 'Wait for specified time',
      delay: 'Delay',
      delayDescription: 'Wait for a specified time',
      merge: 'Merge',
      mergeDescription: 'Merge multiple branches',
      variableAggregator: 'Variable Aggregator',
      variableAggregatorDescription: 'Aggregate variable outputs from multiple branches',
      action: 'Actions',
      actionDescription: 'Action execution nodes',
      sendMessage: 'Send Message',
      sendMessageDescription: 'Send message to platform',
      replyMessage: 'Reply Message',
      replyMessageDescription: 'Reply to the message that triggered the workflow',
      storeData: 'Store Data',
      storeDataDescription: 'Store data to database',
      callPipeline: 'Call Pipeline',
      callPipelineDescription: 'Call an existing Pipeline',
      setVariable: 'Set Variable',
      setVariableDescription: 'Set context variable',
      openingStatement: 'Opening Statement',
      openingStatementDescription: 'Provide conversation opener and suggested questions',
      end: 'End',
      endDescription: 'Mark the end of workflow execution',
      log: 'Log',
      logDescription: 'Record log information',
      integration: 'Integration',
      integrationDescription: 'Third-party platform integration nodes',
      difyWorkflow: 'Dify Workflow',
      difyWorkflowDescription: 'Call Dify platform workflow',
      difyKnowledgeQuery: 'Dify Knowledge Query',
      difyKnowledgeQueryDescription: 'Query Dify knowledge base',
      n8nWorkflow: 'N8n Workflow',
      n8nWorkflowDescription: 'Call n8n workflow',
      langflowFlow: 'Langflow Flow',
      langflowFlowDescription: 'Call Langflow flow',
      cozeBot: 'Coze Bot',
      cozeBotDescription: 'Call Coze Bot',
      // Data & Tools integration nodes
      databaseQuery: 'Database Query',
      databaseQueryDescription: 'Execute database queries',
      redisOperation: 'Redis Operation',
      redisOperationDescription: 'Perform Redis cache operations',
      mcpTool: 'MCP Tool',
      mcpToolDescription: 'Invoke an MCP tool',
      memoryStore: 'Memory Store',
      memoryStoreDescription: 'Store and retrieve data from workflow memory',
    },
    executionHistory: {
      title: 'Execution History',
      noExecutions: 'No executions yet',
      status: 'Status',
      startTime: 'Start Time',
      duration: 'Duration',
      running: 'Running',
      completed: 'Completed',
      failed: 'Failed',
      cancelled: 'Cancelled',
      viewDetails: 'View Details',
      cancel: 'Cancel Execution',
      retry: 'Retry',
      nodeResults: 'Node Execution Results',
    },
    versions: {
      title: 'Version History',
      current: 'Current Version',
      rollback: 'Rollback to this version',
      rollbackConfirm: 'Are you sure you want to rollback to this version? Current changes will be lost.',
      rollbackSuccess: 'Rollback successful',
      rollbackError: 'Failed to rollback: ',
    },
    // Debug and monitoring
    debug: 'Debug',
    debugMode: 'Debug Mode',
    debugPanel: 'Debug Panel',
    startDebug: 'Start Debug',
    pauseDebug: 'Pause',
    resumeDebug: 'Resume',
    stepDebug: 'Step',
    stopDebug: 'Stop',
    debugContext: 'Debug Context',
    simulatedMessage: 'Simulated Message',
    simulatedMessagePlaceholder: 'Enter the message content to simulate',
    senderId: 'Sender ID',
    senderIdPlaceholder: 'Sender unique identifier',
    senderName: 'Sender Name',
    senderNamePlaceholder: 'Sender display name',
    conversationId: 'Conversation ID',
    conversationIdPlaceholder: 'Conversation unique identifier',
    isGroup: 'Group Chat',
    customVariables: 'Custom Variables',
    addVariable: 'Add Variable',
    variableName: 'Variable Name',
    variableValue: 'Variable Value',
    watchedVariables: 'Watched Variables',
    addWatchVariable: 'Add Watch',
    nodeStates: 'Node States',
    breakpoints: 'Breakpoints',
    toggleBreakpoint: 'Toggle Breakpoint',
    breakpointSet: 'Breakpoint set',
    breakpointRemoved: 'Breakpoint removed',
    debugLogs: 'Debug Logs',
    noLogs: 'No logs yet',
    clearLogs: 'Clear Logs',
    autoScroll: 'Auto Scroll',
    debugState: {
      idle: 'Idle',
      running: 'Running',
      paused: 'Paused',
      completed: 'Completed',
      error: 'Error',
    },
    nodeStatus: {
      pending: 'Pending',
      running: 'Running',
      completed: 'Completed',
      failed: 'Failed',
      skipped: 'Skipped',
    },
    debugDialog: {
      title: 'ワークフロー チャット',
      selectWorkflow: 'ワークフローを選択',
      sessionType: 'セッションタイプ',
      privateChat: 'プライベートチャット',
      groupChat: 'グループチャット',
      send: '送信',
      reset: '会話をリセット',
      inputPlaceholder: '{{type}} メッセージを送信...',
      noMessages: 'メッセージなし',
      userMessage: 'ユーザー',
      botMessage: 'ボット',
      sendFailed: '送信失敗',
      resetSuccess: '会話がリセットされました',
      resetFailed: 'リセット失敗',
      loadMessagesFailed: 'メッセージの読み込みに失敗しました',
      loadWorkflowsFailed: 'ワークフローの読み込みに失敗しました',
      atTips: 'ボットをメンション',
      streaming: 'ストリーミング',
      streamOutput: 'ストリーム',
      connected: 'WebSocket接続済み',
      disconnected: 'WebSocket未接続',
      connectionError: 'WebSocket接続エラー',
      connectionFailed: 'WebSocket接続失敗',
      notConnected: 'WebSocket未接続です。しばらくしてからもう一度お試しください',
      imageUploadFailed: '画像アップロード失敗',
      reply: '返信',
      replyTo: '返信先',
      showMarkdown: 'レンダリング',
      showRaw: '原文',
      allMembers: '全メンバー',
      file: 'ファイル',
      voice: '音声',
      uploadImage: '画像をアップロード',
      uploading: 'アップロード中...',
    },
    // Execution history and monitoring
    filterByDate: 'Filter by Date',
    allTime: 'All Time',
    today: 'Today',
    lastWeek: 'Last Week',
    lastMonth: 'Last Month',
    showingExecutions: 'Showing {{shown}} / {{total}} executions',
    rerun: 'Rerun',
    rerunExecution: 'Rerun Execution',
    logs: 'Logs',
    details: 'Details',
    completedAt: 'Completed At',
    noNodeExecutions: 'No node executions yet',
    // Node config field labels (used by DynamicFormComponent)
    nodeConfigFields: {
      // trigger.py - MessageTriggerNode
      conditions: 'Trigger Conditions',
      keyword_filter: 'Keyword Filter',
      regex_filter: 'Regex Filter',
      min_length: 'Min Length',
      max_length: 'Max Length',
      require_mention: 'Require Mention',
      respond_rules: 'Group Respond Rules',
      access_control: 'Access Control',
      // trigger.py - CronTriggerNode
      cron: 'Cron Expression',
      timezone: 'Timezone',
      // trigger.py - WebhookTriggerNode
      path: 'Webhook Path',
      allowed_methods: 'Allowed HTTP Methods',
      content_type: 'Content-Type',
      auth_type: 'Authentication Type',
      auth_key: 'Auth Key',
      validation: 'Request Validation',
      timeout: 'Timeout',
      // trigger.py - EventTriggerNode
      event_types: 'Event Types',
      filter: 'Event Filter',
      debounce_ms: 'Debounce Time',
      // process.py - LLMCallNode
      model: 'Model',
      prompt_template: 'Prompt Template',
      system_prompt: 'System Prompt',
      temperature: 'Temperature',
      top_p: 'Top P',
      frequency_penalty: 'Frequency Penalty',
      presence_penalty: 'Presence Penalty',
      max_tokens: 'Max Tokens',
      stop_sequences: 'Stop Sequences',
      seed: 'Random Seed',
      stream: 'Stream Output',
      use_conversation_history: 'Use Conversation History',
      // process.py - CodeExecutorNode
      language: 'Programming Language',
      code: 'Code',
      // process.py - HTTPRequestNode
      url: 'Request URL',
      method: 'Request Method',
      auth_config: 'Auth Configuration',
      // process.py - DataTransformNode
      transform_type: 'Transform Type',
      template: 'Template',
      expression: 'Expression',
      output_type: 'Output Type',
      // process.py - QuestionClassifierNode
      categories: 'Categories',
      instruction: 'Instruction',
      // process.py - ParameterExtractorNode
      parameters: 'Parameter Definitions',
      // process.py - KnowledgeRetrievalNode
      knowledge_bases: 'Knowledge Bases',
      top_k: 'Top K Results',
      score_threshold: 'Score Threshold',
      search_method: 'Search Method',
      enable_citations: 'Enable Citations',
      // control.py - ConditionNode
      condition_type: 'Condition Type',
      condition_expression: 'Condition Expression',
      left_value: 'Left Value',
      operator: 'Comparison Operator',
      right_value: 'Right Value',
      // control.py - SwitchNode
      cases: 'Branch Cases',
      // control.py - LoopNode
      max_iterations: 'Max Iterations',
      break_condition: 'Break Condition',
      // control.py - IteratorNode
      parallel: 'Parallel Processing',
      max_concurrency: 'Max Concurrency',
      // control.py - ParallelNode
      branches: 'Branch Configuration',
      wait_all: 'Wait All',
      fail_fast: 'Fail Fast',
      // control.py - WaitNode
      duration: 'Duration',
      duration_type: 'Time Unit',
      // control.py - MergeNode
      merge_strategy: 'Merge Strategy',
      // control.py - VariableAggregatorNode
      variable_mappings: 'Variable Mappings',
      aggregation_mode: 'Aggregation Mode',
      // action.py - SendMessageNode
      target_type: 'Target Type',
      target_id: 'Target ID',
      platform: 'Platform',
      message_type: 'Message Type',
      // action.py - ReplyMessageNode
      reply_mode: 'Reply Mode',
      message_template: 'Message Template',
      long_text_processing: 'Long Text Processing',
      force_delay: 'Force Delay',
      // action.py - CallPipelineNode
      pipeline_uuid: 'Pipeline',
      inherit_context: 'Inherit Context',
      // action.py - StoreDataNode
      storage_type: 'Storage Type',
      ttl: 'TTL',
      key_prefix: 'Key Prefix',
      // action.py - SetVariableNode
      variable_name: 'Variable Name',
      variable_scope: 'Variable Scope',
      set_variable_operation: 'Operation Type',
      // action.py - OpeningStatementNode
      statement: 'Opening Statement',
      suggested_questions: 'Suggested Questions',
      show_suggestions: 'Show Suggestions',
      // action.py - EndNode
      output_format: 'Output Format',
      success_message: 'Success Message',
      // integration.py - DatabaseQueryNode
      connection_type: 'Database Type',
      connection_string: 'Connection String',
      query: 'SQL Query',
      query_type: 'Query Type',
      // integration.py - RedisOperationNode
      connection_url: 'Connection URL',
      operation: 'Operation Type',
      key_template: 'Key Template',
      hash_field: 'Hash Field',
      // integration.py - MCPToolNode
      server_name: 'Server Name',
      tool_name: 'Tool Name',
      arguments_template: 'Arguments Template',
      // integration.py - MemoryStoreNode
      scope: 'Scope',
      // integration.py - DifyWorkflowNode
      'base-url': 'Base URL',
      'api-key': 'API Key',
      'app-type': 'App Type',
      // integration.py - DifyKnowledgeQueryNode
      dataset_id: 'Dataset ID',
      // integration.py - N8nWorkflowNode
      'webhook-url': 'Webhook URL',
      // integration.py - LangflowFlowNode
      'flow-id': 'Flow ID',
      // integration.py - CozeBotNode
      'bot-id': 'Bot ID',
      'api-base': 'API Base URL',
    },
    // Node outputs i18n
    nodeOutputs: {
      // trigger.py - MessageTriggerNode
      message: 'Message Content',
      sender_id: 'Sender ID',
      sender_name: 'Sender Name',
      platform: 'Platform',
      conversation_id: 'Conversation ID',
      is_group: 'Is Group Chat',
      context: 'Full Message Context',
      // trigger.py - CronTriggerNode
      timestamp: 'Trigger Time',
      schedule: 'Trigger Schedule',
      cron_timestamp: 'Cron Timestamp',
      cron_schedule: 'Cron Schedule',
      cron_context: 'Cron Context',
      // trigger.py - WebhookTriggerNode
      body: 'Request Body',
      headers: 'Request Headers',
      query: 'Query Parameters',
      method: 'Request Method',
      webhook_body: 'Webhook Body',
      webhook_headers: 'Webhook Headers',
      webhook_query: 'Webhook Query',
      webhook_method: 'Webhook Method',
      // trigger.py - EventTriggerNode
      event_type: 'Event Type',
      event_data: 'Event Data',
      event_timestamp: 'Event Timestamp',
      // process.py - LLMCallNode
      response: 'Model Response',
      usage: 'Token Usage Statistics',
      prompt: 'Prompt/Question',
      context_info: 'Context Information',
      // process.py - CodeExecutorNode
      output: 'Output Data',
      console: 'Console Output',
      code_input: 'Code Input',
      code_output: 'Code Output',
      // process.py - HTTPRequestNode
      status_code: 'Status Code',
      http_body: 'HTTP Body',
      http_headers: 'HTTP Headers',
      http_response: 'HTTP Response',
      response_headers: 'Response Headers',
      // process.py - DataTransformNode
      result: 'Transform Result',
      transform_input: 'Transform Input',
      transform_result: 'Transform Result',
      // process.py - QuestionClassifierNode
      category: 'Category Result',
      confidence: 'Confidence',
      all_scores: 'All Category Scores',
      question: 'User Question',
      // process.py - ParameterExtractorNode
      parameters: 'Extracted Parameters',
      extraction_success: 'Extraction Success',
      extract_text: 'Input Text',
      // process.py - KnowledgeRetrievalNode
      documents: 'Retrieved Documents',
      citations: 'Citation Information',
      knowledge_context: 'Merged Context',
      knowledge_query: 'Retrieval Query',
      // control.py - ConditionNode
      true: 'True Branch Output',
      false: 'False Branch Output',
      condition_input: 'Condition Input',
      // control.py - SwitchNode
      matched_case: 'Matched Branch Output',
      default: 'Default Branch Output',
      switch_input: 'Switch Input',
      // control.py - LoopNode
      item: 'Current Item',
      index: 'Current Index',
      results: 'All Iteration Results',
      completed: 'Is Completed',
      loop_items: 'Items to Iterate',
      // control.py - IteratorNode
      is_first: 'Is First',
      is_last: 'Is Last',
      iterator_array: 'Input Array',
      iterator_item: 'Current Element',
      iterator_index: 'Current Index',
      // control.py - ParallelNode
      errors: 'Error List',
      parallel_input: 'Parallel Input',
      parallel_results: 'All Branch Results',
      // control.py - WaitNode
      wait_input: 'Passthrough Input',
      wait_output: 'Passthrough Output',
      // control.py - MergeNode
      merged: 'Merged Result',
      merge_array: 'Array Result',
      merge_input_1: 'Input 1',
      merge_input_2: 'Input 2',
      merge_input_3: 'Input 3',
      merge_input_4: 'Input 4',
      // control.py - VariableAggregatorNode
      aggregated: 'Aggregated Variables',
      aggregator_variables: 'Variable Input',
      // action.py - SendMessageNode
      status: 'Send Status',
      message_id: 'Message ID',
      target: 'Target ID',
      // action.py - ReplyMessageNode
      reply_message: 'Reply Content',
      // action.py - CallPipelineNode
      pipeline_response: 'Pipeline Response',
      pipeline_result: 'Full Result',
      pipeline_query: 'Query Content',
      context_data: 'Context Data',
      // action.py - StoreDataNode
      store_status: 'Store Status',
      store_key: 'Store Key',
      store_value: 'Store Value',
      // action.py - SetVariableNode
      variable_value: 'Variable Value',
      variable_result: 'Set Variable Result',
      // action.py - OpeningStatementNode
      statement: 'Opening Statement',
      suggested_questions: 'Suggested Questions',
      // action.py - EndNode
      workflow_output: 'Workflow Output',
      final_result: 'Final Result',
      // integration.py - DatabaseQueryNode
      query_results: 'Query Results',
      row_count: 'Affected/Returned Rows',
      query_success: 'Query Success',
      query_params: 'Query Parameters',
      // integration.py - RedisOperationNode
      redis_result: 'Operation Result',
      redis_success: 'Operation Success',
      redis_key: 'Redis Key',
      redis_value: 'Redis Value',
      error: 'Error Message',
      plugin_input: 'Plugin Input',
      // integration.py - MCPToolNode
      tool_result: 'Tool Execution Result',
      tool_success: 'Tool Call Success',
      mcp_arguments: 'Tool Arguments',
      // integration.py - MemoryStoreNode
      memory_result: 'Retrieved/Stored Value',
      memory_success: 'Operation Success',
      memory_value: 'Value to Store',
      // integration.py - DifyWorkflowNode
      answer: 'Dify Answer',
      dify_success: 'Call Success',
      dify_query: 'User Input/Query',
      dify_conversation_id: 'Conversation ID',
      // integration.py - DifyKnowledgeQueryNode
      search_results: 'Search Results',
      knowledge_base_query: 'Query Content',
      // integration.py - N8nWorkflowNode
      n8n_result: 'Workflow Execution Result',
      n8n_success: 'Call Success',
      n8n_payload: 'Workflow Input Data',
      // integration.py - LangflowFlowNode
      flow_result: 'Flow Execution Result',
      flow_success: 'Call Success',
      langflow_input: 'Input Content',
      // integration.py - CozeBotNode
      bot_answer: 'Bot Reply',
      bot_success: 'Call Success',
      coze_query: 'User Input/Query',
      coze_conversation_id: 'Conversation ID',
      bot_conversation_id: 'Conversation ID',
    },
  },

};

export default jaJP;
