程序员阿江(Relakkes) 3e685eb6c2 fix(desktop): localize output style descriptions (#966)
Localize built-in output style names and descriptions in desktop settings while preserving custom project/user/plugin style text. Also localize the provider model ID placeholder.

Tested:
- cd desktop && bun run test -- src/pages/SettingsOutputStyle.test.tsx
- cd desktop && bun run test -- src/__tests__/generalSettings.test.tsx -t "localizes the main model placeholder"
- bun run check:desktop

Scope-risk: narrow
Confidence: high
2026-07-03 19:08:48 +08:00

1983 lines
151 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { TranslationKey } from './en'
export const jp: Record<TranslationKey, string> = {
// ─── Common ──────────────────────────────────────
'common.cancel': 'キャンセル',
'common.save': '保存',
'common.delete': '削除',
'common.add': '追加',
'common.run': '実行',
'common.send': '送信',
'common.stop': '停止',
'common.tokens': '{count} トークン',
'common.rename': '名前を変更',
'common.retry': '再試行',
'common.loading': '読み込み中...',
'common.select': '選択',
'common.enable': '有効化',
'common.disable': '無効化',
'common.active': 'アクティブ',
'common.error': 'エラー',
'common.copyFailed': 'コピーに失敗しました。',
'common.copied': 'コピーしました',
// ─── Sidebar ──────────────────────────────────────
'sidebar.newSession': '新しいセッション',
'sidebar.scheduled': 'スケジュール',
'sidebar.terminal': 'ターミナル',
'sidebar.settings': '設定',
'sidebar.searchPlaceholder': 'セッションを検索...',
'sidebar.noSessions': 'セッションがありません',
'sidebar.noMatching': '一致するセッションがありません',
'sidebar.sessionListFailed': 'セッション一覧の読み込みに失敗しました',
'sidebar.refreshSessions': 'セッションを更新',
'search.global.trigger': 'チャットを検索',
'search.global.placeholder': 'すべてのチャットを検索…',
'search.global.recentTitle': '最近のセッション',
'search.global.noResults': '一致する内容が見つかりません',
'search.global.matchCount': '{count} 件一致',
'search.global.truncated': '最初の {count} 件のみ表示しています。キーワードを絞り込んでください',
'search.global.roleUser': 'あなた',
'search.global.roleAssistant': 'アシスタント',
'search.global.loading': '検索中…',
'search.global.error': '検索に失敗しました',
'search.global.close': '閉じる',
'sidebar.projects': 'プロジェクト',
'sidebar.projectMenu': 'プロジェクトメニュー',
'sidebar.newProject': '新しいプロジェクト',
'sidebar.archiveAllChats': 'すべてのチャットをアーカイブ',
'sidebar.organizeSidebar': 'サイドバーを整理',
'sidebar.sortCondition': '並び替え条件',
'sidebar.organizeByProject': 'プロジェクト別',
'sidebar.organizeByRecentProject': '最近のプロジェクト',
'sidebar.organizeByTime': '時間順',
'sidebar.sortByCreatedAt': '作成日時',
'sidebar.sortByUpdatedAt': '更新日時',
'sidebar.newBlankProject': '新しい空のプロジェクト',
'sidebar.useExistingFolder': '既存のフォルダを使用',
'sidebar.chooseProjectFolderUnavailable': 'フォルダの選択はデスクトップアプリでのみ利用できます。',
'sidebar.projectActions': '{project} のプロジェクト操作',
'sidebar.pinProject': 'プロジェクトをピン留め',
'sidebar.unpinProject': 'ピン留めを解除',
'sidebar.openInFinder': 'Finder で開く',
'sidebar.openInFinderFailed': 'プロジェクトを Finder で開けませんでした。',
'sidebar.openInFinderUnavailable': '利用できるファイルマネージャーがありません。',
'sidebar.hideProjectFromSidebar': 'サイドバーから非表示',
'sidebar.restoreProjectToSidebar': 'サイドバーに復元',
'sidebar.restoreHiddenProjects': '非表示のプロジェクトを復元 ({count})',
'sidebar.projectHidden': '{project} をサイドバーから非表示にしました。既存のセッションは削除されていません。',
'sidebar.newSessionInProject': '{project} で新しいセッション',
'sidebar.showMoreSessions': '表示を展開',
'sidebar.showFewerSessions': '表示を折りたたむ',
'sidebar.expandProject': '{project} を展開',
'sidebar.collapseProject': '{project} を折りたたむ',
'sidebar.worktree': 'worktree',
'sidebar.sessionRunning': 'セッション実行中',
'sidebar.missingDir': 'ディレクトリがありません',
'sidebar.confirmDelete': 'このセッションを削除しますか?この操作は取り消せません。',
'sidebar.batchManage': '一括管理',
'sidebar.batchSelectedCount': '{count} 件選択中',
'sidebar.batchSelectAll': 'すべて選択',
'sidebar.batchDeselectAll': 'すべて選択解除',
'sidebar.batchSelectGroup': '{group} を選択',
'sidebar.batchDeleteSelected': '選択項目を削除 ({count})',
'sidebar.batchDeleteConfirm': '{count} 件のセッションを削除しますか?この操作は取り消せません。',
'sidebar.batchDeleteConfirmBody': '以下のセッションが削除されます:',
'sidebar.batchDeleteMore': '...他 {count} 件',
'sidebar.batchExit': '一括モードをキャンセル',
'sidebar.batchDeleteSucceeded': '{count} 件のセッションを削除しました。',
'sidebar.batchDeleteFailed': '{count} 件のセッションを削除できませんでした。',
'sidebar.allProjects': 'すべてのプロジェクト',
'sidebar.other': 'その他',
'sidebar.timeGroup.today': '今日',
'sidebar.timeGroup.yesterday': '昨日',
'sidebar.timeGroup.last7days': '過去 7 日間',
'sidebar.timeGroup.last30days': '過去 30 日間',
'sidebar.timeGroup.older': 'それ以前',
'sidebar.collapse': 'サイドバーを折りたたむ',
'sidebar.expand': 'サイドバーを展開',
// ─── Title Bar ──────────────────────────────────────
'titlebar.code': 'コード',
'titlebar.terminal': 'ターミナル',
'titlebar.history': '履歴',
// ─── Open Project ──────────────────────────────────────
'openProject.openProject': 'プロジェクトを開く',
'openProject.openIn': '{target} で開く',
'openProject.openFailed': 'プロジェクトを開けませんでした',
// ─── Open With ─────────────────────────────────────
'openWith.title': '開く方法',
'openWith.inAppBrowser': 'アプリ内ブラウザ',
'openWith.systemBrowser': 'システムブラウザ',
'openWith.workspacePreview': 'ワークスペースプレビュー',
'openWith.openInTarget': '{target} で開く',
'openWith.revealInTarget': '{target} で表示',
'openWith.fileType.document': 'ドキュメント',
'openWith.fileType.web': 'Web',
'openWith.fileType.image': '画像',
'openWith.fileType.code': 'コード',
'openWith.fileType.file': 'ファイル',
// ─── Assistant Output Targets ──────────────────────
'assistantOutputs.kind.markdown': 'Markdown',
'assistantOutputs.kind.html': 'HTML',
'assistantOutputs.kind.image': '画像',
'assistantOutputs.kind.localhost': 'Localhost',
'assistantOutputs.moreOutputs': '+{count} 件',
'assistantOutputs.open': '開く',
// ─── Workspace Panel ───────────────────────────────
'workspace.changedFiles': '変更されたファイル',
'workspace.allFiles': 'すべてのファイル',
'workspace.viewTabs': 'ワークスペースビュー',
'workspace.previewTabs': 'プレビュータブ',
'workspace.filterPlaceholder': 'ファイルを絞り込み...',
'workspace.clearFilter': 'ファイルフィルターをクリア',
'workspace.refresh': 'ワークスペースを更新',
'workspace.closePanel': 'ワークスペースパネルを閉じる',
'workspace.resizePanel': 'ワークスペースパネルのサイズを変更',
'workspace.showNavigator': 'ファイルナビゲーターを表示',
'workspace.hideNavigator': 'ファイルナビゲーターを非表示',
'workbench.modeSwitch': 'ワークベンチモード',
'workbench.modeWorkspace': 'ファイル',
'workbench.modeBrowser': 'ブラウザ',
'workbench.expand': 'パネルを展開',
'workbench.close': '閉じる',
'workbench.tabTitle': 'ワークベンチ',
'workspace.closeTab': 'タブを閉じる',
'workspace.preview': 'プレビュー',
'workspace.previewEmpty': 'プレビューするファイルを選択してください。',
'workspace.notGitRepo': 'Git リポジトリではありません。',
'workspace.missingWorkdir': '作業ディレクトリが見つかりません。',
'workspace.loadError': 'ワークスペースデータの読み込みに失敗しました。',
'workspace.noChanges': '変更なし',
'workspace.noFiles': 'ファイルなし',
'workspace.noMatchingFiles': '一致するファイルなし',
'workspace.previewKind.diff': '差分',
'workspace.previewKind.file': 'ファイル',
'workspace.previewState.loading': 'プレビューを読み込み中...',
'workspace.previewState.binary': 'バイナリファイルはプレビューできません。',
'workspace.previewState.tooLarge': 'ファイルが大きすぎてプレビューできません。',
'workspace.previewState.missing': 'ファイルが見つかりません。',
'workspace.imagePreviewUnavailable': '画像をプレビューできません。',
'workspace.previewLineLimit': '読み込まれた {total} 行のうち最初の {count} 行を表示しています。',
'workspace.previewAllLines': '読み込まれた {total} 行すべてを表示しています。',
'workspace.showAllLoadedLines': '読み込まれた行をすべて表示',
'workspace.collapsePreview': 'プレビューを折りたたむ',
'workspace.addToChat': 'チャットに追加',
'workspace.addSelectionToChat': 'チャットに追加',
'workspace.copyPath': 'パスをコピー',
'workspace.copyAbsolutePath': '絶対パスをコピー',
'workspace.pathCopied': 'パスをコピーしました。',
'workspace.localComment': 'ローカルコメント',
'workspace.commentLine': '{line} 行目にコメント',
'workspace.commentLineTarget': '{line} 行目',
'workspace.commentPlaceholder': 'ここで何を変更すべきか説明してください...',
'workspace.addCommentToChat': 'コメントを追加',
// ─── Status Bar ──────────────────────────────────────
'status.connected': '接続済み',
'status.connecting': '接続中...',
'status.reconnecting': '再接続中...',
'status.disconnected': '切断されました',
// ─── Settings ──────────────────────────────────────
'settings.title': '設定',
'settings.tab.providers': 'プロバイダー',
'settings.tab.permissions': '権限',
'settings.tab.activity': 'トークン使用量',
'settings.tab.trace': 'Trace',
'settings.tab.general': '一般',
'settings.tab.h5Access': 'H5 アクセス',
'settings.tab.terminal': 'ターミナル',
'settings.tab.skills': 'スキル',
'settings.tab.mcp': 'MCP',
'settings.tab.plugins': 'プラグイン',
'settings.tab.diagnostics': '診断',
// Settings > Usage
'settings.activity.title': 'トークン使用量',
'settings.activity.profileTitle': 'プロフィール',
'settings.activity.profilePrivacy': 'ローカルのみ',
'settings.activity.defaultHandle': 'github.com/NanmiCoder/cc-haha',
'settings.activity.editProfile': 'プロフィールを編集',
'settings.activity.displayName': '表示名',
'settings.activity.subtitle': '2 行目',
'settings.activity.displayNameHelper': '表示名と 2 行目を編集します。2 行目の URL はリンクとして開きます。',
'settings.activity.avatar': 'アバター',
'settings.activity.avatarHelper': 'PNG、JPEG、または WebP最大 2 MB。',
'settings.activity.changeAvatar': 'アバターを変更',
'settings.activity.removeAvatar': 'アバターを削除',
'settings.activity.saveProfile': '保存',
'settings.activity.cancelEdit': 'キャンセル',
'settings.activity.profileSaved': 'ローカルに保存しました',
'settings.activity.profileSaveFailed': 'プロフィールを保存できませんでした',
'settings.activity.subtitleLoading': 'ローカルの Claude Code CLI セッション記録に基づきます',
'settings.activity.totalTokens': '合計トークン数',
'settings.activity.peakTokens': 'ピークトークン数',
'settings.activity.longestTask': '最長タスク',
'settings.activity.currentStreak': '現在の連続日数',
'settings.activity.longestStreak': '最長の連続日数',
'settings.activity.noDuration': '0分',
'settings.activity.tokenActivity': 'トークンアクティビティ',
'settings.activity.mode.daily': '日次',
'settings.activity.mode.weekly': '週次',
'settings.activity.mode.cumulative': '累積',
'settings.activity.modeHelp.daily': '日次: 各マスはその日のトークン使用量です。',
'settings.activity.modeHelp.weekly': '週次: 各列は 1 週間のトークン使用量の合計です。',
'settings.activity.modeHelp.cumulative': '累積: 各列はその週までのトークン総数です。',
'settings.activity.emptyTitle': 'ローカルの使用履歴がまだありません',
'settings.activity.emptyBody': 'CLI またはデスクトップセッションを開始すると、完了したモデルの応答がここに表示されます。',
'settings.activity.metric.yesterday': '昨日',
'settings.activity.metric.today': '今日',
'settings.activity.metric.last4': '過去 4 日間',
'settings.activity.metric.last30': '30 日間',
'settings.activity.metric.streak': '連続日数',
'settings.activity.metric.bestStreak': '最高 {days} 日間',
'settings.activity.heatmapLabel': '日別のトークン使用量',
'settings.activity.weekRange': '{start} - {end}',
'settings.activity.cumulativeThrough': '{date} まで',
'settings.activity.tokenValue': '{tokens} トークン',
'settings.activity.count.sessionOne': '{count} セッション',
'settings.activity.count.sessionOther': '{count} セッション',
'settings.activity.count.dayOne': '{count} 日',
'settings.activity.count.dayOther': '{count} 日',
'settings.activity.count.runOne': '{count} 回実行',
'settings.activity.count.runOther': '{count} 回実行',
'settings.activity.weekday.mon': '月',
'settings.activity.weekday.wed': '水',
'settings.activity.weekday.fri': '金',
'settings.activity.selectedDay': '選択した日',
'settings.activity.sessions': 'セッション',
'settings.activity.tokens': 'トークン',
'settings.activity.messages': 'メッセージ',
'settings.activity.tools': 'ツール',
'settings.activity.activityInsights': 'アクティビティ分析',
'settings.activity.activeRate': 'アクティブ率',
'settings.activity.mostUsedModel': '最も使ったモデル',
'settings.activity.exploredSkills': '使用したスキル',
'settings.activity.totalSkillUses': 'スキル使用数',
'settings.activity.totalToolCalls': 'ツール呼び出し',
'settings.activity.totalSessions': 'セッション総数',
'settings.activity.mostUsedPluginsAndSkills': 'よく使うプラグイン/スキル',
'settings.activity.none': 'なし',
'settings.activity.less': '少ない',
'settings.activity.more': '多い',
// Settings > Terminal
'settings.terminal.title': 'ターミナル',
'settings.terminal.description': 'プラグイン、スキル、MCP のセットアップ用にホストマシンのコマンドを実行します。デスクトップアプリには claude-haha が含まれています。ドキュメントの claude <args> を claude-haha <args> に置き換えてください。例: claude-haha plugin install ... や claude-haha mcp add ...',
'settings.terminal.infoLabel': 'ターミナルセットアップのヘルプ',
'settings.terminal.clear': 'クリア',
'settings.terminal.restart': '再起動',
'settings.terminal.windowTitle': 'ホストシェル',
'settings.terminal.unavailableTitle': 'デスクトップランタイムが必要です',
'settings.terminal.unavailableBody': 'インタラクティブなターミナルを開始するには、このページをパッケージ版デスクトップアプリで開いてください。',
'settings.terminal.preferencesTitle': '起動シェル',
'settings.terminal.preferencesBody': '新しいターミナルセッションと再起動後に使用されます。',
'settings.terminal.startupShell': '起動シェル',
'settings.terminal.customPath': 'カスタムシェルのパス',
'settings.terminal.customPathPlaceholder': 'C:\\Program Files\\PowerShell\\7\\pwsh.exe',
'settings.terminal.customPathRequired': '保存する前にシェルのパスを入力してください。',
'settings.terminal.customPathAbsolute': 'カスタムシェルのパスは Windows の絶対パスである必要があります。',
'settings.terminal.saveShell': 'シェルを保存',
'settings.terminal.saveShellSuccess': '保存しました。適用するには再起動するか、新しいターミナルを開いてください。',
'settings.terminal.shell.system': 'システムのデフォルト',
'settings.terminal.shell.systemDesc': '現在の COMSPEC ベースの動作を維持します。',
'settings.terminal.shell.pwsh': 'PowerShell 7 (pwsh)',
'settings.terminal.shell.pwshDesc': 'インストールされている場合は pwsh.exe を使用します。',
'settings.terminal.shell.powershell': 'Windows PowerShell',
'settings.terminal.shell.powershellDesc': '組み込みの powershell.exe を使用します。',
'settings.terminal.shell.cmd': 'コマンドプロンプト',
'settings.terminal.shell.cmdDesc': 'cmd.exe を明示的に使用します。',
'settings.terminal.shell.custom': 'カスタム実行ファイル',
'settings.terminal.shell.customDesc': '絶対パスのシェル実行ファイルを起動します。',
'settings.terminal.status.idle': 'アイドル',
'settings.terminal.status.starting': '起動中',
'settings.terminal.status.running': '実行中',
'settings.terminal.status.exited': '終了',
'settings.terminal.status.error': 'エラー',
'settings.terminal.status.unavailable': '利用不可',
'settings.terminal.bashPathLabel': 'Bash のパス',
'settings.terminal.bashPathDescription': 'Windows ではターミナルシェルのデフォルトは CMD です。ツール呼び出しで Unix コマンドgrep、sed など)を使用する場合は、ここで Bash 実行ファイル(例: Git Bashのパスを設定してください。',
'settings.terminal.bashPathSave': '保存',
'settings.terminal.bashPathReset': 'デフォルトにリセット',
'settings.terminal.bashPathSaved': '保存しました',
'settings.terminal.bashPathInvalid': 'パスが存在しません。有効な Bash 実行ファイルを選択してください。',
'terminal.newTab': '新しいターミナル',
'terminal.openInTab': 'タブで開く',
'terminal.closePanel': 'ターミナルパネルを閉じる',
'terminal.resizePanel': 'ターミナルパネルのサイズを変更',
// Settings > Diagnostics
'settings.diagnostics.title': '診断',
'settings.diagnostics.description': '起動、プロバイダー、セッションの失敗をデバッグするためのサーバーおよび CLI ランタイムログ。',
'settings.diagnostics.refresh': '更新',
'settings.diagnostics.totalSize': 'ログサイズ',
'settings.diagnostics.events': 'イベント',
'settings.diagnostics.recentErrors': '24 時間の警告',
'settings.diagnostics.retention': '保持期間',
'settings.diagnostics.retentionValue': '{days} 日 / {size}',
'settings.diagnostics.logDirectory': 'ログディレクトリ',
'settings.diagnostics.openDirectory': '開く',
'settings.diagnostics.exportBundle': 'バンドルをエクスポート',
'settings.diagnostics.copySummary': 'エラー概要をコピー',
'settings.diagnostics.clearLogs': 'ログをクリア',
'settings.diagnostics.recentEvents': '最近のイベント',
'settings.diagnostics.privacyNote': 'エクスポートされる診断情報はサニタイズされており、チャット内容、ファイル内容、すべての環境変数、API キーは含まれません。',
'settings.diagnostics.noEvents': '診断イベントはまだありません。',
'settings.diagnostics.noRecentErrors': '最近の警告やエラーはありません。',
'settings.diagnostics.loadFailed': '診断情報の読み込みに失敗しました。',
'settings.diagnostics.openFailed': '診断ディレクトリを開けませんでした。',
'settings.diagnostics.exportFailed': '診断バンドルのエクスポートに失敗しました。',
'settings.diagnostics.exported': '{file} をエクスポートしました',
'settings.diagnostics.summaryCopied': 'エラー概要をコピーしました。',
'settings.diagnostics.copyFailed': 'エラー概要のコピーに失敗しました。',
'settings.diagnostics.confirmClear': 'ローカルの診断ログとエクスポート済みバンドルをすべてクリアしますか?',
'settings.diagnostics.cleared': '診断情報をクリアしました。',
'settings.diagnostics.clearFailed': '診断情報のクリアに失敗しました。',
'settings.diagnostics.eventDetails': '詳細',
'settings.diagnostics.doctorTitle': 'Doctor',
'settings.diagnostics.doctorDescription': '起動および UI 状態の問題に対する安全なデスクトップ修復。',
'settings.diagnostics.doctorProtectedData': 'チャット履歴、モデル設定、スキル、MCP、IM、OAuth には一切影響しません。',
'settings.diagnostics.doctorSafeKeys': 'クリアされるのは次のみ: cc-haha-open-tabs、cc-haha-session-runtime、cc-haha-theme、cc-haha-locale、cc-haha.persistence.schemaVersion。',
'settings.diagnostics.runDoctor': 'Doctor を実行',
'settings.diagnostics.doctorCompleted': 'Doctor が完了しました。',
'settings.diagnostics.doctorPartial': 'Doctor は完了しましたが、{count} 件のローカルクリーンアップの問題があります。',
'settings.diagnostics.doctorFailed': 'Doctor が失敗しました。',
'settings.diagnostics.doctorResultLocal': '{count} 件の安全な UI キーをクリアしました。',
'settings.diagnostics.doctorResultFailedKeys': '{count} 件のキーを削除できませんでした。',
'settings.diagnostics.doctorServerRan': 'サーバー側の Doctor 修復も実行されました。',
'settings.diagnostics.doctorServerUnavailable': 'サーバー側の Doctor が利用できなかったため、ローカル修復のみ実行されました。',
'errorBoundary.title': '問題が発生しました。',
'errorBoundary.description': 'エラーは診断に記録されました。',
// Settings > Claude Official Login
'settings.claudeOfficialLogin.intro': '公式 Claude モデルを使用するには、Claude.ai アカウントにサインインする必要があります。下のボタンをクリックすると、ブラウザで公式 Claude ログインページが開きます。承認後、ここに戻ります。',
'settings.claudeOfficialLogin.loginButton': 'Claude にサインイン',
'settings.claudeOfficialLogin.loginStarting': '起動中…',
'settings.claudeOfficialLogin.logoutButton': 'サインアウト',
'settings.claudeOfficialLogin.logoutProcessing': '処理中…',
'settings.claudeOfficialLogin.loggedInPrefix': 'サインイン済み (Claude',
'settings.claudeOfficialLogin.subTypeUnknown': '不明',
'settings.claudeOfficialLogin.errorPrefix': 'エラー: ',
'settings.claudeOfficialLogin.openBrowserFailed': 'ブラウザを開けませんでした。承認 URL に手動でアクセスしてください。',
// Settings > ChatGPT Official Login
'settings.chatgptOfficialLogin.intro': 'デスクトップセッションで GPT モデルを使用するには、ChatGPT でサインインしてください。',
'settings.chatgptOfficialLogin.loginButton': 'ChatGPT でサインイン',
'settings.chatgptOfficialLogin.loginStarting': 'サインインを開始中...',
'settings.chatgptOfficialLogin.logoutButton': 'サインアウト',
'settings.chatgptOfficialLogin.logoutProcessing': 'サインアウト中...',
'settings.chatgptOfficialLogin.loggedInPrefix': 'サインイン中:',
'settings.chatgptOfficialLogin.accountUnknown': 'ChatGPT アカウント',
'settings.chatgptOfficialLogin.openBrowserFailed': 'ブラウザを開けません。承認リンクをコピーして手動で開いてください。',
'settings.chatgptOfficialLogin.copyAuthorizeUrl': '承認リンクをコピー',
'settings.chatgptOfficialLogin.copyLinkFailed': '承認リンクをコピーできません。',
'settings.chatgptOfficialLogin.errorPrefix': 'ChatGPT OAuth エラー: ',
// Settings > Providers
'settings.providers.title': 'プロバイダー',
'settings.providers.description': 'モデルにアクセスするための API プロバイダーを管理します。',
'settings.providers.addProvider': 'プロバイダーを追加',
'settings.providers.officialName': 'Claude 公式',
'settings.providers.officialDesc': 'Anthropic ネイティブ — API キー不要',
'settings.providers.openaiOfficialName': 'ChatGPT 公式',
'settings.providers.openaiOfficialDesc': 'ChatGPT アカウントによる OpenAI OAuth — API キー不要',
'settings.providers.connected': '接続済み ({latency}ms)',
'settings.providers.failed': '失敗: {error}',
'settings.providers.connectivityOk': '① 接続 ({latency}ms)',
'settings.providers.connectivityFailed': '① 接続に失敗しました: {error}',
'settings.providers.proxyOk': '② プロキシパイプライン ({latency}ms)',
'settings.providers.proxyFailed': '② プロキシ失敗: {error}',
'settings.providers.confirmDelete': 'プロバイダー「{name}」を削除しますか?この操作は取り消せません。',
'settings.providers.activate': '有効化',
'settings.providers.default': 'デフォルト',
'settings.providers.setDefault': 'デフォルトに設定',
'settings.providers.test': 'テスト',
'settings.providers.edit': '編集',
'settings.providers.dragToReorder': 'ドラッグして並べ替え',
'settings.providers.requestFailed': 'リクエストに失敗しました',
'settings.providers.addTitle': 'プロバイダーを追加',
'settings.providers.editTitle': 'プロバイダーを編集',
'settings.providers.preset': 'プリセット',
'settings.providers.name': '名前',
'settings.providers.namePlaceholder': 'プロバイダー名',
'settings.providers.notes': 'メモ',
'settings.providers.notesPlaceholder': '任意のメモ...',
'settings.providers.baseUrl': 'ベース URL',
'settings.providers.baseUrlPlaceholder': 'https://api.example.com/anthropic',
'settings.providers.apiKey': 'API キー',
'settings.providers.apiKeyKeep': 'API キー(空欄のままにすると現在の値を保持)',
'settings.providers.getApiKey': 'API キーを取得',
'settings.providers.modelMapping': 'モデルマッピング',
'settings.providers.mainModel': 'メインモデル',
'settings.providers.haikuModel': 'Haiku モデル',
'settings.providers.sonnetModel': 'Sonnet モデル',
'settings.providers.opusModel': 'Opus モデル',
'settings.providers.model1mSupportShort': '1M',
'settings.providers.modelIdPlaceholder': 'モデル ID',
'settings.providers.sameAsMain': 'メインと同じ',
'settings.providers.contextSettingsTitle': 'コンテキストと自動コンパクト',
'settings.providers.contextSettingsDesc': 'プリセットの上限は自動的に適用されます。プロバイダーが上限を変更した場合やカスタムモデル ID を使用する場合のみ編集してください。',
'settings.providers.contextSettingsEdit': '詳細設定',
'settings.providers.contextSettingsHide': '非表示',
'settings.providers.contextSummaryAuto': '設定済みモデルを自動検出します。不明なモデルは組み込みのフォールバックを使用します',
'settings.providers.contextFallbackAuto': '不明なモデル: 自動',
'settings.providers.contextFallbackSummary': '不明なモデル: {tokens}',
'settings.providers.modelContextWindows': 'モデルのコンテキストウィンドウ',
'settings.providers.mainContextWindow': 'メインモデルのコンテキスト',
'settings.providers.haikuContextWindow': 'Haiku モデルのコンテキスト',
'settings.providers.sonnetContextWindow': 'Sonnet モデルのコンテキスト',
'settings.providers.opusContextWindow': 'Opus モデルのコンテキスト',
'settings.providers.contextWindowPlaceholder': '例: 200000',
'settings.providers.modelContextWindowsDesc': '各モデルの実際のコンテキストウィンドウを使用します。プリセットは自動的に入力されます。空欄の場合は組み込み検出または 200K にフォールバックします。',
'settings.providers.modelContextWindowNumberError': '整数を入力してください。',
'settings.providers.modelContextWindowRangeError': '16000 から 10000000 の間で指定してください。',
'settings.providers.autoCompactWindow': '不明なモデルのフォールバックウィンドウ',
'settings.providers.autoCompactWindowPlaceholder': '任意、例: 200000',
'settings.providers.autoCompactWindowDesc': '識別できないモデルにのみ使用されます。設定済みモデルのウィンドウが優先されます。',
'settings.providers.autoCompactWindowNumberError': '整数を入力してください。',
'settings.providers.autoCompactWindowRangeError': '16000 から 10000000 の間で指定してください。',
'settings.providers.testConnection': '接続をテスト',
'settings.providers.settingsJson': '設定 JSON',
'settings.providers.settingsJsonDesc': '~/.claude/cc-haha/settings.json — 直接編集できます。保存時に書き込まれます。',
'settings.providers.jsonError': 'JSON 構文エラー: {error}',
'settings.providers.apiFormat': 'API 形式',
'settings.providers.apiFormatAnthropic': 'Anthropic Messagesネイティブ',
'settings.providers.apiFormatOpenaiChat': 'OpenAI Chat Completionsプロキシ',
'settings.providers.apiFormatOpenaiResponses': 'OpenAI Responses APIプロキシ',
'settings.providers.proxyHint': 'リクエストはローカルプロキシ経由で変換されます',
'settings.providers.authStrategy': '認証変数',
'settings.providers.authStrategyApiKey': 'API キー (ANTHROPIC_API_KEY)',
'settings.providers.authStrategyApiKeyDesc': 'x-api-key を使用した Anthropic API への直接アクセス。',
'settings.providers.authStrategyAuthToken': 'Bearer トークン (ANTHROPIC_AUTH_TOKEN)',
'settings.providers.authStrategyAuthTokenDesc': 'Authorization Bearer を使用する、ほとんどのサードパーティ製 Anthropic 互換サービス向け。',
'settings.providers.authStrategyAuthTokenEmptyApiKey': 'Bearer + 空の API_KEY',
'settings.providers.authStrategyAuthTokenEmptyApiKeyDesc': 'Anthropic API キーへのフォールバックを避ける必要がある OpenRouter / Ollama 形式の構成向け。',
'settings.providers.authStrategyDualSameToken': '両方の変数にトークンを書き込む',
'settings.providers.authStrategyDualSameTokenDesc': '両方の変数をチェックする Hugging Face Router などのサービス向け。',
'settings.providers.authStrategyDualDummy': '両方の変数にダミー値を書き込む',
'settings.providers.authStrategyDualDummyDesc': 'プレースホルダーの認証値のみが必要な、ローカルの vLLM 互換サービス向け。',
'settings.providers.toolSearchEnabled': 'Tool Search を有効にする',
'settings.providers.toolSearchDesc': 'MCP と遅延ツールを必要に応じて読み込み、初回のツール schema トークンを減らします。弱いモデルや tool_reference を拒否するプロバイダーでは無効にできます。',
'settings.providers.toolSearchUnsupported': 'ここでは Anthropic Messages 形式のプロバイダーのみ Tool Search をサポートします。OpenAI プロキシ形式では完全なツール schema を維持します。',
'settings.providers.disableExperimentalBetas': '実験的な Beta ヘッダーを無効化',
'settings.providers.disableExperimentalBetasDesc': 'このプロバイダーに CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定し、サードパーティゲートウェイが拒否する可能性のある beta API 形式を避けます。',
// Settings > Permissions
'settings.permissions.title': '権限モード',
'settings.permissions.description': 'ツール実行の権限の扱い方を制御します。',
'settings.permissions.default': '権限を確認',
'settings.permissions.defaultDesc': 'ツールを実行する前に確認します',
'settings.permissions.acceptEdits': '編集を承認',
'settings.permissions.acceptEditsDesc': 'ファイル編集は自動承認し、それ以外は確認します',
'settings.permissions.plan': 'プランモード',
'settings.permissions.planDesc': '実行せずに思考と計画を行います',
'settings.permissions.bypass': 'すべてバイパス',
'settings.permissions.bypassDesc': 'すべての権限チェックをスキップします(危険)',
// Settings > Adapters
'settings.tab.adapters': 'IM アダプター',
'settings.adapters.description': 'Telegram、WeChat、DingTalk、WhatsApp、Feishu 経由で Claude Code とチャットできるよう IM アダプターを設定します。詳しい設定手順は',
'settings.adapters.configurationDocs': 'ドキュメントリンク',
'settings.adapters.descriptionAfterDocs': 'を参照してください。',
'settings.adapters.telegram': 'Telegram',
'settings.adapters.feishu': 'Feishu',
'settings.adapters.wechat': 'WeChat',
'settings.adapters.dingtalk': 'DingTalk',
'settings.adapters.whatsapp': 'WhatsApp',
'settings.adapters.botToken': 'Bot トークン',
'settings.adapters.botTokenPlaceholder': '@BotFather から取得したトークンを貼り付け',
'settings.adapters.appId': 'App ID',
'settings.adapters.appIdPlaceholder': '例: cli_xxx',
'settings.adapters.appSecret': 'App Secret',
'settings.adapters.appSecretPlaceholder': 'Feishu 開放プラットフォームから取得',
'settings.adapters.feishuCreateBotTitle': 'Feishu ボットが必要ですか?',
'settings.adapters.feishuCreateBotDesc': '必要な権限が設定済みの Feishu ボットを、ドキュメント記載の OpenClaw テンプレートで作成します。その後、下に App ID と App Secret を貼り付けてください。',
'settings.adapters.feishuCreateBotAction': 'Feishu ボットを作成',
'settings.adapters.feishuCreateBotStepCreate': 'テンプレートからボットを作成します。',
'settings.adapters.feishuCreateBotStepFill': 'その App ID と App Secret をコピーして、ここに入力します。',
'settings.adapters.encryptKey': 'Encrypt Key',
'settings.adapters.encryptKeyPlaceholder': '任意',
'settings.adapters.verificationToken': 'Verification Token',
'settings.adapters.verificationTokenPlaceholder': '任意',
'settings.adapters.allowedUsers': '許可ユーザー',
'settings.adapters.allowedUsersHint': 'カンマ区切り。空欄の場合はペア済みユーザーのみ許可します。',
'settings.adapters.tgAllowedUsersPlaceholder': '例: 123456789, 987654321',
'settings.adapters.fsAllowedUsersPlaceholder': '例: ou_xxx, ou_yyy',
'settings.adapters.wcAllowedUsersPlaceholder': '例: wx_user_id_1, wx_user_id_2',
'settings.adapters.dtAllowedUsersPlaceholder': '例: manager001, staff_yyy',
'settings.adapters.waAllowedUsersPlaceholder': '例: 15551234567@s.whatsapp.net',
'settings.adapters.defaultProject': 'デフォルトプロジェクト',
'settings.adapters.defaultProjectHint': '新しい IM セッションのデフォルト作業ディレクトリ。空欄の場合、ボットは現在のユーザーの作業ディレクトリを使用します。',
'settings.adapters.streamingCard': 'ストリーミングカードモード',
'settings.adapters.streamingCardDesc': 'より快適な体験のためにカードをリアルタイムで更新します',
'settings.adapters.serverUrl': 'サーバー URL',
'settings.adapters.serverUrlPlaceholder': 'ws://127.0.0.1:3456',
'settings.adapters.save': '保存',
'settings.adapters.saved': '保存しました',
'settings.adapters.saving': '保存中...',
'settings.adapters.startHint': '保存後、アダプターを実行します: cd adapters && bun run {platform}',
'settings.adapters.pairing': 'ペアリング',
'settings.adapters.pairingDesc': 'ペアリングコードを生成し、IM の個別チャットでボットに送信して本人確認をひも付けます。',
'settings.adapters.generateCode': 'コードを生成',
'settings.adapters.regenerateCode': '再生成',
'settings.adapters.codeExpired': '期限切れ',
'settings.adapters.codeExpiresIn': '有効期限',
'settings.adapters.minutes': '分',
'settings.adapters.pairingCodeHint': 'このコードを DingTalk、Feishu、WeChat、WhatsApp、Telegram の個別チャットでボットに送信してください。WeChat と WhatsApp は先に QR コードでのひも付けが必要です。',
'settings.adapters.pairedUsers': 'ペア済みユーザー',
'settings.adapters.noPairedUsers': 'ペア済みユーザーはまだいません',
'settings.adapters.unbind': 'ひも付け解除',
'settings.adapters.unbindConfirm': 'このユーザーのひも付けを解除してもよろしいですか?ボットを使用するには再度ペアリングが必要になります。',
'settings.adapters.platform.telegram': 'Telegram',
'settings.adapters.platform.feishu': 'Feishu',
'settings.adapters.platform.wechat': 'WeChat',
'settings.adapters.platform.dingtalk': 'DingTalk',
'settings.adapters.platform.whatsapp': 'WhatsApp',
'settings.adapters.dingtalkQrTitle': 'QR コードで DingTalk ボットをひも付け',
'settings.adapters.dingtalkQrDesc': 'DingTalk モバイルアプリでスキャンしてボットを作成・承認します。成功すると Client ID / Secret が自動的に保存されます。',
'settings.adapters.dingtalkStartAuth': 'スキャンしてひも付け',
'settings.adapters.dingtalkUnbindBot': 'ボットアカウントのひも付けを解除',
'settings.adapters.dingtalkQrAlt': 'DingTalk 承認用 QR コード',
'settings.adapters.dingtalkWaiting': 'DingTalk のスキャン確認を待っています...',
'settings.adapters.dingtalkBound': 'DingTalk ボットがひも付けられました。',
'settings.adapters.dingtalkAuthFailed': 'DingTalk QR コードの承認に失敗しました。',
'settings.adapters.dingtalkAuthExpired': 'DingTalk QR コードの承認の有効期限が切れました。新しい QR コードを生成してください。',
'settings.adapters.dingtalkUnbindFailed': 'DingTalk のひも付け解除に失敗しました。',
'settings.adapters.dingtalkUnbindBotConfirm': 'この DingTalk ボットアカウントのひも付けを解除しますかDingTalk がメッセージを送受信できるようにするには、再度スキャンが必要になります。',
'settings.adapters.dingtalkClientId': 'Client ID',
'settings.adapters.dingtalkClientIdPlaceholder': 'QR 認証で自動入力、または手動で入力',
'settings.adapters.dingtalkClientSecret': 'Client Secret',
'settings.adapters.dingtalkClientSecretPlaceholder': 'QR 認証で自動入力、または手動で入力',
'settings.adapters.dingtalkEndpoint': 'Stream エンドポイント',
'settings.adapters.dingtalkEndpointPlaceholder': 'デフォルト https://api.dingtalk.com',
'settings.adapters.dingtalkPermissionCardTemplateId': '権限カードテンプレート ID',
'settings.adapters.dingtalkPermissionCardTemplateIdPlaceholder': '任意のインタラクティブカードテンプレート ID',
'settings.adapters.dingtalkPermissionCardTemplateIdHint': '設定すると、権限リクエストはまず DingTalk のインタラクティブカードを使用します。空欄の場合は /allow、/always、/deny のテキスト承認を使用します。',
'settings.adapters.wechatBind': 'スキャンしてひも付け',
'settings.adapters.wechatRebind': '再スキャン',
'settings.adapters.wechatConnected': 'WeChat はひも付け済みです',
'settings.adapters.wechatNotConnected': 'WeChat はひも付けされていません',
'settings.adapters.wechatQrHint': 'QR コードを生成し、WeChat でスキャンして確認します。ひも付け後にアダプターが再起動します。',
'settings.adapters.wechatQrAlt': 'WeChat ひも付け用 QR コード',
'settings.adapters.wechatWaiting': 'WeChat の確認を待っています...',
'settings.adapters.wechatBindSuccess': 'WeChat のひも付けに成功しました。',
'settings.adapters.wechatUnbindAccount': 'WeChat アカウントのひも付けを解除',
'settings.adapters.wechatUnbindAccountConfirm': 'この WeChat アカウントのひも付けを解除しますかWeChat がメッセージを送受信できるようにするには、再度スキャンが必要になります。',
'settings.adapters.wechatUnbound': 'WeChat アカウントのひも付けを解除しました。',
'settings.adapters.wechatUnbindFailed': 'WeChat のひも付け解除に失敗しました。',
'settings.adapters.wechatAllowedUsersHint': 'QR コードのひも付けはアカウントを有効化するだけです。ユーザーは引き続きペアリングコードを送信する必要があります。または、ここに許可する WeChat ユーザー ID を追加できます。',
'settings.adapters.whatsappBind': 'スキャンしてひも付け',
'settings.adapters.whatsappRebind': '再スキャン',
'settings.adapters.whatsappConnected': 'WhatsApp はひも付け済みです',
'settings.adapters.whatsappNotConnected': 'WhatsApp はひも付けされていません',
'settings.adapters.whatsappQrHint': 'QR コードを生成し、WhatsApp の「リンク済みデバイス」からスキャンして確認します。ひも付け後にアダプターが再起動します。',
'settings.adapters.whatsappQrAlt': 'WhatsApp ひも付け用 QR コード',
'settings.adapters.whatsappWaiting': 'WhatsApp のスキャン確認を待っています...',
'settings.adapters.whatsappBindSuccess': 'WhatsApp のひも付けに成功しました。',
'settings.adapters.whatsappBindFailed': 'WhatsApp のひも付けに失敗しました。',
'settings.adapters.whatsappUnbindAccount': 'WhatsApp アカウントのひも付けを解除',
'settings.adapters.whatsappUnbindAccountConfirm': 'この WhatsApp アカウントのひも付けを解除しますかWhatsApp がメッセージを送受信できるようにするには、再度スキャンが必要になります。',
'settings.adapters.whatsappUnbound': 'WhatsApp アカウントのひも付けを解除しました。',
'settings.adapters.whatsappUnbindFailed': 'WhatsApp のひも付け解除に失敗しました。',
'settings.adapters.whatsappAllowedUsersHint': 'QR コードのひも付けは WhatsApp Web アカウントを有効化するだけです。ユーザーは引き続きペアリングコードを送信する必要があります。または、ここに許可する WhatsApp JID を追加できます。',
// Settings > MCP
'settings.mcp.title': 'MCP サーバー',
'settings.mcp.description': 'Claude Code 用に外部ツールやデータソースを接続します。Local、Project、User の各スコープは CLI と同じ動作に従います。',
'settings.mcp.addServer': 'サーバーを追加',
'settings.mcp.empty': 'MCP サーバーはまだ設定されていません',
'settings.mcp.emptyHint': 'カスタムの stdio、HTTP、または SSE の MCP サーバーを追加して、ツールアクセスの拡張を始めましょう。',
'settings.mcp.stats.total': 'サーバー総数',
'settings.mcp.stats.connected': '現在接続中',
'settings.mcp.stats.attention': '要対応',
'settings.mcp.scope.project': 'プロジェクト',
'settings.mcp.scope.local': 'ローカル',
'settings.mcp.scope.user': 'ユーザー',
'settings.mcp.scope.plugin': 'プラグイン',
'settings.mcp.scopeDesc.local': '1 つのプロジェクト内で自分専用です。ユーザー設定に保存され、選択したプロジェクトにスコープが限定されます。',
'settings.mcp.scopeDesc.project': '選択したプロジェクトの `.mcp.json` を通じてチームと共有されます。',
'settings.mcp.scopeDesc.user': 'ユーザーアカウントのすべてのプロジェクトで利用できます。',
'settings.mcp.scope.dynamic': '組み込み',
'settings.mcp.scope.enterprise': 'エンタープライズ',
'settings.mcp.scope.claudeai': 'Claude.ai',
'settings.mcp.scope.managed': '管理対象',
'settings.mcp.transport.http': 'Streamable HTTP',
'settings.mcp.globalOnlyHint': '1 つのプロジェクト用には Local、`.mcp.json` 用には Project、すべてのプロジェクト用には User を選択してください。',
'settings.mcp.currentProjectHint': '選択中のプロジェクト: {path}',
'settings.mcp.form.back': 'サーバー一覧に戻る',
'settings.mcp.form.createTitle': 'カスタム MCP に接続',
'settings.mcp.form.createHint': '現在 Claude Code がサポートするフィールドでカスタム MCP サーバーをセットアップします。',
'settings.mcp.form.editTitle': '{name} MCP を設定',
'settings.mcp.form.editHint': '接続の詳細を確認し、変更を保存するか、このサーバーをデスクトップアプリから再接続します。',
'settings.mcp.form.transportLocked': 'MCP サーバーの種類を切り替えるには、まずアンインストールしてください。',
'settings.mcp.form.uninstall': 'アンインストール',
'settings.mcp.form.reconnect': '再接続',
'settings.mcp.form.save': '保存',
'settings.mcp.form.name': '名前',
'settings.mcp.form.namePlaceholder': 'MCP サーバー名',
'settings.mcp.form.scope': '設定スコープ',
'settings.mcp.form.transport': 'トランスポート',
'settings.mcp.form.status': 'ステータス',
'settings.mcp.form.location': '設定の場所',
'settings.mcp.form.rawConfig': '生の設定',
'settings.mcp.form.command': '起動コマンド',
'settings.mcp.form.commandPlaceholder': 'npx',
'settings.mcp.form.commandHostHint': 'STDIO の MCP コマンドはホストマシン上で実行されます。Node.js、Python、Bun、uv などのランタイムはご自身でインストールし、コマンドが PATH 上で利用できることを確認してください。',
'settings.mcp.form.arguments': '引数',
'settings.mcp.form.argumentPlaceholder': 'chrome-devtools-mcp@latest',
'settings.mcp.form.addArgument': '引数を追加',
'settings.mcp.form.environmentVariables': '環境変数',
'settings.mcp.form.addEnv': '環境変数を追加',
'settings.mcp.form.keyPlaceholder': 'キー',
'settings.mcp.form.valuePlaceholder': '値',
'settings.mcp.form.url': 'URL',
'settings.mcp.form.sseUrl': 'SSE URL',
'settings.mcp.form.urlPlaceholder': 'https://mcp.example.com/mcp',
'settings.mcp.form.headers': 'ヘッダー',
'settings.mcp.form.addHeader': 'ヘッダーを追加',
'settings.mcp.form.oauthClientId': 'OAuth クライアント ID',
'settings.mcp.form.oauthClientIdPlaceholder': '任意のクライアント ID',
'settings.mcp.form.oauthCallbackPort': 'OAuth コールバックポート',
'settings.mcp.form.oauthCallbackPortPlaceholder': '任意の固定コールバックポート',
'settings.mcp.form.headersHelper': 'ヘッダーヘルパースクリプト',
'settings.mcp.form.headersHelperPlaceholder': '任意のヘルパーコマンドのパス',
'settings.mcp.form.deleteTitle': 'MCP サーバーを削除',
'settings.mcp.form.cancel': 'キャンセル',
'settings.mcp.form.confirmDelete': '削除',
'settings.mcp.form.deleteConfirm': 'MCP サーバー「{name}」を削除しますか?この操作は取り消せません。',
'settings.mcp.form.deleteConfirmBody': 'MCP サーバー「{name}」を削除しますか?この操作は取り消せません。',
'settings.mcp.targetProject.title': '対象プロジェクト',
'settings.mcp.targetProject.selected': '現在、次のプロジェクトのローカルおよび共有 MCP サーバーを表示しています: {path}',
'settings.mcp.targetProject.empty': 'プロジェクト専用または共有の MCP サーバーを確認するプロジェクトを選択してください。',
'settings.mcp.targetProject.emptyWithCurrent': '対象プロジェクトを選択してください。現在アクティブなセッション: {path}',
'settings.mcp.targetProject.localSelected': 'このサーバーは次の中で自分専用になります: {path}',
'settings.mcp.targetProject.localEmpty': 'このプライベート MCP サーバーを受け取るプロジェクトを選択してください。',
'settings.mcp.targetProject.projectSelected': 'このサーバーは次を通じて共有されます: {path}/.mcp.json',
'settings.mcp.targetProject.projectEmpty': 'この共有 MCP サーバーを `.mcp.json` で受け取るプロジェクトを選択してください。',
'settings.mcp.targetProject.globalTitle': 'グローバルインストール対象',
'settings.mcp.targetProject.globalHint': 'User スコープは対象プロジェクトを必要としません。グローバルの Claude 設定に保存され、どこからでも利用できます。',
'settings.mcp.toast.created': 'MCP サーバー「{name}」を作成しました',
'settings.mcp.toast.saved': 'MCP サーバー「{name}」を保存しました',
'settings.mcp.toast.deleted': 'MCP サーバー「{name}」を削除しました',
'settings.mcp.toast.enabled': 'MCP サーバー「{name}」を有効化しました',
'settings.mcp.toast.disabled': 'MCP サーバー「{name}」を無効化しました',
'settings.mcp.toast.reconnected': 'MCP サーバー「{name}」を再接続しました',
'settings.mcp.toast.saveFailed': 'MCP サーバーの保存に失敗しました',
'settings.mcp.toast.deleteFailed': 'MCP サーバーの削除に失敗しました',
'settings.mcp.toast.toggleFailed': 'MCP サーバーの状態の更新に失敗しました',
'settings.mcp.toast.reconnectFailed': 'MCP サーバーの再接続に失敗しました',
// Settings > Agents
'settings.tab.agents': 'エージェント',
'settings.agents.title': 'インストール済みエージェント',
'settings.agents.description': '組み込み、プロジェクト、ユーザーの各ソースにわたって Claude が利用できるエージェントを閲覧します。TUI で /agents を使うと、アクティブなソースとオーバーライドを確認できます。',
'settings.agents.browserTitle': 'インストール済みエージェントを閲覧',
'settings.agents.browserEyebrow': 'エージェントブラウザ',
'settings.agents.entryEyebrow': 'エージェントプロフィール',
'settings.agents.empty': '利用できるエージェントはまだありません。',
'settings.agents.emptyHint': 'Claude の設定またはプロジェクトにエージェント定義を追加すると、ここに表示されます。',
'settings.agents.model': 'モデル',
'settings.agents.tools': 'ツール',
'settings.agents.systemPrompt': 'システムプロンプト',
'settings.agents.noDescription': '説明なし',
'settings.agents.noSystemPrompt': 'システムプロンプトは定義されていません。',
'settings.agents.backToList': '一覧に戻る',
'settings.agents.agentCount': '{count} エージェント',
'settings.agents.summary.totalAgents': 'エージェント総数',
'settings.agents.summary.activeAgents': 'アクティブなエージェント',
'settings.agents.summary.sources': 'ソース',
'settings.agents.summary.source': 'ソース',
'settings.agents.summary.model': 'モデル',
'settings.agents.summary.tools': 'ツール',
'settings.agents.summary.status': 'ステータス',
'settings.agents.groupHint': '{source} から利用できるエージェント: {count}',
'settings.agents.status.active': 'アクティブ',
'settings.agents.status.available': '利用可能',
'settings.agents.overriddenBy': '{source} によって上書き',
'settings.agents.overriddenByShort': '{source} により隠蔽',
'settings.agents.toolCount': '{count} ツール',
'settings.agents.noTools': 'ツール制限なし',
'settings.agents.promptHint': '現在のシステムプロンプトを読み、このエージェントのスコープを比較します。',
'settings.agents.source.userSettings': 'ユーザー',
'settings.agents.source.projectSettings': 'プロジェクト',
'settings.agents.source.localSettings': 'ローカル',
'settings.agents.source.policySettings': '管理対象',
'settings.agents.source.plugin': 'プラグイン',
'settings.agents.source.flagSettings': 'CLI 引数',
'settings.agents.source.built-in': '組み込み',
// Settings > Skills
'settings.skills.title': 'インストール済みスキル',
'settings.skills.description': 'スキルは Claude に専門的な機能を追加します。スキルは ~/.claude/skills/ で管理します',
'settings.skills.browserTitle': 'インストール済みスキルを閲覧',
'settings.skills.browserEyebrow': 'スキルブラウザ',
'settings.skills.browserDescription': 'バンドル、プロジェクト、ユーザーのスキルを確認し、スコープを比較し、各スキルフォルダを開いてドキュメントやソースファイルを読みます。',
'settings.skills.searchLabel': 'スキルを検索',
'settings.skills.searchPlaceholder': '名前、説明、ソースでスキルを検索...',
'settings.skills.searchResultCount': '{total} 件中 {count} 件のスキルが一致',
'settings.skills.clearSearch': 'スキル検索をクリア',
'settings.skills.noSearchResults': '一致するスキルがありません',
'settings.skills.noSearchResultsHint': '別のキーワードを試すか、検索をクリアしてすべてのスキルを表示してください。',
'settings.skills.entryEyebrow': 'スキルエントリ',
'settings.skills.slashCommand': '/slash',
'settings.skills.tokenEstimate': '約 {count} トークン',
'settings.skills.tokenEstimateShort': '約 {count}',
'settings.skills.summary.totalSkills': 'スキル総数',
'settings.skills.summary.totalFiles': 'ファイル',
'settings.skills.summary.sources': 'ソース',
'settings.skills.summary.tokens': '推定トークン数',
'settings.skills.summary.source': 'ソース',
'settings.skills.summary.entry': 'エントリ',
'settings.skills.groupHint': '{source} から利用できるスキル: {count}',
'settings.skills.ready': '準備完了',
'settings.skills.unavailable': '利用不可',
'settings.skills.empty': 'スキルがインストールされていません',
'settings.skills.emptyHint': '~/.claude/skills/ にスキルを追加して始めましょう',
'settings.skills.back': '一覧に戻る',
'settings.skills.files': 'ファイル',
'settings.skills.entryFile': 'エントリファイル',
'settings.skills.metaTitle': 'スキルのメタデータ',
'settings.skills.filesPanel': 'ファイル',
'settings.skills.filesPanelHint': 'エントリファイルと補助的な実装ファイルを閲覧します。',
'settings.skills.readingMode': '{mode} で表示中',
'settings.skills.docMode': 'ドキュメントモード',
'settings.skills.codeMode': 'コードモード',
'settings.skills.source.user': 'ユーザー',
'settings.skills.source.project': 'プロジェクト',
'settings.skills.source.plugin': 'プラグイン',
'settings.skills.source.mcp': 'MCP',
'settings.skills.source.bundled': '組み込み',
// Settings > Memory
'settings.tab.memory': 'メモリ',
'settings.memory.title': 'プロジェクトメモリ',
'settings.memory.description': 'Claude が各プロジェクト向けに書き込む Markdown メモリファイルを確認・編集します。これらのファイルは ~/.claude/projects/<project>/memory/ の下に保存され、CLI ランタイムによって読み込まれます。',
'settings.memory.refresh': '更新',
'settings.memory.projects': 'プロジェクト',
'settings.memory.files': 'メモリファイル',
'settings.memory.resourceManager': 'リソースマネージャー',
'settings.memory.editor': 'エディター',
'settings.memory.edit': '編集',
'settings.memory.preview': 'プレビュー',
'settings.memory.rendered': 'レンダリング後',
'settings.memory.emptyProjects': 'メモリのあるプロジェクトが見つかりません。',
'settings.memory.emptyFiles': 'メモリファイルはまだ見つかりません。',
'settings.memory.selectFile': 'メモリファイルを選択してください。',
'settings.memory.selectProject': 'プロジェクトを選択してください。',
'settings.memory.noFileSelected': 'ファイルが選択されていません',
'settings.memory.current': '現在',
'settings.memory.indexFile': 'インデックス',
'settings.memory.missing': '見つかりません',
'settings.memory.fileCount': '{count} ファイル',
'settings.memory.unsaved': '未保存',
'settings.memory.saved': '保存済み',
'settings.memory.revert': '元に戻す',
'settings.memory.discardUnsavedConfirm': '未保存のメモリ変更を破棄しますか?',
'settings.memory.projectSearchPlaceholder': 'パスでプロジェクトを検索...',
'settings.memory.fileSearchPlaceholder': 'メモリファイルを検索...',
'settings.memory.resourceSearchPlaceholder': 'プロジェクトまたはメモリファイルを検索...',
'settings.memory.noProjectMatches': 'この検索に一致するプロジェクトはありません。',
'settings.memory.noFileMatches': 'この検索に一致するメモリファイルはありません。',
'settings.memory.clearSearch': '検索をクリア',
'settings.memory.toggleFolder': '{name} を切り替え',
// Settings > Plugins
'settings.plugins.title': 'インストール済みプラグイン',
'settings.plugins.description': 'インストール済みプラグインを確認し、状態を把握し、デスクトップランタイムに変更を適用します。',
'settings.plugins.browserTitle': 'インストール済みプラグインを閲覧',
'settings.plugins.browserEyebrow': 'プラグインマネージャー',
'settings.plugins.browserDescription': 'プラグインはスキル、エージェント、フック、MCP サーバー、言語ツールをまとめたものです。このビューでは、インストール済みプラグイン、状態、ランタイムへの適用フィードバックにデスクトップ画面を集中させます。',
'settings.plugins.entryEyebrow': 'プラグインの詳細',
'settings.plugins.summary.total': 'プラグイン総数',
'settings.plugins.summary.enabled': '有効',
'settings.plugins.summary.attention': '要対応',
'settings.plugins.summary.marketplaces': 'マーケットプレイス',
'settings.plugins.summary.skills': 'スキル',
'settings.plugins.summary.agents': 'エージェント',
'settings.plugins.summary.mcp': 'MCP',
'settings.plugins.summary.hooks': 'フック',
'settings.plugins.group.attention': '要対応',
'settings.plugins.group.enabled': '有効',
'settings.plugins.group.disabled': '無効',
'settings.plugins.groupHint': 'このセクションには {count} 個のプラグインがあります',
'settings.plugins.refresh': '更新',
'settings.plugins.apply': '変更を適用',
'settings.plugins.applyHint': '有効化、無効化、更新の変更は、現在のデスクトップランタイムに適用した後で有効になります。',
'settings.plugins.lastReload': '前回の適用: アクティブなプラグイン {enabled} 個、プラグインスキル {skills} 個、エラー {errors} 件。',
'settings.plugins.reloadToast': 'プラグインの変更を適用しました: アクティブなプラグイン {enabled} 個、スキル {skills} 個、エラー {errors} 件。',
'settings.plugins.marketplacesTitle': '既知のマーケットプレイス',
'settings.plugins.marketplacesHint': 'このマシンに既に設定済みのマーケットプレイスソースの読み取り専用の概要です。',
'settings.plugins.marketplaceAutoUpdateOn': '自動更新オン',
'settings.plugins.marketplaceAutoUpdateOff': '自動更新オフ',
'settings.plugins.marketplaceInstalledCount': '{count} 個インストール済み',
'settings.plugins.marketplaceUpdatedAt': '更新日時 {value}',
'settings.plugins.status.enabled': '有効',
'settings.plugins.status.disabled': '無効',
'settings.plugins.status.attention': '要対応',
'settings.plugins.scope.user': 'ユーザー',
'settings.plugins.scope.project': 'プロジェクト',
'settings.plugins.scope.local': 'ローカル',
'settings.plugins.scope.managed': '管理対象',
'settings.plugins.scope.builtin': '組み込み',
'settings.plugins.empty': 'プラグインがインストールされていません',
'settings.plugins.emptyHint': 'Claude Code からプラグインをインストールすると、ここで管理できます。',
'settings.plugins.back': '一覧に戻る',
'settings.plugins.noDescription': 'このプラグインの説明はありません。',
'settings.plugins.errorCount': '{count} 件のエラー',
'settings.plugins.enable': '有効化',
'settings.plugins.disable': '無効化',
'settings.plugins.update': '更新',
'settings.plugins.uninstall': 'アンインストール',
'settings.plugins.confirmUninstall': 'プラグイン「{name}」をアンインストールしますか?選択したスコープのインストール済みコピーが削除されます。',
'settings.plugins.selectionCount': '{count} 件選択中',
'settings.plugins.clearSelection': 'クリア',
'settings.plugins.enableSelected': '選択を有効化',
'settings.plugins.disableSelected': '選択を無効化',
'settings.plugins.selectPlugin': '{name} を選択',
'settings.plugins.bulkEnableTitle': '選択した {count} 件のプラグインを有効化しますか?',
'settings.plugins.bulkDisableTitle': '選択した {count} 件のプラグインを無効化しますか?',
'settings.plugins.bulkEnableBody': '{names} を有効化し、プラグイン変更を現在のデスクトップランタイムに適用します。',
'settings.plugins.bulkDisableBody': '{names} を無効化し、プラグイン変更を現在のデスクトップランタイムに適用します。',
'settings.plugins.bulkEnableToast': '{count} 件のプラグインを有効化し、変更を適用しました。',
'settings.plugins.bulkDisableToast': '{count} 件のプラグインを無効化し、変更を適用しました。',
'settings.plugins.author': '作者: {value}',
'settings.plugins.projectPath': 'プロジェクト: {value}',
'settings.plugins.installPath': 'インストール先: {value}',
'settings.plugins.managedHint': 'このプラグインはポリシーによって管理されており、デスクトップアプリから変更できません。',
'settings.plugins.builtinHint': '組み込みプラグインはここで再読み込みできますが、インストールやアンインストールの操作は表示されません。',
'settings.plugins.errorsTitle': 'プラグインのエラー',
'settings.plugins.capabilitiesTitle': 'バンドルされた機能',
'settings.plugins.capabilitiesHint': 'このプラグインがマニフェストとランタイム統合を読み込んだ後に公開する機能です。',
'settings.plugins.sharedNavigationDisabled': '共有管理ページでこのプラグインのスキル、エージェント、MCP エントリを開く前に、プラグインを有効化して変更を適用してください。',
'settings.plugins.capabilityEmpty': '公開なし',
'settings.plugins.capability.skills': '{count} スキル',
'settings.plugins.capability.agents': '{count} エージェント',
'settings.plugins.capability.mcpServers': '{count} MCP サーバー',
'settings.plugins.capabilityLabel.skills': 'スキル',
'settings.plugins.capabilityLabel.commands': 'コマンド',
'settings.plugins.capabilityLabel.agents': 'エージェント',
'settings.plugins.capabilityLabel.hooks': 'フック',
'settings.plugins.capabilityLabel.mcpServers': 'MCP サーバー',
'settings.plugins.capabilityLabel.lspServers': 'LSP サーバー',
// Settings > About
'settings.tab.about': '情報',
'settings.about.version': 'バージョン',
'settings.about.changelog': 'リリースノート',
'settings.about.repo': 'GitHub リポジトリ',
'settings.about.starHint': 'このプロジェクトが役立った場合は、Star を付けることをご検討ください',
'settings.about.feedback': '問題を報告',
'settings.about.feedbackDesc': 'バグや使い方の質問について GitHub Issue を作成します',
'settings.about.author': '作者',
'settings.about.socialMedia': 'ソーシャルメディア',
'settings.about.updates': 'アプリの更新',
'settings.about.updatesDesc': 'GitHub Releases を確認し、インストーラーをダウンロードして、インストール後に再起動します。',
// Settings > Computer Use
'settings.tab.computerUse': 'コンピューター操作',
'settings.computerUse.title': 'コンピューター操作',
'settings.computerUse.description': 'Claude がスクリーンショットを撮影し、クリック、入力を行い、コンピューターを操作できるようにします。Python 3 が必要です。macOS ではアクセシビリティ権限も必要です。',
'settings.computerUse.enabledToggle': '有効',
'settings.computerUse.disabledHint': 'コンピューター操作はオフです。新しいセッションでは、computer-use MCP サーバーを注入したり、デスクトップ操作ツールをコーディングエージェントに公開したりしません。',
'settings.computerUse.notSupported': 'コンピューター操作は macOS と Windows でのみサポートされます。',
'settings.computerUse.python': 'Python 3',
'settings.computerUse.pythonNotFound': 'インストールされていません。まず Python 3 をインストールしてください。',
'settings.computerUse.pythonFound': 'インストール済み',
'settings.computerUse.pythonCustomInvalid': 'カスタムインタープリターが利用できません',
'settings.computerUse.pythonPathLabel': 'Python インタープリターのパス',
'settings.computerUse.pythonPathPlaceholder': '自動検出、または python.exe / python3 を選択',
'settings.computerUse.pythonPathHint': '空欄のままにすると自動検出します。ランタイムのセットアップで優先したい場合は、conda、pyenv、その他のカスタム環境の Python 実行ファイルを選択してください。',
'settings.computerUse.pythonPathBrowse': '参照',
'settings.computerUse.pythonPathSave': '適用',
'settings.computerUse.pythonPathAuto': '自動',
'settings.computerUse.pythonPathSaved': '保存しました。再チェック時はこのインタープリターを優先します。',
'settings.computerUse.pythonPathSaveFailed': '保存に失敗しました。もう一度お試しください。',
'settings.computerUse.pythonPathDialogTitle': 'Python インタープリターを選択',
'settings.computerUse.pythonPathDialogFailed': 'ファイルピッカーを開けませんでした。パスを手動で貼り付けてください。',
'settings.computerUse.venv': '仮想環境',
'settings.computerUse.venvReady': '準備完了',
'settings.computerUse.venvNotReady': '未作成',
'settings.computerUse.deps': '依存関係',
'settings.computerUse.depsReady': 'インストール済み',
'settings.computerUse.depsNotReady': '未インストール',
'settings.computerUse.accessibility': 'アクセシビリティ権限',
'settings.computerUse.screenRecording': '画面収録権限',
'settings.computerUse.permGranted': '許可済み',
'settings.computerUse.permDenied': '拒否 — システム設定 > プライバシーとセキュリティ を開いて許可してください',
'settings.computerUse.permUnknown': '確認するにはまず環境をセットアップしてください',
'settings.computerUse.permScreenRecordingUnknownSoft': 'ここでは自動検出が不安定な場合があります。システム設定で既に有効と表示されていれば、通常はコンピューター操作を続行できます',
'settings.computerUse.permScreenRecordingManual': '自動検出できません — システム設定で確認してください',
'settings.computerUse.setupBtn': '環境をインストール',
'settings.computerUse.setupRunning': 'インストール中...',
'settings.computerUse.setupSuccess': '環境のセットアップが完了しました!',
'settings.computerUse.setupFail': 'セットアップに失敗しました',
'settings.computerUse.allReady': 'すべてのチェックに合格しました。コンピューター操作の準備が整いました。',
'settings.computerUse.downloadPython': 'Python 3 をダウンロード',
'settings.computerUse.recheckBtn': 'ステータスを再チェック',
'settings.computerUse.requirementsLabel': '必要なパッケージ',
'settings.computerUse.appsTitle': '承認済みアプリ',
'settings.computerUse.appsDescription': 'コンピューター操作用にアプリを事前承認します。承認済みアプリは、実行時の確認なしに Claude が操作できます。',
'settings.computerUse.appsLoading': 'インストール済みアプリを読み込み中...',
'settings.computerUse.appsEmpty': 'インストール済みアプリが見つかりません。まず環境をセットアップしてください。',
'settings.computerUse.appsSearch': 'アプリを検索...',
'settings.computerUse.appsSaved': '保存しました',
'settings.computerUse.openAccessibility': 'アクセシビリティ設定を開く',
'settings.computerUse.openScreenRecording': '画面収録設定を開く',
'settings.computerUse.permRestartHint': '許可後、有効にするためにアプリを再起動してください。',
'settings.computerUse.flagClipboard': 'クリップボードアクセス',
'settings.computerUse.flagSystemKeys': 'システムキーの組み合わせ',
// Settings > General - Storage
'settings.general.modeSwitchTitle': 'データ保存場所を切り替えますか?',
'settings.general.modeSwitchConfirm': '保存して再起動',
'settings.general.storageTitle': 'データ保存場所',
'settings.general.storageDescription': '高度で使用頻度の低い設定です。切り替え後は、セッション、スキル、MCP、プラグイン、プロバイダー設定、タスク、キャッシュが新しいディレクトリから読み込まれます。',
'settings.general.storageSystemTitle': 'システムディレクトリを使用',
'settings.general.storageSystemDescription': 'デフォルトのデータソースに戻します。起動環境で CLAUDE_CONFIG_DIR が設定されている場合は、その環境変数が引き続き優先されます。',
'settings.general.storagePortableTitle': 'ポータブルディレクトリを使用',
'settings.general.storagePortableDescription': '選択したフォルダにデスクトップのデータを保存します。外付けドライブや、一緒に移動したいアプリバンドルに使用してください。',
'settings.general.storagePortableDirLabel': 'ポータブルデータディレクトリ',
'settings.general.storagePortableDirPlaceholder': 'cc-haha データ用のフォルダを選択',
'settings.general.storageChooseDir': 'フォルダを選択',
'settings.general.storageChooseDirTitle': 'ポータブルデータディレクトリを選択',
'settings.general.storageUseDefaultPortableDir': 'アプリの隣にあるデフォルトのポータブルフォルダを使用',
'settings.general.storageApplyPortable': 'このフォルダを使用して再起動',
'settings.general.storageActiveDir': '現在アクティブなデータディレクトリ',
'settings.general.storageEnvironmentHint': '現在のディレクトリは CLAUDE_CONFIG_DIR 環境変数によって制御されています。アプリ内での切り替えではこれを上書きできません。システムディレクトリに戻すには、起動環境から CLAUDE_CONFIG_DIR を削除してください。',
'settings.general.storageEnvironmentSwitchBlocked': '現在 CLAUDE_CONFIG_DIR がデータディレクトリを制御しています。システムディレクトリに戻す前に、起動環境からこれを削除してください。',
'settings.general.storageRestartHint': '保存場所の変更を保存しました。新しいデータディレクトリを有効にするには、アプリを再起動してください。',
'settings.general.storageMoveHint': 'ディレクトリを切り替えても既存のデータは移行されません。以前のセッションを引き続き表示したい場合は、古いディレクトリから projects、skills、plugins、cc-haha および関連フォルダをコピーしてください。ポータブルバンドルにする場合は、このフォルダをアプリの隣に置いて一緒に zip 化してください。',
'settings.general.storageNoDirError': 'まずポータブルデータディレクトリを選択または入力してください。',
'settings.general.storagePickerError': 'フォルダピッカーを開けませんでした。フォルダのパスを手動で貼り付けてください。',
'settings.general.storageRestartError': '変更は保存されましたが、自動再起動に失敗しました。アプリを手動で再起動してください。',
'settings.general.storageSwitchPortableBody': '切り替え後、デスクトップアプリはこのディレクトリでセッション、設定、スキル、MCP、プラグイン、タスク、キャッシュを読み書きします。',
'settings.general.storageSwitchDefaultBody': '元に戻すと、デスクトップアプリは再びシステムのデータソースを使用します。ポータブルディレクトリ内のデータは自動的に削除されたり戻されたりすることはありません。',
'settings.general.storageSwitchRestartBody': 'アプリはローカルサーバーとアダプタープロセスを停止してから再起動します。新しいディレクトリは再起動後に有効になります。',
// Settings > General
'settings.general.appearanceTitle': '外観',
'settings.general.appearanceDescription': '暖かみのあるクラシックワークスペース、ダークワークスペース、純白ワークスペースを切り替えます。',
'settings.general.appearance.light': '暖色クラシック',
'settings.general.appearance.dark': 'ダーク',
'settings.general.appearance.white': '純白',
'settings.general.languageTitle': '言語',
'settings.general.languageDescription': 'アプリケーションの表示言語を選択します。',
'settings.general.responseLangTitle': '応答言語',
'settings.general.responseLangDescription': 'Claude が常に特定の言語で応答するよう指示します。',
'settings.general.responseLangDefault': 'デフォルト(英語)',
'settings.general.outputStyleTitle': '出力スタイル',
'settings.general.outputStyleDescription': '新しいセッションまたは再起動後のセッションで Claude がどのように応答するかを選択します。',
'settings.general.outputStyleBuiltin.default.label': 'デフォルト',
'settings.general.outputStyleBuiltin.default.description': 'Claude はコーディングタスクを効率よく完了し、簡潔に応答します',
'settings.general.outputStyleBuiltin.explanatory.label': '解説型',
'settings.general.outputStyleBuiltin.explanatory.description': 'Claude は実装上の判断とコードベースのパターンを説明します',
'settings.general.outputStyleBuiltin.learning.label': '学習型',
'settings.general.outputStyleBuiltin.learning.description': 'Claude は一時停止し、実践練習として短いコードの記述を依頼します',
'settings.general.outputStyleSelectLabel': '出力スタイルを選択',
'settings.general.outputStyleLoading': '出力スタイルを読み込み中...',
'settings.general.outputStyleSaved': '出力スタイルを保存しました。',
'settings.general.outputStyleRestartHint': '実行中のセッションは現在のプロンプトを使い続けます。新しいセッションを開始するか、新しいプロセスで続行するか、セッションを再起動すると適用されます。',
'settings.general.outputStyleScopeLocal': '現在のプロジェクト',
'settings.general.outputStyleScopeUser': 'ユーザー設定',
'settings.general.outputStyleScopeLocalHint': 'アクティブなプロジェクトの .claude/settings.local.json に保存されます。',
'settings.general.outputStyleScopeUserHint': 'アクティブなプロジェクトが選択されていないため、ユーザー設定に保存されます。',
'settings.general.outputStyleSourceBuiltIn': '組み込み',
'settings.general.outputStyleSourceUser': 'ユーザースタイル',
'settings.general.outputStyleSourceProject': 'プロジェクトスタイル',
'settings.general.outputStyleSourceLocal': 'ローカルプロジェクトスタイル',
'settings.general.outputStyleSourcePolicy': '管理スタイル',
'settings.general.outputStyleSourcePlugin': 'プラグインスタイル',
'settings.general.defaultPermissionTitle': 'デフォルトのセッション権限',
'settings.general.defaultPermissionDescription': 'デスクトップで新しいチャットセッションを開始するときに適用する権限モードを選択します。',
'settings.general.defaultPermissionLabel': '新しいセッションの権限モード',
'settings.general.defaultPermissionHint': '各セッション内では、チャットの権限セレクターから個別に変更できます。',
'settings.general.defaultPermissionScope': '各新規セッションのワークスペース',
'settings.general.effortTitle': '労力レベル',
'settings.general.effortDescription': 'モデルが使用する計算量を制御します。',
'settings.general.effort.low': '低',
'settings.general.effort.medium': '中',
'settings.general.effort.high': '高',
'settings.general.effort.max': '最大',
'settings.general.thinkingTitle': '思考モード',
'settings.general.thinkingDescription': '新しいセッションをモデルの思考を有効にして開始するかどうかを制御します。オフの場合、DeepSeek などの対応プロバイダーには明示的に非思考パラメーターが渡されます。',
'settings.general.thinkingEnabled': '思考モードを有効にする',
'settings.general.thinkingHint': '新しいセッションを --thinking 無効で開始するにはこれをオフにします。DeepSeek V4 Flash/Pro やその他の非思考ワークフローに便利です。',
'settings.general.autoDreamTitle': 'Auto-dream',
'settings.general.autoDreamDescription': '十分なセッションが変更された後、バックグラウンドで auto-memory を定期的に統合します。',
'settings.general.autoDreamEnabled': 'Auto-dream を有効にする',
'settings.general.autoDreamHintOn': '対象セッションの終了後、デスクトップアプリがバックグラウンドで記憶を整理できます。',
'settings.general.autoDreamHintOff': 'バックグラウンドのモデル呼び出しが発生する可能性があるため、既定ではオフです。',
'settings.general.autoDreamConfirmTitle': 'Auto-dream を有効にしますか?',
'settings.general.autoDreamConfirmKeepRunning': '対象セッションの終了後にバックグラウンドの記憶整理を開始できるよう、デスクトップアプリを起動したままにしてください。',
'settings.general.autoDreamConfirmTokenCost': 'Auto-dream は記憶ファイルの確認と書き換え時に追加のモデル Token を使用します。',
'settings.general.autoDreamConfirmEnable': 'Auto-dream を有効にする',
'settings.general.notificationsTitle': 'システム通知',
'settings.general.notificationsDescription': '権限の確認、エージェントの応答、スケジュールタスクの結果に OS ネイティブの通知を使用します。',
'settings.general.notificationsEnabled': 'システム通知を有効にする',
'settings.general.notificationsHintOn': '有効にすると、アプリは通知権限を要求し、OS の通知センターを使用します。',
'settings.general.notificationsHintOff': '無効にすると、権限の確認、エージェントの応答、スケジュールタスクはデスクトップ通知を送信しません。',
'settings.general.notificationsStatus': '権限',
'settings.general.notificationsStatusGranted': '許可済み',
'settings.general.notificationsStatusDenied': 'システム設定でブロックされています',
'settings.general.notificationsStatusDefault': '未要求',
'settings.general.notificationsStatusUnsupported': 'この環境では利用できません',
'settings.general.notificationsAuthorize': '許可する',
'settings.general.notificationsOpenSettings': '設定を開く',
'settings.general.notificationsTestTitle': 'Claude Code Haha の通知が有効になりました',
'settings.general.notificationsTestBody': '権限の確認と完了したエージェントの応答に、これからシステム通知が使用されます。',
'settings.general.traceTitle': 'Agent Trace',
'settings.general.traceDescription': '停止、失敗、予期しない待機を調査するために、ローカルセッションのモデル要求トレースを収集します。',
'settings.general.traceEnabled': 'Agent Trace を収集',
'settings.general.traceHintOn': '新しいセッションは、簡潔な要求、応答、状態イベントをローカルの cc-haha traces ディレクトリに書き込みます。',
'settings.general.traceHintOff': '新しい Trace は書き込まれません。既存の記録は Trace 一覧で引き続き確認できます。',
'settings.general.chatSendBehaviorTitle': 'メッセージの送信',
'settings.general.chatSendBehaviorDescription': 'デスクトップのチャット入力欄でメッセージを送信する方法を選択します。',
'settings.general.chatSendBehaviorEnter': 'Enter で送信',
'settings.general.chatSendBehaviorEnterDescription': 'Shift+Enter で改行を挿入します。',
'settings.general.chatSendBehaviorModifier': 'Ctrl/Cmd+Enter で送信',
'settings.general.chatSendBehaviorModifierDescription': 'Enter と Shift+Enter で改行を挿入します。',
'settings.general.h5AccessTitle': 'H5 アクセス',
'settings.general.h5AccessDescription': 'デスクトップ H5 アプリをローカルネットワークに公開します。スマートフォンは、有効期限の短い H5 トークンを含む QR リンクで接続します。',
'settings.general.h5AccessEnabled': 'H5 アクセスを有効にする',
'settings.general.h5AccessEnabledHint': 'デスクトップサーバーが LAN アドレスで待ち受け、デスクトップセッションへのアクセスを許可します。',
'settings.general.h5AccessStatusEnabled': '有効',
'settings.general.h5AccessTokenPreview': 'トークンプレビュー',
'settings.general.h5AccessDisabledValue': '無効',
'settings.general.h5AccessDisable': '無効化',
'settings.general.h5AccessGenerateToken': 'トークンを生成',
'settings.general.h5AccessRegenerate': 'トークンを再生成',
'settings.general.h5AccessGeneratedToken': '生成されたトークン',
'settings.general.h5AccessGeneratedTokenHint': '一度だけ表示されます。今すぐコピーし、パスワードのように保管してください。',
'settings.general.h5AccessShowToken': 'トークンを表示',
'settings.general.h5AccessCopy': 'コピー',
'settings.general.h5AccessCopyUrl': 'H5 URL をコピー',
'settings.general.h5AccessCopyLaunchUrl': 'QR リンクをコピー',
'settings.general.h5AccessUrlCopied': 'H5 URL をコピーしました。',
'settings.general.h5AccessLaunchUrlCopied': 'QR リンクをコピーしました。',
'settings.general.h5AccessHideToken': 'トークンを非表示',
'settings.general.h5AccessTokenNotAvailable': '旧バージョンのトークンは復元できません。一度再生成すると、トークンは永続化され、いつでも確認できます。',
'settings.general.h5AccessPublicHost': 'アクセスホスト / IP',
'settings.general.h5AccessPublicHostPlaceholder': '192.168.1.100',
'settings.general.h5AccessCurrentPort': '現在のポート',
'settings.general.h5AccessCurrentPortUnknown': '自動',
'settings.general.h5AccessFixedPort': '固定ポート',
'settings.general.h5AccessFixedPortPlaceholder': '自動',
'settings.general.h5AccessFixedPortInvalid': 'ポートは 1024〜65535 の整数で指定してください。',
'settings.general.h5AccessFixedPortHint': '固定ポート未設定の場合は前回のポートを自動的に再利用します。リバースプロキシなど安定したポートが必要な場合は固定を推奨します。変更はアプリ再起動後に反映されます。',
'settings.general.h5AccessFixedPortRestartNote': '固定ポート {fixedPort} はアプリ再起動後に有効になります。現在は {activePort} で稼働中です。',
'settings.general.h5AccessDisconnectGrace': '切断後の保持(秒)',
'settings.general.h5AccessDisconnectGracePlaceholder': '30',
'settings.general.h5AccessDisconnectGraceInvalid': '5〜86400 の整数(秒)で指定してください。',
'settings.general.h5AccessDisconnectGraceHint': 'スマホの画面ロックやバックグラウンド移行で切断されても、実行中のタスクは中断されずバックグラウンドで完走し、再接続時に結果を確認できます。タスクが終了し誰も接続していない場合のみ、この時間が経過した後に CLI を停止します(デフォルト 30 秒)。外出先でのリモート操作では大きめに、例えば 600 に設定できます。',
'settings.general.h5AccessPublicUrl': '公開 URL',
'settings.general.h5AccessPublicUrlPlaceholder': 'https://chat.example.com',
'settings.general.h5AccessAllowedOrigins': '許可するオリジン',
'settings.general.h5AccessAllowedOriginsPlaceholder': 'https://chat.example.com, https://phone.example',
'settings.general.h5AccessOriginsHint': '1 行に 1 つのオリジンを入力するか、複数のオリジンをカンマで区切ってください。',
'settings.general.h5AccessOpenHint': 'LAN アクセスの場合は、ホスト / IP のみを変更してください。現在のサービスポートが再利用されます。リバースプロキシの場合は完全な URL を入力してください。',
'settings.general.h5AccessSave': 'H5 設定を保存',
'settings.general.h5AccessUrl': 'H5 URL',
'settings.general.h5AccessQrTitle': 'スマートフォン接続',
'settings.general.h5AccessQrHint': 'スキャンすると、トークンが入力済みの状態で H5 が開きます。',
'settings.general.h5AccessQrRefreshHint': '「トークンを生成」をクリックすると、スキャンできる QR リンクが作成されます。',
'settings.general.h5AccessQrEmptyHint': 'QR コードを作成するにはトークンを生成してください。',
'settings.general.h5AccessQrAlt': 'H5 アクセス用 QR コード',
'settings.general.h5AccessSafetyNote': '信頼できるネットワークでのみ有効にしてください。QR リンクを持つ誰もが、H5 が公開するデスクトップ機能にアクセスできます。',
'settings.general.h5AccessConfirmTitle': 'LAN H5 アクセスを有効にしますか?',
'settings.general.h5AccessConfirmBody': 'これにより、デスクトップ H5 アプリが LAN アドレスとポートで公開されます。QR トークンを持つデバイスは、デスクトップセッションと関連する操作にアクセスできます。信頼できるネットワークでのみ続行してください。',
'settings.general.h5AccessConfirmEnable': 'H5 アクセスを有効にする',
'settings.general.h5AccessError': 'H5 アクセス設定の更新に失敗しました。',
'settings.general.h5AccessStaleHostTitle': '保存された H5 ホストに到達できなくなりました',
'settings.general.h5AccessStaleHostBody': '保存されたホスト {storedHost} は、このマシンのアクティブなインターフェースにバインドされていません。QR コードをスキャンしたスマートフォンは接続に失敗します。現在の LAN IP に切り替えることをお勧めします。',
'settings.general.h5AccessStaleHostNoSuggestion': '保存されたホスト {storedHost} は、このマシンのアクティブなインターフェースにバインドされていません。QR コードをスキャンしたスマートフォンは接続に失敗します。このマシンのネットワーク接続を確認するか、リバースプロキシ URL に切り替えてください。',
'settings.general.h5AccessStaleHostApply': '{suggestedHost} に切り替え',
'settings.general.h5AccessProxyNote': '現在リバースプロキシ URL を使用しています。スマートフォンは、設定した公開ドメイン / トンネルを通じてデスクトップに到達します。プロキシが稼働中であることを確認してください。',
'settings.general.networkTitle': 'ネットワーク',
'settings.general.networkDescription': 'デスクトップセッションが行うプロバイダー API リクエストを制御します。',
'settings.general.networkProxyModeDirect': '直接接続',
'settings.general.networkProxyModeDirectDescription': 'プロバイダー API リクエストに継承されたプロキシ設定を使用しません。',
'settings.general.networkProxyModeSystem': 'システムプロキシ',
'settings.general.networkProxyModeSystemDescription': 'アプリプロセスが継承したプロキシ設定を使用します。',
'settings.general.networkProxyModeManual': '手動プロキシ',
'settings.general.networkProxyModeManualDescription': '以下に入力した HTTP または HTTPS プロキシ URL を使用します。',
'settings.general.networkProxyUrl': 'プロキシ URL',
'settings.general.networkProxyUrlHint': 'HTTP および HTTPS プロキシ URL に対応しています。例: http://127.0.0.1:7890。',
'settings.general.networkProxyUrlInvalid': 'HTTP または HTTPS のプロキシ URL を入力してください。',
'settings.general.networkProxyUrlRequired': 'プロキシ URL を入力してください。',
'settings.general.networkTimeout': 'AI リクエストのタイムアウト',
'settings.general.networkTimeoutValue': '{seconds}秒',
'settings.general.networkTimeoutHint': 'プロバイダーへのリクエスト、ストリーミングの最初の応答、プロバイダー接続テストに適用されます。30〜1800 秒に対応します。大きなコンテキストでは最初のストリーミングバイトまで数分かかる場合があります。',
'settings.general.networkTimeoutUnit': '秒',
'settings.general.networkTimeoutDecrease': '30 秒減らす',
'settings.general.networkTimeoutIncrease': '30 秒増やす',
'settings.general.networkTimeoutRequired': 'タイムアウトを入力してください。',
'settings.general.networkTimeoutRange': '{min} から {max} 秒までの整数を入力してください。',
'settings.general.networkSaved': 'ネットワーク設定を保存しました。',
'settings.general.networkScopeHint': '別途設定するアプリ更新用プロキシは変更されません。',
'settings.general.networkSave': '保存',
'settings.general.webFetchPreflightTitle': 'WebFetch プリフライト',
'settings.general.webFetchPreflightDescription': 'デスクトップセッションは、サードパーティプロバイダーや制限されたネットワークでの誤った失敗を避けるため、デフォルトで Claude のドメインプリフライトをスキップします。',
'settings.general.webFetchPreflightEnabled': 'WebFetch のドメインプリフライトをスキップ',
'settings.general.webFetchPreflightHint': '各 WebFetch リクエスト前の上流の安全プリフライトを明示的に復元したい場合のみ、これをオフにしてください。',
'settings.general.webSearchTitle': 'WebSearch',
'settings.general.webSearchDescription': 'エージェントのウェブ検索を、公式 Claude、サードパーティプロバイダー、ローカルのフォールバックキーのどれで解決するかを選択します。',
'settings.general.webSearch.mode.auto': '自動',
'settings.general.webSearch.mode.tavily': 'Tavily',
'settings.general.webSearch.mode.brave': 'Brave',
'settings.general.webSearch.mode.anthropic': 'Claude',
'settings.general.webSearch.mode.disabled': 'オフ',
'settings.general.webSearchTavilyKey': 'Tavily API キー',
'settings.general.webSearchBraveKey': 'Brave Search API キー',
'settings.general.webSearchBravePlaceholder': 'Brave Search トークン',
'settings.general.webSearchGetApiKey': 'API キーを取得',
'settings.general.webSearchTavilyApiKeyLink': 'Tavily API キーを取得',
'settings.general.webSearchBraveApiKeyLink': 'Brave Search API キーを取得',
'settings.general.webSearchTavilyFreeHint': 'アカウントを作成してキーをコピーしてください。無料プランには 1000 クレジットが含まれます。',
'settings.general.webSearchBraveFreeHint': 'アカウントを作成すると、テスト用の無料枠付きで Search API キーを生成できます。',
'settings.general.webSearchHint': '自動の場合、Claude のモデル名にはネイティブの Claude ウェブ検索を使用し、その後 Tavily と Brave のキーにフォールバックします。',
'settings.general.webSearchSave': '保存',
'settings.general.uiZoom': 'UI ズーム',
'settings.general.uiZoomDescription': 'インターフェース全体のサイズを調整します。',
'settings.general.uiZoomShortcutHint': 'ショートカットの方が速いです:',
'settings.general.uiZoomShortcutMac': 'macOS',
'settings.general.uiZoomShortcutWindows': 'Windows / Linux',
'settings.general.uiZoomShortcutResetHint': '0 でズームを 100% にリセットします。',
'settings.general.uiZoomReset': 'UI ズームを 100% にリセット',
// ─── Empty Session ──────────────────────────────────────
'empty.title': '新しいセッション',
'empty.subtitle': '新しいコーディングセッションを開始します。Claude は、プロジェクトの構築、デバッグ、設計をお手伝いする準備ができています。',
'empty.placeholder': '何でも質問してください...',
'empty.addFiles': 'ファイルまたは写真を追加',
'empty.slashCommands': 'スラッシュコマンド',
'empty.failedToCreate': 'セッションの作成に失敗しました',
'empty.createError.workdirMissing': 'プロジェクトフォルダが見つからないか、ディレクトリではありません。既存のプロジェクトを選択してもう一度お試しください。',
'empty.createError.notGit': 'このプロジェクトは Git リポジトリではないため、ブランチでの起動は利用できません。現在のフォルダで開始するか、Git プロジェクトを選択してください。',
'empty.createError.branchNotFound': '選択したブランチは存在しなくなりました。プロジェクトコンテキストを更新して、別のブランチを選択してください。',
'empty.createError.dirtyWorktree': '現在のプロジェクトに未コミットの変更があります。ブランチの直接切り替えはブロックされました。「独立した worktree」を有効にするか、変更を先にコミット/スタッシュしてください。',
'empty.createError.branchCheckedOut': 'そのブランチは別の worktree で既にチェックアウトされています。「独立した worktree」を有効にするか、別のブランチを選択してください。',
'empty.createError.worktreeCreateFailed': '独立した worktree を作成できませんでした。Git がこのリポジトリに書き込めることを確認してから、もう一度お試しください。詳細: {detail}',
'empty.createError.switchFailed': '現在のプロジェクトブランチを切り替えできませんでした。Git のエラーを確認し、変更を安全に保ってから、もう一度お試しください。詳細: {detail}',
'empty.createError.contextFailed': 'この Git プロジェクトを検査できませんでした。リポジトリの状態を確認してもう一度お試しください。',
// ─── Repository Launch Controls ──────────────────────────────────────
'repoLaunch.selectBranch': 'ブランチを選択',
'repoLaunch.searchBranch': 'ブランチを検索',
'repoLaunch.noBranch': 'ブランチなし',
'repoLaunch.noBranchMatch': '一致するブランチがありません',
'repoLaunch.currentBranch': '現在のブランチ',
'repoLaunch.localBranch': 'ローカルブランチ',
'repoLaunch.remoteBranch': 'リモートブランチ',
'repoLaunch.checkedOut': '別の worktree でチェックアウト済み',
'repoLaunch.worktreeCurrent': '現在の worktree',
'repoLaunch.worktreeIsolated': '独立した worktree',
'repoLaunch.selectWorktree': 'worktree モードを選択',
'repoLaunch.missingWorkdir': '作業ディレクトリが見つかりません。',
'repoLaunch.dirtyWarning': '未コミットの変更が検出されました。直接切り替えはブロックされる場合があります。このフォルダに触れずに続行するには、独立した worktree を使用してください。',
'repoLaunch.checkedOutWarning': '選択したブランチは別の worktree で既にチェックアウトされています。直接起動は Git によってブロックされる場合があります。ディレクトリの変更を避けるには「独立した worktree」を使用してください。',
// ─── Chat Input ──────────────────────────────────────
'chat.placeholder': '編集、デバッグ、説明を Claude に依頼...',
'chat.placeholderMissing': 'このセッションは見つからないワークスペースを指しています。新しいセッションを作成するか、別のプロジェクトを選択してください。',
'chat.addFiles': 'ファイルまたは写真を追加',
'chat.dropFilesTitle': 'ここにファイルをドロップ',
'chat.dropFilesHint': 'ファイルパスとして添付されます。',
'chat.workspaceReferencesOnly': 'ワークスペース参照を {count} 件追加しました',
'chat.contextReferencesOnly': '参照を {count} 件追加しました',
'chat.addSelectionToChat': 'チャットに追加',
'chat.branchFromHere': '新しい会話を分岐',
'chat.branchSuccess': '分岐した会話「{title}」を作成しました。',
'chat.branchError': 'このメッセージから分岐できませんでした。詳細: {detail}',
'chat.userMessageReference': 'ユーザーメッセージ',
'chat.assistantMessageReference': 'アシスタントメッセージ',
'chat.slashCommands': 'スラッシュコマンド',
'chat.pendingMessageGuide': '誘導',
'chat.pendingMessageGuideNow': '今すぐ誘導',
'chat.pendingMessageEdit': 'キュー中のメッセージを編集',
'chat.pendingMessageDelete': 'キュー中のメッセージを削除',
'chat.pendingMessageEditInput': 'キュー中のメッセージ本文',
'chat.goalEvent.created': 'ゴールを設定しました',
'chat.goalEvent.replaced': 'ゴールを設定しました',
'chat.goalEvent.statusTitle': 'ゴールのステータス',
'chat.goalEvent.paused': 'ゴールを一時停止しました',
'chat.goalEvent.resumed': 'ゴールを再開しました',
'chat.goalEvent.completed': 'ゴールを完了しました',
'chat.goalEvent.cleared': 'ゴールをクリアしました',
'chat.goalEvent.continuing': 'ゴールを継続中',
'chat.goalEvent.message': 'ゴールの更新',
'chat.goalEvent.objective': '目標: {value}',
'chat.goalEvent.statusValue': 'ステータス: {value}',
'chat.goalEvent.budget': '予算: {value}',
'chat.goalEvent.continuations': '継続回数: {value}',
'chat.compactSummary.compacting': 'コンテキストを圧縮中',
'chat.compactSummary.title': 'コンテキストを圧縮しました',
'chat.compactSummary.autoTitle': 'コンテキストを自動的に圧縮しました',
'chat.compactSummary.manualTitle': 'コンテキストを手動で圧縮しました',
'chat.compactSummary.trigger.manual': '手動',
'chat.compactSummary.trigger.auto': '自動',
'chat.compactSummary.tokens': '圧縮前は {count} トークン',
'chat.compactSummary.messages': '{count} 件のメッセージを要約しました',
'chat.activeGoal.title': 'アクティブなゴール',
'chat.activeGoal.running': 'ループ実行中',
'chat.activeGoal.active': 'アクティブ',
'chat.activeGoal.paused': '一時停止中',
'chat.activeGoal.completed': '完了',
'chat.activeGoal.budget': '予算 {value}',
'chat.activeGoal.continuations': '継続回数 {value}',
'chat.activeGoal.elapsed': '経過 {value}',
'chat.backgroundAgents.title': 'バックグラウンドエージェント',
'chat.backgroundAgents.count': '{count} 件がアクティブまたは最近',
'chat.backgroundAgents.agent': 'エージェント',
'chat.backgroundTasks.title': 'バックグラウンドタスク',
'chat.backgroundTasks.runningCountOne': '{count} 件の実行中タスク',
'chat.backgroundTasks.runningCountMany': '{count} 件の実行中タスク',
'chat.backgroundTasks.finishedCountOne': '{count} 件の完了タスク',
'chat.backgroundTasks.finishedCountMany': '{count} 件の完了タスク',
'chat.backgroundTasks.running': '実行中',
'chat.backgroundTasks.finished': '完了',
'chat.backgroundTasks.clear': 'クリア',
'chat.backgroundTasks.close': 'バックグラウンドタスクを閉じる',
'chat.backgroundTasks.command': 'バックグラウンドコマンド',
'chat.backgroundTasks.workflow': 'バックグラウンドワークフロー',
'chat.backgroundTasks.task': 'バックグラウンドタスク',
'chat.backgroundTasks.type.agent': 'エージェント',
'chat.backgroundTasks.type.bash': 'Bash',
'chat.backgroundTasks.type.workflow': 'ワークフロー',
'chat.backgroundTasks.type.task': 'タスク',
'chat.backgroundAgents.tokens': '{count} トークン',
'chat.backgroundAgents.status.running': '実行中',
'chat.backgroundAgents.status.completed': '完了',
'chat.backgroundAgents.status.failed': '失敗',
'chat.backgroundAgents.status.stopped': '停止',
'chat.duration.seconds': '{seconds}秒',
'chat.duration.minutesSeconds': '{minutes}分 {seconds}秒',
'slash.mcp.title': '利用可能な MCP ツール',
'slash.mcp.subtitle': 'このチャットコンテキストで利用できる、グローバルおよび現在のプロジェクトの MCP サーバー。',
'slash.mcp.subtitleWithProject': '次のグローバルおよびプロジェクトの MCP を表示中: {path}',
'slash.mcp.emptyTitle': '利用可能な MCP サーバーがありません',
'slash.mcp.emptyBody': 'このチャットコンテキストで利用できるグローバルまたはプロジェクトの MCP サーバーがありません。',
'slash.mcp.projectBadge': 'プロジェクト: {name}',
'slash.skills.title': '利用可能なスキル',
'slash.skills.subtitle': '現在のコンテキストで利用できる、ユーザーが呼び出せるスキル。',
'slash.skills.subtitleWithProject': '次のスキルを表示中: {path}',
'slash.skills.emptyTitle': '利用可能なスキルがありません',
'slash.skills.emptyBody': 'このコンテキストで、ユーザーが呼び出せるスキルが見つかりませんでした。',
'slash.plugins.title': 'プラグイン',
'slash.plugins.subtitle': 'プラグイン管理はこのスラッシュコマンド画面に移動します。',
'slash.plugins.emptyTitle': 'プラグインパネルは近日公開',
'slash.plugins.emptyBody': 'この共有スラッシュコマンドパネルは現在接続済みです。プラグインデータは次に接続されます。',
'slash.help.title': 'スラッシュコマンド',
'slash.help.subtitle': 'エージェントのワークフローを実行したり、セッション状態を確認したり、デスクトップパネルを開いたりします。',
'slash.help.group.context': 'コンテキスト',
'slash.help.group.project': 'プロジェクト',
'slash.help.group.desktop': 'デスクトップ',
'slash.help.group.more': 'その他',
'slash.help.moreAvailable': 'あと {count} 個のコマンドが利用できます。/ を入力してコマンド一覧全体を検索してください。',
'slash.inspector.title': 'セッションインスペクター',
'slash.inspector.close': 'セッションインスペクターを閉じる',
'slash.inspector.loading': 'セッションデータを読み込み中',
'slash.inspector.error.noActiveSession': 'アクティブなセッションが選択されていません。',
'slash.inspector.error.unavailable': 'セッションインスペクターのデータが利用できません。/api/sessions/:id/inspection が読み込まれるよう、デスクトップサーバーを再起動してください。',
'slash.inspector.tab.status': 'ステータス',
'slash.inspector.tab.usage': '使用量',
'slash.inspector.tab.context': 'コンテキスト',
'slash.inspector.status.cliStatus': 'CLI ステータス',
'slash.inspector.status.running': '実行中',
'slash.inspector.status.notRunning': '実行されていません',
'slash.inspector.status.activeModel': 'アクティブなモデル',
'slash.inspector.status.unknown': '不明',
'slash.inspector.status.mcpConnections': 'MCP 接続',
'slash.inspector.status.connected': '接続済み',
'slash.inspector.status.failed': '失敗',
'slash.inspector.status.registeredTools': '登録済みツール',
'slash.inspector.status.commands': 'コマンド',
'slash.inspector.status.sessionMetadata': 'セッションのメタデータ',
'slash.inspector.status.version': 'バージョン',
'slash.inspector.status.sessionId': 'セッション ID',
'slash.inspector.status.workingDirectory': '作業ディレクトリ',
'slash.inspector.status.permissionMode': '権限モード',
'slash.inspector.status.authToken': '認証トークン',
'slash.inspector.status.outputStyle': '出力スタイル',
'slash.inspector.status.default': 'デフォルト',
'slash.inspector.status.mcpServers': 'MCP サーバー',
'slash.inspector.status.refresh': '更新',
'slash.inspector.status.contextWindow': 'コンテキストウィンドウ',
'slash.inspector.usage.emptyTitle': '使用量データはまだありません',
'slash.inspector.usage.emptyBody': 'CLI セッションが開始され、少なくとも 1 ターン完了すると使用量が表示されます。',
'slash.inspector.usage.contextSnapshotNotice': '現在のコンテキストスナップショットからトークン使用量を表示しています。使用量はコンテキストの取得に応じて動的に更新されます。',
'slash.inspector.usage.transcriptNotice': 'セッションの記録から再構築した使用量を表示しています。API 所要時間は、現在実行中の CLI プロセスでのみ利用できます。',
'slash.inspector.usage.unknownCost': '1 つ以上のモデルの料金が不明なため、コストが不正確な場合があります。',
'slash.inspector.usage.totalCost': '合計コスト',
'slash.inspector.usage.source': 'ソース',
'slash.inspector.usage.source.contextSnapshot': 'コンテキストスナップショット',
'slash.inspector.usage.source.transcript': '記録',
'slash.inspector.usage.source.currentProcess': '現在のプロセス',
'slash.inspector.usage.apiDuration': 'API 所要時間',
'slash.inspector.usage.wallDuration': '実時間',
'slash.inspector.usage.usageSpan': '使用期間',
'slash.inspector.usage.codeChanges': 'コードの変更',
'slash.inspector.usage.input': '入力',
'slash.inspector.usage.output': '出力',
'slash.inspector.usage.cacheReadWrite': 'キャッシュ読み取り / 書き込み',
'slash.inspector.usage.webSearch': 'ウェブ検索',
'slash.inspector.usage.byModel': 'モデル別の使用量',
'slash.inspector.usage.tokens': 'トークン',
'slash.inspector.usage.noModelTitle': 'モデルの使用量がありません',
'slash.inspector.usage.noModelBody': 'モデルの応答が記録されると、ここにトークン使用量が表示されます。',
'slash.inspector.context.loading': 'コンテキストデータを読み込み中',
'slash.inspector.context.emptyTitle': 'コンテキストデータはまだありません',
'slash.inspector.context.emptyBody': 'コンテキストの使用量にはアクティブな CLI セッションが必要です。',
'slash.inspector.context.windowUsage': 'コンテキストウィンドウの使用量',
'slash.inspector.context.used': '使用済み',
'slash.inspector.context.free': '空き',
'slash.inspector.context.messages': 'メッセージ',
'slash.inspector.context.assistant': 'アシスタント',
'slash.inspector.context.toolResults': 'ツールの結果',
'slash.inspector.context.context': 'コンテキスト',
'slash.inspector.context.categoryTitle': 'カテゴリ別の推定使用量',
'slash.inspector.context.noCategoriesTitle': 'コンテキストカテゴリがありません',
'slash.inspector.context.noCategoriesBody': 'CLI がコンテキスト分析を報告すると、コンテキストカテゴリが表示されます。',
'slash.inspector.context.memoryFiles': 'メモリファイル',
'slash.inspector.context.noMemoryFiles': 'このセッションにはメモリファイルが読み込まれていません。',
'slash.inspector.context.openMemory': 'メモリを開く',
'contextIndicator.ariaLabel': 'コンテキスト使用量 {percent}',
'contextIndicator.pendingAria': 'コンテキスト使用量は未計算',
'contextIndicator.loadingAria': 'コンテキスト使用量を読み込み中',
'contextIndicator.unavailableAria': 'コンテキスト使用量は利用不可',
'contextIndicator.title': 'コンテキスト',
'contextIndicator.modelUnknown': '不明なモデル',
'contextIndicator.used': '使用済み',
'contextIndicator.free': '空き',
'contextIndicator.window': 'ウィンドウ',
'contextIndicator.loading': 'コンテキスト使用量を読み込み中...',
'contextIndicator.pendingDetail': 'コンテキスト使用量はセッション開始後に計算されます。',
'contextIndicator.unavailable': 'なし',
'contextIndicator.unavailableDetail': 'このセッションではコンテキスト使用量は利用できません。',
'contextIndicator.updatedUnknown': 'まだ更新されていません',
'contextIndicator.updatedNow': 'たった今更新',
'contextIndicator.updatedMinutes': '{count} 分前に更新',
'contextIndicator.estimate': '推定',
'chat.navigate': '移動',
'chat.select': '選択',
'chat.dismiss': '閉じる',
'chat.stopTitle': '生成を停止 (Cmd+.)',
'chat.jumpToLatest': '最新',
'chat.memorySavedTitle': '{count} 件のメモリファイルを保存しました',
'chat.memorySavedFromToolsTitle': '{count} 件のメモリ項目を保存しました',
'chat.memoryReferencedTitle': '{count} 件のメモリ参照',
'chat.memoryOpenSettings': 'メモリを開く',
'chat.memoryMoreFiles': '+{count} 件',
'chat.memoryTechnicalDetails': 'ツールの詳細',
'chat.rewindSuccessWithCode': '{count} 件のメッセージを巻き戻し、追跡対象のファイルを復元しました。',
'chat.rewindSuccessConversationOnly': '{count} 件のメッセージを巻き戻しました。このターンには利用できるファイルチェックポイントがありませんでした。',
'chat.turnChangesTitle': '{count} 個のファイルが変更されました',
'chat.turnChangesLatestCardLabel': 'ターンで変更されたファイル',
'chat.turnChangesHistoricalCardLabel': 'ターンで変更されたファイル',
'chat.turnChangesLatestSubtitle': '現在のターンのチェックポイント',
'chat.turnChangesHistoricalSubtitle': '保存済みターンのチェックポイント',
'chat.turnChangesLatestUndo': '現在のターンを元に戻す',
'chat.turnChangesHistoricalUndo': 'このターンの前まで巻き戻す',
'chat.turnChangesUndoing': '元に戻しています...',
'chat.turnChangesLatestUndoAria': '現在のターンの変更を元に戻す',
'chat.turnChangesHistoricalUndoAria': 'このターンの前まで巻き戻す',
'chat.turnChangesLatestConfirmTitle': '現在のターンを元に戻しますか?',
'chat.turnChangesHistoricalConfirmTitle': 'このターンの前まで巻き戻しますか?',
'chat.turnChangesLatestConfirmBody': '最新のアシスタントの応答を巻き戻し、このターンの追跡対象ファイルを復元します。',
'chat.turnChangesHistoricalConfirmBody': '会話をこのターンの前まで巻き戻し、そのチェックポイントの追跡対象ファイルを復元します。',
'chat.turnChangesLatestConfirmUndo': '現在のターンを元に戻す',
'chat.turnChangesHistoricalConfirmUndo': 'このターンの前まで巻き戻す',
'chat.turnChangesOpenInWorkspaceAria': '{path} をワークスペースで開く',
'chat.turnChangesShowMore': 'さらに {count} 個のファイルを表示',
'chat.turnChangesShowLess': '表示を減らす',
// ─── Streaming Indicator ──────────────────────────────────────
'streaming.thinking': '思考中',
'streaming.running': '実行中',
'streaming.working': '作業中',
// ─── Permission Dialog ──────────────────────────────────────
'permission.allowEditFile': 'Claude が {fileName} を {toolName} することを許可しますか?',
'permission.allowEditFileGeneric': 'Claude がこのファイルを {toolName} することを許可しますか?',
'permission.allowBash': 'Claude がこのコマンドを実行することを許可しますか?',
'permission.allowTool': 'Claude が {toolName} を使用することを許可しますか?',
'permission.awaitingApproval': '承認待ち',
'permission.responded': '応答済み',
'permission.allow': '許可',
'permission.allowForSession': 'このセッションで許可',
'permission.deny': '拒否',
'permission.hideDetails': '詳細を非表示',
'permission.showFullInput': '入力全体を表示',
'permission.replacingContent': 'ファイル内のコンテンツを置換中',
'permission.planReadyTitle': 'コーディングを開始しますか?',
'permission.planPreviewTitle': 'Claude の計画',
'permission.planRequestedPermissions': '要求された権限',
'permission.planApprove': '計画を承認',
'permission.planKeepPlanning': '計画を続ける',
'permission.planFeedbackPlaceholder': 'Claude に変更内容を伝える',
'permission.planEmpty': '計画内容はありません。',
'permission.planApproved': '計画が承認されました',
'permission.planRejected': '計画が拒否されました',
// ─── Computer Use Approval ──────────────────────────────────────
'computerUseApproval.titleApps': 'コンピューター操作がこれらのアプリを操作しようとしています',
'computerUseApproval.titleTcc': 'コンピューター操作には macOS の権限が必要です',
'computerUseApproval.reason': 'Claude が要求している理由',
'computerUseApproval.allow': 'このセッションで許可',
'computerUseApproval.deny': '拒否',
'computerUseApproval.alreadyGranted': 'このセッションでは既に許可されています',
'computerUseApproval.notInstalled': 'アプリがインストールされていません',
'computerUseApproval.sensitiveApp': 'このアプリは機密として扱われ、追加の確認が必要です。',
'computerUseApproval.alsoRequested': '同時に要求中',
'computerUseApproval.hideWhileWorking': 'Claude の作業中、他の {count} 個のアプリが非表示になります。',
'computerUseApproval.hideWhileWorkingRestore': 'Claude の作業中、他の {count} 個のアプリが非表示になり、Claude の完了後に復元されます。',
'computerUseApproval.accessibility': 'アクセシビリティ',
'computerUseApproval.screenRecording': '画面収録',
'computerUseApproval.granted': '許可済み',
'computerUseApproval.notGranted': '未許可',
'computerUseApproval.openAccessibility': 'アクセシビリティを開く',
'computerUseApproval.openScreenRecording': '画面収録を開く',
'computerUseApproval.tryAgain': '再試行',
'computerUseApproval.tccHint': 'システム設定で不足している権限を許可してから、ここに戻って「再試行」を選択してください。',
'computerUseApproval.tryAgainHint': '再試行すると Claude に制御が戻り、macOS の権限変更が反映された後に request_access をもう一度呼び出せます。',
// ─── Ask User Question ──────────────────────────────────────
'question.needsInput': 'Claude が入力を必要としています',
'question.answered': '回答済み',
'question.completed': '完了',
'question.customResponse': 'または、独自の回答を入力してください:',
'question.typePlaceholder': '回答を入力...',
'question.submit': '送信',
'question.answeredPrefix': '回答: ',
'question.resultPrefix': '結果: ',
// ─── Thinking Block ──────────────────────────────────────
'thinking.label': '思考中',
'thinking.labelDone': '思考完了',
// ─── Tool Calls ──────────────────────────────────────
'tool.errorOutput': 'エラー出力',
'tool.toolOutput': 'ツール出力',
'tool.toolInput': 'ツール入力',
'tool.partialInput': '部分的な入力',
'tool.writerPreview': 'Writer',
'tool.writerPreviewLatest': '{total} 行のうち最新の {visible} 行を表示中',
'tool.contentStats': '{lines} · {chars}',
'tool.contentStatsLatest': '最新 {visible} / {total} 行 · {chars}',
'tool.lineCountSingular': '{count} 行',
'tool.lineCountPlural': '{count} 行',
'tool.charCountSingular': '{count} 文字',
'tool.charCountPlural': '{count} 文字',
'tool.generatingContent': 'コンテンツを生成中',
'tool.preparingEdit': '編集を準備中',
'tool.preparingTool': 'ツールを準備中',
'tool.stopped': '停止済み',
'tool.readFileContents': 'ファイルの内容を読み取り',
'tool.createFile': 'ファイルを作成',
'tool.updateFileContents': 'ファイルの内容を更新',
'tool.linesChanged': '{count} 行が変更されました',
'tool.linesCreated': '{count} 行が作成されました',
'tool.linesOutput': '{count} 行が出力されました',
'tool.result': '{toolName} の結果',
'tool.resultGeneric': 'ツールの結果',
'tool.error': 'エラー',
'tool.success': '成功',
'tool.showLess': '表示を減らす',
'tool.showMore': 'さらに {count} 文字を表示',
// ─── Tool Group Verbs ──────────────────────────────────────
'toolGroup.readOne': 'ファイルを 1 件読み取り',
'toolGroup.readMany': '{count} 件のファイルを読み取り',
'toolGroup.createdOne': 'ファイルを作成しました',
'toolGroup.createdMany': '{count} 件のファイルを作成しました',
'toolGroup.editedOne': 'ファイルを編集しました',
'toolGroup.editedMany': '{count} 件のファイルを編集しました',
'toolGroup.ranOne': 'コマンドを実行しました',
'toolGroup.ranMany': '{count} 件のコマンドを実行しました',
'toolGroup.foundFiles': 'ファイルを検索しました',
'toolGroup.searchedOne': 'コードを検索しました',
'toolGroup.searchedMany': '{count} 件のパターンを検索しました',
'toolGroup.agentOne': 'エージェントを 1 件起動しました',
'toolGroup.agentMany': '{count} 件のエージェントを起動しました',
'agentStatus.starting': '起動中',
'agentStatus.running': '実行中',
'agentStatus.done': '完了',
'agentStatus.failed': '失敗',
'agentStatus.stopped': '停止',
'agentStatus.noActivity': 'まだツールの動作がありません',
'agentStatus.viewResult': '結果を表示',
'agentStatus.resultTitle': 'エージェントの結果',
'toolGroup.searchedWeb': 'ウェブを検索しました',
'toolGroup.fetchedOne': 'ページを 1 件取得しました',
'toolGroup.fetchedMany': '{count} 件のページを取得しました',
// ─── Tasks ──────────────────────────────────────
'tasks.title': 'タスク',
'tasks.completed': '完了したタスク',
'tasks.dismissCompleted': '完了したタスクを非表示',
'tasks.newTask': '+ 新しいタスク',
'tasks.emptyTitle': 'スケジュールされたタスクはまだありません。',
'tasks.emptyDesc': '繰り返しタスクを作成して、エンジニアリングのワークフローを自動化しましょう。',
'tasks.createNew': '新しいタスクを作成',
'tasks.totalTasks': 'タスク総数',
'tasks.active': 'アクティブ',
'tasks.disabled': '無効',
// ─── New Task Modal ──────────────────────────────────────
'newTask.title': '新しいスケジュールタスク',
'newTask.localWarning': 'ローカルタスクは、コンピューターが起動している間のみ実行されます。',
'newTask.fullPermissions': 'すべての権限',
'newTask.name': '名前',
'newTask.namePlaceholder': 'daily-code-review',
'newTask.description': '説明',
'newTask.descPlaceholder': '昨日のコミットをレビューし、気になる点を指摘する',
'newTask.frequency': '頻度',
'newTask.everyNMinutes': 'N 分ごと',
'newTask.everyNHours': 'N 時間ごと',
'newTask.daily': '毎日',
'newTask.weekdays': '平日(月〜金)',
'newTask.specificDays': '特定の曜日',
'newTask.monthly': '毎月',
'newTask.customCron': 'カスタム cron 式',
'newTask.intervalMinutes': '{n} 分ごと',
'newTask.intervalHours': '{n} 時間ごと',
'newTask.atMinute': ':{m} 分に',
'newTask.onMonthDay': '毎月 {d} 日に',
'newTask.cronFormatHint': '形式: 分 時 日 月 曜日',
'newTask.invalidCron': '無効な cron 式',
'newTask.daySun': '日',
'newTask.dayMon': '月',
'newTask.dayTue': '火',
'newTask.dayWed': '水',
'newTask.dayThu': '木',
'newTask.dayFri': '金',
'newTask.daySat': '土',
'newTask.delayNote': 'スケジュールタスクは、サーバーのパフォーマンスのために数分のランダムな遅延を使用します。',
'newTask.create': 'タスクを作成',
'newTask.promptPlaceholder': '過去 24 時間のコミットを確認してください。何が変わったかを要約し、リスクのあるパターンや不足しているテストを指摘し、フォローアップする価値のある点を書き留めてください。',
'newTask.notification': '通知',
'newTask.notifyOnComplete': '完了時にプッシュ通知',
'newTask.notifyChannels': '通知チャンネル',
'newTask.notifyHint': 'タスクの完了時に、OS ネイティブのデスクトップ通知または IM メッセージを送信します。',
'newTask.notifyDesktop': 'デスクトップ',
'newTask.notConfigured': '未設定',
'newTask.noChannelConfigured': 'IM チャンネルがまだ設定されていません。設定 → IM アダプター でセットアップしてください。',
'newTask.noChannelSelected': '少なくとも 1 つの通知チャンネルを選択してください。',
// ─── Cron Descriptions ──────────────────────────────────────
'cron.everyMinute': '毎分実行',
'cron.everyNMinutes': '{n} 分ごとに実行',
'cron.everyHour': '毎時実行',
'cron.everyNHours': '{n} 時間ごとに実行',
'cron.everyNHoursAtMinute': '{n} 時間ごとに :{m} 分に実行',
'cron.dailyAt': '毎日 {time} に実行',
'cron.weekdaysAt': '平日の {time} に実行',
'cron.specificDaysAt': '毎週 {days} の {time} に実行',
'cron.monthlyAt': '毎月 {day} 日の {time} に実行',
'cron.customSchedule': 'カスタム: {cron}',
'cron.dow.0': '日',
'cron.dow.1': '月',
'cron.dow.2': '火',
'cron.dow.3': '水',
'cron.dow.4': '木',
'cron.dow.5': '金',
'cron.dow.6': '土',
// ─── Task Actions & Logs ──────────────────────────────────────
'tasks.runNow': '今すぐ実行',
'tasks.confirmRun': 'このタスクをすぐに実行しますか?',
'tasks.confirmDisable': 'このスケジュールタスクを無効にしますか?',
'tasks.confirmEnable': 'このスケジュールタスクを有効にしますか?',
'tasks.confirmDelete': 'このタスクとそのすべてのログを完全に削除しますか?',
'tasks.running': '実行中...',
'tasks.viewLogs': 'ログ',
'tasks.logsTitle': '実行ログ',
'tasks.noLogs': '実行ログはまだありません',
'tasks.runStatus.running': '実行中',
'tasks.runStatus.completed': '完了',
'tasks.runStatus.failed': '失敗',
'tasks.runStatus.timeout': 'タイムアウト',
'tasks.duration': '{s}秒',
'tasks.viewOutput': '概要',
'tasks.hideOutput': '非表示',
'tasks.close': '閉じる',
'tasks.edit': '編集',
'tasks.editTitle': 'スケジュールタスクを編集',
'tasks.saveChanges': '変更を保存',
'tasks.openSession': '会話を表示',
'tasks.createdAt': '作成: ',
'tasks.lastRunAt': '最終実行: ',
'tasks.outputHintSession': '「会話を表示」をクリックすると、セッションビューで出力全体を確認できます。',
'tasks.noOutputText': '利用できる出力はありません。',
// ─── Prompt Editor ──────────────────────────────────────
'promptEditor.worktree': 'worktree',
'promptEditor.bypassWarning': 'バイパスモードはシステムへの完全なアクセスを許可します',
'promptEditor.within': '範囲:',
'promptEditor.selectFolder': '— スコープを限定するフォルダを選択',
// ─── Permission Mode Selector ──────────────────────────────────────
'permMode.executionPermissions': '実行権限',
'permMode.askPermissions': '権限を確認',
'permMode.askPermDesc': 'CLI が要求したときに、ファイル編集やリスクの高いコマンドを確認します',
'permMode.autoAccept': '編集を自動承認',
'permMode.autoAcceptDesc': 'Claude が確認なしでディスクに書き込みます',
'permMode.planMode': 'プランモード',
'permMode.planModeDesc': '設計と推論のみ、ファイルは扱いません',
'permMode.bypass': '権限をバイパス',
'permMode.bypassDesc': 'シェルとファイルシステムへの完全なツールアクセス',
'permMode.dontAsk': '確認しない',
'permMode.enableBypassTitle': '権限のバイパスを有効にしますか?',
'permMode.enableBypassSubtitle': 'これによりシステムへの完全なアクセスが許可されます',
'permMode.enableBypassBody': 'Claude は次の範囲内で、シェルコマンドの実行とファイルの変更に <strong>無制限の</strong> アクセスを持ちます:',
'permMode.permReadWrite': 'あらゆるファイルの読み取り、書き込み、削除',
'permMode.permShell': '任意のシェルコマンドの実行',
'permMode.permPackages': 'パッケージのインストールまたは削除',
'permMode.enableBypassBtn': 'バイパスを有効化',
// Mode labels (compact, for chips)
'permMode.label.default': '権限を確認',
'permMode.label.acceptEdits': '自動承認',
'permMode.label.plan': 'プランモード',
'permMode.label.bypassPermissions': 'バイパス',
'permMode.label.dontAsk': '確認しない',
// ─── Model Selector ──────────────────────────────────────
'model.selectModel': 'モデルを選択',
'model.configuration': 'モデル設定',
'model.effort': '労力',
// ─── Directory Picker ──────────────────────────────────────
'dirPicker.selectProject': 'プロジェクトを選択...',
'dirPicker.recent': '最近',
'dirPicker.noRecent': '最近のプロジェクトはありません',
'dirPicker.chooseFolder': '別のフォルダを選択',
'dirPicker.chooseProjectFolder': 'プロジェクトフォルダを選択',
'dirPicker.useThisFolder': 'このフォルダを使用',
'dirPicker.noSubdirs': 'サブディレクトリがありません',
// ─── File Search ──────────────────────────────────────
'fileSearch.searching': '検索中...',
'fileSearch.noMatch': '一致するファイルがありません',
'fileSearch.noFiles': 'このディレクトリにファイルがありません',
'fileSearch.accessDenied': 'このディレクトリにアクセスできません',
'fileSearch.loadFailed': 'ディレクトリの読み込みに失敗しました',
'fileSearch.navigate': '移動',
'fileSearch.attach': '添付',
'fileSearch.select': '選択',
'fileSearch.open': 'フォルダを開く',
'fileSearch.close': '閉じる',
'fileSearch.directory': 'フォルダ',
'fileSearch.currentDirectory': '現在のフォルダ',
'fileSearch.folderTag': 'フォルダ',
'fileSearch.fileTag': 'ファイル',
'fileSearch.openFolder': 'フォルダを開く',
// ─── Teams ──────────────────────────────────────
'teams.backToLeader': '\u2190 \u30ea\u30fc\u30c0\u30fc\u306b\u623b\u308b',
'teams.viewing': '\u8868\u793a\u4e2d:',
'teams.transcript': '記録',
'teams.noMessages': 'メッセージはまだありません',
'teams.team': 'チーム:',
'teams.members': 'メンバー',
'teams.working': '作業中...',
'teams.thinking': '思考中...',
'teams.running': '実行中',
'teams.leader': 'team-lead',
'teams.memberPlaceholder': 'このメンバーに直接メッセージを送信...',
'teams.memberSessionHint': 'ここでのメッセージはこのメンバーに直接届き、記録の更新を見ながらやり取りできます。',
// ─── Scheduled Tasks Pages ──────────────────────────────────────
'scheduledPage.title': 'スケジュールタスク',
'scheduledPage.subtitle': 'タスクをスケジュール実行したり、必要なときに実行したりします。既存のセッションで {code} を入力すると作成できます。',
'scheduledPage.desktopNotice': 'スケジュールタスクは、デスクトップアプリが開いている間のみ実行されます。タスクが時間どおりに実行されるよう、アプリを起動したままにしてください。',
'scheduledPage.oldSubtitle': '自動化された運用ルーチンとバックグラウンドメンテナンスを管理します。',
'scheduledPage.executionMode': '実行モード',
'scheduledPage.localMode': 'ローカルモード',
'scheduledPage.remoteMode': 'リモートモード',
'scheduledPage.nextRun': '次回実行',
'scheduledPage.systemHealth': 'システムの状態',
'scheduledPage.activeSession': 'アクティブなセッション',
'scheduledPage.colTaskName': 'タスク名',
'scheduledPage.colFrequency': '頻度',
'scheduledPage.colLastResult': '前回の結果',
'scheduledPage.colNextExecution': '次回の実行',
'scheduledPage.colActions': '操作',
'scheduledPage.endOfList': 'スケジュール一覧の末尾',
'scheduledPage.pausedTasks': '他の 9 件のタスクは現在、メンテナンスのために一時停止または無効になっています。',
'scheduledPage.recentLogs': '最近の出力ログ',
'scheduledPage.viewArtifacts': '成果物全体を表示',
'scheduledPage.resourceAllocation': 'リソース割り当て',
'scheduledPage.cpuCapacity': 'CPU 容量',
'scheduledPage.memoryLoad': 'メモリ負荷',
'scheduledPage.connectedLocal': 'ローカルノードに接続済み',
'scheduledPage.thisMonth': '今月 {count} 件',
// ─── Update Checker ──────────────────────────────────────
'update.available': 'v{version} が利用可能',
'update.availableLabel': '利用可能',
'update.checking': '更新を確認中...',
'update.checkNow': '今すぐ確認',
'update.checkedAt': '最終確認 {time}',
'update.currentVersionUnknown': '不明',
'update.newVersion': '新しいバージョン v{version} が利用可能',
'update.downloading': 'ダウンロード中...',
'update.downloaded': '更新をダウンロードしました。使用する準備ができたら再起動してください。',
'update.idle': '更新を確認して、インストール済みのバージョンを最新の GitHub Release と比較します。',
'update.installAndRestart': 'インストールして再起動',
'update.installing': '更新をインストール中...',
'update.now': '今すぐ更新',
'update.later': '後で',
'update.progress': '更新をダウンロード中... {progress}%',
'update.progressBytes': '更新をダウンロード中... {downloaded} ダウンロード済み',
'update.proxyAdvanced': '高度な更新プロキシ',
'update.proxyModeManual': '手動プロキシ',
'update.proxyModeManualDescription': '指定したローカルの HTTP プロキシアドレスを使用します。',
'update.proxyModeSystem': 'システムプロキシ',
'update.proxyModeSystemDescription': 'OS の HTTP/HTTPS プロキシを自動的に使用します。',
'update.proxySave': '保存',
'update.proxyScopeHint': 'これはアプリの更新確認とダウンロードにのみ影響します。',
'update.proxyUrl': 'プロキシ URL',
'update.proxyUrlHint': 'HTTP および HTTPS プロキシ URL に対応しています。例: http://127.0.0.1:7890。',
'update.proxyUrlInvalid': 'HTTP または HTTPS のプロキシ URL を入力してください。',
'update.proxyUrlRequired': 'プロキシ URL を入力してください。',
'update.releaseNotes': 'リリースノート',
'update.readyBody': 'v{version} をダウンロードしました。使用する準備ができたら再起動してください。',
'update.readyTitle': '更新の準備完了',
'update.restarting': '更新を完了するために再起動中...',
'update.upToDate': 'v{version} は最新です。',
'update.failed': '更新に失敗しました: {error}',
// ─── Active Session ──────────────────────────────────────
'session.untitled': '無題のセッション',
'session.active': 'セッションがアクティブ',
'session.lastUpdated': '最終更新 {time}',
'session.messages': '{count} 件のメッセージ',
'session.historyLoadFailed': 'セッション履歴の読み込みに失敗しました。',
'session.workspaceUnavailable': 'ワークスペースが利用できません: {dir}',
'session.timeJustNow': 'たった今',
'session.timeMinutes': '{n} 分前',
'session.timeHours': '{n} 時間前',
'session.timeDays': '{n} 日前',
'trace.open': 'Trace',
'trace.title': 'モデル Trace',
'trace.loadFailed': 'Trace の読み込みに失敗しました',
'trace.apiCalls': 'API 呼び出し',
'trace.failedCalls': '失敗',
'trace.duration': '所要時間',
'trace.elapsed': '経過時間',
'trace.completed': '完了',
'trace.wallTime': '実時間',
'trace.modelTime': 'モデル時間',
'trace.toolTime': 'ツール時間',
'trace.models': 'モデル',
'trace.request': 'リクエスト',
'trace.response': 'レスポンス',
'trace.status': 'ステータス',
'trace.live': 'ライブ',
'trace.updatedAt': '更新',
'trace.copySessionId': 'Session ID をコピー',
'trace.refresh': 'Trace を更新',
'trace.openWindow': '別ウィンドウで開く',
'trace.delete': 'Trace を削除',
'trace.noResponse': 'レスポンス本文はキャプチャされていません',
'trace.emptyTitle': 'Trace 呼び出しはまだありません',
'trace.emptyBody': 'このセッションにはキャプチャ済みのモデル呼び出しがありません。新しいデスクトップセッションでは、軽量なリクエストとレスポンスのプレビューを自動記録します。',
'trace.tokens': 'Tokens',
'trace.snapshotEmpty': 'Trace スナップショットは空です。',
'trace.errors': 'エラー',
'trace.focus': '注目箇所',
'trace.searchSpans': 'Span を検索',
'trace.noMatchingSpans': '一致する Span はありません',
'trace.filter.all': 'すべて',
'trace.filter.llm': 'LLM',
'trace.filter.tools': 'ツール',
'trace.filter.errors': 'エラー',
'trace.sidechain': '子',
'trace.turnLabel': 'ターン {index}',
'trace.waitingForResult': '結果待ち',
'trace.started': '開始',
'trace.provider': 'Provider',
'trace.model': 'モデル',
'trace.childSpans': '子 Span',
'trace.requestBody': 'リクエスト本文',
'trace.requestHeaders': 'リクエストヘッダー',
'trace.responseBody': 'レスポンス本文',
'trace.responseHeaders': 'レスポンスヘッダー',
'trace.toolResult': 'ツール結果',
'trace.truncatedShort': '切り詰め済み',
'trace.noData': 'データなし',
'trace.llmCalls': 'LLM 呼び出し',
'trace.toolCalls': 'ツール呼び出し',
'trace.status.ok': '正常',
'trace.status.error': 'エラー',
'trace.status.pending': '待機中',
'trace.message.user': 'ユーザーメッセージ',
'trace.message.assistant': 'アシスタントメッセージ',
'trace.message.system': 'システムメッセージ',
'trace.message.toolRequest': 'アシスタントのツール要求',
'trace.message.toolResult': 'ツール結果',
'trace.toolError': 'ツールエラー',
'trace.modelCall': 'モデル呼び出し',
'trace.sessionActivity': 'セッションアクティビティ',
'trace.diagnosis.modelError': 'モデル呼び出しに失敗しました',
'trace.diagnosis.toolError': 'ツール実行に失敗しました',
'trace.diagnosis.eventError': 'トレースイベントに失敗しました',
'trace.diagnosis.pendingModel': 'モデル応答を待機中',
'trace.diagnosis.pendingTool': 'ツール結果を待機中',
'trace.diagnosis.waitingForAgent': 'ユーザーメッセージはまだ agent ステップに入っていません',
'trace.diagnosis.empty': '診断イベントがありません',
'trace.diagnosis.healthy': 'ブロック箇所は検出されていません',
'trace.event.apiCallStarted': 'API 呼び出し開始',
'trace.event.apiCallCompleted': 'API 呼び出し完了',
'trace.event.apiCallFailed': 'API 呼び出し失敗',
'trace.event.apiCallAborted': 'API 呼び出し中断',
'trace.event.responseCaptureFailed': 'レスポンスキャプチャ失敗',
'trace.event.upstreamFetchStarted': 'アップストリーム要求開始',
'trace.event.upstreamFetchCompleted': 'アップストリーム要求完了',
'trace.event.upstreamFetchFailed': 'アップストリーム要求失敗',
'trace.section.response': 'レスポンス',
'trace.section.messages': 'メッセージ',
'trace.section.systemPrompt': 'システムプロンプト',
'trace.section.tools': 'ツール',
'trace.section.parameters': 'パラメータ',
'trace.section.raw': '生データ',
'trace.section.input': '入力',
'trace.section.result': '結果',
'trace.section.meta': 'メタ情報',
'trace.section.content': '内容',
'trace.section.event': 'イベント',
'trace.section.metadata': 'メタデータ',
'trace.detail.stopReason': '停止理由',
'trace.detail.streaming': 'モデルの応答を待機中...',
'trace.detail.aborted': '応答が完了する前にリクエストが中断されました(タイムアウトまたはキャンセル)。',
'trace.status.aborted': '中断',
'trace.detail.legacyTruncated': 'このレコードは旧形式の切り詰められたデータのため、セマンティック表示はできません。下の生データを確認してください。',
'trace.detail.fetchFailed': '完全なレコードの読み込みに失敗したため、切り詰められたプレビューを表示しています。',
'trace.detail.earlierMessages': '以前の {count} 件のメッセージを表示',
'trace.detail.chars': '{count} 文字',
'trace.detail.thinking': '思考',
'trace.detail.toolUseId': 'Tool use ID',
'trace.detail.phase': 'フェーズ',
'trace.detail.severity': '重要度',
'trace.detail.message': 'メッセージ',
'trace.tree.aria': 'トレースタイムライン',
'trace.tree.toggleTurn': 'ターンを開閉',
'trace.list.eyebrow': 'Agent Trace',
'trace.list.title': 'Trace 一覧',
'trace.list.collecting': '収集中',
'trace.list.paused': '一時停止',
'trace.list.settings': 'Trace 設定',
'trace.list.sessions': 'セッション',
'trace.list.searchPlaceholder': 'タイトル、Session ID、プロジェクトパスを検索',
'trace.list.emptyTitle': 'Trace 記録はまだありません',
'trace.list.emptyBody': '収集を有効にすると、新しいデスクトップセッションはモデル呼び出しトレースをローカルの traces ディレクトリに書き込みます。',
'trace.list.loadFailed': 'Trace 一覧の読み込みに失敗しました',
'trace.list.loadedCount': '{shown} / {total} を表示中',
'trace.list.loadMore': 'さらに読み込む',
'trace.list.deleteConfirmTitle': 'Trace セッションを削除',
'trace.list.deleteConfirmBody': '「{title}」の Trace データを削除しますか?チャット履歴は削除されません。',
'trace.list.deleteFailed': 'Trace セッションの削除に失敗しました',
// ─── App Shell ──────────────────────────────────────
'app.serverFailed': 'ローカルサーバーの起動に失敗しました',
'app.serverFailedHint': '問題を報告する際は、この診断パネルのスクリーンショットを添付してください。',
'app.startupError': '起動エラー',
'app.serverLogs': 'サーバーログ',
'app.copyDiagnostics': '診断情報をコピー',
'app.copiedDiagnostics': 'コピーしました',
'app.launching': 'ローカルワークスペースを起動中...',
// ─── Error Codes ──────────────────────────────────────
'error.CLI_NOT_RUNNING': 'CLI プロセスが実行されていません。セッションが終了したか、プロセスがクラッシュした可能性があります。',
'error.CLI_START_FAILED': 'CLI プロセスの起動に失敗しました。',
'error.CLI_AUTH_REQUIRED': '認証が必要です。ログインしてください。',
'error.CLI_SESSION_CONFLICT': 'セッションは既に別のプロセスで使用されています。',
'error.CLI_SPAWN_FAILED': 'CLI サブプロセスの生成に失敗しました。',
'error.CLI_ERROR': '処理中にエラーが発生しました。',
'error.WORKDIR_INVALID': '作業ディレクトリが無効か、存在しません。',
'error.PARSE_ERROR': 'メッセージの形式が無効です。',
'error.UNKNOWN_TYPE': '不明なメッセージタイプです。',
'error.BAD_REQUEST': '不正なリクエストです。',
'error.NOT_FOUND': 'リソースが見つかりません。',
'error.INTERNAL_ERROR': 'サーバー内部エラーです。',
// ─── Business Errors ──────────────────────────────────────
'businessError.pdf_too_large': 'PDF が選択したモデルには大きすぎます。テキストに変換するか、より小さい PDF を使用してください。',
'businessError.pdf_password_protected': 'PDF はパスワードで保護されています。再送信する前にロックを解除するか、変換してください。',
'businessError.pdf_invalid': 'PDF ファイルが無効です。テキストに変換するか、別のファイルを送信してください。',
'businessError.image_too_large': '画像が選択したモデルには大きすぎます。サイズを変更するか、より小さい画像を送信してください。',
'businessError.image_unsupported': 'このモデルは画像をサポートしていません。テキストで続行するか、ビジョン対応モデルに切り替えて画像を再送信してください。',
'businessError.request_too_large': 'リクエストが選択したモデルには大きすぎます。大きなファイルを削除するか、より短いメッセージで再試行してください。',
'businessError.prompt_too_long': 'プロンプトが選択したモデルには長すぎます。会話を圧縮するか、コンテキストを減らして再試行してください。',
'businessError.auto_mode_unavailable': '自動モードは現在のプランでは利用できません。',
// ─── Server Status Verbs ──────────────────────────────────────
'serverVerb.Thinking': '思考中',
'serverVerb.Compacting conversation': 'コンテキストを圧縮中',
'serverVerb.Running': '実行中',
'serverVerb.Working': '作業中',
'serverVerb.Creating worktree': 'worktree を作成中',
'serverVerb.Task started': 'タスクを開始しました',
'serverVerb.Task in progress': 'タスクを実行中',
'chat.retry.title': 'リクエストに失敗、再試行中',
'chat.retry.attempt': '再試行 {attempt}/{max}',
'chat.retry.httpStatus': 'HTTP {status}',
'chat.retry.networkError': 'ネットワークエラー',
'chat.retry.waiting': '{seconds} 秒待機中',
'chat.retry.retrying': '再試行しています…',
'chat.fallback.title': 'ネットワーク不調のため非ストリーミングに切替',
'chat.fallback.detail': '応答は一括で届くため時間がかかることがあります',
// ─── Tabs ──────────────────────────────────────
'tabs.close': '閉じる',
'tabs.closeOthers': '他を閉じる',
'tabs.closeLeft': '左側を閉じる',
'tabs.closeRight': '右側を閉じる',
'tabs.closeAll': 'すべて閉じる',
'tabs.closeConfirmTitle': 'セッション実行中',
'tabs.closeConfirmMessage': 'このセッションはまだ実行中です。どうしますか?',
'tabs.closeConfirmKeep': '実行を継続',
// ─── Slash Command Descriptions ──────────────────────────────────────
'slashCmd.agent.description': '選択した Agent でプロンプトを実行',
'slashCmd.mcp.description': '現在のチャットコンテキストで利用可能な MCP ツールを開く',
'slashCmd.skills.description': '現在のチャットコンテキストでユーザーが呼び出せるスキルを閲覧',
'slashCmd.help.description': '利用可能なデスクトップおよびエージェントのコマンドを表示',
'slashCmd.status.description': 'セッションのステータス、使用量、コンテキストを表示',
'slashCmd.cost.description': 'セッションの使用量とコストを表示',
'slashCmd.context.description': '現在のコンテキスト使用量を表示',
'slashCmd.plugin.description': '設定でデスクトップのプラグイン操作を開く',
'slashCmd.memory.description': '設定でプロジェクトのメモリファイルを開く',
'slashCmd.doctor.description': '診断で Doctor を開く',
'slashCmd.compact.description': '会話のコンテキストを圧縮',
'slashCmd.clear.description': '会話履歴をクリア',
'slashCmd.goal.description': '完了ゴールを設定',
'slashCmd.review.description': 'コードの変更をレビュー',
'slashCmd.commit.description': 'git コミットを作成',
'slashCmd.pr.description': 'プルリクエストを作成',
'slashCmd.init.description': 'プロジェクトの CLAUDE.md を初期化',
'slashCmd.bug.description': 'バグを報告',
'slashCmd.config.description': '設定を開く',
'slashCmd.login.description': 'Anthropic アカウントを切り替え',
'slashCmd.logout.description': '現在のアカウントからサインアウト',
'slashCmd.model.description': 'AI モデルを切り替え',
'slashCmd.permissions.description': 'ツールの権限を表示または管理',
'slashCmd.terminal-setup.description': 'ターミナル統合をセットアップ',
'slashCmd.vim.description': 'Vim 編集モードを切り替え',
'tabs.closeConfirmStop': '停止して閉じる',
'tabs.closeAllConfirmTitle': 'セッション実行中',
'tabs.closeAllConfirmMessage': '{count} 件のセッションがまだ実行中です。これらのタブを閉じる前に停止しますか?',
'tabs.closeAllConfirmStop': 'すべて停止して閉じる',
'tabs.sessionRunning': 'セッション実行中',
'tabs.openTerminal': 'ターミナルを開く',
'tabs.showWorkspace': 'ワークスペースを表示',
'tabs.hideWorkspace': 'ワークスペースを非表示',
'tabs.showBrowser': 'ブラウザを表示',
'tabs.hideBrowser': 'ブラウザを非表示',
}