import type { TranslationMap } from "../lib/types.ts";

// Generated by scripts/control-ui-i18n.ts.
export const ja_JP: TranslationMap = {
  common: {
    health: "健全性",
    ok: "OK",
    yes: "はい",
    no: "いいえ",
    active: "有効",
    loading: "読み込み中…",
    refreshing: "更新中…",
    online: "オンライン",
    offline: "オフライン",
    connect: "接続",
    connected: "接続済み",
    refresh: "更新",
    reload: "再読み込み",
    probe: "プローブ",
    call: "通話",
    confirm: "確認",
    cancel: "キャンセル",
    unselect: "選択解除",
    enabled: "有効",
    disabled: "無効",
    na: "n/a",
    configured: "設定済み",
    running: "実行中",
    linked: "リンク済み",
    mode: "モード",
    baseUrl: "ベース URL",
    lastStart: "前回の起動",
    lastProbe: "前回のプローブ",
    lastInbound: "前回の受信",
    lastConnect: "前回の接続",
    lastMessage: "前回のメッセージ",
    authAge: "認証からの経過時間",
    credential: "認証情報",
    audience: "対象",
    publicKey: "公開鍵",
    probeOk: "プローブ成功",
    probeFailed: "プローブ失敗",
    reloadConfig: "設定を再読み込み",
    loadConfig: "設定を読み込み",
    loadApprovals: "承認を読み込み",
    settingsSections: "設定セクション",
    version: "バージョン",
    docs: "ドキュメント",
    theme: "テーマ",
    resources: "リソース",
    search: "検索",
    save: "保存",
    saving: "保存中…",
    saveAndPublish: "保存して公開",
    importing: "インポート中…",
    importFromRelays: "Relays からインポート",
    showAdvanced: "詳細設定を表示",
    hideAdvanced: "詳細設定を非表示",
    unsavedChanges: "未保存の変更があります",
    secondsAgo: "{count}秒前",
    working: "処理中…",
    showQr: "QR を表示",
    relink: "再リンク",
    waitForScan: "スキャンを待機",
    logout: "ログアウト",
  },
  channels: {
    health: {
      title: "チャネルの状態",
      subtitle: "Gateway からのチャネル状態スナップショット。",
      noSnapshotYet: "まだスナップショットがありません。",
    },
    generic: {
      subtitle: "チャネルの状態と設定。",
    },
    gatewayUrlConfirmation: {
      title: "Gateway URL を変更",
      subtitle: "別の Gateway サーバーに再接続します",
      warning:
        "この URL を信頼できる場合のみ確認してください。悪意のある URL はシステムを危険にさらす可能性があります。",
    },
    nostr: {
      profile: "プロフィール",
      editProfile: "プロフィールを編集",
      profilePicture: "プロフィール画像",
      noProfile: "プロフィールが設定されていません。",
      noProfileHint:
        '"プロフィールを編集" をクリックして、名前、自己紹介、アバターを追加してください。',
      name: "名前",
      displayName: "表示名",
      about: "概要",
      advanced: "詳細設定",
      profilePicturePreview: "プロフィール画像のプレビュー",
      account: "アカウント",
      username: "ユーザー名",
      usernameHelp: "短いユーザー名（例: satoshi）",
      bio: "自己紹介",
      bioPlaceholder: "あなたについて紹介してください...",
      bioHelp: "簡単な自己紹介または説明",
      displayNameHelp: "あなたのフル表示名",
      avatarUrl: "アバター URL",
      avatarHelp: "プロフィール画像への HTTPS URL",
      bannerUrl: "バナー URL",
      bannerHelp: "バナー画像への HTTPS URL",
      website: "ウェブサイト",
      websiteHelp: "あなたの個人ウェブサイト",
      nip05Identifier: "NIP-05 識別子",
      nip05Help: "検証可能な識別子（例: you@domain.com）",
      lightningAddress: "Lightning Address",
      lightningHelp: "チップ用の Lightning アドレス（LUD-16）",
    },
  },
  nodes: {
    binding: {
      loadConfigHint: "バインディングを編集するには設定を読み込んでください。",
      formModeHint:
        "ここでバインディングを編集するには、Config タブをフォームモードに切り替えてください。",
      execNodeBinding: "Exec ノードバインディング",
      execNodeBindingSubtitle:
        "exec host=node を使用する際に、エージェントを特定のノードに固定します。",
      defaultBinding: "デフォルトのバインディング",
      defaultBindingHint: "エージェントがノードバインディングを上書きしない場合に使用されます。",
      node: "ノード",
    },
  },
  instances: {
    title: "接続済みインスタンス",
    subtitle: "Gateway とクライアントからのプレゼンスビーコン。",
    showHosts: "ホストと IP を表示",
    hideHosts: "ホストと IP を非表示",
    toggleHostVisibility: "ホスト表示を切り替え",
    noInstances: "まだインスタンスは報告されていません。",
    lastInput: "最後の入力 {time}",
    reason: "理由 {reason}",
  },
  agentTools: {
    connectedSource: "接続済み: {id}",
    connected: "接続済み",
    channelSource: "チャネル: {id}",
    channel: "チャネル",
    builtIn: "組み込み",
  },
  nav: {
    chat: "チャット",
    control: "コントロール",
    agent: "エージェント",
    settings: "設定",
    expand: "サイドバーを展開",
    collapse: "サイドバーを折りたたむ",
    resize: "サイドバーのサイズを変更",
  },
  tabs: {
    agents: "エージェント",
    overview: "概要",
    channels: "チャンネル",
    instances: "インスタンス",
    sessions: "セッション",
    usage: "使用状況",
    cron: "Cron ジョブ",
    skills: "Skills",
    nodes: "ノード",
    chat: "チャット",
    config: "設定",
    communications: "通信",
    appearance: "表示",
    automation: "自動化",
    infrastructure: "インフラストラクチャ",
    aiAgents: "AI とエージェント",
    debug: "デバッグ",
    logs: "ログ",
    dreams: "Dreaming",
  },
  subtitles: {
    agents: "ワークスペース、ツール、ID。",
    overview: "ステータス、エントリーポイント、健全性。",
    channels: "チャンネルと設定。",
    instances: "接続されたクライアントとノード。",
    sessions: "アクティブなセッションとデフォルト。",
    usage: "API 使用量とコスト。",
    cron: "ウェイクアップと定期実行。",
    skills: "Skills と API キー。",
    nodes: "ペアリング済みデバイスとコマンド。",
    chat: "すばやく介入するための Gateway チャット。",
    config: "openclaw.json を編集。",
    communications: "チャンネル、メッセージ、音声設定。",
    appearance: "テーマ、UI、セットアップウィザードの設定。",
    automation: "コマンド、フック、cron、プラグイン。",
    infrastructure: "Gateway、Web、ブラウザー、メディアの設定。",
    aiAgents: "エージェント、モデル、Skills、ツール、メモリ、セッション。",
    debug: "スナップショット、イベント、RPC。",
    logs: "ライブ Gateway ログ。",
    dreams: "スリープ中のメモリ統合。",
  },
  overview: {
    access: {
      title: "Gateway アクセス",
      subtitle: "ダッシュボードの接続先と認証方法。",
      wsUrl: "WebSocket URL",
      token: "Gateway トークン",
      password: "パスワード（保存されません）",
      sessionKey: "デフォルトのセッションキー",
      language: "言語",
      connectHint: "接続の変更を適用するには、［Connect］をクリックしてください。",
      trustedProxy: "信頼済みプロキシ経由で認証されています。",
    },
    snapshot: {
      title: "スナップショット",
      subtitle: "最新の Gateway ハンドシェイク情報。",
      status: "ステータス",
      uptime: "稼働時間",
      tickInterval: "Tick 間隔",
      lastChannelsRefresh: "前回の Channels 更新",
      channelsHint:
        "Channels を使用して、WhatsApp、Telegram、Discord、Signal、または iMessage をリンクします。",
    },
    stats: {
      instances: "インスタンス",
      instancesHint: "過去 5 分間のプレゼンスビーコン。",
      sessions: "セッション",
      sessionsHint: "Gateway が追跡している最近のセッションキー。",
      cron: "Cron",
      cronNext: "次回のウェイク {time}",
    },
    notes: {
      title: "メモ",
      subtitle: "リモートコントロールのセットアップ向けの簡単なリマインダー。",
      tailscaleTitle: "Tailscale serve",
      tailscaleText:
        "Gateway を loopback のまま tailnet 認証で使うには、serve モードを推奨します。",
      sessionTitle: "セッション管理",
      sessionText: "コンテキストをリセットするには、/new または sessions.patch を使用します。",
      cronTitle: "Cron のリマインダー",
      cronText: "定期実行には分離されたセッションを使用します。",
    },
    auth: {
      required:
        "この Gateway では認証が必要です。トークンまたはパスワードを追加してから、［Connect］をクリックしてください。",
      failed:
        "認証に失敗しました。{command} でトークン付き URL を再コピーするか、トークンを更新してから、［Connect］をクリックしてください。",
    },
    pairing: {
      hint: "このデバイスは Gateway ホストからのペアリング承認が必要です。",
      mobileHint:
        "モバイルを使用していますか？ デスクトップで openclaw dashboard --no-open から完全な URL（#token=... を含む）をコピーしてください。",
    },
    insecure: {
      hint: "このページは HTTP のため、ブラウザーがデバイス ID をブロックしています。HTTPS（Tailscale Serve）を使用するか、Gateway ホストで {url} を開いてください。",
      stayHttp: "HTTP を使い続ける必要がある場合は、{config} を設定してください（トークンのみ）。",
    },
    connection: {
      title: "接続方法",
      step1: "ホストマシンで Gateway を起動します:",
      step2: "トークン付きのダッシュボード URL を取得します:",
      step3: "上に WebSocket URL とトークンを貼り付けるか、トークン付き URL を直接開いてください。",
      step4: "または、再利用可能なトークンを生成します:",
      docsHint: "リモートアクセスには、Tailscale Serve を推奨します。 ",
      docsLink: "ドキュメントを読む →",
    },
    cards: {
      cost: "コスト",
      skills: "Skills",
      recentSessions: "最近のセッション",
    },
    attention: {
      title: "注意",
    },
    eventLog: {
      title: "イベントログ",
    },
    logTail: {
      title: "Gateway ログ",
    },
    quickActions: {
      newSession: "新しいセッション",
      automation: "自動化",
      refreshAll: "すべて更新",
      terminal: "ターミナル",
    },
    palette: {
      placeholder: "コマンドを入力…",
      noResults: "結果がありません",
    },
  },
  dreaming: {
    tabs: {
      scene: "Scene",
      diary: "Diary",
      advanced: "詳細",
    },
    header: {
      refresh: "更新",
      refreshing: "更新中…",
      on: "Dreaming オン",
      off: "Dreaming オフ",
    },
    status: {
      active: "Dreaming 有効",
      idle: "Dreaming 待機中",
      promotedSuffix: "昇格済み",
      nextSweepPrefix: "次のスイープ",
    },
    scene: {
      backfill: "バックフィル",
      reset: "リセット",
      clearGrounded: "グラウンデッドをクリア",
      working: "処理中…",
    },
    phase: {
      light: "浅い",
      deep: "深い",
      rem: "REM",
      off: "オフ",
    },
    advanced: {
      eyebrow: "レビュー",
      title: "日次ログのレビュー",
      description: "日次ログから来たもの、昇格待ちのもの、最近昇格したものを確認します。",
      summaryFromDailyLog: "日次ログから",
      summaryWaiting: "待機中",
      summaryPromotedToday: "今日昇格",
      stagedTitle: "日次ログから",
      stagedDescription: "古い日次ログのエントリから抽出された再生候補です。",
      shortTermTitle: "昇格待ち",
      shortTermDescription: "実際の記憶に昇格するのを待っている現在の短期候補です。",
      sortRecent: "新しい順",
      sortSignals: "最も強い支持",
      originDailyLog: "再生済み",
      originLive: "ライブ",
      originMixed: "混在",
      promotedTitle: "最近の昇格",
      promotedDescription: "すでに昇格を通過した項目です。",
      emptyGrounded: "現在、段階的な grounded replay エントリはありません。",
      emptyShortTerm: "確認する短期エントリはありません。",
      emptyPromoted: "確認する最近の昇格はありません。",
      updatedPrefix: "更新",
    },
    stats: {
      shortTerm: "短期",
      grounded: "グラウンデッド",
      signals: "シグナル",
      promoted: "昇格済み",
      phaseHits: "フェーズヒット",
    },
    trace: {
      shortTerm: "短期",
      grounded: "グラウンデッド",
      signals: "シグナル",
      promoted: "昇格済み",
      groundedLed: "grounded-led",
      emptyShortTerm: "アクティブな短期項目はありません。",
      emptyGrounded: "ステージされたグラウンデッド項目はありません。",
      emptySignals: "アクティブなシグナルはありません。",
      emptyPromoted: "今日はまだ何も昇格されていません。",
    },
    diary: {
      title: "夢日記",
      noDreamsYet: "まだ夢はありません",
      noDreamsHint: "最初の dreaming サイクルが実行されると、ここに夢が表示されます。",
      waitingTitle: "日記は待機中です",
      waitingHint: "次の dreaming サイクルの後に、物語形式のエントリが表示されます。",
      older: "前へ",
      newer: "次へ",
      reload: "再読み込み",
      reloading: "再読み込み中…",
    },
    phrases: {
      consolidatingMemories: "記憶を整理中…",
      tidyingKnowledgeGraph: "ナレッジグラフを整頓中…",
      replayingConversations: "今日の会話を再生中…",
      weavingShortTerm: "短期記憶を長期記憶に織り込み中…",
      defragmentingMindPalace: "マインドパレスをデフラグ中…",
      filingLooseThoughts: "散らばった思考を整理中…",
      connectingDots: "離れた点をつなぎ合わせ中…",
      compostingContext: "古いコンテキストウィンドウを堆肥化中…",
      alphabetizingSubconscious: "潜在意識を五十音順に整理中…",
      promotingHunches: "有望なひらめきを昇格中…",
      forgettingNoise: "重要でないことを忘れ中…",
      dreamingEmbeddings: "埋め込みの中で夢見中…",
      reorganizingAttic: "記憶の屋根裏を整理し直し中…",
      indexingDay: "一日を静かにインデックス化中…",
      nurturingInsights: "芽生えたばかりの洞察を育て中…",
      simmeringIdeas: "まだ形になっていないアイデアを温め中…",
      whisperingVectorStore: "ベクトルストアにささやきかけ中…",
    },
  },
  usage: {
    page: {
      subtitle: "トークンの使用先、セッションが急増するタイミング、コストの要因を確認できます。",
    },
    common: {
      emptyValue: "—",
      unknown: "不明",
    },
    loading: {
      title: "使用状況の概要",
      badge: "読み込み中",
    },
    metrics: {
      tokens: "トークン",
      cost: "コスト",
      session: "セッション",
      sessions: "セッション",
    },
    presets: {
      today: "今日",
      last7d: "7日",
      last30d: "30日",
    },
    filters: {
      title: "フィルター",
      to: "〜",
      startDate: "開始日",
      endDate: "終了日",
      timeZone: "タイムゾーン",
      timeZoneLocal: "ローカル",
      timeZoneUtc: "UTC",
      pin: "固定",
      pinned: "固定済み",
      unpin: "フィルターの固定を解除",
      selectAll: "すべて選択",
      clear: "クリア",
      clearAll: "すべてクリア",
      remove: "フィルターを削除",
      all: "すべて",
      days: "日",
      hours: "時間",
      session: "セッション",
      agent: "エージェント",
      channel: "チャンネル",
      provider: "プロバイダー",
      model: "モデル",
      tool: "ツール",
      daysCount: "{count} 日",
      hoursCount: "{count} 時間",
      sessionsCount: "{count} セッション",
    },
    query: {
      placeholder:
        "セッションを絞り込み（例: key:agent:main:cron* model:gpt-4o has:errors minTokens:2000）",
      apply: "絞り込み（クライアント側）",
      matching: "{total} 件中 {shown} 件のセッションが一致",
      inRange: "範囲内のセッション数: {total}",
      tip: "ヒント: フィルターを使うか、バーをクリックして日ごとに絞り込めます。",
    },
    export: {
      label: "エクスポート",
      sessionsCsv: "セッション CSV",
      dailyCsv: "日次 CSV",
      json: "JSON",
    },
    empty: {
      title: "まずは日付範囲を選択",
      subtitle:
        "ダッシュボードを離れずに、使用量データを読み込んでコストを比較し、セッションを確認し、タイムラインを詳しく分析できます。",
      hint: "日付範囲を選択して［Refresh］をクリックし、使用量を読み込んでください。",
      noData: "データがありません",
      featureOverview: "概要カード",
      featureSessions: "セッションのランキング",
      featureTimeline: "タイムラインの詳細分析",
    },
    daily: {
      title: "日別使用状況",
      total: "合計",
      byType: "種類別",
      tokensTitle: "日別トークン使用量",
      costTitle: "日別コスト",
    },
    breakdown: {
      output: "出力",
      input: "入力",
      cacheWrite: "キャッシュ書き込み",
      cacheRead: "キャッシュ読み取り",
      total: "合計",
      tokensByType: "種類別トークン",
      costByType: "種類別コスト",
    },
    overview: {
      title: "使用状況の概要",
      messages: "メッセージ",
      messagesHint: "範囲内のユーザーとアシスタントのメッセージ合計。",
      messagesAbbrev: "件",
      user: "ユーザー",
      assistant: "アシスタント",
      toolCalls: "ツール呼び出し",
      toolCallsHint: "セッション全体のツール呼び出し総数。",
      toolsUsed: "使用ツール数",
      errors: "エラー",
      errorsHint: "範囲内のメッセージとツールのエラー総数。",
      toolResults: "ツール結果",
      avgTokens: "平均トークン / メッセージ",
      avgTokensHint: "この範囲におけるメッセージごとの平均トークン数。",
      avgCost: "平均コスト / メッセージ",
      avgCostHint: "プロバイダーがコストを報告している場合のメッセージごとの平均コスト。",
      avgCostHintMissing:
        "プロバイダーがコストを報告している場合のメッセージごとの平均コスト。この範囲では、一部またはすべてのセッションでコストデータが不足しています。",
      acrossMessages: "{count} 件のメッセージ全体",
      sessions: "セッション",
      sessionsHint: "範囲内の一意のセッション数。",
      sessionsInRange: "範囲内 {count} 件中",
      throughput: "スループット",
      throughputHint:
        "スループットは、アクティブ時間あたりの 1 分ごとのトークン数を示します。高いほど良好です。",
      tokensPerMinute: "tok/分",
      perMinute: "/ 分",
      errorRate: "エラー率",
      errorHint: "エラー率 = エラー数 / メッセージ総数。低いほど良好です。",
      avgSession: "平均セッション",
      cacheHitRate: "キャッシュヒット率",
      cacheHint:
        "キャッシュヒット率 = キャッシュ読み取り / （入力 + キャッシュ読み取り）。高いほど良好です。",
      cached: "キャッシュ済み",
      prompt: "プロンプト",
      calls: "呼び出し",
      topModels: "上位モデル",
      topProviders: "上位プロバイダー",
      topTools: "上位ツール",
      topAgents: "上位エージェント",
      topChannels: "上位チャンネル",
      peakErrorDays: "エラーが多い日",
      peakErrorHours: "エラーが多い時間帯",
      noModelData: "モデルデータがありません",
      noProviderData: "プロバイダーデータがありません",
      noToolCalls: "ツール呼び出しがありません",
      noAgentData: "エージェントデータがありません",
      noChannelData: "チャンネルデータがありません",
      noErrorData: "エラーデータがありません",
    },
    sessions: {
      title: "セッション",
      shown: "{count} 件を表示",
      total: "合計 {count} 件",
      avg: "平均",
      all: "すべて",
      recent: "最近表示した項目",
      recentShort: "最近",
      sort: "並び替え",
      ascending: "昇順",
      descending: "降順",
      clearSelection: "選択をクリア",
      noRecent: "最近のセッションはありません",
      noneInRange: "範囲内にセッションがありません",
      more: "+{count} 件以上",
      selected: "選択済み（{count}）",
      copy: "コピー",
      copyName: "セッション名をコピー",
      limitReached:
        "最初の 1,000 件のセッションを表示しています。完全な結果を表示するには日付範囲を絞り込んでください。",
    },
    details: {
      noUsageData: "このセッションには使用状況データがありません。",
      duration: "期間",
      modelMix: "モデル構成",
      filtered: "（絞り込み済み）",
      close: "セッション詳細を閉じる",
      noTimeline: "タイムラインデータがありません",
      noDataInRange: "範囲内にデータがありません",
      usageOverTime: "時間ごとの使用状況",
      reset: "リセット",
      perTurn: "ターンごと",
      cumulative: "累積",
      turnRange: "全 {total} 件中 {start}～{end} ターン",
      assistantOutputTokens: "アシスタント出力トークン",
      userToolInputTokens: "ユーザー + ツール入力トークン",
      tokensWrittenToCache: "キャッシュに書き込まれたトークン",
      tokensReadFromCache: "キャッシュから読み取られたトークン",
      noContextData: "コンテキストデータがありません",
      systemPromptBreakdown: "システムプロンプトの内訳",
      collapse: "折りたたむ",
      collapseAll: "すべて折りたたむ",
      expandAll: "すべて展開",
      baseContextPerMessage: "メッセージごとの基本コンテキスト",
      system: "システム",
      systemShort: "Sys",
      skills: "Skills",
      tools: "ツール",
      files: "ファイル",
      ofInput: "入力の",
      of: "の",
      timelineFiltered: "タイムラインは絞り込み済み",
      conversation: "会話",
      noMessages: "メッセージがありません",
      tool: "ツール",
      toolResult: "ツール結果",
      hasTools: "ツールあり",
      searchConversation: "会話を検索",
      you: "あなた",
      noMessagesMatch: "フィルターに一致するメッセージはありません。",
    },
    mosaic: {
      title: "時間帯別アクティビティ",
      subtitleEmpty: "推定にはセッションのタイムスタンプが必要です。",
      subtitle: "セッション期間（最初と最後のアクティビティ）から推定。タイムゾーン: {zone}。",
      noTimelineData: "タイムラインデータはまだありません。",
      dayOfWeek: "曜日",
      midnight: "深夜0時",
      fourAm: "午前4時",
      eightAm: "午前8時",
      noon: "正午",
      fourPm: "午後4時",
      eightPm: "午後8時",
      legend: "低 → 高 トークン密度",
      sun: "日",
      mon: "月",
      tue: "火",
      wed: "水",
      thu: "木",
      fri: "金",
      sat: "土",
    },
  },
  login: {
    subtitle: "Gateway ダッシュボード",
    passwordPlaceholder: "任意",
  },
  chat: {
    disconnected: "Gateway から切断されました。",
    refreshTitle: "チャットデータを更新",
    thinkingToggle: "アシスタントの思考 / 作業出力の表示を切り替え",
    toolCallsToggle: "ツール呼び出しとツール結果の表示を切り替え",
    focusToggle: "フォーカスモードを切り替え（サイドバー + ページヘッダーを非表示）",
    hideCronSessions: "Cron セッションを非表示",
    showCronSessions: "Cron セッションを表示",
    showCronSessionsHidden: "Cron セッションを表示（{count} 件を非表示中）",
    onboardingDisabled: "セットアップ中は無効",
  },
  languages: {
    en: "英語",
    zhCN: "简体中文（Simplified Chinese）",
    zhTW: "繁體中文（Traditional Chinese）",
    ptBR: "Português（Brazilian Portuguese）",
    de: "Deutsch（German）",
    es: "Español（Spanish）",
    jaJP: "日本語（Japanese）",
    ko: "한국어（Korean）",
    fr: "Français（French）",
    tr: "Türkçe（Turkish）",
    uk: "Українська（ウクライナ語）",
    id: "Bahasa Indonesia（Indonesian）",
    pl: "Polski（Polish）",
  },
  cron: {
    summary: {
      enabled: "有効",
      yes: "はい",
      no: "いいえ",
      jobs: "ジョブ",
      nextWake: "次回のウェイク",
      refreshing: "更新中...",
      refresh: "更新",
    },
    jobs: {
      title: "ジョブ",
      subtitle: "Gateway に保存されているすべてのスケジュール済みジョブ。",
      shownOf: "全 {total} 件中 {shown} 件を表示",
      searchJobs: "ジョブを検索",
      searchPlaceholder: "名前、説明、またはエージェント",
      enabled: "有効",
      schedule: "スケジュール",
      lastRun: "前回の実行",
      all: "すべて",
      sort: "並び替え",
      nextRun: "次回の実行",
      recentlyUpdated: "最近更新された順",
      name: "名前",
      direction: "方向",
      ascending: "昇順",
      descending: "降順",
      reset: "リセット",
      noMatching: "一致するジョブはありません。",
      loading: "読み込み中...",
      loadMore: "さらにジョブを読み込む",
    },
    runs: {
      title: "実行履歴",
      subtitleAll: "すべてのジョブの最新実行。",
      subtitleJob: "{title} の最新実行。",
      scope: "対象",
      allJobs: "すべてのジョブ",
      selectedJob: "選択したジョブ",
      searchRuns: "実行履歴を検索",
      searchPlaceholder: "概要、エラー、またはジョブ",
      newestFirst: "新しい順",
      oldestFirst: "古い順",
      status: "ステータス",
      delivery: "配信",
      clear: "クリア",
      allStatuses: "すべてのステータス",
      allDelivery: "すべての配信",
      selectJobHint: "実行履歴を確認するジョブを選択してください。",
      noMatching: "一致する実行履歴はありません。",
      loadMore: "さらに実行履歴を読み込む",
      runStatusOk: "OK",
      runStatusError: "エラー",
      runStatusSkipped: "スキップ",
      runStatusUnknown: "不明",
      deliveryDelivered: "配信済み",
      deliveryNotDelivered: "未配信",
      deliveryUnknown: "不明",
      deliveryNotRequested: "未要求",
    },
    form: {
      editJob: "ジョブを編集",
      newJob: "新しいジョブ",
      updateSubtitle: "選択したスケジュール済みジョブを更新します。",
      createSubtitle: "スケジュールされたウェイクアップまたはエージェント実行を作成します。",
      required: "必須",
      requiredSr: "必須",
      basics: "基本情報",
      basicsSub: "名前を付け、アシスタントを選択し、有効状態を設定します。",
      fieldName: "名前",
      description: "説明",
      agentId: "エージェント ID",
      namePlaceholder: "朝のブリーフ",
      descriptionPlaceholder: "このジョブの任意のコンテキスト",
      agentPlaceholder: "main または ops",
      agentHelp: "入力を始めると既知のエージェントを選択でき、カスタム値を入力することもできます。",
      schedule: "スケジュール",
      scheduleSub: "このジョブを実行するタイミングを設定します。",
      every: "毎",
      at: "時刻",
      cronOption: "Cron",
      runAt: "実行時刻",
      unit: "単位",
      minutes: "分",
      hours: "時間",
      days: "日",
      expression: "式",
      expressionPlaceholder: "0 7 * * *",
      everyAmountPlaceholder: "30",
      timezoneOptional: "タイムゾーン（任意）",
      timezonePlaceholder: "America/Los_Angeles",
      timezoneHelp:
        "一般的なタイムゾーンを選択するか、有効な IANA タイムゾーンを入力してください。",
      jitterHelp:
        "ジッターが必要ですか？ ［Advanced］→［Stagger window］/［Stagger unit］を使用してください。",
      execution: "実行",
      executionSub: "ウェイクするタイミングと、このジョブで行う内容を選択します。",
      session: "セッション",
      main: "メイン",
      isolated: "分離",
      sessionHelp:
        "Main はシステムイベントを投稿します。Isolated は専用のエージェントターンを実行します。",
      wakeMode: "ウェイクモード",
      now: "今すぐ",
      nextHeartbeat: "次の heartbeat",
      wakeModeHelp: "Now は即時にトリガーされます。Next heartbeat は次のサイクルまで待機します。",
      payloadKind: "何を実行しますか？",
      systemEvent: "メインタイムラインにメッセージを投稿",
      agentTurn: "アシスタントタスクを実行（分離）",
      systemEventHelp:
        "テキストを Gateway のメインタイムラインに送信します（リマインダーやトリガーに適しています）。",
      agentTurnHelp: "プロンプトを使用して、独自のセッションでアシスタント実行を開始します。",
      timeoutSeconds: "タイムアウト（秒）",
      timeoutPlaceholder: "任意、例: 90",
      timeoutHelp:
        "任意です。空欄のままにすると、この実行では Gateway のデフォルトのタイムアウト動作が使用されます。",
      mainTimelineMessage: "メインタイムラインメッセージ",
      assistantTaskPrompt: "アシスタントタスクのプロンプト",
      deliverySection: "配信",
      deliverySub: "実行結果の概要の送信先を選択します。",
      resultDelivery: "結果の配信",
      announceDefault: "概要を通知（デフォルト）",
      webhookPost: "Webhook POST",
      noneInternal: "なし（内部）",
      deliveryHelp:
        "［Announce］は概要をチャットに投稿します。［None］は実行を内部のみに保ちます。",
      webhookUrl: "Webhook URL",
      channel: "チャンネル",
      webhookPlaceholder: "https://example.com/cron",
      channelHelp: "概要の送信先となる接続済みチャンネルを選択します。",
      webhookHelp: "実行結果の概要を Webhook エンドポイントに送信します。",
      to: "宛先",
      toPlaceholder: "+1555... または chat id",
      toHelp: "任意の受信者上書きです（chat id、電話番号、または user id）。",
      advanced: "詳細設定",
      advancedHelp: "配信保証、スケジュールのジッター、モデル制御の任意の上書き設定。",
      deleteAfterRun: "実行後に削除",
      deleteAfterRunHelp: "自動でクリーンアップしたい単発のリマインダーに最適です。",
      clearAgentOverride: "エージェント上書きをクリア",
      clearAgentHelp: "このジョブで Gateway のデフォルトアシスタントを強制的に使用します。",
      exactTiming: "正確なタイミング（stagger なし）",
      exactTimingHelp: "分散なしで、正確な cron 境界で実行します。",
      staggerWindow: "ずらしウィンドウ",
      staggerUnit: "ずらし単位",
      staggerPlaceholder: "30",
      seconds: "秒",
      model: "モデル",
      modelPlaceholder: "openai/gpt-5.2",
      modelHelp: "入力を始めると既知のモデルを選択でき、カスタム値を入力することもできます。",
      thinking: "Thinking",
      thinkingPlaceholder: "low",
      thinkingHelp: "推奨レベルを使用するか、プロバイダー固有の値を入力してください。",
      bestEffortDelivery: "ベストエフォート配信",
      bestEffortHelp: "配信自体が失敗してもジョブを失敗扱いにしません。",
      cantAddYet: "まだジョブを追加できません",
      fillRequired: "送信を有効にするには、以下の必須項目を入力してください。",
      fixFields: "続行するには {count} 個の項目を修正してください。",
      fixFieldsPlural: "続行するには {count} 個の項目を修正してください。",
      saving: "保存中...",
      saveChanges: "変更を保存",
      addJob: "ジョブを追加",
      cancel: "キャンセル",
    },
    jobList: {
      allJobs: "すべてのジョブ",
      selectJob: "（ジョブを選択）",
      enabled: "有効",
      disabled: "無効",
      edit: "編集",
      clone: "複製",
      disable: "無効にする",
      enable: "有効にする",
      run: "実行",
      history: "履歴",
      remove: "削除",
    },
    jobDetail: {
      system: "システム",
      prompt: "プロンプト",
      delivery: "配信",
      agent: "エージェント",
    },
    jobState: {
      status: "ステータス",
      next: "次回",
      last: "前回",
    },
    runEntry: {
      noSummary: "概要はありません。",
      runAt: "実行日時",
      openRunChat: "実行チャットを開く",
      next: "次回 {rel}",
      due: "期限 {rel}",
    },
    errors: {
      nameRequired: "名前は必須です。",
      scheduleAtInvalid: "有効な日時を入力してください。",
      everyAmountInvalid: "間隔は 0 より大きくする必要があります。",
      cronExprRequired: "Cron 式は必須です。",
      staggerAmountInvalid: "Stagger は 0 より大きくする必要があります。",
      systemTextRequired: "システムテキストは必須です。",
      agentMessageRequired: "エージェントメッセージは必須です。",
      timeoutInvalid: "設定する場合、タイムアウトは 0 秒より大きくする必要があります。",
      webhookUrlRequired: "Webhook URL は必須です。",
      webhookUrlInvalid: "Webhook URL は http:// または https:// で始まる必要があります。",
      invalidRunTime: "無効な実行時刻です。",
      invalidIntervalAmount: "無効な間隔の値です。",
      cronExprRequiredShort: "Cron 式は必須です。",
      invalidStaggerAmount: "無効な stagger の値です。",
      systemEventTextRequired: "システムイベントテキストは必須です。",
      agentMessageRequiredShort: "エージェントメッセージは必須です。",
      nameRequiredShort: "名前は必須です。",
    },
  },
};
