codexmate 0.0.40 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +168 -156
  2. package/README.zh.md +168 -156
  3. package/cli/agents-files.js +230 -230
  4. package/cli/analytics-export-args.js +68 -68
  5. package/cli/archive-helpers.js +453 -453
  6. package/cli/auth-profiles.js +375 -375
  7. package/cli/builtin-proxy.js +2144 -2144
  8. package/cli/claude-proxy.js +1022 -1022
  9. package/cli/config-bootstrap.js +407 -407
  10. package/cli/config-health.js +454 -454
  11. package/cli/doctor-core.js +903 -903
  12. package/cli/import-skills-url.js +356 -356
  13. package/cli/local-bridge.js +556 -556
  14. package/cli/openai-bridge.js +1984 -1984
  15. package/cli/openclaw-config.js +629 -629
  16. package/cli/session-convert-args.js +69 -69
  17. package/cli/session-convert-io.js +82 -82
  18. package/cli/session-convert.js +150 -150
  19. package/cli/session-usage.concurrent.js +28 -28
  20. package/cli/session-usage.js +304 -304
  21. package/cli/session-usage.models.js +176 -176
  22. package/cli/skills.js +1141 -1141
  23. package/cli/update.js +171 -171
  24. package/cli/zip-commands.js +510 -510
  25. package/cli.js +16458 -16341
  26. package/lib/automation.js +404 -404
  27. package/lib/cli-file-utils.js +151 -151
  28. package/lib/cli-models-utils.js +440 -440
  29. package/lib/cli-network-utils.js +190 -190
  30. package/lib/cli-path-utils.js +85 -85
  31. package/lib/cli-session-utils.js +121 -121
  32. package/lib/cli-sessions.js +427 -427
  33. package/lib/cli-utils.js +155 -155
  34. package/lib/cli-webhook.js +154 -154
  35. package/lib/download-artifacts.js +92 -92
  36. package/lib/mcp-stdio.js +453 -453
  37. package/lib/task-orchestrator.js +869 -869
  38. package/lib/text-diff.js +303 -303
  39. package/lib/win-tray.js +119 -119
  40. package/lib/workflow-engine.js +340 -340
  41. package/package.json +77 -77
  42. package/plugins/README.md +20 -20
  43. package/plugins/README.zh-CN.md +20 -20
  44. package/plugins/prompt-templates/comment-polish/index.mjs +25 -25
  45. package/plugins/prompt-templates/computed.mjs +311 -311
  46. package/plugins/prompt-templates/index.mjs +8 -8
  47. package/plugins/prompt-templates/manifest.mjs +18 -18
  48. package/plugins/prompt-templates/methods.mjs +553 -553
  49. package/plugins/prompt-templates/overview.mjs +91 -91
  50. package/plugins/prompt-templates/ownership.mjs +19 -19
  51. package/plugins/prompt-templates/rule-ack/index.mjs +21 -21
  52. package/plugins/prompt-templates/storage.mjs +64 -64
  53. package/plugins/registry.mjs +16 -16
  54. package/web-ui/app.js +695 -695
  55. package/web-ui/index.html +37 -37
  56. package/web-ui/logic.agents-diff.mjs +386 -386
  57. package/web-ui/logic.claude.mjs +172 -172
  58. package/web-ui/logic.codex.mjs +69 -69
  59. package/web-ui/logic.mjs +5 -5
  60. package/web-ui/logic.runtime.mjs +128 -128
  61. package/web-ui/logic.session-convert.mjs +70 -70
  62. package/web-ui/logic.sessions.mjs +782 -782
  63. package/web-ui/modules/api.mjs +90 -90
  64. package/web-ui/modules/app.computed.dashboard.mjs +252 -252
  65. package/web-ui/modules/app.computed.index.mjs +17 -17
  66. package/web-ui/modules/app.computed.main-tabs.mjs +214 -214
  67. package/web-ui/modules/app.computed.session.mjs +876 -876
  68. package/web-ui/modules/app.constants.mjs +15 -15
  69. package/web-ui/modules/app.methods.agents.mjs +651 -651
  70. package/web-ui/modules/app.methods.claude-config.mjs +412 -412
  71. package/web-ui/modules/app.methods.codex-config.mjs +869 -869
  72. package/web-ui/modules/app.methods.index.mjs +96 -96
  73. package/web-ui/modules/app.methods.install.mjs +205 -205
  74. package/web-ui/modules/app.methods.navigation.mjs +804 -804
  75. package/web-ui/modules/app.methods.openclaw-core.mjs +814 -814
  76. package/web-ui/modules/app.methods.openclaw-editing.mjs +420 -420
  77. package/web-ui/modules/app.methods.openclaw-persist.mjs +375 -375
  78. package/web-ui/modules/app.methods.providers.mjs +601 -601
  79. package/web-ui/modules/app.methods.runtime.mjs +420 -420
  80. package/web-ui/modules/app.methods.session-actions.mjs +591 -591
  81. package/web-ui/modules/app.methods.session-browser.mjs +1018 -1018
  82. package/web-ui/modules/app.methods.session-timeline.mjs +479 -479
  83. package/web-ui/modules/app.methods.session-trash.mjs +468 -468
  84. package/web-ui/modules/app.methods.startup-claude.mjs +554 -554
  85. package/web-ui/modules/app.methods.task-orchestration.mjs +556 -556
  86. package/web-ui/modules/app.methods.tool-config-permissions.mjs +87 -87
  87. package/web-ui/modules/app.methods.webhook.mjs +87 -87
  88. package/web-ui/modules/config-mode.computed.mjs +124 -124
  89. package/web-ui/modules/config-template-confirm-pref.mjs +33 -33
  90. package/web-ui/modules/i18n/locales/en.mjs +1140 -1140
  91. package/web-ui/modules/i18n/locales/ja.mjs +1130 -1130
  92. package/web-ui/modules/i18n/locales/vi.mjs +239 -239
  93. package/web-ui/modules/i18n/locales/zh.mjs +1143 -1143
  94. package/web-ui/modules/i18n.dict.mjs +14 -14
  95. package/web-ui/modules/i18n.mjs +111 -111
  96. package/web-ui/modules/plugins.computed.mjs +3 -3
  97. package/web-ui/modules/plugins.methods.mjs +3 -3
  98. package/web-ui/modules/plugins.storage.mjs +11 -11
  99. package/web-ui/modules/provider-url-display.mjs +17 -17
  100. package/web-ui/modules/sessions-filters-url.mjs +138 -138
  101. package/web-ui/modules/skills.computed.mjs +107 -107
  102. package/web-ui/modules/skills.methods.mjs +513 -513
  103. package/web-ui/partials/index/layout-footer.html +13 -13
  104. package/web-ui/partials/index/layout-header.html +478 -478
  105. package/web-ui/partials/index/modal-config-template-agents.html +185 -185
  106. package/web-ui/partials/index/modal-confirm-toast.html +32 -32
  107. package/web-ui/partials/index/modal-health-check.html +45 -45
  108. package/web-ui/partials/index/modal-openclaw-config.html +344 -344
  109. package/web-ui/partials/index/modal-skills.html +200 -200
  110. package/web-ui/partials/index/modal-webhook.html +42 -42
  111. package/web-ui/partials/index/modals-basic.html +263 -263
  112. package/web-ui/partials/index/panel-config-claude.html +187 -187
  113. package/web-ui/partials/index/panel-config-codex.html +205 -205
  114. package/web-ui/partials/index/panel-config-openclaw.html +89 -89
  115. package/web-ui/partials/index/panel-dashboard.html +171 -171
  116. package/web-ui/partials/index/panel-docs.html +114 -114
  117. package/web-ui/partials/index/panel-market.html +104 -104
  118. package/web-ui/partials/index/panel-orchestration.html +391 -391
  119. package/web-ui/partials/index/panel-plugins.html +253 -253
  120. package/web-ui/partials/index/panel-sessions.html +319 -319
  121. package/web-ui/partials/index/panel-settings.html +181 -181
  122. package/web-ui/partials/index/panel-trash.html +82 -82
  123. package/web-ui/partials/index/panel-usage.html +181 -181
  124. package/web-ui/res/json5.min.js +1 -1
  125. package/web-ui/res/vue.global.prod.js +13 -13
  126. package/web-ui/res/vue.runtime.global.prod.js +7 -7
  127. package/web-ui/res/web-ui-render.precompiled.js +7666 -7666
  128. package/web-ui/session-helpers.mjs +602 -602
  129. package/web-ui/source-bundle.cjs +305 -305
  130. package/web-ui/styles/base-theme.css +291 -291
  131. package/web-ui/styles/bridge-pool.css +266 -266
  132. package/web-ui/styles/controls-forms.css +532 -532
  133. package/web-ui/styles/dashboard.css +438 -438
  134. package/web-ui/styles/docs-panel.css +245 -245
  135. package/web-ui/styles/feedback.css +108 -108
  136. package/web-ui/styles/health-check-dialog.css +144 -144
  137. package/web-ui/styles/layout-shell.css +711 -711
  138. package/web-ui/styles/modals-core.css +499 -499
  139. package/web-ui/styles/navigation-panels.css +399 -399
  140. package/web-ui/styles/openclaw-structured.css +616 -616
  141. package/web-ui/styles/plugins-panel.css +564 -564
  142. package/web-ui/styles/responsive.css +501 -501
  143. package/web-ui/styles/sessions-list.css +683 -683
  144. package/web-ui/styles/sessions-preview.css +407 -407
  145. package/web-ui/styles/sessions-toolbar-trash.css +518 -518
  146. package/web-ui/styles/sessions-usage.css +849 -849
  147. package/web-ui/styles/settings-panel.css +419 -419
  148. package/web-ui/styles/skills-list.css +305 -305
  149. package/web-ui/styles/skills-market.css +723 -723
  150. package/web-ui/styles/task-orchestration.css +822 -822
  151. package/web-ui/styles/titles-cards.css +486 -486
  152. package/web-ui/styles/trash-panel.css +90 -90
  153. package/web-ui/styles/webhook.css +115 -115
  154. package/web-ui/styles.css +24 -24
  155. package/web-ui.html +17 -17
@@ -1,1130 +1,1130 @@
1
- const ja = Object.freeze({
2
-
3
- // Global
4
- 'lang.zh': '中国語',
5
- 'lang.en': 'English',
6
- 'lang.vi': 'ベトナム語',
7
- 'lang.label': '言語',
8
- 'nav.topTabs.aria': 'ナビゲーション',
9
-
10
- // Common
11
- 'common.all': 'すべて',
12
- 'common.copy': 'コピー',
13
- 'common.paste': 'ペースト',
14
- 'common.edit': '編集',
15
- 'common.install': 'インストール',
16
- 'common.update': 'アップグレード',
17
- 'common.uninstall': 'アンインストール',
18
- 'common.official': '公式',
19
- 'common.custom': 'カスタム',
20
- 'common.rules': 'ルール',
21
- 'common.troubleshooting': 'トラブルシューティング',
22
- 'common.command': 'コマンド',
23
- 'common.mirror': 'ミラー',
24
- 'common.packageManager': 'パッケージマネージャー',
25
- 'common.action': '操作',
26
- 'common.targets': 'ターゲット数',
27
- 'common.currentPm': '現在のパッケージマネージャー',
28
- 'common.currentAction': '現在の操作',
29
- 'common.mirrorActive': 'ミラー有効',
30
- 'common.defaultOfficial': '公式デフォルト',
31
- 'common.cancel': 'キャンセル',
32
- 'common.confirm': '確認',
33
- 'common.add': '追加',
34
- 'common.save': '保存',
35
- 'common.saveApply': '保存して適用',
36
- 'common.close': '閉じる',
37
- 'common.delete': '削除',
38
- 'common.clear': 'クリア',
39
- 'common.show': '表示',
40
- 'common.hide': '非表示',
41
- 'common.detail': '詳細',
42
- 'common.refresh': '更新',
43
- 'common.refreshing': '更新中...',
44
- 'common.loading': '読み込み中...',
45
- 'common.saving': '保存中...',
46
- 'common.sending': '送信中...',
47
- 'common.scanning': 'スキャン中...',
48
- 'common.export': 'エクスポート',
49
- 'common.import': 'インポート',
50
- 'common.apply': '適用',
51
- 'common.applying': '適用中...',
52
- 'common.confirming': '確認中...',
53
- 'common.refreshFromText': 'テキストから更新',
54
- 'common.backToEdit': '編集に戻る',
55
- 'common.selectAll': 'すべて選択',
56
- 'common.unselectAll': '選択解除',
57
- 'common.resetFilters': 'フィルターをリセット',
58
- 'common.notEditable': '編集不可',
59
- 'common.notDeletable': '削除不可',
60
- 'common.notLoaded': '未読み込み',
61
- 'common.exists': '存在します',
62
- 'common.notExistsWillCreateOnApply': '存在しません。適用時に作成されます',
63
- 'common.notExistsWillCreateOnSave': '存在しません。保存時に作成されます',
64
- 'common.none': 'なし',
65
- 'cli.missing.title': '{name} CLI がインストールされていません',
66
- 'cli.missing.subtitle': '{name} CLI をインストールしてからこのページをご利用ください。',
67
- 'cli.missing.openDocs': 'インストールガイドを開く',
68
- 'cli.missing.commandAria': '{name} CLI インストールコマンド',
69
-
70
- // Brand
71
- 'brand.kicker.workspace': 'ワークスペース',
72
- 'brand.subtitle.localConfigSessionsWorkspace': 'ローカル設定とセッションワークスペース',
73
-
74
- // Confirm dialog
75
- 'confirm.aria': '操作確認',
76
- 'confirm.title.default': '操作を確認してください',
77
- 'confirm.ok': '確認',
78
- 'confirm.cancel': 'キャンセル',
79
-
80
- // Shared fields
81
- 'field.name': '名前',
82
- 'field.configName': '設定名',
83
- 'field.apiEndpoint': 'API エンドポイント',
84
- 'field.apiKey': '認証キー',
85
- 'field.baseUrl': 'Base URL',
86
- 'field.provider': 'プロバイダー',
87
- 'field.providerName': 'プロバイダー名',
88
- 'field.modelName': 'モデル名',
89
- 'field.model': 'モデル',
90
- 'field.message': 'メッセージ',
91
- 'field.varName': '変数名',
92
- 'field.targetFile': '対象ファイル',
93
- 'field.modelId': 'モデル ID',
94
- 'field.displayName': '表示名',
95
- 'field.contextAndMaxOutput': 'コンテキストと最大出力',
96
- 'field.apiType': 'API タイプ',
97
- 'field.env': '環境変数',
98
- 'field.allow': '許可',
99
- 'field.deny': '拒否',
100
-
101
- // Shared placeholders/hints
102
- 'placeholder.providerNameExample': '例: myapi',
103
- 'placeholder.apiEndpointExample': 'https://api.example.com/v1',
104
- 'placeholder.providerName': 'プロバイダー名',
105
- 'placeholder.keepUnchanged': '空白のままにすると変更されません',
106
- 'hint.keepKeyUnchanged': '空白のままにするとキーは変更されません',
107
- 'placeholder.modelExample': '例: gpt-5',
108
- 'placeholder.configNameExample': '例: 智譜GLM',
109
- 'placeholder.apiKeyExampleClaude': 'sk-ant-...',
110
- 'placeholder.baseUrlExampleClaude': 'https://open.bigmodel.cn/api/anthropic',
111
- 'placeholder.selectProvider': 'プロバイダーを選択してください',
112
-
113
- // Roles / labels
114
- 'role.you': 'あなた',
115
- 'role.provider': 'プロバイダー',
116
- 'label.model': 'モデル:',
117
-
118
- // Top tabs
119
- 'tab.dashboard': '概要',
120
- 'tab.docs': 'ドキュメント',
121
- 'tab.config': '設定',
122
- 'tab.config.codex': 'Codex',
123
- 'tab.config.claude': 'Claude',
124
- 'tab.config.openclaw': 'OpenClaw',
125
- 'tab.sessions': 'セッション',
126
- 'tab.usage': '使用量',
127
- 'tab.orchestration': 'タスク',
128
- 'tab.market': 'Skills',
129
- 'tab.plugins': 'プラグイン',
130
- 'tab.settings': '設定',
131
-
132
- // Side rail section titles
133
- 'side.overview': '概要',
134
- 'side.docs': 'ドキュメント',
135
- 'side.config': '設定',
136
- 'side.sessions': 'セッション',
137
- 'side.plugins': 'プラグイン',
138
- 'side.system': 'システム',
139
- 'side.orchestration': 'タスク',
140
- 'side.skills': 'Skills',
141
-
142
- // Side rail items
143
- 'side.overview.doctor': 'Doctor パネル',
144
- 'side.overview.doctor.meta': '概要 / 診断 / ジャンプ',
145
- 'side.docs.cliInstall': 'CLI インストール',
146
- 'side.docs.cliInstall.meta': 'インストール / 更新 / 削除',
147
- 'side.config.codex': 'Codex',
148
- 'side.config.codex.meta': 'Provider / Model',
149
- 'side.config.claude': 'Claude Code',
150
- 'side.config.claude.meta': 'Claude Settings',
151
- 'side.config.openclaw': 'OpenClaw',
152
- 'side.config.openclaw.meta': 'JSON5 / AGENTS',
153
- 'side.sessions.browser': 'セッション閲覧',
154
- 'side.sessions.browser.meta': '閲覧 / エクスポート / クリーンアップ',
155
- 'side.plugins.tools': 'プロンプトツール',
156
- 'side.plugins.tools.meta': 'テンプレート / 変数',
157
- 'side.plugins.templatesCount': '{count} 件のテンプレート',
158
- 'side.system.settings': '実行設定',
159
- 'side.system.settings.meta': 'データ / バックアップ',
160
- 'side.newTab': '新規タブ',
161
-
162
- // Header titles
163
- 'kicker.dashboard': 'Doctor',
164
- 'kicker.config': 'Configuration',
165
- 'kicker.sessions': 'Sessions',
166
- 'kicker.usage': 'Usage',
167
- 'kicker.orchestration': 'Tasks',
168
- 'kicker.market': 'Skills',
169
- 'kicker.plugins': 'Plugins',
170
- 'kicker.docs': 'Docs',
171
- 'kicker.trash': 'ゴミ箱',
172
- 'kicker.settings': 'Settings',
173
-
174
- 'title.dashboard': 'Dashboard / Doctor',
175
- 'title.config': 'ローカル設定コンソール',
176
- 'title.sessions': 'セッションとエクスポート',
177
- 'title.usage': 'ローカル使用量と推移',
178
- 'title.orchestration': 'タスクオーケストレーション',
179
- 'title.market': 'Skills インストールと同期',
180
- 'title.plugins': 'プラグインとテンプレート',
181
- 'title.docs': 'CLI インストールとドキュメント',
182
- 'title.settings': 'システムとデータ設定',
183
-
184
- 'subtitle.dashboard': '集約状態と診断エントリ。',
185
- 'subtitle.config': 'ローカル設定とモデルの管理。',
186
- 'subtitle.sessions': 'セッションの閲覧とエクスポート。',
187
- 'subtitle.usage': '過去 7 / 30 日間の使用量を表示。',
188
- 'subtitle.orchestration': 'ローカルタスクの計画・キュー・実行・振り返り。',
189
- 'subtitle.market': 'ローカル Skills の管理。',
190
- 'subtitle.plugins': 'テンプレート化されたプロンプトと再利用可能なプラグインの管理。',
191
- 'subtitle.docs': 'CLI インストールコマンドとトラブルシューティング。',
192
- 'subtitle.settings': 'ダウンロード・ディレクトリ・ゴミ箱の管理。',
193
-
194
- 'dashboard.doctor.title': 'Doctor',
195
- 'dashboard.doctor.runChecks': 'チェックを実行',
196
- 'dashboard.doctor.checking': 'チェック中...',
197
- 'dashboard.doctor.export': 'レポートをエクスポート',
198
- 'dashboard.doctor.export.json': 'JSON エクスポート',
199
- 'dashboard.doctor.export.md': 'Markdown エクスポート',
200
- 'dashboard.doctor.open': '開く',
201
- 'doctor.action.openConfig': 'Config を開く',
202
- 'doctor.action.checkProvider': 'Provider 設定をチェック',
203
- 'doctor.action.openUsage': 'Usage を開く',
204
- 'doctor.action.openSessions': 'Sessions を開く',
205
- 'doctor.action.openTasks': 'Tasks を開く',
206
- 'doctor.action.viewTaskLogs': 'Tasks / Logs を表示',
207
- 'doctor.action.openSkills': 'Skills を開く',
208
- 'doctor.issue.configNotReady.problem': '設定ファイルが準備できていません',
209
- 'doctor.issue.configNotReady.impact': 'provider/model が読み取れず、モデル一覧とリクエストが利用できなくなる可能性があります。',
210
- 'doctor.issue.providerUnreachable.problem.remote-model-probe-unreachable': 'Provider に到達できません',
211
- 'doctor.issue.providerUnreachable.problem.remote-model-probe-auth-failed': 'Provider 認証失敗',
212
- 'doctor.issue.providerUnreachable.problem.remote-model-probe-not-found': 'Provider が 404 を返しました',
213
- 'doctor.issue.providerUnreachable.problem.remote-model-probe-http-error': 'Provider が HTTP エラーを返しました',
214
- 'doctor.issue.providerUnreachable.problem.remote-model-probe-error': 'Provider プローブ失敗',
215
- 'doctor.issue.providerUnreachable.problem.unknown': 'Provider が利用できません',
216
- 'doctor.issue.providerUnreachable.impactAuth': '認証失敗によりモデル一覧/会話リクエストが 401/403 を返します。',
217
- 'doctor.issue.providerUnreachable.impactNetwork': 'リモートに到達できないためモデル一覧/会話リクエストが失敗またはタイムアウトします。',
218
- 'doctor.issue.configHealthFailed.problem': '設定ヘルスチェックが失敗しました',
219
- 'doctor.issue.configHealthFailed.impact': '一部の機能が利用できなかったり、期待通りの動作をしない可能性があります。',
220
- 'doctor.issue.usageError.problem': 'Usage 統計異常',
221
- 'doctor.issue.usageError.impact': 'Usage ページでトレンド/サマリーが表示できず、Doctor の使用量診断も欠落します。',
222
- 'doctor.issue.usageMissingModel.problem': '一部のセッションにモデル情報がありません',
223
- 'doctor.issue.usageMissingModel.impact': '使用量の帰属とコスト見積もりが不正確になります。',
224
- 'doctor.issue.tasksError.problem': 'Tasks 状態の読み取りに失敗しました',
225
- 'doctor.issue.tasksError.impact': 'オーケストレーションキュー/実行記録が表示できなくなる可能性があります。',
226
- 'doctor.issue.tasksFailed.problem': '失敗したタスク実行があります',
227
- 'doctor.issue.tasksFailed.impact': '自動化パイプラインが中断される可能性があります。ログを確認して再試行または入力を修正してください。',
228
- 'doctor.issue.skillsError.problem': 'Skills 一覧の読み取りに失敗しました',
229
- 'doctor.issue.skillsError.impact': 'Skills ページが正常に表示またはインストールできなくなります。',
230
- 'doctor.issue.skillsRootMissing.problem': 'Skills ディレクトリが存在しません',
231
- 'doctor.issue.skillsRootMissing.impact': 'Skills のインストール/スキャンが空になります。Settings/Docs でガイドに従ってディレクトリを初期化してください。',
232
- 'doctor.issue.skillsMissingFiles.problem': 'skill.json が欠落しているスキルがあります',
233
- 'doctor.issue.skillsMissingFiles.impact': '一部のスキルが実行または同期できなくなります。',
234
- 'dashboard.card.config': '設定',
235
- 'dashboard.card.sessions': 'セッション',
236
- 'dashboard.card.usage': '使用量',
237
- 'dashboard.card.tasks': 'タスク',
238
- 'dashboard.card.skills': 'Skills',
239
- 'dashboard.kv.model': 'モデル',
240
- 'dashboard.kv.issue': '異常',
241
- 'dashboard.kv.active': '現在',
242
- 'dashboard.kv.sessions': 'セッション数',
243
- 'dashboard.kv.missingModel': 'モデル欠落',
244
- 'dashboard.kv.blockers': 'ブロッカー',
245
- 'dashboard.kv.runs': '実行',
246
- 'dashboard.kv.target': 'ターゲット',
247
- 'dashboard.kv.root': 'ディレクトリ',
248
- 'dashboard.status.health': '健全',
249
- 'dashboard.status.busy': 'ビジー',
250
- 'dashboard.status.models': 'モデル',
251
- 'dashboard.busy.init': '初期化',
252
- 'dashboard.busy.sessions': 'セッション読み込み',
253
- 'dashboard.busy.models': 'モデル読み込み',
254
- 'dashboard.busy.configApply': '設定適用',
255
- 'dashboard.busy.agents': 'AGENTS 保存',
256
- 'dashboard.busy.skills': 'Skills 管理',
257
- 'dashboard.busy.tasks': 'タスクオーケストレーション',
258
- 'dashboard.busy.idle': 'アイドル',
259
- 'dashboard.message.none': 'メッセージなし',
260
- 'dashboard.sessionSource.codex': 'Codex',
261
- 'dashboard.sessionSource.claude': 'Claude Code',
262
- 'dashboard.sessionSource.gemini': 'Gemini CLI',
263
- 'dashboard.sessionSource.codebuddy': 'CodeBuddy Code',
264
- 'dashboard.sessionSource.all': 'すべて',
265
- 'dashboard.sessionPath.all': 'すべてのパス',
266
- 'dashboard.sessionQuery.unsupported': '現在のソースは非対応',
267
- 'dashboard.sessionQuery.unset': '未設定',
268
- 'dashboard.healthStatus.failRead': '読み取り失敗',
269
- 'dashboard.healthStatus.initializing': '初期化中',
270
- 'dashboard.healthStatus.ok': '正常',
271
- 'dashboard.modelStatus.loading': '読み込み中',
272
- 'dashboard.modelStatus.error': '読み込みエラー',
273
- 'dashboard.modelStatus.ok': '正常',
274
- 'dashboard.health.ok': 'チェック通過',
275
- 'dashboard.health.fail': 'チェック失敗',
276
- 'dashboard.health.issues': '{count} 件の問題',
277
- 'dashboard.issues.title': '{count} 件の対応可能な問題が見つかりました',
278
- 'dashboard.state.loading': '読み込み中',
279
- 'dashboard.state.ready': '準備完了',
280
- 'dashboard.state.idle': '未読み込み',
281
- 'dashboard.none': 'なし',
282
- 'dashboard.sessions.count': '{count} 件のセッション',
283
- 'dashboard.usage.range': '範囲 {value}',
284
- 'dashboard.tasks.queue': '実行 {running} / キュー {queued}',
285
- 'dashboard.skills.count': 'インストール済 {installed} / インポート可 {importable}',
286
- 'dashboard.providersHealth.title': 'Provider 健全性',
287
- 'dashboard.providersHealth.current': '(現在)',
288
- 'dashboard.providersHealth.checking': 'チェック中...',
289
- 'dashboard.providersHealth.allOk': 'すべての Provider が正常',
290
- 'dashboard.providersHealth.hasIssues': '{count} 件の Provider に問題あり',
291
-
292
- // Plugins panel
293
- 'plugins.sidebar.title': 'Plugins',
294
- 'plugins.sidebar.note': '再利用可能な標準化ツール。将来のカスタムプラグインも同じ構造に従います。',
295
- 'plugins.sidebar.ariaList': 'プラグイン一覧',
296
- 'plugins.catalog.promptTemplates.title': 'プロンプトテンプレート',
297
- 'plugins.catalog.promptTemplates.description': '変数、コピー、エクスポートに対応した標準化テンプレート型プロンプトツール。',
298
- 'plugins.status.standard': '標準',
299
- 'plugins.main.ariaWorkspace': 'プラグインワークスペース',
300
- 'plugins.refresh': '更新',
301
- 'plugins.refreshing': '更新中...',
302
- 'plugins.promptTemplates.title': 'プロンプトテンプレート',
303
- 'plugins.promptTemplates.subtitle': '内蔵:コードコメントのブラッシュアップ({{code}})。コピーして入力欄に貼り付けてください。',
304
- 'plugins.promptTemplates.mode.aria': 'プロンプトテンプレートモード',
305
- 'plugins.promptTemplates.mode.compose': '生成',
306
- 'plugins.promptTemplates.mode.manage': '管理',
307
- 'plugins.promptTemplates.compose.selectTemplate': 'テンプレートを選択',
308
- 'plugins.promptTemplates.compose.chooseTemplate': 'テンプレートを選択',
309
- 'plugins.promptTemplates.compose.chooseTemplateHint': 'テンプレートを選択して生成を開始してください。',
310
- 'plugins.promptTemplates.compose.builtinSuffix': '(内蔵)',
311
- 'plugins.promptTemplates.compose.empty': '利用可能なテンプレートがありません。',
312
- 'plugins.promptTemplates.compose.varsHint': '変数の入力と追加は「管理」で行ってください。',
313
- 'plugins.promptTemplates.compose.missingCount': '{count} 項目未入力',
314
- 'plugins.promptTemplates.compose.jumpToMissing': '未入力にジャンプ',
315
- 'plugins.promptTemplates.compose.goManage': '管理で変数を入力',
316
- 'plugins.promptTemplates.compose.outputTitle': '生成結果',
317
- 'plugins.promptTemplates.compose.outputHint': '「コピー」をクリックして Codex/Claude の入力欄に貼り付けてください。',
318
- 'plugins.promptTemplates.compose.outputAria': '生成結果(プロンプト)',
319
- 'plugins.promptTemplates.compose.copy': 'コピー',
320
- 'plugins.promptTemplates.manage.searchAria': 'テンプレート検索',
321
- 'plugins.promptTemplates.manage.searchPlaceholder': 'テンプレート検索',
322
- 'plugins.promptTemplates.manage.create': '新規作成',
323
- 'plugins.promptTemplates.manage.export': 'エクスポート',
324
- 'plugins.promptTemplates.manage.import': 'インポート',
325
- 'plugins.promptTemplates.manage.loading': 'テンプレート読み込み中...',
326
- 'plugins.promptTemplates.manage.empty': 'テンプレートがありません。',
327
- 'plugins.promptTemplates.manage.vars': '{count} vars',
328
- 'plugins.promptTemplates.manage.builtin': 'built-in',
329
- 'plugins.promptTemplates.manage.custom': 'custom',
330
- 'plugins.promptTemplates.manage.newTemplateName': '新しいテンプレート',
331
- 'plugins.promptTemplates.editor.selectHint': '編集するテンプレートを選択してください。',
332
- 'plugins.promptTemplates.editor.namePlaceholder': 'テンプレート名',
333
- 'plugins.promptTemplates.editor.nameAria': 'テンプレート名',
334
- 'plugins.promptTemplates.editor.duplicate': '複製',
335
- 'plugins.promptTemplates.editor.delete': '削除',
336
- 'plugins.promptTemplates.editor.save': '保存',
337
- 'plugins.promptTemplates.editor.builtinReadOnly': '内蔵テンプレートは読み取り専用です。編集/保存/削除/複製はできません。',
338
- 'plugins.promptTemplates.editor.descPlaceholder': '説明(任意)',
339
- 'plugins.promptTemplates.editor.descAria': 'テンプレート説明',
340
- 'plugins.promptTemplates.editor.templateLabel': 'テンプレート',
341
- 'plugins.promptTemplates.editor.templateAria': 'テンプレート内容',
342
- 'plugins.promptTemplates.editor.templatePlaceholder': 'ここにテンプレートを記述します。{{var}} プレースホルダーを使用してください。',
343
- 'plugins.promptTemplates.vars.title': '変数',
344
- 'plugins.promptTemplates.vars.hint': 'テンプレートから検出されました。入力後に最終プロンプトをレンダリングできます。',
345
- 'plugins.promptTemplates.vars.reset': 'リセット',
346
- 'plugins.promptTemplates.vars.empty': '変数が検出されませんでした。',
347
- 'plugins.promptTemplates.vars.valuePlaceholder': '変数値:{name}',
348
- 'plugins.promptTemplates.preview.title': 'プレビュー',
349
- 'plugins.promptTemplates.preview.hint': 'レンダリング結果(欠落変数は空に置換されます)。',
350
- 'plugins.promptTemplates.preview.copy': 'コピー',
351
- 'plugins.promptTemplates.preview.outputAria': 'レンダリング結果(プロンプト)',
352
- 'plugins.promptTemplates.noPluginSelected': '左側からプラグインを選択してください。',
353
-
354
- 'plugins.meta.attribution': '作成者:{createdBy} · メンテナー:{maintainers}',
355
- 'plugins.meta.createdBy': '作成者:{createdBy}',
356
- 'plugins.meta.maintainedBy': 'メンテナー:{maintainers}',
357
-
358
- // Built-in prompt templates
359
- 'plugins.builtin.commentPolish.name': 'コードコメントブラッシュアップ',
360
- 'plugins.builtin.commentPolish.desc': '以下のコードコメントを軽く整えてください {{code}}',
361
- 'plugins.builtin.commentPolish.line1': '以下のコードコメントを軽く整えてください',
362
- 'plugins.builtin.ruleAck.name': 'ルール確認返信',
363
- 'plugins.builtin.ruleAck.desc': '【{{rule}}】に従って、受信確認を返してください',
364
- 'plugins.builtin.ruleAck.line1': '【{{rule}}】に従って、受信確認を返してください',
365
-
366
- // Toasts
367
- 'toast.copy.empty': 'コピーする内容がありません',
368
- 'toast.copy.ok': 'コピーしました',
369
- 'toast.copy.fail': 'コピーに失敗しました',
370
- 'toast.save.ok': '保存しました',
371
- 'toast.save.fail': '保存に失敗しました',
372
- 'toast.delete.ok': '削除しました',
373
- 'toast.delete.fail': '削除に失敗しました',
374
- 'toast.export.empty': 'エクスポートする内容がありません',
375
- 'toast.export.ok': 'エクスポートしました',
376
- 'toast.export.fail': 'エクスポートに失敗しました',
377
- 'toast.import.ok': 'インポート成功',
378
- 'toast.import.fail': 'インポート失敗',
379
- 'toast.import.notAvailable': 'インポートは利用できません',
380
- 'toast.import.readFileFail': 'ファイル読み取り失敗',
381
- 'toast.import.invalidJson': '無効な JSON',
382
- 'toast.import.expectedArray': 'JSON は配列である必要があります',
383
- 'toast.export.notSupported': '現在エクスポートはサポートされていません',
384
- 'toast.plugins.loadFail': 'Plugins 読み込み失敗',
385
- 'toast.templates.builtinNotEditable': '内蔵テンプレートは編集できません',
386
- 'toast.templates.builtinNotModifiable': '内蔵テンプレートは変更できません。先に複製してから編集してください',
387
- 'toast.templates.nameRequired': 'テンプレート名は必須です',
388
- 'toast.templates.builtinNotDuplicable': '内蔵テンプレートは複製できません',
389
- 'toast.templates.builtinNotDeletable': '内蔵テンプレートは削除できません',
390
- 'toast.templates.deleteTitle': 'テンプレート削除',
391
- 'toast.templates.deleteMessage': '「{name}」を削除しますか?この操作は取り消せません。',
392
- 'toast.templates.deleteConfirm': '削除',
393
- 'toast.templates.deleteCancel': 'キャンセル',
394
-
395
- // Basic modals
396
- 'modal.providerAdd.title': 'プロバイダー追加',
397
- 'modal.providerEdit.title': 'プロバイダー編集',
398
- 'modal.modelAdd.title': 'モデル追加',
399
- 'modal.modelManage.title': 'モデル管理',
400
- 'modal.claudeConfigAdd.title': 'Claude Code 設定追加',
401
- 'modal.claudeConfigEdit.title': 'Claude Code 設定編集',
402
- 'field.useBuiltinTransform': '内蔵変換を使用(OpenAI 形式互換)',
403
- 'hint.useBuiltinTransform': '有効時:書き込まれる base_url は codexmate 内蔵変換サービスを指します。Codex のトークンは codexmate に固定されます。',
404
-
405
- // Config template / agents modals
406
- 'modal.configTemplate.label': 'config.toml テンプレート',
407
- 'modal.configTemplate.mode.twoStep': '二段階確認:先に差分をプレビューし、その後適用します。',
408
- 'modal.configTemplate.mode.oneStep': '一段階適用:「適用」をクリックすると直接書き込みます。',
409
- 'diff.title.configTemplate': '差分プレビュー(config.toml)',
410
- 'diff.generating': '生成中...',
411
- 'diff.failed': '生成失敗',
412
- 'diff.noChanges': '変更が検出されませんでした',
413
- 'diff.hint.busy': '差分生成中または適用中のため、操作は一時的に利用できません。',
414
- 'diff.hint.failedBack': '差分プレビューに失敗しました。編集に戻って再試行してください。',
415
- 'diff.hint.noChangesBack': '変更が検出されませんでした。編集に戻って修正を続けるか、キャンセルして終了してください。',
416
- 'diff.hint.previewMode': '現在プレビューモードです。「適用」をクリックして書き込むか、「編集に戻る」で修正を続けてください。',
417
-
418
- 'modal.agents.export': 'エクスポート',
419
- 'modal.agents.copy': 'コピー',
420
- 'modal.agents.title': 'AGENTS.md エディタ',
421
- 'modal.agents.hint': '保存すると対象の AGENTS.md(config.toml と同階層)に書き込まれます。',
422
- 'modal.agents.targetFile': '対象ファイル',
423
- 'modal.agents.contentLabel': 'AGENTS.md 内容',
424
- 'modal.agents.placeholder': 'ここに AGENTS.md の内容を編集してください',
425
- 'modal.agents.unsaved.previewModeHint': 'プレビューモード:現在の変更はまだ保存されていません。「適用」をクリックするとファイルに書き込まれます。',
426
- 'modal.agents.unsaved.detectedHint': '未保存の変更が検出されました:ページを閉じるか適用する前に保存してください。',
427
- 'modal.agents.hint.shortcuts': 'ショートカット:Esc(差分プレビュー時は編集に戻る、編集時はウィンドウを閉じる)。',
428
- 'modal.agents.hint.twoStepSave': '保存は2段階:「確認」で差分をプレビューし、「適用」で保存します。',
429
- 'diff.tooLargeSkip': '内容が大きすぎるため、行単位の差分プレビューをスキップしました',
430
- 'diff.viewHint.preview': '現在プレビューモードです。「適用」で保存するか、「編集に戻る」で修正を続けてください。',
431
- 'diff.viewHint.truncated': '内容が大きすぎるためプレビューをスキップしました。「適用」で保存するか、「編集に戻る」で修正を続けてください。',
432
-
433
- // Skills modal
434
- 'modal.skills.title': 'Skills 管理',
435
- 'modal.skills.subtitle': '現在のホストのローカル Skills を管理します。',
436
- 'modal.skills.target.aria': 'Skills 管理ターゲットを選択',
437
- 'modal.skills.rootDir': 'Skills ディレクトリ({label})',
438
- 'modal.skills.summary.target': 'インストールターゲット',
439
- 'modal.skills.summary.total': 'ローカル総数',
440
- 'modal.skills.summary.withSkill': 'SKILL.md あり',
441
- 'modal.skills.summary.missingSkill': 'SKILL.md なし',
442
- 'modal.skills.summary.importable': 'インポート可',
443
- 'modal.skills.panel.aria': 'Skills 管理パネル',
444
- 'modal.skills.local.title': 'ローカル Skills',
445
- 'modal.skills.local.note': '検索・フィルター・一括削除が可能です。',
446
- 'modal.skills.filter.keywordAria': '名前または説明で skill をフィルター',
447
- 'modal.skills.filter.keywordPlaceholder': 'ディレクトリ名/表示名/説明で検索',
448
- 'modal.skills.filter.statusAria': 'SKILL.md 状態で skill をフィルター',
449
- 'modal.skills.filter.status.all': 'すべての状態',
450
- 'modal.skills.filter.status.withSkill': 'SKILL.md ありのみ',
451
- 'modal.skills.filter.status.missingSkill': 'SKILL.md なしのみ',
452
- 'modal.skills.selection.stats': '選択 {selected}(フィルターヒット {filtered} / {total}、フィルター内選択 {visibleSelected})',
453
- 'modal.skills.empty.local': '管理可能な skill がありません。',
454
- 'modal.skills.empty.filtered': '現在のフィルター条件に一致する skill がありません。',
455
- 'modal.skills.pill.hasSkillFile': 'SKILL.md あり',
456
- 'modal.skills.pill.missingSkillFile': 'SKILL.md なし',
457
- 'modal.skills.pill.symlink': 'シンボリックリンク',
458
- 'modal.skills.pill.dir': 'ディレクトリ',
459
- 'modal.skills.import.title': 'クロスアプリインポート',
460
- 'modal.skills.import.note': 'スキャンして現在の {label} にインポートします。',
461
- 'modal.skills.import.scan': 'インポート可能をスキャン',
462
- 'modal.skills.import.stats': '選択 {selected} / {total}、SKILL.md あり {configured}、なし {missing}',
463
- 'modal.skills.import.emptyHint': 'インポート可能な skill がありません。「インポート可能をスキャン」をクリックしてください。',
464
- 'modal.skills.bulk.title': '一括操作',
465
- 'modal.skills.bulk.note': '右側はインポート操作、左側はローカル選択です。',
466
- 'modal.skills.actions.zipImport': 'ZIP インポート',
467
- 'modal.skills.actions.zipImporting': 'ZIP インポート中...',
468
- 'modal.skills.actions.exportSelected': '選択をエクスポート',
469
- 'modal.skills.actions.exporting': 'エクスポート中...',
470
- 'modal.skills.actions.importSelected': '選択をインポート',
471
- 'modal.skills.actions.importing': 'インポート中...',
472
- 'modal.skills.actions.deleteSelected': '選択を削除',
473
- 'modal.skills.actions.deleting': '削除中...',
474
-
475
- // OpenClaw config modal (quick)
476
- 'placeholder.openclawConfigNameExample': '例: デフォルト設定',
477
- 'modal.openclaw.loadCurrent': '現在の設定を読み込む',
478
- 'modal.openclaw.quick.title': '初心者向けクイック設定',
479
- 'modal.openclaw.quick.readFromEditor': 'エディタから読み取り',
480
- 'modal.openclaw.quick.step1': 'Provider とモデルを入力',
481
- 'modal.openclaw.quick.step3': '保存して適用',
482
- 'modal.openclaw.quick.providerHint': 'provider/model として主モデル識別子に結合されます。',
483
- 'modal.openclaw.quick.baseUrlHintDefault': 'OpenClaw 内蔵 provider のデフォルト値で補完されています。直接変更可能です。',
484
- 'modal.openclaw.quick.baseUrlHintReadonly': '外部参照が検出されたため、クイックフォームでは読み取り専用で表示されます。変更するには原文編集を使用してください。',
485
- 'modal.openclaw.quick.apiKeyHintFromAuth': '現在の値は OpenClaw 外部認証設定から取得されています。変更後「保存して適用」時に対応する auth profile に書き戻されます。',
486
- 'modal.openclaw.quick.apiKeyHintReadonly': '外部認証または参照が検出されたため、クイックフォームでは読み取り専用で表示されます。変更するには原文編集または対応する認証設定を使用してください。',
487
- 'modal.openclaw.quick.apiKeyHintKeep': '空白のままにすると既存のキーは上書きされません。',
488
- 'placeholder.apiTypeExample': '例: openai',
489
- 'modal.openclaw.quick.modelTitle': 'モデル',
490
- 'placeholder.modelIdExample': '例: gpt-5',
491
- 'placeholder.modelNameOptional': 'モデル表示名(任意)',
492
- 'field.contextWindow': 'コンテキスト長',
493
- 'field.maxOutput': '最大出力',
494
- 'hint.emptyNoChange': '空白のままにすると既存の設定は変更されません。',
495
- 'modal.openclaw.quick.optionsTitle': 'オプション',
496
- 'modal.openclaw.quick.setPrimary': '主モデルに設定',
497
- 'modal.openclaw.quick.overrideProvider': '同名 Provider 基本情報を上書き',
498
- 'modal.openclaw.quick.overrideModels': '同名モデルリストを上書き',
499
- 'modal.openclaw.quick.optionsHint': '上書きをオフにすると欠落フィールドのみ補完されます。',
500
- 'modal.openclaw.quick.writeToEditor': 'エディタに書き込み',
501
-
502
- // Docs panel
503
- 'docs.title': 'CLI インストールドキュメント',
504
- 'docs.subtitle': 'Claude Code / Gemini CLI / CodeBuddy Code / Codex CLI コマンドを表示。',
505
- 'docs.section.commands': 'インストールコマンド',
506
- 'docs.section.commandsNote': 'コマンドは直接コピーできます。',
507
- 'docs.section.faq': 'よくある質問',
508
- 'docs.section.faqNote': 'よくある質問は以下をご覧ください。',
509
- 'docs.command.aria': '{name} コマンド',
510
- 'docs.registryHintPrefix': 'コマンドに付加:',
511
- 'docs.registryHintCustom': '完全な URL(http/https 含む)を入力してください。コマンドに自動付加されます。',
512
- 'docs.registry.tencent': 'Tencent Cloud',
513
- 'docs.meta.bin': 'bin: {bin}',
514
- 'docs.termuxLabel': 'Termux',
515
- 'docs.termuxAria': 'Termux Codex CLI command',
516
- 'docs.rule.1': 'コマンドは現在のパッケージマネージャー、ミラー、操作に基づいて生成されます。',
517
- 'docs.rule.2': 'カスタムミラーはインストールとアップグレードにのみ使用されます。',
518
- 'docs.tip.win.1': 'PowerShell で権限不足(EACCES/EPERM)エラーが発生した場合は、管理者としてインストールコマンドを実行してください。',
519
- 'docs.tip.win.2': 'インストール後にコマンドが見つからない場合は、ターミナルを再起動して実行:where codex / where claude / where gemini / where codebuddy。',
520
- 'docs.tip.win.3': '企業ネットワークで制限がある場合は、ミラーソース(npmmirror / Tencent Cloud / カスタム)を切り替えてください。',
521
- 'docs.tip.unix.1': 'EACCES 権限エラーが発生した場合は、Node グローバルディレクトリの権限を修正してください。sudo npm は推奨しません。',
522
- 'docs.tip.unix.2': 'インストール後にコマンドが認識されない場合は、ターミナルを再起動して実行:which codex / which claude / which gemini / which codebuddy。',
523
- 'docs.tip.unix.3': '企業ネットワークで制限がある場合は、ミラーソース(npmmirror / Tencent Cloud / カスタム)を切り替えてください。',
524
-
525
- // Sessions panel
526
- 'sessions.loading': 'セッション読み込み中...',
527
- 'sessions.sourceTitle': 'ソース',
528
- 'sessions.refresh': '更新',
529
- 'sessions.refreshing': '更新中...',
530
- 'sessions.allPaths': 'すべてのパス',
531
- 'sessions.source.codex': 'Codex',
532
- 'sessions.source.claudeCode': 'Claude Code',
533
- 'sessions.source.gemini': 'Gemini',
534
- 'sessions.source.codebuddy': 'CodeBuddy',
535
- 'sessions.loadingList': 'セッション一覧を読み込み中...',
536
- 'sessions.empty': 'セッションがありません',
537
- 'sessions.unknownTime': '不明な時間',
538
-
539
-
540
- 'sessions.query.placeholder.enabled': 'セッションを検索...',
541
- 'sessions.query.placeholder.disabled': '現在のソースでは検索は利用できません',
542
- 'sessions.pin': 'ピン留め',
543
- 'sessions.unpin': 'ピン留め解除',
544
- 'sessions.copyResume': '再開コマンドをコピー',
545
- 'sessions.preview.refresh': '更新',
546
- 'sessions.preview.loading': 'プレビュー読み込み中...',
547
- 'sessions.preview.deleteHard': '直接削除',
548
- 'sessions.preview.moveToTrash': 'ゴミ箱に移動',
549
- 'sessions.preview.deleting': '削除中...',
550
- 'sessions.preview.moving': '移動中...',
551
- 'sessions.preview.export': 'エクスポート',
552
- 'sessions.preview.exporting': 'エクスポート中...',
553
- 'sessions.preview.convert': '派生セッションを生成',
554
- 'sessions.preview.converting': '変換中...',
555
- 'sessions.preview.convert.loadedOnly': '読み込み済みのみ変換',
556
- 'sessions.preview.openStandalone': 'スタンドアロンで開く',
557
- 'sessions.preview.loadingBody': 'メッセージ読み込み中...',
558
- 'sessions.preview.emptyMsgs': 'メッセージがありません',
559
- 'sessions.preview.rendering': 'レンダリング中...',
560
- 'sessions.preview.rerender': '再レンダリング',
561
- 'sessions.preview.preparing': '準備中...',
562
- 'sessions.preview.clipped': 'プレビューは一部のみ表示されています',
563
- 'sessions.preview.shownCount': '{shown} / {total} 件表示',
564
- 'sessions.preview.loadMore': 'さらに読み込む',
565
- 'sessions.preview.loadingMore': 'さらに読み込み中...',
566
- 'sessions.timeline.aria': 'セッションタイムライン',
567
- 'sessions.selectHint': '左側からセッションを選択してください',
568
- 'sessions.role.all': 'すべてのロール',
569
- 'sessions.role.user': 'ユーザー',
570
- 'sessions.role.assistant': 'アシスタント',
571
- 'sessions.role.system': 'システム',
572
- 'sessions.time.all': 'すべての期間',
573
- 'sessions.time.7d': '直近 7 日',
574
- 'sessions.time.30d': '直近 30 日',
575
- 'sessions.time.90d': '直近 90 日',
576
- 'sessions.sort.time': '時間順',
577
- 'sessions.sort.hot': '話題順',
578
- 'sessions.sort.hotBadge': '話題',
579
- 'sessions.filters.copyLink': 'リンクをコピー',
580
- 'sessions.filters.urlBuildFail': 'リンク生成失敗',
581
- 'sessions.filters.source': 'ソース',
582
- 'sessions.filters.path': 'パス',
583
- 'sessions.filters.keyword': 'キーワード',
584
- 'sessions.filters.role': 'ロール',
585
- 'sessions.filters.time': '期間',
586
- 'sessions.roleLabel.user': 'User',
587
- 'sessions.roleLabel.system': 'System',
588
- 'sessions.roleLabel.assistant': 'Assistant',
589
-
590
- // Usage panel
591
- 'usage.overview': 'Usage 概要',
592
- 'usage.range.aria': 'Usage 時間範囲',
593
- 'usage.range.7d': '直近 7 日',
594
- 'usage.range.30d': '直近 30 日',
595
- 'usage.compare.toggle': '前期間と比較',
596
- 'usage.compare.prev': '前期間',
597
- 'usage.compare.delta': '変化',
598
- 'usage.refresh': '統計を更新',
599
- 'usage.refreshing': '更新中...',
600
- 'usage.loading': 'Usage 統計を読み込み中...',
601
- 'usage.empty': '統計に使用できるセッションデータがありません',
602
- 'usage.refreshOverlay': '更新中…',
603
- 'usage.copyTitle': 'クリックでコピー:{value}',
604
- 'usage.copySuccess': 'コピー済:{label}',
605
- 'usage.copyFail': 'コピー失敗',
606
- 'usage.copyNone': 'コピーする内容がありません',
607
- 'usage.daily.title': '日別消費',
608
- 'usage.daily.subtitle': '日別 token と推定費用のサマリー(費用はそれぞれ最大値で正規化表示)。',
609
- 'usage.daily.note': '注:推定費用はデフォルトで Claude を含みません。モデル単価が一致し、セッションが input/output token を記録している場合のみ計算されます。',
610
- 'usage.heatmap.title': 'ヒートマップ',
611
- 'usage.heatmap.subtitle': '日別セッション数。色が濃いほど多い。',
612
- 'usage.heatmap.legend.less': '少',
613
- 'usage.heatmap.legend.more': '多',
614
- 'usage.heatmap.tooltip': '{date} · {sessions} セッション · {messages} メッセージ · {tokens} token',
615
- 'usage.heatmap.aria': '{date}、{sessions} セッション',
616
- 'usage.hourlyHeatmap.title': '7×24 アクティブヒートマップ',
617
- 'usage.hourlyHeatmap.subtitle': '曜日 × 時間帯でセッション分布を集計、濃色 = 高アクティブ。',
618
- 'usage.hourlyHeatmap.tooltip': '{weekday} {hour}:00 · {sessions} セッション · {messages} メッセージ · {tokens} token',
619
- 'usage.hourlyHeatmap.legend.less': '少',
620
- 'usage.hourlyHeatmap.legend.more': '多',
621
- 'usage.legend.tokens': 'Token',
622
- 'usage.legend.cost': '推定費用',
623
- 'usage.table.date': '日付',
624
- 'usage.table.sessions': 'セッション',
625
- 'usage.table.messages': 'メッセージ',
626
- 'usage.table.tokens': 'Token',
627
- 'usage.table.cost': '推定費用',
628
- 'usage.trend.sessions': 'セッション推移',
629
- 'usage.trend.messages': 'メッセージ推移',
630
- 'usage.trend.activeHours': 'アクティブ時間帯',
631
- 'usage.trend.sources': 'ソースインサイト',
632
- 'usage.legend.codex': 'Codex',
633
- 'usage.legend.claude': 'Claude',
634
- 'usage.trend.sessions.codexTitle': 'Codex {count}',
635
- 'usage.trend.sessions.claudeTitle': 'Claude {count}',
636
- 'usage.trend.messages.barTitle': '{count} 件のメッセージ',
637
- 'usage.hour.title': '{hour}:00 · {count} 回のセッション',
638
- 'usage.source.row': '{sessions} セッション · {messages} メッセージ · 平均 {avg}',
639
- 'usage.summary.sessions': '総セッション数',
640
- 'usage.summary.messages': '総メッセージ数',
641
- 'usage.summary.tokens': '総 Token 数',
642
- 'usage.summary.contextWindow': '総コンテキスト数',
643
- 'usage.summary.estimatedCost': '推定費用 · {range}',
644
- 'usage.estimatedCost.note.excludesClaudePrefix': '現在 Claude を除く、',
645
- 'usage.estimatedCost.method.configured': '設定済み単価で推定',
646
- 'usage.estimatedCost.method.catalog': '公開モデルカタログで推定',
647
- 'usage.estimatedCost.method.configuredAndCatalog': '設定済み単価 + 公開モデルカタログで推定',
648
- 'usage.estimatedCost.detail.estimate': '{prefix}{method}、推定 {estimate}、カバー {covered}/{total} セッション、約 {percent}% token',
649
- 'usage.estimatedCost.detail.missing': '{prefix}一致するモデル単価または token 分割がありません。先に models.cost を補完するか、セッションが input/output token を記録しているか確認してください。',
650
- 'usage.summary.activeDuration': 'アクティブ期間',
651
- 'usage.summary.activeDuration.title': '累積セッションスパン {value}',
652
- 'usage.summary.totalDuration': '総期間',
653
- 'usage.summary.totalDuration.title': '全体の時間スパン {value}',
654
- 'usage.summary.activeDays': 'アクティブ日数',
655
- 'usage.summary.avgMessagesPerSession': 'セッションあたり平均メッセージ',
656
- 'usage.summary.busiestDay': '最も忙しい日',
657
- 'usage.summary.busiestHour': 'ピーク時間帯',
658
- 'usage.currentSession.title': '現在のセッション',
659
- 'usage.currentSession.apiDuration': 'API 時間',
660
- 'usage.currentSession.totalDuration': '総時間',
661
- 'usage.currentSession.tokens': 'Token',
662
- 'usage.range.kicker.all': 'すべて',
663
- 'usage.range.kicker.30d': '直近 30 日',
664
- 'usage.range.kicker.7d': '直近 7 日',
665
- 'usage.copyTokenDay': 'コピー済:Token({day})',
666
- 'usage.copyCostDay': 'コピー済:推定費用({day})',
667
- 'usage.dayDetail.title': '{day} 詳細',
668
- 'usage.dayDetail.subtitle': '日付を選択すると当日の構成をすばやく確認できます。',
669
- 'usage.dayDetail.pick': '日付を選択',
670
- 'usage.dayDetail.empty': '日付を選択して当日の構成を確認してください。',
671
- 'usage.dayDetail.clear': 'クリア',
672
- 'usage.dayDetail.topSessions': 'トップセッション',
673
- 'usage.dayDetail.topModels': 'トップモデル',
674
- 'usage.models.title': '使用モデル',
675
- 'usage.models.subtitle': '実際に記録されたモデル名のみを表示します。',
676
- 'usage.models.kicker': '識別済 {modeled}/{total}',
677
- 'usage.models.count': 'モデル数',
678
- 'usage.models.coverage': 'セッションカバレッジ',
679
- 'usage.models.missing': 'モデル欠落',
680
- 'usage.models.noneTitle': '現在の範囲でモデル名が読み取れません',
681
- 'usage.models.noneBody': '{total} セッションをスキャンしましたが、元のレコードに識別可能な model フィールドがありません。',
682
- 'usage.models.providerOnly': 'うち {count} 件の古いセッションは provider のみ記録されています。',
683
- 'usage.models.missingNote.providerOnly': '別途 {count} 件のセッションにモデル名がなく、一覧に含まれていません。',
684
- 'usage.models.missingNote': '別途 {count} 件のセッションに model がなく、一覧に含まれていません。',
685
- 'usage.models.missingListTitle': 'まだモデル名が欠落しているセッション',
686
- 'usage.models.chipTitle': '{model} · {sessions} セッション · {messages} メッセージ{tokens}',
687
- 'usage.models.meta': '{sessions} セッション · {messages} メッセージ{tokens}',
688
- 'usage.weekday.title': '曜日分布',
689
- 'usage.paths.title': '高頻度パス',
690
- 'usage.paths.empty': 'パスデータがありません',
691
- 'usage.paths.count': '{count} 回',
692
- 'usage.paths.meta': '{messages} メッセージ{recent}',
693
- 'usage.paths.recent': ' · 最近 {label}',
694
- 'usage.recent.title': '最近アクティブなセッション',
695
- 'usage.sessions.empty': 'セッションデータがありません',
696
- 'usage.sessions.messages': '{count} メッセージ',
697
- 'usage.sessions.topDensity': 'メッセージ密度最高',
698
-
699
- // Config panel (Codex)
700
- 'config.addProvider': 'プロバイダー追加',
701
- 'toolConfig.allow': '書き込み許可',
702
- 'toolConfig.viewOnly': '読み取り専用',
703
- 'toolConfig.enableWrite': '書き込みを有効化',
704
- 'toolConfig.allowToast': '書き込みを有効化しました',
705
- 'toolConfig.viewOnlyToast': '読み取り専用に戻しました',
706
- 'toolConfig.saveFailed': '書き込み設定の保存に失敗しました',
707
- 'toolConfig.confirmTitle': '書き込み権限を有効化',
708
- 'toolConfig.confirmAllow': '書き込みを有効化',
709
- 'toolConfig.codex.title': 'Codex プロバイダー書き込み',
710
- 'toolConfig.codex.desc': '既定では Codex プロバイダーを読み取り専用で表示します。有効化した場合のみ ~/.codex 設定を書き込みます。',
711
- 'toolConfig.codex.lockedTitle': 'Codex プロバイダーは読み取り専用です',
712
- 'toolConfig.codex.lockedDesc': 'Codex アカウント設定には書き込みません。追加・切替・編集・削除するには、このタブの書き込みを有効化してください。',
713
- 'toolConfig.codex.confirmMessage': '有効化すると、Codex タブ内のプロバイダー操作が ~/.codex/config.toml、認証、モデル関連設定を書き込みます。',
714
- 'toolConfig.claude.title': 'Claude プロバイダー書き込み',
715
- 'toolConfig.claude.desc': '既定では Claude プロバイダーを読み取り専用で表示します。有効化した場合のみ Claude settings に書き込みます。',
716
- 'toolConfig.claude.lockedTitle': 'Claude プロバイダーは読み取り専用です',
717
- 'toolConfig.claude.lockedDesc': 'Claude 設定には書き込みません。追加・適用・編集・削除するには、このタブの書き込みを有効化してください。',
718
- 'toolConfig.claude.confirmMessage': '有効化すると、Claude タブ内の適用操作が ~/.claude/settings.json などの Claude 設定を書き込みます。',
719
- 'config.providerTemplate.title': 'プリセットプロバイダー',
720
- 'config.models': 'モデル',
721
- 'config.modelLoading': '読み込み中...',
722
- 'config.models.unlimited': '現在モデル一覧がありません。手動入力可能です。',
723
- 'config.models.error': 'モデル一覧の取得に失敗しました。手動入力可能です。',
724
- 'config.models.notInList.codex': '現在のモデルは一覧にありません。手動入力またはテンプレート変更が可能です。',
725
- 'config.models.notInList.other': '現在のモデルは一覧にありません。手動入力可能です。',
726
- 'config.template.editFirst': '先にテンプレートを編集してから適用してください。',
727
- 'config.template.bridgeCodexOnly': '{hint} テンプレートは Codex のみ編集可能です。',
728
- 'config.localBridge.enabledCount': '{enabled}/{total} 件有効',
729
- 'config.template.openEditor': 'テンプレートエディタを開く',
730
- 'modal.configTemplate.title': 'Config テンプレートエディタ(手動確認適用)',
731
- 'modal.configTemplate.placeholder': 'ここに config.toml テンプレート内容を編集してください',
732
- 'config.serviceTier': 'サービスティア',
733
- 'config.serviceTier.fast': 'fast(デフォルト)',
734
- 'config.serviceTier.standard': 'standard',
735
- 'config.serviceTier.hint': 'fast のみ {field} に書き込みます。',
736
- 'config.reasoningEffort': '推論強度',
737
- 'config.reasoningEffort.medium': 'medium(デフォルト)',
738
- 'config.reasoningEffort.hint': '推論の深さを制御します。high はより深く推論します。',
739
- 'config.contextBudget': '圧縮閾値',
740
- 'config.reset': 'リセット',
741
- 'config.example': '例: {value}',
742
- 'config.contextWindow.hint': 'コンテキスト上限、デフォルト 190000。',
743
- 'config.autoCompact.hint': '自動圧縮閾値、デフォルト 185000。',
744
- 'config.agents.open': 'AGENTS.md を開く',
745
- 'modal.agents.title.default': 'AGENTS.md エディタ',
746
- 'modal.agents.title.claudeMd': 'CLAUDE.md エディタ',
747
- 'modal.agents.title.openclaw': 'OpenClaw AGENTS.md エディタ',
748
- 'modal.agents.hint.default': '保存すると対象の AGENTS.md(config.toml と同階層)に書き込まれます。',
749
- 'modal.agents.hint.claudeMd': '保存すると ~/.claude/CLAUDE.md に書き込まれます。',
750
- 'modal.agents.contentLabel.claudeMd': 'CLAUDE.md 内容',
751
- 'modal.agents.placeholder.claudeMd': 'ここに CLAUDE.md の内容を編集してください',
752
- 'modal.agents.hint.openclaw': '保存すると OpenClaw Workspace の AGENTS.md に書き込まれます。',
753
- 'modal.agents.title.openclawWorkspaceFile': 'OpenClaw ワークスペースファイル: {fileName}',
754
- 'modal.agents.hint.openclawWorkspaceFile': '保存すると OpenClaw Workspace の {fileName} に書き込まれます。',
755
- 'config.url.unset': 'URL 未設定',
756
- 'config.model.unset': 'モデル未設定',
757
- 'config.badge.system': 'システム',
758
- 'config.availabilityTest': '可用性テスト',
759
- 'config.availabilityTestAria': '{name} の可用性をテスト',
760
- 'config.health.title': '設定ヘルスチェック',
761
- 'config.health.run': 'チェック実行',
762
- 'config.health.running': 'チェック中...',
763
- 'config.health.hint': 'すべてのプロバイダーの可用性を一括プローブし、遅延表示を更新します。',
764
- 'config.health.progress': '完了 {done}/{total} · 失敗 {failed}',
765
- 'config.health.ok': 'チェック通過',
766
- 'config.health.fail': 'チェック失敗',
767
- 'config.health.issues': '{count} 件の問題',
768
- 'config.shareCommand': 'コマンド共有',
769
- 'config.shareDisabled': '共有不可',
770
- 'config.shareCommand.aria': 'インポートコマンドを共有',
771
- 'config.provider.edit.aria': 'プロバイダーを編集:{name}',
772
- 'config.provider.delete.aria': 'プロバイダーを削除:{name}',
773
- 'config.provider.clone': 'クローン',
774
- 'config.provider.clone.aria': 'プロバイダーをクローン:{name}',
775
- 'app.loadingConfig': '設定読み込み中...',
776
- 'common.current': '現在 {value}',
777
- 'common.notSelected': '未選択',
778
- 'common.readFromEditor': 'エディタから読み取り',
779
- 'common.writeToEditor': 'エディタに書き込み',
780
- 'sessions.sourceLabel': 'ソース:{value}',
781
- 'usage.rangeLabel': '範囲:{value}',
782
- 'sessions.source.all': 'すべて',
783
- 'usage.range.all': 'すべて',
784
- 'usage.range.7d.short': '直近 7 日',
785
- 'usage.range.30d.short': '直近 30 日',
786
- 'orchestration.queueStats': 'キュー {running} 実行中 · {queued} 待機中',
787
- 'orchestration.hero.kicker': 'タスクオーケストレーション',
788
- 'orchestration.hero.title': '要件を実行可能なステップに分解',
789
- 'orchestration.hero.subtitle': '最初に目標を書き、計画をプレビューし、実行します。',
790
- 'orchestration.draft.reset': '下書きをリセット',
791
- 'orchestration.summary.aria': 'タスクオーケストレーション概要',
792
- 'orchestration.summary.running': '実行中',
793
- 'orchestration.summary.queued': '待機中',
794
- 'orchestration.summary.runs': '実行記録',
795
- 'orchestration.readiness.target.label': 'ターゲット',
796
- 'orchestration.readiness.target.done': 'ターゲット入力済み',
797
- 'orchestration.readiness.target.missing': 'ターゲット未入力',
798
- 'orchestration.readiness.engine.label': '実行方針',
799
- 'orchestration.readiness.engine.codex': 'Codex でノードを計画',
800
- 'orchestration.readiness.workflow.done': '{count} 件の Workflow を選択済み',
801
- 'orchestration.readiness.workflow.missing': 'Workflow ID が未選択',
802
- 'orchestration.readiness.scope.label': '範囲',
803
- 'orchestration.readiness.scope.done': '補足説明あり',
804
- 'orchestration.readiness.scope.writeHint': '書き込み前に補足説明を追加してください',
805
- 'orchestration.readiness.scope.readonlyHint': '読み取り専用なので試行できます',
806
- 'orchestration.readiness.preview.label': 'プレビュー',
807
- 'orchestration.readiness.preview.missing': '計画は未生成',
808
- 'orchestration.readiness.preview.blocked': '{count} 件のブロッカー',
809
- 'orchestration.readiness.preview.ready': '計画利用可能、{count} ノード',
810
- 'orchestration.readiness.empty.title': 'まずターゲットを入力',
811
- 'orchestration.readiness.empty.summary': '達成したい結果を明確にしてから、オーケストレーターにノード分解させます。',
812
- 'orchestration.readiness.workflow.title': 'Workflow が不足',
813
- 'orchestration.readiness.workflow.summary': 'Workflow モードが選択されていますが、再利用する Workflow がまだ指定されていません。',
814
- 'orchestration.readiness.preview.title': '先にプレビュー推奨',
815
- 'orchestration.readiness.preview.summary': '下書きはできています。先に計画を生成し、ノードと依存関係を確認してください。',
816
- 'orchestration.readiness.blocked.title': 'プレビューにブロッカーあり',
817
- 'orchestration.readiness.blocked.summary': '現在の計画にはまだ {count} 件のブロッカーがあります。先に処理してください。',
818
- 'orchestration.readiness.warn.title': '実行可能ですが警告あり',
819
- 'orchestration.readiness.warn.summary': '計画は生成済みですが、先に確認すべき警告が {count} 件あります。',
820
- 'orchestration.readiness.dryRun.title': 'ドライラン向き',
821
- 'orchestration.readiness.dryRun.summary': 'まずドライランで安全に実行し、結果を見てから本実行を判断できます。',
822
- 'orchestration.readiness.ready.title': '実行可能',
823
- 'orchestration.readiness.ready.withFollowUps': '主目標とフォローアップがそろっています。直接実行またはキュー投入できます。',
824
- 'orchestration.readiness.ready.summary': '主目標は十分に明確です。直接実行またはキュー投入できます。',
825
- 'orchestration.step1.title': '最初に結果を明確に書く',
826
- 'orchestration.step1.subtitle': '実行に影響する内容だけを書いてください。',
827
- 'orchestration.templates.title': 'クイックサンプル',
828
- 'orchestration.templates.reviewFix.label': 'レビュー修正 + 回帰',
829
- 'orchestration.templates.reviewFix.target': '現在の PR レビューを修正',
830
- 'orchestration.templates.reviewFix.notes': '結論を統一して出力し、重複した説明を避ける',
831
- 'orchestration.templates.reviewFix.followUps': '新しいレビューコメントを引き続き処理\n最後に PR サマリーを更新',
832
- 'orchestration.templates.planOnly.label': '計画のみ',
833
- 'orchestration.templates.planOnly.target': '計画を生成するだけ',
834
- 'orchestration.templates.planOnly.notes': '結論を統一して出力し、重複した説明を避ける',
835
- 'orchestration.templates.workflowBatch.label': 'Workflow 批处理',
836
- 'orchestration.templates.workflowBatch.target': 'Workflow 一括実行',
837
- 'orchestration.templates.workflowBatch.workflowIds': 'review-fix\nregression-test',
838
- 'orchestration.templates.workflowBatch.notes': 'Workflow で固定チェックを実行し、結果を整理する',
839
- 'orchestration.fields.target': 'ターゲット',
840
- 'orchestration.fields.target.placeholder': '例: /path/to/project',
841
- 'orchestration.fields.target.hint': '作業ディレクトリまたはファイルパス。',
842
- 'orchestration.engine.codex': 'Codex',
843
- 'orchestration.engine.workflow': 'Workflow',
844
- 'orchestration.runMode.write': '書き込み',
845
- 'orchestration.runMode.readOnly': '読み取り専用',
846
- 'orchestration.runMode.dryRun': 'ドライラン',
847
- 'orchestration.pills.hasTitle': 'タイトルあり',
848
- 'orchestration.pills.workflowCount': 'Workflow {count}',
849
- 'orchestration.pills.planNodes': '計画 {count} ノード',
850
- 'orchestration.step2.title': '計画をプレビュー',
851
- 'orchestration.step2.subtitle': 'AI が生成した計画を確認・調整します。',
852
- 'orchestration.fields.engine': 'エンジン',
853
- 'orchestration.fields.runMode': '実行モード',
854
- 'orchestration.advanced.title': '詳細設定',
855
- 'orchestration.fields.title': 'タイトル',
856
- 'orchestration.fields.title.placeholder': '例: PR #42 のレビュー指摘を修正',
857
- 'orchestration.fields.notes': '説明',
858
- 'orchestration.fields.notes.placeholder': '例:既存アーキテクチャを書き換えず、増分実装のみ行う',
859
- 'orchestration.fields.notes.hint': '境界条件、禁止事項、スタイル要件、検証要件を補足してください。',
860
- 'orchestration.fields.followUps': '後続アクション(1行1件)',
861
- 'orchestration.fields.followUps.placeholder': '例:\nレビューコメントの続きを処理\n最後に回帰テストを実行',
862
- 'orchestration.fields.concurrency': '並列度',
863
- 'orchestration.fields.concurrency.hint': '複雑なタスクは 1~2 から始めると安定します。',
864
- 'orchestration.fields.autoFixRounds': '自動修正',
865
- 'orchestration.fields.autoFixRounds.hint': '失敗後に自動で再試行する回数。',
866
- 'orchestration.fields.workflowIds': 'Workflow ID(1行1件)',
867
- 'orchestration.fields.workflowIds.placeholder': '例:\nreview-fix\nregression-test',
868
- 'orchestration.fields.workflowIds.hint': 'Workflow エンジン使用時に必須。',
869
- 'orchestration.workflow.stepCount': '{count} ステップ',
870
- 'orchestration.step3.title': '実行して確認',
871
- 'orchestration.step3.subtitle': '計画を実行し、結果を確認します。',
872
- 'orchestration.actions.planning': '計画中...',
873
- 'orchestration.actions.previewOnly': 'プレビューのみ',
874
- 'orchestration.actions.preparing': '準備中...',
875
- 'orchestration.actions.generatePlan': '計画を生成',
876
- 'orchestration.actions.planAndRun': '計画して実行',
877
- 'orchestration.actions.processing': '処理中...',
878
- 'orchestration.actions.queueAndStart': 'キューに入れて開始',
879
- 'orchestration.actions.caption': '「計画して実行」は必要に応じて計画を自動更新します。バッチタスクは「キューに入れて開始」を使用してください。',
880
- 'orchestration.stage.title': 'タスクステージ',
881
- 'orchestration.stage.subtitle': '3ステップでタスクを完了:計画 → プレビュー → 実行。',
882
- 'orchestration.stage.pill.target': 'ターゲット',
883
- 'orchestration.stage.pill.preview': 'プレビュー',
884
- 'orchestration.stage.pill.run': '実行',
885
- 'orchestration.plan.title': '計画',
886
- 'orchestration.plan.subtitle': 'AI が生成した実行計画。各ノードは1つのステップを表します。',
887
- 'orchestration.plan.summary.nodes': 'ノード数',
888
- 'orchestration.plan.summary.waves': '波数',
889
- 'orchestration.plan.summary.engine': 'エンジン',
890
- 'orchestration.plan.node.write': '書き込み',
891
- 'orchestration.plan.node.readOnly': '読み取り専用',
892
- 'orchestration.labels.dependencies': '依存',
893
- 'orchestration.labels.error': 'エラー',
894
- 'orchestration.workbench.title': 'タスクワークベンチ',
895
- 'orchestration.workbench.subtitle': 'タスクの計画・キュー・実行・振り返り。',
896
- 'orchestration.queue.start': '開始',
897
- 'orchestration.queue.starting': '開始中...',
898
- 'orchestration.workbench.tabs.aria': 'タスクタブ',
899
- 'orchestration.workbench.tabs.queue': 'キュー {count}',
900
- 'orchestration.workbench.tabs.runs': '実行記録 {count}',
901
- 'orchestration.workbench.tabs.detail': '詳細',
902
- 'orchestration.queue.empty.title': 'キューは空です',
903
- 'orchestration.queue.empty.subtitle': 'キューにタスクがありません。',
904
- 'orchestration.runs.empty.title': '実行記録なし',
905
- 'orchestration.runs.empty.subtitle': 'まだ実行記録がありません。',
906
- 'orchestration.detail.refresh': '詳細を更新',
907
- 'orchestration.detail.retry': '再試行',
908
- 'orchestration.detail.retrying': '再試行中...',
909
- 'orchestration.detail.empty.title': '実行記録を選択して詳細を表示',
910
- 'orchestration.detail.empty.subtitle': 'ここにノードの状態、サマリー、ログが表示されます。',
911
- 'orchestration.detail.summary.status': '状態',
912
- 'orchestration.detail.summary.duration': '所要時間',
913
- 'orchestration.detail.summary.nodes': 'ノード数',
914
- 'orchestration.detail.summary.summary': 'サマリー',
915
- 'orchestration.detail.node.meta': '{id} · 試行 {attempts} · 自動修正 {autoFix}',
916
- 'skills.localLabel': '{target} / ローカル Skills',
917
- 'skills.counts': 'インストール済 {installed} · インポート可 {importable}',
918
-
919
- // Sidebar status labels (compact)
920
- 'status.currentSource': '現在のソース',
921
- 'status.sessionCount': 'セッション数',
922
- 'status.range': '統計範囲',
923
- 'status.totalSessions': '総セッション数',
924
- 'status.totalMessages': '総メッセージ数',
925
- 'status.engine': 'エンジン',
926
- 'status.concurrency': '並列度',
927
- 'status.running': '実行中',
928
- 'status.queued': '待機中',
929
- 'status.runs': '履歴実行',
930
- 'status.currentTarget': '現在のターゲット',
931
- 'status.localSkills': 'ローカル Skills',
932
- 'status.importable': 'インポート可',
933
- 'status.importableDirect': '直接インポート可',
934
- 'status.pm': 'パッケージマネージャー',
935
- 'status.action': '現在の操作',
936
- 'status.registry': 'ミラー',
937
- 'status.claudeConfig': 'Claude 設定',
938
- 'status.claudeModel': 'Claude モデル',
939
- 'status.openclawConfig': 'OpenClaw 設定',
940
- 'status.workspaceFile': 'ワークスペースファイル',
941
- 'status.configMode': '設定モード',
942
- 'status.currentProvider': '現在の Provider',
943
- 'status.currentModel': '現在のモデル',
944
- 'status.quickSwitchProvider': 'プロバイダーをクイック切替',
945
- 'side.usage.meta': 'ローカル統計 / トレンド',
946
- 'side.orchestration.meta': '計画 / キュー / 実行',
947
-
948
- // Settings panel
949
- 'settings.tab.general': '一般',
950
- 'settings.tab.data': 'データ',
951
- 'settings.tabs.aria': '設定カテゴリ',
952
- 'settings.quickSettings.title': 'クイック設定',
953
- 'settings.language.sideLabel': '言語:{language}',
954
- 'settings.language.title': '言語',
955
- 'settings.language.meta': 'Web UI の表示言語を選択',
956
- 'settings.language.label': 'インターフェース言語',
957
- 'settings.language.hint': '言語設定はこのブラウザに保存されます。',
958
- 'settings.sharePrefix.title': '共有コマンドプレフィックス',
959
- 'settings.sharePrefix.meta': 'Web UI の「共有コマンドをコピー」のプレフィックスに影響',
960
- 'settings.sharePrefix.label': 'プレフィックス',
961
- 'settings.sharePrefix.hint': 'デフォルトはプロジェクト内の npm start を使用します。グローバル codexmate に切り替えることもできます。この設定はブラウザローカルにキャッシュされます。',
962
- 'settings.backup.title': 'データバックアップ',
963
- 'settings.backup.meta': 'Claude と Codex 設定のエクスポート / インポート',
964
- 'settings.claude.title': 'Claude 設定',
965
- 'settings.claude.meta': '~/.claude のバックアップ / インポート',
966
- 'settings.codex.title': 'Codex 設定',
967
- 'settings.codex.meta': '~/.codex のバックアップ / インポート',
968
- 'settings.backup.progress': 'バックアップ中 {percent}%',
969
- 'settings.backup.oneClickClaude': '~/.claude をワンクリックバックアップ',
970
- 'settings.backup.importClaude': '~/.claude バックアップをインポート',
971
- 'settings.backup.oneClickCodex': '~/.codex をワンクリックバックアップ',
972
- 'settings.backup.importCodex': '~/.codex バックアップをインポート',
973
- 'settings.importing': 'インポート中...',
974
-
975
- 'settings.trashConfig.title': 'ゴミ箱設定',
976
- 'settings.trashConfig.meta': 'ゴミ箱の有効/無効と自動クリーンアップ日数',
977
- 'settings.deleteBehavior.title': 'セッション削除動作',
978
- 'settings.deleteBehavior.meta': '「削除」を先にゴミ箱に入れるかどうかを決定',
979
- 'settings.deleteBehavior.toggle': 'セッション削除時に先にゴミ箱に移動',
980
- 'settings.deleteBehavior.hint': 'デフォルトで有効。オフにすると、セッション閲覧での削除は直接完全削除され、ゴミ箱に入りません。',
981
-
982
- 'settings.trash.title': 'ゴミ箱',
983
- 'settings.trash.meta': '削除済みセッション(復元/完全削除可能)',
984
- 'settings.trash.refresh': 'リストを更新',
985
- 'settings.trash.refreshing': '更新中...',
986
- 'settings.trash.clear': 'ゴミ箱を空にする',
987
- 'settings.trash.clearing': 'クリア中...',
988
- 'settings.trash.loading': 'ゴミ箱を読み込み中...',
989
- 'settings.trash.empty': 'ゴミ箱は空です',
990
- 'settings.trash.emptyHint': '保持期間 {days} 日以内の削除済みセッションはありません。',
991
- 'settings.trash.retry': 'ゴミ箱リストの読み込みに失敗しました。更新して再試行してください',
992
- 'settings.trash.restore': '復元',
993
- 'settings.trash.restoring': '復元中...',
994
- 'settings.trash.purge': '完全に削除',
995
- 'settings.trash.purging': '削除中...',
996
- 'settings.trash.workspace': 'ワークスペース',
997
- 'settings.trash.originalFile': '元ファイル',
998
- 'settings.trash.loadMore': 'さらに読み込む(残り {count} 件)',
999
- 'settings.trash.retention': '自動クリーンアップ',
1000
- 'settings.trash.retentionMeta': '保持日数を超えたゴミ箱レコードは自動的に削除されます',
1001
- 'settings.trash.retentionLabel': '保持日数',
1002
- 'settings.trash.retentionUnit': '日',
1003
- 'settings.trash.retentionHint': '範囲 1-365 日、デフォルト 30 日。ゴミ箱読み込み時に期限切れレコードを自動クリーンアップします。',
1004
-
1005
- 'settings.webhook.title': 'Webhook',
1006
- 'settings.webhook.meta': 'イベント通知を外部サービスへ送信',
1007
- 'settings.webhook.enabled': '有効',
1008
- 'settings.webhook.disabled': '無効',
1009
- 'settings.webhook.enable': '有効化',
1010
- 'settings.webhook.edit': '編集',
1011
- 'settings.webhook.configure': '設定',
1012
- 'settings.webhook.modalTitle': 'Webhook 設定',
1013
- 'settings.webhook.enabledLabel': '状態',
1014
- 'settings.webhook.enableToggle': 'Webhook を有効化',
1015
- 'settings.webhook.urlLabel': 'Webhook URL',
1016
- 'settings.webhook.eventsLabel': 'イベント',
1017
- 'settings.templateConfirm.title': '設定テンプレートの二次確認',
1018
- 'settings.templateConfirm.meta': '誤書き込みリスクを低減',
1019
- 'settings.templateConfirm.toggle': 'テンプレート適用前に差分をプレビュー(2段階:確認 → 適用)',
1020
- 'settings.templateConfirm.hint': '有効時:先に差分プレビューを表示し、確認後に書き込みます。',
1021
-
1022
- 'settings.reset.title': '設定リセット',
1023
- 'settings.reset.meta': '注意して操作してください',
1024
- 'settings.reset.hint': '先に config.toml をバックアップし、デフォルト設定を書き込みます。',
1025
- 'settings.reset.button': '設定を再インストール',
1026
- 'settings.reset.loading': '再インストール中...',
1027
-
1028
- // Market (Skills)
1029
- 'market.title': 'Skills 概要',
1030
- 'market.subtitle': 'ターゲットを切り替えてローカル Skills を表示。',
1031
- 'market.refresh': '概要を更新',
1032
- 'market.refreshing': '更新中...',
1033
- 'market.openManager': 'Skills 管理を開く',
1034
- 'market.target.aria': 'Skills インストールターゲットを選択',
1035
- 'market.summary.target': 'インストールターゲット',
1036
- 'market.summary.total': 'ローカル総数',
1037
- 'market.summary.configured': 'SKILL.md あり',
1038
- 'market.summary.missing': 'SKILL.md なし',
1039
- 'market.summary.importable': 'インポート可',
1040
- 'market.summary.importableDirect': '直接インポート可',
1041
- 'market.root.fallback': 'デフォルトディレクトリ',
1042
-
1043
- 'market.installed.title': 'インストール済 Skills',
1044
- 'market.installed.note': '上位 6 項目のみ表示。',
1045
- 'market.local.refresh': 'ローカルを更新',
1046
- 'market.local.refreshing': '更新中...',
1047
- 'market.local.loading': 'ローカル Skills 読み込み中...',
1048
- 'market.local.empty': '現在インストール済の skill はありません。',
1049
- 'market.pill.verified': '検証済',
1050
- 'market.pill.missingSkill': 'SKILL.md 要追加',
1051
-
1052
- 'market.import.title': 'インポート可能ソース',
1053
- 'market.import.note': 'スキャンして現在の {target} にインポートします。',
1054
- 'market.import.scan': 'ソースをスキャン',
1055
- 'market.import.scanning': 'スキャン中...',
1056
- 'market.import.loading': 'インポート可能 skill をスキャン中...',
1057
- 'market.import.empty': 'インポート可能な skill がスキャンされませんでした。',
1058
- 'market.pill.importableDirect': '直接インポート可',
1059
- 'market.pill.importMissing': 'SKILL.md なし',
1060
-
1061
- 'market.actions.title': '配布エントリ',
1062
- 'market.actions.note': '操作はすべて現在のインストールターゲットに適用されます。',
1063
- 'market.action.manage.title': 'ローカル Skills 管理',
1064
- 'market.action.manage.copy': '現在の {target} のインストール済 skills を管理',
1065
- 'market.action.crossImport.title': 'クロスアプリインポート',
1066
- 'market.action.crossImport.copy': '現在の {target} にインポート',
1067
- 'market.action.zipImport.title': 'ZIP インポート',
1068
- 'market.action.zipImport.copy': 'ZIP から現在のターゲットにインポート',
1069
-
1070
- 'market.help.title': '操作説明',
1071
- 'market.help.target.title': 'ターゲット切替',
1072
- 'market.help.target.copy': '現在の操作は {target} ディレクトリに書き込まれます。',
1073
- 'market.help.crossImport.title': 'クロスアプリインポート',
1074
- 'market.help.crossImport.copy': '他のホストから未管理の skill をインポートします。',
1075
- 'market.help.zipImport.title': 'ZIP インポート',
1076
- 'market.help.zipImport.copy': 'ZIP からローカル skill をインポートします。',
1077
-
1078
- // Claude config panel
1079
- 'claude.addProvider': 'プロバイダー追加',
1080
- 'claude.applyDefault': 'デフォルトで ~/.claude/settings.json に適用されます。',
1081
- 'claude.presetProviders': 'プリセットプロバイダー',
1082
- 'claude.customConfig': 'カスタム設定',
1083
- 'claude.model': 'モデル',
1084
- 'claude.model.placeholder': '例: claude-3-7-sonnet',
1085
- 'claude.model.hint': 'モデル変更後は自動保存され、現在の設定に適用されます。',
1086
- 'claude.health.title': '設定ヘルスチェック',
1087
- 'claude.health.run': 'チェック実行',
1088
- 'claude.health.running': 'チェック中...',
1089
- 'claude.health.hint': 'すべての Claude 設定の可用性を一括プローブし、遅延表示を更新します。',
1090
- 'claude.health.progress': '完了 {done}/{total} · 失敗 {failed}',
1091
- 'claude.md.title': 'CLAUDE.md',
1092
- 'claude.md.open': 'CLAUDE.md を開く',
1093
- 'claude.md.hint': '~/.claude/CLAUDE.md の読み書き。',
1094
- 'claude.model.unset': 'モデル未設定',
1095
- 'claude.configured': '設定済み',
1096
- 'claude.notConfigured': '未設定',
1097
- 'claude.action.edit': '編集',
1098
- 'claude.action.delete': '削除',
1099
- 'claude.action.shareDisabled': 'インポートコマンド共有',
1100
- 'claude.action.editAria': 'Claude 設定を編集:{name}',
1101
- 'claude.action.deleteAria': 'Claude 設定を削除:{name}',
1102
- 'claude.action.clone': 'クローン',
1103
- 'claude.action.cloneAria': 'Claude 設定をクローン:{name}',
1104
- 'claude.localBridge.poolTitle': 'ラウンドロビンプール',
1105
- 'claude.localBridge.poolHint': '負荷分散に参加するプロバイダを選択',
1106
- 'claude.localBridge.noProviders': '利用可能なプロバイダがありません。まずプロバイダを追加してください。',
1107
- 'claude.localBridge.disabled': '無効',
1108
- 'claude.localBridge.enabled': '有効',
1109
-
1110
- // OpenClaw config panel
1111
- 'openclaw.applyHint': '~/.openclaw/openclaw.json に書き込みます。JSON5 対応。',
1112
- 'openclaw.agents.hint': 'Workspace の AGENTS.md を読み書きします。デフォルトパス ~/.openclaw/workspace/AGENTS.md。',
1113
- 'openclaw.agents.open': 'AGENTS.md を開く',
1114
- 'openclaw.workspaceFile': 'ワークスペースファイル',
1115
- 'openclaw.workspace.placeholder': '例: SOUL.md',
1116
- 'openclaw.workspace.hint': 'Workspace 内の .md ファイルのみ。',
1117
- 'openclaw.workspace.open': 'ワークスペースファイルを開く',
1118
- 'openclaw.configured': '設定済み',
1119
- 'openclaw.notConfigured': '未設定',
1120
- 'openclaw.action.edit': '編集',
1121
- 'openclaw.action.delete': '削除',
1122
- 'modal.openclaw.quick.subtitle': '3ステップで完了:Provider とモデルを入力、エディタに書き込み、保存して適用。',
1123
- 'modal.openclaw.quick.step2': 'エディタに書き込みをクリック',
1124
- 'modal.openclaw.structured.writeHint': 'エディタに書き込むと JSON が再配置され、コメントが失われる可能性があります。',
1125
- 'openclaw.action.applyAria': 'OpenClaw 設定を適用:{name}',
1126
- 'openclaw.action.editAria': 'OpenClaw 設定を編集:{name}',
1127
- 'openclaw.action.deleteAria': 'OpenClaw 設定を削除:{name}',
1128
- });
1129
-
1130
- export { ja };
1
+ const ja = Object.freeze({
2
+
3
+ // Global
4
+ 'lang.zh': '中国語',
5
+ 'lang.en': 'English',
6
+ 'lang.vi': 'ベトナム語',
7
+ 'lang.label': '言語',
8
+ 'nav.topTabs.aria': 'ナビゲーション',
9
+
10
+ // Common
11
+ 'common.all': 'すべて',
12
+ 'common.copy': 'コピー',
13
+ 'common.paste': 'ペースト',
14
+ 'common.edit': '編集',
15
+ 'common.install': 'インストール',
16
+ 'common.update': 'アップグレード',
17
+ 'common.uninstall': 'アンインストール',
18
+ 'common.official': '公式',
19
+ 'common.custom': 'カスタム',
20
+ 'common.rules': 'ルール',
21
+ 'common.troubleshooting': 'トラブルシューティング',
22
+ 'common.command': 'コマンド',
23
+ 'common.mirror': 'ミラー',
24
+ 'common.packageManager': 'パッケージマネージャー',
25
+ 'common.action': '操作',
26
+ 'common.targets': 'ターゲット数',
27
+ 'common.currentPm': '現在のパッケージマネージャー',
28
+ 'common.currentAction': '現在の操作',
29
+ 'common.mirrorActive': 'ミラー有効',
30
+ 'common.defaultOfficial': '公式デフォルト',
31
+ 'common.cancel': 'キャンセル',
32
+ 'common.confirm': '確認',
33
+ 'common.add': '追加',
34
+ 'common.save': '保存',
35
+ 'common.saveApply': '保存して適用',
36
+ 'common.close': '閉じる',
37
+ 'common.delete': '削除',
38
+ 'common.clear': 'クリア',
39
+ 'common.show': '表示',
40
+ 'common.hide': '非表示',
41
+ 'common.detail': '詳細',
42
+ 'common.refresh': '更新',
43
+ 'common.refreshing': '更新中...',
44
+ 'common.loading': '読み込み中...',
45
+ 'common.saving': '保存中...',
46
+ 'common.sending': '送信中...',
47
+ 'common.scanning': 'スキャン中...',
48
+ 'common.export': 'エクスポート',
49
+ 'common.import': 'インポート',
50
+ 'common.apply': '適用',
51
+ 'common.applying': '適用中...',
52
+ 'common.confirming': '確認中...',
53
+ 'common.refreshFromText': 'テキストから更新',
54
+ 'common.backToEdit': '編集に戻る',
55
+ 'common.selectAll': 'すべて選択',
56
+ 'common.unselectAll': '選択解除',
57
+ 'common.resetFilters': 'フィルターをリセット',
58
+ 'common.notEditable': '編集不可',
59
+ 'common.notDeletable': '削除不可',
60
+ 'common.notLoaded': '未読み込み',
61
+ 'common.exists': '存在します',
62
+ 'common.notExistsWillCreateOnApply': '存在しません。適用時に作成されます',
63
+ 'common.notExistsWillCreateOnSave': '存在しません。保存時に作成されます',
64
+ 'common.none': 'なし',
65
+ 'cli.missing.title': '{name} CLI がインストールされていません',
66
+ 'cli.missing.subtitle': '{name} CLI をインストールしてからこのページをご利用ください。',
67
+ 'cli.missing.openDocs': 'インストールガイドを開く',
68
+ 'cli.missing.commandAria': '{name} CLI インストールコマンド',
69
+
70
+ // Brand
71
+ 'brand.kicker.workspace': 'ワークスペース',
72
+ 'brand.subtitle.localConfigSessionsWorkspace': 'ローカル設定とセッションワークスペース',
73
+
74
+ // Confirm dialog
75
+ 'confirm.aria': '操作確認',
76
+ 'confirm.title.default': '操作を確認してください',
77
+ 'confirm.ok': '確認',
78
+ 'confirm.cancel': 'キャンセル',
79
+
80
+ // Shared fields
81
+ 'field.name': '名前',
82
+ 'field.configName': '設定名',
83
+ 'field.apiEndpoint': 'API エンドポイント',
84
+ 'field.apiKey': '認証キー',
85
+ 'field.baseUrl': 'Base URL',
86
+ 'field.provider': 'プロバイダー',
87
+ 'field.providerName': 'プロバイダー名',
88
+ 'field.modelName': 'モデル名',
89
+ 'field.model': 'モデル',
90
+ 'field.message': 'メッセージ',
91
+ 'field.varName': '変数名',
92
+ 'field.targetFile': '対象ファイル',
93
+ 'field.modelId': 'モデル ID',
94
+ 'field.displayName': '表示名',
95
+ 'field.contextAndMaxOutput': 'コンテキストと最大出力',
96
+ 'field.apiType': 'API タイプ',
97
+ 'field.env': '環境変数',
98
+ 'field.allow': '許可',
99
+ 'field.deny': '拒否',
100
+
101
+ // Shared placeholders/hints
102
+ 'placeholder.providerNameExample': '例: myapi',
103
+ 'placeholder.apiEndpointExample': 'https://api.example.com/v1',
104
+ 'placeholder.providerName': 'プロバイダー名',
105
+ 'placeholder.keepUnchanged': '空白のままにすると変更されません',
106
+ 'hint.keepKeyUnchanged': '空白のままにするとキーは変更されません',
107
+ 'placeholder.modelExample': '例: gpt-5',
108
+ 'placeholder.configNameExample': '例: 智譜GLM',
109
+ 'placeholder.apiKeyExampleClaude': 'sk-ant-...',
110
+ 'placeholder.baseUrlExampleClaude': 'https://open.bigmodel.cn/api/anthropic',
111
+ 'placeholder.selectProvider': 'プロバイダーを選択してください',
112
+
113
+ // Roles / labels
114
+ 'role.you': 'あなた',
115
+ 'role.provider': 'プロバイダー',
116
+ 'label.model': 'モデル:',
117
+
118
+ // Top tabs
119
+ 'tab.dashboard': '概要',
120
+ 'tab.docs': 'ドキュメント',
121
+ 'tab.config': '設定',
122
+ 'tab.config.codex': 'Codex',
123
+ 'tab.config.claude': 'Claude',
124
+ 'tab.config.openclaw': 'OpenClaw',
125
+ 'tab.sessions': 'セッション',
126
+ 'tab.usage': '使用量',
127
+ 'tab.orchestration': 'タスク',
128
+ 'tab.market': 'Skills',
129
+ 'tab.plugins': 'プラグイン',
130
+ 'tab.settings': '設定',
131
+
132
+ // Side rail section titles
133
+ 'side.overview': '概要',
134
+ 'side.docs': 'ドキュメント',
135
+ 'side.config': '設定',
136
+ 'side.sessions': 'セッション',
137
+ 'side.plugins': 'プラグイン',
138
+ 'side.system': 'システム',
139
+ 'side.orchestration': 'タスク',
140
+ 'side.skills': 'Skills',
141
+
142
+ // Side rail items
143
+ 'side.overview.doctor': 'Doctor パネル',
144
+ 'side.overview.doctor.meta': '概要 / 診断 / ジャンプ',
145
+ 'side.docs.cliInstall': 'CLI インストール',
146
+ 'side.docs.cliInstall.meta': 'インストール / 更新 / 削除',
147
+ 'side.config.codex': 'Codex',
148
+ 'side.config.codex.meta': 'Provider / Model',
149
+ 'side.config.claude': 'Claude Code',
150
+ 'side.config.claude.meta': 'Claude Settings',
151
+ 'side.config.openclaw': 'OpenClaw',
152
+ 'side.config.openclaw.meta': 'JSON5 / AGENTS',
153
+ 'side.sessions.browser': 'セッション閲覧',
154
+ 'side.sessions.browser.meta': '閲覧 / エクスポート / クリーンアップ',
155
+ 'side.plugins.tools': 'プロンプトツール',
156
+ 'side.plugins.tools.meta': 'テンプレート / 変数',
157
+ 'side.plugins.templatesCount': '{count} 件のテンプレート',
158
+ 'side.system.settings': '実行設定',
159
+ 'side.system.settings.meta': 'データ / バックアップ',
160
+ 'side.newTab': '新規タブ',
161
+
162
+ // Header titles
163
+ 'kicker.dashboard': 'Doctor',
164
+ 'kicker.config': 'Configuration',
165
+ 'kicker.sessions': 'Sessions',
166
+ 'kicker.usage': 'Usage',
167
+ 'kicker.orchestration': 'Tasks',
168
+ 'kicker.market': 'Skills',
169
+ 'kicker.plugins': 'Plugins',
170
+ 'kicker.docs': 'Docs',
171
+ 'kicker.trash': 'ゴミ箱',
172
+ 'kicker.settings': 'Settings',
173
+
174
+ 'title.dashboard': 'Dashboard / Doctor',
175
+ 'title.config': 'ローカル設定コンソール',
176
+ 'title.sessions': 'セッションとエクスポート',
177
+ 'title.usage': 'ローカル使用量と推移',
178
+ 'title.orchestration': 'タスクオーケストレーション',
179
+ 'title.market': 'Skills インストールと同期',
180
+ 'title.plugins': 'プラグインとテンプレート',
181
+ 'title.docs': 'CLI インストールとドキュメント',
182
+ 'title.settings': 'システムとデータ設定',
183
+
184
+ 'subtitle.dashboard': '集約状態と診断エントリ。',
185
+ 'subtitle.config': 'ローカル設定とモデルの管理。',
186
+ 'subtitle.sessions': 'セッションの閲覧とエクスポート。',
187
+ 'subtitle.usage': '過去 7 / 30 日間の使用量を表示。',
188
+ 'subtitle.orchestration': 'ローカルタスクの計画・キュー・実行・振り返り。',
189
+ 'subtitle.market': 'ローカル Skills の管理。',
190
+ 'subtitle.plugins': 'テンプレート化されたプロンプトと再利用可能なプラグインの管理。',
191
+ 'subtitle.docs': 'CLI インストールコマンドとトラブルシューティング。',
192
+ 'subtitle.settings': 'ダウンロード・ディレクトリ・ゴミ箱の管理。',
193
+
194
+ 'dashboard.doctor.title': 'Doctor',
195
+ 'dashboard.doctor.runChecks': 'チェックを実行',
196
+ 'dashboard.doctor.checking': 'チェック中...',
197
+ 'dashboard.doctor.export': 'レポートをエクスポート',
198
+ 'dashboard.doctor.export.json': 'JSON エクスポート',
199
+ 'dashboard.doctor.export.md': 'Markdown エクスポート',
200
+ 'dashboard.doctor.open': '開く',
201
+ 'doctor.action.openConfig': 'Config を開く',
202
+ 'doctor.action.checkProvider': 'Provider 設定をチェック',
203
+ 'doctor.action.openUsage': 'Usage を開く',
204
+ 'doctor.action.openSessions': 'Sessions を開く',
205
+ 'doctor.action.openTasks': 'Tasks を開く',
206
+ 'doctor.action.viewTaskLogs': 'Tasks / Logs を表示',
207
+ 'doctor.action.openSkills': 'Skills を開く',
208
+ 'doctor.issue.configNotReady.problem': '設定ファイルが準備できていません',
209
+ 'doctor.issue.configNotReady.impact': 'provider/model が読み取れず、モデル一覧とリクエストが利用できなくなる可能性があります。',
210
+ 'doctor.issue.providerUnreachable.problem.remote-model-probe-unreachable': 'Provider に到達できません',
211
+ 'doctor.issue.providerUnreachable.problem.remote-model-probe-auth-failed': 'Provider 認証失敗',
212
+ 'doctor.issue.providerUnreachable.problem.remote-model-probe-not-found': 'Provider が 404 を返しました',
213
+ 'doctor.issue.providerUnreachable.problem.remote-model-probe-http-error': 'Provider が HTTP エラーを返しました',
214
+ 'doctor.issue.providerUnreachable.problem.remote-model-probe-error': 'Provider プローブ失敗',
215
+ 'doctor.issue.providerUnreachable.problem.unknown': 'Provider が利用できません',
216
+ 'doctor.issue.providerUnreachable.impactAuth': '認証失敗によりモデル一覧/会話リクエストが 401/403 を返します。',
217
+ 'doctor.issue.providerUnreachable.impactNetwork': 'リモートに到達できないためモデル一覧/会話リクエストが失敗またはタイムアウトします。',
218
+ 'doctor.issue.configHealthFailed.problem': '設定ヘルスチェックが失敗しました',
219
+ 'doctor.issue.configHealthFailed.impact': '一部の機能が利用できなかったり、期待通りの動作をしない可能性があります。',
220
+ 'doctor.issue.usageError.problem': 'Usage 統計異常',
221
+ 'doctor.issue.usageError.impact': 'Usage ページでトレンド/サマリーが表示できず、Doctor の使用量診断も欠落します。',
222
+ 'doctor.issue.usageMissingModel.problem': '一部のセッションにモデル情報がありません',
223
+ 'doctor.issue.usageMissingModel.impact': '使用量の帰属とコスト見積もりが不正確になります。',
224
+ 'doctor.issue.tasksError.problem': 'Tasks 状態の読み取りに失敗しました',
225
+ 'doctor.issue.tasksError.impact': 'オーケストレーションキュー/実行記録が表示できなくなる可能性があります。',
226
+ 'doctor.issue.tasksFailed.problem': '失敗したタスク実行があります',
227
+ 'doctor.issue.tasksFailed.impact': '自動化パイプラインが中断される可能性があります。ログを確認して再試行または入力を修正してください。',
228
+ 'doctor.issue.skillsError.problem': 'Skills 一覧の読み取りに失敗しました',
229
+ 'doctor.issue.skillsError.impact': 'Skills ページが正常に表示またはインストールできなくなります。',
230
+ 'doctor.issue.skillsRootMissing.problem': 'Skills ディレクトリが存在しません',
231
+ 'doctor.issue.skillsRootMissing.impact': 'Skills のインストール/スキャンが空になります。Settings/Docs でガイドに従ってディレクトリを初期化してください。',
232
+ 'doctor.issue.skillsMissingFiles.problem': 'skill.json が欠落しているスキルがあります',
233
+ 'doctor.issue.skillsMissingFiles.impact': '一部のスキルが実行または同期できなくなります。',
234
+ 'dashboard.card.config': '設定',
235
+ 'dashboard.card.sessions': 'セッション',
236
+ 'dashboard.card.usage': '使用量',
237
+ 'dashboard.card.tasks': 'タスク',
238
+ 'dashboard.card.skills': 'Skills',
239
+ 'dashboard.kv.model': 'モデル',
240
+ 'dashboard.kv.issue': '異常',
241
+ 'dashboard.kv.active': '現在',
242
+ 'dashboard.kv.sessions': 'セッション数',
243
+ 'dashboard.kv.missingModel': 'モデル欠落',
244
+ 'dashboard.kv.blockers': 'ブロッカー',
245
+ 'dashboard.kv.runs': '実行',
246
+ 'dashboard.kv.target': 'ターゲット',
247
+ 'dashboard.kv.root': 'ディレクトリ',
248
+ 'dashboard.status.health': '健全',
249
+ 'dashboard.status.busy': 'ビジー',
250
+ 'dashboard.status.models': 'モデル',
251
+ 'dashboard.busy.init': '初期化',
252
+ 'dashboard.busy.sessions': 'セッション読み込み',
253
+ 'dashboard.busy.models': 'モデル読み込み',
254
+ 'dashboard.busy.configApply': '設定適用',
255
+ 'dashboard.busy.agents': 'AGENTS 保存',
256
+ 'dashboard.busy.skills': 'Skills 管理',
257
+ 'dashboard.busy.tasks': 'タスクオーケストレーション',
258
+ 'dashboard.busy.idle': 'アイドル',
259
+ 'dashboard.message.none': 'メッセージなし',
260
+ 'dashboard.sessionSource.codex': 'Codex',
261
+ 'dashboard.sessionSource.claude': 'Claude Code',
262
+ 'dashboard.sessionSource.gemini': 'Gemini CLI',
263
+ 'dashboard.sessionSource.codebuddy': 'CodeBuddy Code',
264
+ 'dashboard.sessionSource.all': 'すべて',
265
+ 'dashboard.sessionPath.all': 'すべてのパス',
266
+ 'dashboard.sessionQuery.unsupported': '現在のソースは非対応',
267
+ 'dashboard.sessionQuery.unset': '未設定',
268
+ 'dashboard.healthStatus.failRead': '読み取り失敗',
269
+ 'dashboard.healthStatus.initializing': '初期化中',
270
+ 'dashboard.healthStatus.ok': '正常',
271
+ 'dashboard.modelStatus.loading': '読み込み中',
272
+ 'dashboard.modelStatus.error': '読み込みエラー',
273
+ 'dashboard.modelStatus.ok': '正常',
274
+ 'dashboard.health.ok': 'チェック通過',
275
+ 'dashboard.health.fail': 'チェック失敗',
276
+ 'dashboard.health.issues': '{count} 件の問題',
277
+ 'dashboard.issues.title': '{count} 件の対応可能な問題が見つかりました',
278
+ 'dashboard.state.loading': '読み込み中',
279
+ 'dashboard.state.ready': '準備完了',
280
+ 'dashboard.state.idle': '未読み込み',
281
+ 'dashboard.none': 'なし',
282
+ 'dashboard.sessions.count': '{count} 件のセッション',
283
+ 'dashboard.usage.range': '範囲 {value}',
284
+ 'dashboard.tasks.queue': '実行 {running} / キュー {queued}',
285
+ 'dashboard.skills.count': 'インストール済 {installed} / インポート可 {importable}',
286
+ 'dashboard.providersHealth.title': 'Provider 健全性',
287
+ 'dashboard.providersHealth.current': '(現在)',
288
+ 'dashboard.providersHealth.checking': 'チェック中...',
289
+ 'dashboard.providersHealth.allOk': 'すべての Provider が正常',
290
+ 'dashboard.providersHealth.hasIssues': '{count} 件の Provider に問題あり',
291
+
292
+ // Plugins panel
293
+ 'plugins.sidebar.title': 'Plugins',
294
+ 'plugins.sidebar.note': '再利用可能な標準化ツール。将来のカスタムプラグインも同じ構造に従います。',
295
+ 'plugins.sidebar.ariaList': 'プラグイン一覧',
296
+ 'plugins.catalog.promptTemplates.title': 'プロンプトテンプレート',
297
+ 'plugins.catalog.promptTemplates.description': '変数、コピー、エクスポートに対応した標準化テンプレート型プロンプトツール。',
298
+ 'plugins.status.standard': '標準',
299
+ 'plugins.main.ariaWorkspace': 'プラグインワークスペース',
300
+ 'plugins.refresh': '更新',
301
+ 'plugins.refreshing': '更新中...',
302
+ 'plugins.promptTemplates.title': 'プロンプトテンプレート',
303
+ 'plugins.promptTemplates.subtitle': '内蔵:コードコメントのブラッシュアップ({{code}})。コピーして入力欄に貼り付けてください。',
304
+ 'plugins.promptTemplates.mode.aria': 'プロンプトテンプレートモード',
305
+ 'plugins.promptTemplates.mode.compose': '生成',
306
+ 'plugins.promptTemplates.mode.manage': '管理',
307
+ 'plugins.promptTemplates.compose.selectTemplate': 'テンプレートを選択',
308
+ 'plugins.promptTemplates.compose.chooseTemplate': 'テンプレートを選択',
309
+ 'plugins.promptTemplates.compose.chooseTemplateHint': 'テンプレートを選択して生成を開始してください。',
310
+ 'plugins.promptTemplates.compose.builtinSuffix': '(内蔵)',
311
+ 'plugins.promptTemplates.compose.empty': '利用可能なテンプレートがありません。',
312
+ 'plugins.promptTemplates.compose.varsHint': '変数の入力と追加は「管理」で行ってください。',
313
+ 'plugins.promptTemplates.compose.missingCount': '{count} 項目未入力',
314
+ 'plugins.promptTemplates.compose.jumpToMissing': '未入力にジャンプ',
315
+ 'plugins.promptTemplates.compose.goManage': '管理で変数を入力',
316
+ 'plugins.promptTemplates.compose.outputTitle': '生成結果',
317
+ 'plugins.promptTemplates.compose.outputHint': '「コピー」をクリックして Codex/Claude の入力欄に貼り付けてください。',
318
+ 'plugins.promptTemplates.compose.outputAria': '生成結果(プロンプト)',
319
+ 'plugins.promptTemplates.compose.copy': 'コピー',
320
+ 'plugins.promptTemplates.manage.searchAria': 'テンプレート検索',
321
+ 'plugins.promptTemplates.manage.searchPlaceholder': 'テンプレート検索',
322
+ 'plugins.promptTemplates.manage.create': '新規作成',
323
+ 'plugins.promptTemplates.manage.export': 'エクスポート',
324
+ 'plugins.promptTemplates.manage.import': 'インポート',
325
+ 'plugins.promptTemplates.manage.loading': 'テンプレート読み込み中...',
326
+ 'plugins.promptTemplates.manage.empty': 'テンプレートがありません。',
327
+ 'plugins.promptTemplates.manage.vars': '{count} vars',
328
+ 'plugins.promptTemplates.manage.builtin': 'built-in',
329
+ 'plugins.promptTemplates.manage.custom': 'custom',
330
+ 'plugins.promptTemplates.manage.newTemplateName': '新しいテンプレート',
331
+ 'plugins.promptTemplates.editor.selectHint': '編集するテンプレートを選択してください。',
332
+ 'plugins.promptTemplates.editor.namePlaceholder': 'テンプレート名',
333
+ 'plugins.promptTemplates.editor.nameAria': 'テンプレート名',
334
+ 'plugins.promptTemplates.editor.duplicate': '複製',
335
+ 'plugins.promptTemplates.editor.delete': '削除',
336
+ 'plugins.promptTemplates.editor.save': '保存',
337
+ 'plugins.promptTemplates.editor.builtinReadOnly': '内蔵テンプレートは読み取り専用です。編集/保存/削除/複製はできません。',
338
+ 'plugins.promptTemplates.editor.descPlaceholder': '説明(任意)',
339
+ 'plugins.promptTemplates.editor.descAria': 'テンプレート説明',
340
+ 'plugins.promptTemplates.editor.templateLabel': 'テンプレート',
341
+ 'plugins.promptTemplates.editor.templateAria': 'テンプレート内容',
342
+ 'plugins.promptTemplates.editor.templatePlaceholder': 'ここにテンプレートを記述します。{{var}} プレースホルダーを使用してください。',
343
+ 'plugins.promptTemplates.vars.title': '変数',
344
+ 'plugins.promptTemplates.vars.hint': 'テンプレートから検出されました。入力後に最終プロンプトをレンダリングできます。',
345
+ 'plugins.promptTemplates.vars.reset': 'リセット',
346
+ 'plugins.promptTemplates.vars.empty': '変数が検出されませんでした。',
347
+ 'plugins.promptTemplates.vars.valuePlaceholder': '変数値:{name}',
348
+ 'plugins.promptTemplates.preview.title': 'プレビュー',
349
+ 'plugins.promptTemplates.preview.hint': 'レンダリング結果(欠落変数は空に置換されます)。',
350
+ 'plugins.promptTemplates.preview.copy': 'コピー',
351
+ 'plugins.promptTemplates.preview.outputAria': 'レンダリング結果(プロンプト)',
352
+ 'plugins.promptTemplates.noPluginSelected': '左側からプラグインを選択してください。',
353
+
354
+ 'plugins.meta.attribution': '作成者:{createdBy} · メンテナー:{maintainers}',
355
+ 'plugins.meta.createdBy': '作成者:{createdBy}',
356
+ 'plugins.meta.maintainedBy': 'メンテナー:{maintainers}',
357
+
358
+ // Built-in prompt templates
359
+ 'plugins.builtin.commentPolish.name': 'コードコメントブラッシュアップ',
360
+ 'plugins.builtin.commentPolish.desc': '以下のコードコメントを軽く整えてください {{code}}',
361
+ 'plugins.builtin.commentPolish.line1': '以下のコードコメントを軽く整えてください',
362
+ 'plugins.builtin.ruleAck.name': 'ルール確認返信',
363
+ 'plugins.builtin.ruleAck.desc': '【{{rule}}】に従って、受信確認を返してください',
364
+ 'plugins.builtin.ruleAck.line1': '【{{rule}}】に従って、受信確認を返してください',
365
+
366
+ // Toasts
367
+ 'toast.copy.empty': 'コピーする内容がありません',
368
+ 'toast.copy.ok': 'コピーしました',
369
+ 'toast.copy.fail': 'コピーに失敗しました',
370
+ 'toast.save.ok': '保存しました',
371
+ 'toast.save.fail': '保存に失敗しました',
372
+ 'toast.delete.ok': '削除しました',
373
+ 'toast.delete.fail': '削除に失敗しました',
374
+ 'toast.export.empty': 'エクスポートする内容がありません',
375
+ 'toast.export.ok': 'エクスポートしました',
376
+ 'toast.export.fail': 'エクスポートに失敗しました',
377
+ 'toast.import.ok': 'インポート成功',
378
+ 'toast.import.fail': 'インポート失敗',
379
+ 'toast.import.notAvailable': 'インポートは利用できません',
380
+ 'toast.import.readFileFail': 'ファイル読み取り失敗',
381
+ 'toast.import.invalidJson': '無効な JSON',
382
+ 'toast.import.expectedArray': 'JSON は配列である必要があります',
383
+ 'toast.export.notSupported': '現在エクスポートはサポートされていません',
384
+ 'toast.plugins.loadFail': 'Plugins 読み込み失敗',
385
+ 'toast.templates.builtinNotEditable': '内蔵テンプレートは編集できません',
386
+ 'toast.templates.builtinNotModifiable': '内蔵テンプレートは変更できません。先に複製してから編集してください',
387
+ 'toast.templates.nameRequired': 'テンプレート名は必須です',
388
+ 'toast.templates.builtinNotDuplicable': '内蔵テンプレートは複製できません',
389
+ 'toast.templates.builtinNotDeletable': '内蔵テンプレートは削除できません',
390
+ 'toast.templates.deleteTitle': 'テンプレート削除',
391
+ 'toast.templates.deleteMessage': '「{name}」を削除しますか?この操作は取り消せません。',
392
+ 'toast.templates.deleteConfirm': '削除',
393
+ 'toast.templates.deleteCancel': 'キャンセル',
394
+
395
+ // Basic modals
396
+ 'modal.providerAdd.title': 'プロバイダー追加',
397
+ 'modal.providerEdit.title': 'プロバイダー編集',
398
+ 'modal.modelAdd.title': 'モデル追加',
399
+ 'modal.modelManage.title': 'モデル管理',
400
+ 'modal.claudeConfigAdd.title': 'Claude Code 設定追加',
401
+ 'modal.claudeConfigEdit.title': 'Claude Code 設定編集',
402
+ 'field.useBuiltinTransform': '内蔵変換を使用(OpenAI 形式互換)',
403
+ 'hint.useBuiltinTransform': '有効時:書き込まれる base_url は codexmate 内蔵変換サービスを指します。Codex のトークンは codexmate に固定されます。',
404
+
405
+ // Config template / agents modals
406
+ 'modal.configTemplate.label': 'config.toml テンプレート',
407
+ 'modal.configTemplate.mode.twoStep': '二段階確認:先に差分をプレビューし、その後適用します。',
408
+ 'modal.configTemplate.mode.oneStep': '一段階適用:「適用」をクリックすると直接書き込みます。',
409
+ 'diff.title.configTemplate': '差分プレビュー(config.toml)',
410
+ 'diff.generating': '生成中...',
411
+ 'diff.failed': '生成失敗',
412
+ 'diff.noChanges': '変更が検出されませんでした',
413
+ 'diff.hint.busy': '差分生成中または適用中のため、操作は一時的に利用できません。',
414
+ 'diff.hint.failedBack': '差分プレビューに失敗しました。編集に戻って再試行してください。',
415
+ 'diff.hint.noChangesBack': '変更が検出されませんでした。編集に戻って修正を続けるか、キャンセルして終了してください。',
416
+ 'diff.hint.previewMode': '現在プレビューモードです。「適用」をクリックして書き込むか、「編集に戻る」で修正を続けてください。',
417
+
418
+ 'modal.agents.export': 'エクスポート',
419
+ 'modal.agents.copy': 'コピー',
420
+ 'modal.agents.title': 'AGENTS.md エディタ',
421
+ 'modal.agents.hint': '保存すると対象の AGENTS.md(config.toml と同階層)に書き込まれます。',
422
+ 'modal.agents.targetFile': '対象ファイル',
423
+ 'modal.agents.contentLabel': 'AGENTS.md 内容',
424
+ 'modal.agents.placeholder': 'ここに AGENTS.md の内容を編集してください',
425
+ 'modal.agents.unsaved.previewModeHint': 'プレビューモード:現在の変更はまだ保存されていません。「適用」をクリックするとファイルに書き込まれます。',
426
+ 'modal.agents.unsaved.detectedHint': '未保存の変更が検出されました:ページを閉じるか適用する前に保存してください。',
427
+ 'modal.agents.hint.shortcuts': 'ショートカット:Esc(差分プレビュー時は編集に戻る、編集時はウィンドウを閉じる)。',
428
+ 'modal.agents.hint.twoStepSave': '保存は2段階:「確認」で差分をプレビューし、「適用」で保存します。',
429
+ 'diff.tooLargeSkip': '内容が大きすぎるため、行単位の差分プレビューをスキップしました',
430
+ 'diff.viewHint.preview': '現在プレビューモードです。「適用」で保存するか、「編集に戻る」で修正を続けてください。',
431
+ 'diff.viewHint.truncated': '内容が大きすぎるためプレビューをスキップしました。「適用」で保存するか、「編集に戻る」で修正を続けてください。',
432
+
433
+ // Skills modal
434
+ 'modal.skills.title': 'Skills 管理',
435
+ 'modal.skills.subtitle': '現在のホストのローカル Skills を管理します。',
436
+ 'modal.skills.target.aria': 'Skills 管理ターゲットを選択',
437
+ 'modal.skills.rootDir': 'Skills ディレクトリ({label})',
438
+ 'modal.skills.summary.target': 'インストールターゲット',
439
+ 'modal.skills.summary.total': 'ローカル総数',
440
+ 'modal.skills.summary.withSkill': 'SKILL.md あり',
441
+ 'modal.skills.summary.missingSkill': 'SKILL.md なし',
442
+ 'modal.skills.summary.importable': 'インポート可',
443
+ 'modal.skills.panel.aria': 'Skills 管理パネル',
444
+ 'modal.skills.local.title': 'ローカル Skills',
445
+ 'modal.skills.local.note': '検索・フィルター・一括削除が可能です。',
446
+ 'modal.skills.filter.keywordAria': '名前または説明で skill をフィルター',
447
+ 'modal.skills.filter.keywordPlaceholder': 'ディレクトリ名/表示名/説明で検索',
448
+ 'modal.skills.filter.statusAria': 'SKILL.md 状態で skill をフィルター',
449
+ 'modal.skills.filter.status.all': 'すべての状態',
450
+ 'modal.skills.filter.status.withSkill': 'SKILL.md ありのみ',
451
+ 'modal.skills.filter.status.missingSkill': 'SKILL.md なしのみ',
452
+ 'modal.skills.selection.stats': '選択 {selected}(フィルターヒット {filtered} / {total}、フィルター内選択 {visibleSelected})',
453
+ 'modal.skills.empty.local': '管理可能な skill がありません。',
454
+ 'modal.skills.empty.filtered': '現在のフィルター条件に一致する skill がありません。',
455
+ 'modal.skills.pill.hasSkillFile': 'SKILL.md あり',
456
+ 'modal.skills.pill.missingSkillFile': 'SKILL.md なし',
457
+ 'modal.skills.pill.symlink': 'シンボリックリンク',
458
+ 'modal.skills.pill.dir': 'ディレクトリ',
459
+ 'modal.skills.import.title': 'クロスアプリインポート',
460
+ 'modal.skills.import.note': 'スキャンして現在の {label} にインポートします。',
461
+ 'modal.skills.import.scan': 'インポート可能をスキャン',
462
+ 'modal.skills.import.stats': '選択 {selected} / {total}、SKILL.md あり {configured}、なし {missing}',
463
+ 'modal.skills.import.emptyHint': 'インポート可能な skill がありません。「インポート可能をスキャン」をクリックしてください。',
464
+ 'modal.skills.bulk.title': '一括操作',
465
+ 'modal.skills.bulk.note': '右側はインポート操作、左側はローカル選択です。',
466
+ 'modal.skills.actions.zipImport': 'ZIP インポート',
467
+ 'modal.skills.actions.zipImporting': 'ZIP インポート中...',
468
+ 'modal.skills.actions.exportSelected': '選択をエクスポート',
469
+ 'modal.skills.actions.exporting': 'エクスポート中...',
470
+ 'modal.skills.actions.importSelected': '選択をインポート',
471
+ 'modal.skills.actions.importing': 'インポート中...',
472
+ 'modal.skills.actions.deleteSelected': '選択を削除',
473
+ 'modal.skills.actions.deleting': '削除中...',
474
+
475
+ // OpenClaw config modal (quick)
476
+ 'placeholder.openclawConfigNameExample': '例: デフォルト設定',
477
+ 'modal.openclaw.loadCurrent': '現在の設定を読み込む',
478
+ 'modal.openclaw.quick.title': '初心者向けクイック設定',
479
+ 'modal.openclaw.quick.readFromEditor': 'エディタから読み取り',
480
+ 'modal.openclaw.quick.step1': 'Provider とモデルを入力',
481
+ 'modal.openclaw.quick.step3': '保存して適用',
482
+ 'modal.openclaw.quick.providerHint': 'provider/model として主モデル識別子に結合されます。',
483
+ 'modal.openclaw.quick.baseUrlHintDefault': 'OpenClaw 内蔵 provider のデフォルト値で補完されています。直接変更可能です。',
484
+ 'modal.openclaw.quick.baseUrlHintReadonly': '外部参照が検出されたため、クイックフォームでは読み取り専用で表示されます。変更するには原文編集を使用してください。',
485
+ 'modal.openclaw.quick.apiKeyHintFromAuth': '現在の値は OpenClaw 外部認証設定から取得されています。変更後「保存して適用」時に対応する auth profile に書き戻されます。',
486
+ 'modal.openclaw.quick.apiKeyHintReadonly': '外部認証または参照が検出されたため、クイックフォームでは読み取り専用で表示されます。変更するには原文編集または対応する認証設定を使用してください。',
487
+ 'modal.openclaw.quick.apiKeyHintKeep': '空白のままにすると既存のキーは上書きされません。',
488
+ 'placeholder.apiTypeExample': '例: openai',
489
+ 'modal.openclaw.quick.modelTitle': 'モデル',
490
+ 'placeholder.modelIdExample': '例: gpt-5',
491
+ 'placeholder.modelNameOptional': 'モデル表示名(任意)',
492
+ 'field.contextWindow': 'コンテキスト長',
493
+ 'field.maxOutput': '最大出力',
494
+ 'hint.emptyNoChange': '空白のままにすると既存の設定は変更されません。',
495
+ 'modal.openclaw.quick.optionsTitle': 'オプション',
496
+ 'modal.openclaw.quick.setPrimary': '主モデルに設定',
497
+ 'modal.openclaw.quick.overrideProvider': '同名 Provider 基本情報を上書き',
498
+ 'modal.openclaw.quick.overrideModels': '同名モデルリストを上書き',
499
+ 'modal.openclaw.quick.optionsHint': '上書きをオフにすると欠落フィールドのみ補完されます。',
500
+ 'modal.openclaw.quick.writeToEditor': 'エディタに書き込み',
501
+
502
+ // Docs panel
503
+ 'docs.title': 'CLI インストールドキュメント',
504
+ 'docs.subtitle': 'Claude Code / Gemini CLI / CodeBuddy Code / Codex CLI コマンドを表示。',
505
+ 'docs.section.commands': 'インストールコマンド',
506
+ 'docs.section.commandsNote': 'コマンドは直接コピーできます。',
507
+ 'docs.section.faq': 'よくある質問',
508
+ 'docs.section.faqNote': 'よくある質問は以下をご覧ください。',
509
+ 'docs.command.aria': '{name} コマンド',
510
+ 'docs.registryHintPrefix': 'コマンドに付加:',
511
+ 'docs.registryHintCustom': '完全な URL(http/https 含む)を入力してください。コマンドに自動付加されます。',
512
+ 'docs.registry.tencent': 'Tencent Cloud',
513
+ 'docs.meta.bin': 'bin: {bin}',
514
+ 'docs.termuxLabel': 'Termux',
515
+ 'docs.termuxAria': 'Termux Codex CLI command',
516
+ 'docs.rule.1': 'コマンドは現在のパッケージマネージャー、ミラー、操作に基づいて生成されます。',
517
+ 'docs.rule.2': 'カスタムミラーはインストールとアップグレードにのみ使用されます。',
518
+ 'docs.tip.win.1': 'PowerShell で権限不足(EACCES/EPERM)エラーが発生した場合は、管理者としてインストールコマンドを実行してください。',
519
+ 'docs.tip.win.2': 'インストール後にコマンドが見つからない場合は、ターミナルを再起動して実行:where codex / where claude / where gemini / where codebuddy。',
520
+ 'docs.tip.win.3': '企業ネットワークで制限がある場合は、ミラーソース(npmmirror / Tencent Cloud / カスタム)を切り替えてください。',
521
+ 'docs.tip.unix.1': 'EACCES 権限エラーが発生した場合は、Node グローバルディレクトリの権限を修正してください。sudo npm は推奨しません。',
522
+ 'docs.tip.unix.2': 'インストール後にコマンドが認識されない場合は、ターミナルを再起動して実行:which codex / which claude / which gemini / which codebuddy。',
523
+ 'docs.tip.unix.3': '企業ネットワークで制限がある場合は、ミラーソース(npmmirror / Tencent Cloud / カスタム)を切り替えてください。',
524
+
525
+ // Sessions panel
526
+ 'sessions.loading': 'セッション読み込み中...',
527
+ 'sessions.sourceTitle': 'ソース',
528
+ 'sessions.refresh': '更新',
529
+ 'sessions.refreshing': '更新中...',
530
+ 'sessions.allPaths': 'すべてのパス',
531
+ 'sessions.source.codex': 'Codex',
532
+ 'sessions.source.claudeCode': 'Claude Code',
533
+ 'sessions.source.gemini': 'Gemini',
534
+ 'sessions.source.codebuddy': 'CodeBuddy',
535
+ 'sessions.loadingList': 'セッション一覧を読み込み中...',
536
+ 'sessions.empty': 'セッションがありません',
537
+ 'sessions.unknownTime': '不明な時間',
538
+
539
+
540
+ 'sessions.query.placeholder.enabled': 'セッションを検索...',
541
+ 'sessions.query.placeholder.disabled': '現在のソースでは検索は利用できません',
542
+ 'sessions.pin': 'ピン留め',
543
+ 'sessions.unpin': 'ピン留め解除',
544
+ 'sessions.copyResume': '再開コマンドをコピー',
545
+ 'sessions.preview.refresh': '更新',
546
+ 'sessions.preview.loading': 'プレビュー読み込み中...',
547
+ 'sessions.preview.deleteHard': '直接削除',
548
+ 'sessions.preview.moveToTrash': 'ゴミ箱に移動',
549
+ 'sessions.preview.deleting': '削除中...',
550
+ 'sessions.preview.moving': '移動中...',
551
+ 'sessions.preview.export': 'エクスポート',
552
+ 'sessions.preview.exporting': 'エクスポート中...',
553
+ 'sessions.preview.convert': '派生セッションを生成',
554
+ 'sessions.preview.converting': '変換中...',
555
+ 'sessions.preview.convert.loadedOnly': '読み込み済みのみ変換',
556
+ 'sessions.preview.openStandalone': 'スタンドアロンで開く',
557
+ 'sessions.preview.loadingBody': 'メッセージ読み込み中...',
558
+ 'sessions.preview.emptyMsgs': 'メッセージがありません',
559
+ 'sessions.preview.rendering': 'レンダリング中...',
560
+ 'sessions.preview.rerender': '再レンダリング',
561
+ 'sessions.preview.preparing': '準備中...',
562
+ 'sessions.preview.clipped': 'プレビューは一部のみ表示されています',
563
+ 'sessions.preview.shownCount': '{shown} / {total} 件表示',
564
+ 'sessions.preview.loadMore': 'さらに読み込む',
565
+ 'sessions.preview.loadingMore': 'さらに読み込み中...',
566
+ 'sessions.timeline.aria': 'セッションタイムライン',
567
+ 'sessions.selectHint': '左側からセッションを選択してください',
568
+ 'sessions.role.all': 'すべてのロール',
569
+ 'sessions.role.user': 'ユーザー',
570
+ 'sessions.role.assistant': 'アシスタント',
571
+ 'sessions.role.system': 'システム',
572
+ 'sessions.time.all': 'すべての期間',
573
+ 'sessions.time.7d': '直近 7 日',
574
+ 'sessions.time.30d': '直近 30 日',
575
+ 'sessions.time.90d': '直近 90 日',
576
+ 'sessions.sort.time': '時間順',
577
+ 'sessions.sort.hot': '話題順',
578
+ 'sessions.sort.hotBadge': '話題',
579
+ 'sessions.filters.copyLink': 'リンクをコピー',
580
+ 'sessions.filters.urlBuildFail': 'リンク生成失敗',
581
+ 'sessions.filters.source': 'ソース',
582
+ 'sessions.filters.path': 'パス',
583
+ 'sessions.filters.keyword': 'キーワード',
584
+ 'sessions.filters.role': 'ロール',
585
+ 'sessions.filters.time': '期間',
586
+ 'sessions.roleLabel.user': 'User',
587
+ 'sessions.roleLabel.system': 'System',
588
+ 'sessions.roleLabel.assistant': 'Assistant',
589
+
590
+ // Usage panel
591
+ 'usage.overview': 'Usage 概要',
592
+ 'usage.range.aria': 'Usage 時間範囲',
593
+ 'usage.range.7d': '直近 7 日',
594
+ 'usage.range.30d': '直近 30 日',
595
+ 'usage.compare.toggle': '前期間と比較',
596
+ 'usage.compare.prev': '前期間',
597
+ 'usage.compare.delta': '変化',
598
+ 'usage.refresh': '統計を更新',
599
+ 'usage.refreshing': '更新中...',
600
+ 'usage.loading': 'Usage 統計を読み込み中...',
601
+ 'usage.empty': '統計に使用できるセッションデータがありません',
602
+ 'usage.refreshOverlay': '更新中…',
603
+ 'usage.copyTitle': 'クリックでコピー:{value}',
604
+ 'usage.copySuccess': 'コピー済:{label}',
605
+ 'usage.copyFail': 'コピー失敗',
606
+ 'usage.copyNone': 'コピーする内容がありません',
607
+ 'usage.daily.title': '日別消費',
608
+ 'usage.daily.subtitle': '日別 token と推定費用のサマリー(費用はそれぞれ最大値で正規化表示)。',
609
+ 'usage.daily.note': '注:推定費用はデフォルトで Claude を含みません。モデル単価が一致し、セッションが input/output token を記録している場合のみ計算されます。',
610
+ 'usage.heatmap.title': 'ヒートマップ',
611
+ 'usage.heatmap.subtitle': '日別セッション数。色が濃いほど多い。',
612
+ 'usage.heatmap.legend.less': '少',
613
+ 'usage.heatmap.legend.more': '多',
614
+ 'usage.heatmap.tooltip': '{date} · {sessions} セッション · {messages} メッセージ · {tokens} token',
615
+ 'usage.heatmap.aria': '{date}、{sessions} セッション',
616
+ 'usage.hourlyHeatmap.title': '7×24 アクティブヒートマップ',
617
+ 'usage.hourlyHeatmap.subtitle': '曜日 × 時間帯でセッション分布を集計、濃色 = 高アクティブ。',
618
+ 'usage.hourlyHeatmap.tooltip': '{weekday} {hour}:00 · {sessions} セッション · {messages} メッセージ · {tokens} token',
619
+ 'usage.hourlyHeatmap.legend.less': '少',
620
+ 'usage.hourlyHeatmap.legend.more': '多',
621
+ 'usage.legend.tokens': 'Token',
622
+ 'usage.legend.cost': '推定費用',
623
+ 'usage.table.date': '日付',
624
+ 'usage.table.sessions': 'セッション',
625
+ 'usage.table.messages': 'メッセージ',
626
+ 'usage.table.tokens': 'Token',
627
+ 'usage.table.cost': '推定費用',
628
+ 'usage.trend.sessions': 'セッション推移',
629
+ 'usage.trend.messages': 'メッセージ推移',
630
+ 'usage.trend.activeHours': 'アクティブ時間帯',
631
+ 'usage.trend.sources': 'ソースインサイト',
632
+ 'usage.legend.codex': 'Codex',
633
+ 'usage.legend.claude': 'Claude',
634
+ 'usage.trend.sessions.codexTitle': 'Codex {count}',
635
+ 'usage.trend.sessions.claudeTitle': 'Claude {count}',
636
+ 'usage.trend.messages.barTitle': '{count} 件のメッセージ',
637
+ 'usage.hour.title': '{hour}:00 · {count} 回のセッション',
638
+ 'usage.source.row': '{sessions} セッション · {messages} メッセージ · 平均 {avg}',
639
+ 'usage.summary.sessions': '総セッション数',
640
+ 'usage.summary.messages': '総メッセージ数',
641
+ 'usage.summary.tokens': '総 Token 数',
642
+ 'usage.summary.contextWindow': '総コンテキスト数',
643
+ 'usage.summary.estimatedCost': '推定費用 · {range}',
644
+ 'usage.estimatedCost.note.excludesClaudePrefix': '現在 Claude を除く、',
645
+ 'usage.estimatedCost.method.configured': '設定済み単価で推定',
646
+ 'usage.estimatedCost.method.catalog': '公開モデルカタログで推定',
647
+ 'usage.estimatedCost.method.configuredAndCatalog': '設定済み単価 + 公開モデルカタログで推定',
648
+ 'usage.estimatedCost.detail.estimate': '{prefix}{method}、推定 {estimate}、カバー {covered}/{total} セッション、約 {percent}% token',
649
+ 'usage.estimatedCost.detail.missing': '{prefix}一致するモデル単価または token 分割がありません。先に models.cost を補完するか、セッションが input/output token を記録しているか確認してください。',
650
+ 'usage.summary.activeDuration': 'アクティブ期間',
651
+ 'usage.summary.activeDuration.title': '累積セッションスパン {value}',
652
+ 'usage.summary.totalDuration': '総期間',
653
+ 'usage.summary.totalDuration.title': '全体の時間スパン {value}',
654
+ 'usage.summary.activeDays': 'アクティブ日数',
655
+ 'usage.summary.avgMessagesPerSession': 'セッションあたり平均メッセージ',
656
+ 'usage.summary.busiestDay': '最も忙しい日',
657
+ 'usage.summary.busiestHour': 'ピーク時間帯',
658
+ 'usage.currentSession.title': '現在のセッション',
659
+ 'usage.currentSession.apiDuration': 'API 時間',
660
+ 'usage.currentSession.totalDuration': '総時間',
661
+ 'usage.currentSession.tokens': 'Token',
662
+ 'usage.range.kicker.all': 'すべて',
663
+ 'usage.range.kicker.30d': '直近 30 日',
664
+ 'usage.range.kicker.7d': '直近 7 日',
665
+ 'usage.copyTokenDay': 'コピー済:Token({day})',
666
+ 'usage.copyCostDay': 'コピー済:推定費用({day})',
667
+ 'usage.dayDetail.title': '{day} 詳細',
668
+ 'usage.dayDetail.subtitle': '日付を選択すると当日の構成をすばやく確認できます。',
669
+ 'usage.dayDetail.pick': '日付を選択',
670
+ 'usage.dayDetail.empty': '日付を選択して当日の構成を確認してください。',
671
+ 'usage.dayDetail.clear': 'クリア',
672
+ 'usage.dayDetail.topSessions': 'トップセッション',
673
+ 'usage.dayDetail.topModels': 'トップモデル',
674
+ 'usage.models.title': '使用モデル',
675
+ 'usage.models.subtitle': '実際に記録されたモデル名のみを表示します。',
676
+ 'usage.models.kicker': '識別済 {modeled}/{total}',
677
+ 'usage.models.count': 'モデル数',
678
+ 'usage.models.coverage': 'セッションカバレッジ',
679
+ 'usage.models.missing': 'モデル欠落',
680
+ 'usage.models.noneTitle': '現在の範囲でモデル名が読み取れません',
681
+ 'usage.models.noneBody': '{total} セッションをスキャンしましたが、元のレコードに識別可能な model フィールドがありません。',
682
+ 'usage.models.providerOnly': 'うち {count} 件の古いセッションは provider のみ記録されています。',
683
+ 'usage.models.missingNote.providerOnly': '別途 {count} 件のセッションにモデル名がなく、一覧に含まれていません。',
684
+ 'usage.models.missingNote': '別途 {count} 件のセッションに model がなく、一覧に含まれていません。',
685
+ 'usage.models.missingListTitle': 'まだモデル名が欠落しているセッション',
686
+ 'usage.models.chipTitle': '{model} · {sessions} セッション · {messages} メッセージ{tokens}',
687
+ 'usage.models.meta': '{sessions} セッション · {messages} メッセージ{tokens}',
688
+ 'usage.weekday.title': '曜日分布',
689
+ 'usage.paths.title': '高頻度パス',
690
+ 'usage.paths.empty': 'パスデータがありません',
691
+ 'usage.paths.count': '{count} 回',
692
+ 'usage.paths.meta': '{messages} メッセージ{recent}',
693
+ 'usage.paths.recent': ' · 最近 {label}',
694
+ 'usage.recent.title': '最近アクティブなセッション',
695
+ 'usage.sessions.empty': 'セッションデータがありません',
696
+ 'usage.sessions.messages': '{count} メッセージ',
697
+ 'usage.sessions.topDensity': 'メッセージ密度最高',
698
+
699
+ // Config panel (Codex)
700
+ 'config.addProvider': 'プロバイダー追加',
701
+ 'toolConfig.allow': '書き込み許可',
702
+ 'toolConfig.viewOnly': '読み取り専用',
703
+ 'toolConfig.enableWrite': '書き込みを有効化',
704
+ 'toolConfig.allowToast': '書き込みを有効化しました',
705
+ 'toolConfig.viewOnlyToast': '読み取り専用に戻しました',
706
+ 'toolConfig.saveFailed': '書き込み設定の保存に失敗しました',
707
+ 'toolConfig.confirmTitle': '書き込み権限を有効化',
708
+ 'toolConfig.confirmAllow': '書き込みを有効化',
709
+ 'toolConfig.codex.title': 'Codex プロバイダー書き込み',
710
+ 'toolConfig.codex.desc': '既定では Codex プロバイダーを読み取り専用で表示します。有効化した場合のみ ~/.codex 設定を書き込みます。',
711
+ 'toolConfig.codex.lockedTitle': 'Codex プロバイダーは読み取り専用です',
712
+ 'toolConfig.codex.lockedDesc': 'Codex アカウント設定には書き込みません。追加・切替・編集・削除するには、このタブの書き込みを有効化してください。',
713
+ 'toolConfig.codex.confirmMessage': '有効化すると、Codex タブ内のプロバイダー操作が ~/.codex/config.toml、認証、モデル関連設定を書き込みます。',
714
+ 'toolConfig.claude.title': 'Claude プロバイダー書き込み',
715
+ 'toolConfig.claude.desc': '既定では Claude プロバイダーを読み取り専用で表示します。有効化した場合のみ Claude settings に書き込みます。',
716
+ 'toolConfig.claude.lockedTitle': 'Claude プロバイダーは読み取り専用です',
717
+ 'toolConfig.claude.lockedDesc': 'Claude 設定には書き込みません。追加・適用・編集・削除するには、このタブの書き込みを有効化してください。',
718
+ 'toolConfig.claude.confirmMessage': '有効化すると、Claude タブ内の適用操作が ~/.claude/settings.json などの Claude 設定を書き込みます。',
719
+ 'config.providerTemplate.title': 'プリセットプロバイダー',
720
+ 'config.models': 'モデル',
721
+ 'config.modelLoading': '読み込み中...',
722
+ 'config.models.unlimited': '現在モデル一覧がありません。手動入力可能です。',
723
+ 'config.models.error': 'モデル一覧の取得に失敗しました。手動入力可能です。',
724
+ 'config.models.notInList.codex': '現在のモデルは一覧にありません。手動入力またはテンプレート変更が可能です。',
725
+ 'config.models.notInList.other': '現在のモデルは一覧にありません。手動入力可能です。',
726
+ 'config.template.editFirst': '先にテンプレートを編集してから適用してください。',
727
+ 'config.template.bridgeCodexOnly': '{hint} テンプレートは Codex のみ編集可能です。',
728
+ 'config.localBridge.enabledCount': '{enabled}/{total} 件有効',
729
+ 'config.template.openEditor': 'テンプレートエディタを開く',
730
+ 'modal.configTemplate.title': 'Config テンプレートエディタ(手動確認適用)',
731
+ 'modal.configTemplate.placeholder': 'ここに config.toml テンプレート内容を編集してください',
732
+ 'config.serviceTier': 'サービスティア',
733
+ 'config.serviceTier.fast': 'fast(デフォルト)',
734
+ 'config.serviceTier.standard': 'standard',
735
+ 'config.serviceTier.hint': 'fast のみ {field} に書き込みます。',
736
+ 'config.reasoningEffort': '推論強度',
737
+ 'config.reasoningEffort.medium': 'medium(デフォルト)',
738
+ 'config.reasoningEffort.hint': '推論の深さを制御します。high はより深く推論します。',
739
+ 'config.contextBudget': '圧縮閾値',
740
+ 'config.reset': 'リセット',
741
+ 'config.example': '例: {value}',
742
+ 'config.contextWindow.hint': 'コンテキスト上限、デフォルト 190000。',
743
+ 'config.autoCompact.hint': '自動圧縮閾値、デフォルト 185000。',
744
+ 'config.agents.open': 'AGENTS.md を開く',
745
+ 'modal.agents.title.default': 'AGENTS.md エディタ',
746
+ 'modal.agents.title.claudeMd': 'CLAUDE.md エディタ',
747
+ 'modal.agents.title.openclaw': 'OpenClaw AGENTS.md エディタ',
748
+ 'modal.agents.hint.default': '保存すると対象の AGENTS.md(config.toml と同階層)に書き込まれます。',
749
+ 'modal.agents.hint.claudeMd': '保存すると ~/.claude/CLAUDE.md に書き込まれます。',
750
+ 'modal.agents.contentLabel.claudeMd': 'CLAUDE.md 内容',
751
+ 'modal.agents.placeholder.claudeMd': 'ここに CLAUDE.md の内容を編集してください',
752
+ 'modal.agents.hint.openclaw': '保存すると OpenClaw Workspace の AGENTS.md に書き込まれます。',
753
+ 'modal.agents.title.openclawWorkspaceFile': 'OpenClaw ワークスペースファイル: {fileName}',
754
+ 'modal.agents.hint.openclawWorkspaceFile': '保存すると OpenClaw Workspace の {fileName} に書き込まれます。',
755
+ 'config.url.unset': 'URL 未設定',
756
+ 'config.model.unset': 'モデル未設定',
757
+ 'config.badge.system': 'システム',
758
+ 'config.availabilityTest': '可用性テスト',
759
+ 'config.availabilityTestAria': '{name} の可用性をテスト',
760
+ 'config.health.title': '設定ヘルスチェック',
761
+ 'config.health.run': 'チェック実行',
762
+ 'config.health.running': 'チェック中...',
763
+ 'config.health.hint': 'すべてのプロバイダーの可用性を一括プローブし、遅延表示を更新します。',
764
+ 'config.health.progress': '完了 {done}/{total} · 失敗 {failed}',
765
+ 'config.health.ok': 'チェック通過',
766
+ 'config.health.fail': 'チェック失敗',
767
+ 'config.health.issues': '{count} 件の問題',
768
+ 'config.shareCommand': 'コマンド共有',
769
+ 'config.shareDisabled': '共有不可',
770
+ 'config.shareCommand.aria': 'インポートコマンドを共有',
771
+ 'config.provider.edit.aria': 'プロバイダーを編集:{name}',
772
+ 'config.provider.delete.aria': 'プロバイダーを削除:{name}',
773
+ 'config.provider.clone': 'クローン',
774
+ 'config.provider.clone.aria': 'プロバイダーをクローン:{name}',
775
+ 'app.loadingConfig': '設定読み込み中...',
776
+ 'common.current': '現在 {value}',
777
+ 'common.notSelected': '未選択',
778
+ 'common.readFromEditor': 'エディタから読み取り',
779
+ 'common.writeToEditor': 'エディタに書き込み',
780
+ 'sessions.sourceLabel': 'ソース:{value}',
781
+ 'usage.rangeLabel': '範囲:{value}',
782
+ 'sessions.source.all': 'すべて',
783
+ 'usage.range.all': 'すべて',
784
+ 'usage.range.7d.short': '直近 7 日',
785
+ 'usage.range.30d.short': '直近 30 日',
786
+ 'orchestration.queueStats': 'キュー {running} 実行中 · {queued} 待機中',
787
+ 'orchestration.hero.kicker': 'タスクオーケストレーション',
788
+ 'orchestration.hero.title': '要件を実行可能なステップに分解',
789
+ 'orchestration.hero.subtitle': '最初に目標を書き、計画をプレビューし、実行します。',
790
+ 'orchestration.draft.reset': '下書きをリセット',
791
+ 'orchestration.summary.aria': 'タスクオーケストレーション概要',
792
+ 'orchestration.summary.running': '実行中',
793
+ 'orchestration.summary.queued': '待機中',
794
+ 'orchestration.summary.runs': '実行記録',
795
+ 'orchestration.readiness.target.label': 'ターゲット',
796
+ 'orchestration.readiness.target.done': 'ターゲット入力済み',
797
+ 'orchestration.readiness.target.missing': 'ターゲット未入力',
798
+ 'orchestration.readiness.engine.label': '実行方針',
799
+ 'orchestration.readiness.engine.codex': 'Codex でノードを計画',
800
+ 'orchestration.readiness.workflow.done': '{count} 件の Workflow を選択済み',
801
+ 'orchestration.readiness.workflow.missing': 'Workflow ID が未選択',
802
+ 'orchestration.readiness.scope.label': '範囲',
803
+ 'orchestration.readiness.scope.done': '補足説明あり',
804
+ 'orchestration.readiness.scope.writeHint': '書き込み前に補足説明を追加してください',
805
+ 'orchestration.readiness.scope.readonlyHint': '読み取り専用なので試行できます',
806
+ 'orchestration.readiness.preview.label': 'プレビュー',
807
+ 'orchestration.readiness.preview.missing': '計画は未生成',
808
+ 'orchestration.readiness.preview.blocked': '{count} 件のブロッカー',
809
+ 'orchestration.readiness.preview.ready': '計画利用可能、{count} ノード',
810
+ 'orchestration.readiness.empty.title': 'まずターゲットを入力',
811
+ 'orchestration.readiness.empty.summary': '達成したい結果を明確にしてから、オーケストレーターにノード分解させます。',
812
+ 'orchestration.readiness.workflow.title': 'Workflow が不足',
813
+ 'orchestration.readiness.workflow.summary': 'Workflow モードが選択されていますが、再利用する Workflow がまだ指定されていません。',
814
+ 'orchestration.readiness.preview.title': '先にプレビュー推奨',
815
+ 'orchestration.readiness.preview.summary': '下書きはできています。先に計画を生成し、ノードと依存関係を確認してください。',
816
+ 'orchestration.readiness.blocked.title': 'プレビューにブロッカーあり',
817
+ 'orchestration.readiness.blocked.summary': '現在の計画にはまだ {count} 件のブロッカーがあります。先に処理してください。',
818
+ 'orchestration.readiness.warn.title': '実行可能ですが警告あり',
819
+ 'orchestration.readiness.warn.summary': '計画は生成済みですが、先に確認すべき警告が {count} 件あります。',
820
+ 'orchestration.readiness.dryRun.title': 'ドライラン向き',
821
+ 'orchestration.readiness.dryRun.summary': 'まずドライランで安全に実行し、結果を見てから本実行を判断できます。',
822
+ 'orchestration.readiness.ready.title': '実行可能',
823
+ 'orchestration.readiness.ready.withFollowUps': '主目標とフォローアップがそろっています。直接実行またはキュー投入できます。',
824
+ 'orchestration.readiness.ready.summary': '主目標は十分に明確です。直接実行またはキュー投入できます。',
825
+ 'orchestration.step1.title': '最初に結果を明確に書く',
826
+ 'orchestration.step1.subtitle': '実行に影響する内容だけを書いてください。',
827
+ 'orchestration.templates.title': 'クイックサンプル',
828
+ 'orchestration.templates.reviewFix.label': 'レビュー修正 + 回帰',
829
+ 'orchestration.templates.reviewFix.target': '現在の PR レビューを修正',
830
+ 'orchestration.templates.reviewFix.notes': '結論を統一して出力し、重複した説明を避ける',
831
+ 'orchestration.templates.reviewFix.followUps': '新しいレビューコメントを引き続き処理\n最後に PR サマリーを更新',
832
+ 'orchestration.templates.planOnly.label': '計画のみ',
833
+ 'orchestration.templates.planOnly.target': '計画を生成するだけ',
834
+ 'orchestration.templates.planOnly.notes': '結論を統一して出力し、重複した説明を避ける',
835
+ 'orchestration.templates.workflowBatch.label': 'Workflow 批处理',
836
+ 'orchestration.templates.workflowBatch.target': 'Workflow 一括実行',
837
+ 'orchestration.templates.workflowBatch.workflowIds': 'review-fix\nregression-test',
838
+ 'orchestration.templates.workflowBatch.notes': 'Workflow で固定チェックを実行し、結果を整理する',
839
+ 'orchestration.fields.target': 'ターゲット',
840
+ 'orchestration.fields.target.placeholder': '例: /path/to/project',
841
+ 'orchestration.fields.target.hint': '作業ディレクトリまたはファイルパス。',
842
+ 'orchestration.engine.codex': 'Codex',
843
+ 'orchestration.engine.workflow': 'Workflow',
844
+ 'orchestration.runMode.write': '書き込み',
845
+ 'orchestration.runMode.readOnly': '読み取り専用',
846
+ 'orchestration.runMode.dryRun': 'ドライラン',
847
+ 'orchestration.pills.hasTitle': 'タイトルあり',
848
+ 'orchestration.pills.workflowCount': 'Workflow {count}',
849
+ 'orchestration.pills.planNodes': '計画 {count} ノード',
850
+ 'orchestration.step2.title': '計画をプレビュー',
851
+ 'orchestration.step2.subtitle': 'AI が生成した計画を確認・調整します。',
852
+ 'orchestration.fields.engine': 'エンジン',
853
+ 'orchestration.fields.runMode': '実行モード',
854
+ 'orchestration.advanced.title': '詳細設定',
855
+ 'orchestration.fields.title': 'タイトル',
856
+ 'orchestration.fields.title.placeholder': '例: PR #42 のレビュー指摘を修正',
857
+ 'orchestration.fields.notes': '説明',
858
+ 'orchestration.fields.notes.placeholder': '例:既存アーキテクチャを書き換えず、増分実装のみ行う',
859
+ 'orchestration.fields.notes.hint': '境界条件、禁止事項、スタイル要件、検証要件を補足してください。',
860
+ 'orchestration.fields.followUps': '後続アクション(1行1件)',
861
+ 'orchestration.fields.followUps.placeholder': '例:\nレビューコメントの続きを処理\n最後に回帰テストを実行',
862
+ 'orchestration.fields.concurrency': '並列度',
863
+ 'orchestration.fields.concurrency.hint': '複雑なタスクは 1~2 から始めると安定します。',
864
+ 'orchestration.fields.autoFixRounds': '自動修正',
865
+ 'orchestration.fields.autoFixRounds.hint': '失敗後に自動で再試行する回数。',
866
+ 'orchestration.fields.workflowIds': 'Workflow ID(1行1件)',
867
+ 'orchestration.fields.workflowIds.placeholder': '例:\nreview-fix\nregression-test',
868
+ 'orchestration.fields.workflowIds.hint': 'Workflow エンジン使用時に必須。',
869
+ 'orchestration.workflow.stepCount': '{count} ステップ',
870
+ 'orchestration.step3.title': '実行して確認',
871
+ 'orchestration.step3.subtitle': '計画を実行し、結果を確認します。',
872
+ 'orchestration.actions.planning': '計画中...',
873
+ 'orchestration.actions.previewOnly': 'プレビューのみ',
874
+ 'orchestration.actions.preparing': '準備中...',
875
+ 'orchestration.actions.generatePlan': '計画を生成',
876
+ 'orchestration.actions.planAndRun': '計画して実行',
877
+ 'orchestration.actions.processing': '処理中...',
878
+ 'orchestration.actions.queueAndStart': 'キューに入れて開始',
879
+ 'orchestration.actions.caption': '「計画して実行」は必要に応じて計画を自動更新します。バッチタスクは「キューに入れて開始」を使用してください。',
880
+ 'orchestration.stage.title': 'タスクステージ',
881
+ 'orchestration.stage.subtitle': '3ステップでタスクを完了:計画 → プレビュー → 実行。',
882
+ 'orchestration.stage.pill.target': 'ターゲット',
883
+ 'orchestration.stage.pill.preview': 'プレビュー',
884
+ 'orchestration.stage.pill.run': '実行',
885
+ 'orchestration.plan.title': '計画',
886
+ 'orchestration.plan.subtitle': 'AI が生成した実行計画。各ノードは1つのステップを表します。',
887
+ 'orchestration.plan.summary.nodes': 'ノード数',
888
+ 'orchestration.plan.summary.waves': '波数',
889
+ 'orchestration.plan.summary.engine': 'エンジン',
890
+ 'orchestration.plan.node.write': '書き込み',
891
+ 'orchestration.plan.node.readOnly': '読み取り専用',
892
+ 'orchestration.labels.dependencies': '依存',
893
+ 'orchestration.labels.error': 'エラー',
894
+ 'orchestration.workbench.title': 'タスクワークベンチ',
895
+ 'orchestration.workbench.subtitle': 'タスクの計画・キュー・実行・振り返り。',
896
+ 'orchestration.queue.start': '開始',
897
+ 'orchestration.queue.starting': '開始中...',
898
+ 'orchestration.workbench.tabs.aria': 'タスクタブ',
899
+ 'orchestration.workbench.tabs.queue': 'キュー {count}',
900
+ 'orchestration.workbench.tabs.runs': '実行記録 {count}',
901
+ 'orchestration.workbench.tabs.detail': '詳細',
902
+ 'orchestration.queue.empty.title': 'キューは空です',
903
+ 'orchestration.queue.empty.subtitle': 'キューにタスクがありません。',
904
+ 'orchestration.runs.empty.title': '実行記録なし',
905
+ 'orchestration.runs.empty.subtitle': 'まだ実行記録がありません。',
906
+ 'orchestration.detail.refresh': '詳細を更新',
907
+ 'orchestration.detail.retry': '再試行',
908
+ 'orchestration.detail.retrying': '再試行中...',
909
+ 'orchestration.detail.empty.title': '実行記録を選択して詳細を表示',
910
+ 'orchestration.detail.empty.subtitle': 'ここにノードの状態、サマリー、ログが表示されます。',
911
+ 'orchestration.detail.summary.status': '状態',
912
+ 'orchestration.detail.summary.duration': '所要時間',
913
+ 'orchestration.detail.summary.nodes': 'ノード数',
914
+ 'orchestration.detail.summary.summary': 'サマリー',
915
+ 'orchestration.detail.node.meta': '{id} · 試行 {attempts} · 自動修正 {autoFix}',
916
+ 'skills.localLabel': '{target} / ローカル Skills',
917
+ 'skills.counts': 'インストール済 {installed} · インポート可 {importable}',
918
+
919
+ // Sidebar status labels (compact)
920
+ 'status.currentSource': '現在のソース',
921
+ 'status.sessionCount': 'セッション数',
922
+ 'status.range': '統計範囲',
923
+ 'status.totalSessions': '総セッション数',
924
+ 'status.totalMessages': '総メッセージ数',
925
+ 'status.engine': 'エンジン',
926
+ 'status.concurrency': '並列度',
927
+ 'status.running': '実行中',
928
+ 'status.queued': '待機中',
929
+ 'status.runs': '履歴実行',
930
+ 'status.currentTarget': '現在のターゲット',
931
+ 'status.localSkills': 'ローカル Skills',
932
+ 'status.importable': 'インポート可',
933
+ 'status.importableDirect': '直接インポート可',
934
+ 'status.pm': 'パッケージマネージャー',
935
+ 'status.action': '現在の操作',
936
+ 'status.registry': 'ミラー',
937
+ 'status.claudeConfig': 'Claude 設定',
938
+ 'status.claudeModel': 'Claude モデル',
939
+ 'status.openclawConfig': 'OpenClaw 設定',
940
+ 'status.workspaceFile': 'ワークスペースファイル',
941
+ 'status.configMode': '設定モード',
942
+ 'status.currentProvider': '現在の Provider',
943
+ 'status.currentModel': '現在のモデル',
944
+ 'status.quickSwitchProvider': 'プロバイダーをクイック切替',
945
+ 'side.usage.meta': 'ローカル統計 / トレンド',
946
+ 'side.orchestration.meta': '計画 / キュー / 実行',
947
+
948
+ // Settings panel
949
+ 'settings.tab.general': '一般',
950
+ 'settings.tab.data': 'データ',
951
+ 'settings.tabs.aria': '設定カテゴリ',
952
+ 'settings.quickSettings.title': 'クイック設定',
953
+ 'settings.language.sideLabel': '言語:{language}',
954
+ 'settings.language.title': '言語',
955
+ 'settings.language.meta': 'Web UI の表示言語を選択',
956
+ 'settings.language.label': 'インターフェース言語',
957
+ 'settings.language.hint': '言語設定はこのブラウザに保存されます。',
958
+ 'settings.sharePrefix.title': '共有コマンドプレフィックス',
959
+ 'settings.sharePrefix.meta': 'Web UI の「共有コマンドをコピー」のプレフィックスに影響',
960
+ 'settings.sharePrefix.label': 'プレフィックス',
961
+ 'settings.sharePrefix.hint': 'デフォルトはプロジェクト内の npm start を使用します。グローバル codexmate に切り替えることもできます。この設定はブラウザローカルにキャッシュされます。',
962
+ 'settings.backup.title': 'データバックアップ',
963
+ 'settings.backup.meta': 'Claude と Codex 設定のエクスポート / インポート',
964
+ 'settings.claude.title': 'Claude 設定',
965
+ 'settings.claude.meta': '~/.claude のバックアップ / インポート',
966
+ 'settings.codex.title': 'Codex 設定',
967
+ 'settings.codex.meta': '~/.codex のバックアップ / インポート',
968
+ 'settings.backup.progress': 'バックアップ中 {percent}%',
969
+ 'settings.backup.oneClickClaude': '~/.claude をワンクリックバックアップ',
970
+ 'settings.backup.importClaude': '~/.claude バックアップをインポート',
971
+ 'settings.backup.oneClickCodex': '~/.codex をワンクリックバックアップ',
972
+ 'settings.backup.importCodex': '~/.codex バックアップをインポート',
973
+ 'settings.importing': 'インポート中...',
974
+
975
+ 'settings.trashConfig.title': 'ゴミ箱設定',
976
+ 'settings.trashConfig.meta': 'ゴミ箱の有効/無効と自動クリーンアップ日数',
977
+ 'settings.deleteBehavior.title': 'セッション削除動作',
978
+ 'settings.deleteBehavior.meta': '「削除」を先にゴミ箱に入れるかどうかを決定',
979
+ 'settings.deleteBehavior.toggle': 'セッション削除時に先にゴミ箱に移動',
980
+ 'settings.deleteBehavior.hint': 'デフォルトで有効。オフにすると、セッション閲覧での削除は直接完全削除され、ゴミ箱に入りません。',
981
+
982
+ 'settings.trash.title': 'ゴミ箱',
983
+ 'settings.trash.meta': '削除済みセッション(復元/完全削除可能)',
984
+ 'settings.trash.refresh': 'リストを更新',
985
+ 'settings.trash.refreshing': '更新中...',
986
+ 'settings.trash.clear': 'ゴミ箱を空にする',
987
+ 'settings.trash.clearing': 'クリア中...',
988
+ 'settings.trash.loading': 'ゴミ箱を読み込み中...',
989
+ 'settings.trash.empty': 'ゴミ箱は空です',
990
+ 'settings.trash.emptyHint': '保持期間 {days} 日以内の削除済みセッションはありません。',
991
+ 'settings.trash.retry': 'ゴミ箱リストの読み込みに失敗しました。更新して再試行してください',
992
+ 'settings.trash.restore': '復元',
993
+ 'settings.trash.restoring': '復元中...',
994
+ 'settings.trash.purge': '完全に削除',
995
+ 'settings.trash.purging': '削除中...',
996
+ 'settings.trash.workspace': 'ワークスペース',
997
+ 'settings.trash.originalFile': '元ファイル',
998
+ 'settings.trash.loadMore': 'さらに読み込む(残り {count} 件)',
999
+ 'settings.trash.retention': '自動クリーンアップ',
1000
+ 'settings.trash.retentionMeta': '保持日数を超えたゴミ箱レコードは自動的に削除されます',
1001
+ 'settings.trash.retentionLabel': '保持日数',
1002
+ 'settings.trash.retentionUnit': '日',
1003
+ 'settings.trash.retentionHint': '範囲 1-365 日、デフォルト 30 日。ゴミ箱読み込み時に期限切れレコードを自動クリーンアップします。',
1004
+
1005
+ 'settings.webhook.title': 'Webhook',
1006
+ 'settings.webhook.meta': 'イベント通知を外部サービスへ送信',
1007
+ 'settings.webhook.enabled': '有効',
1008
+ 'settings.webhook.disabled': '無効',
1009
+ 'settings.webhook.enable': '有効化',
1010
+ 'settings.webhook.edit': '編集',
1011
+ 'settings.webhook.configure': '設定',
1012
+ 'settings.webhook.modalTitle': 'Webhook 設定',
1013
+ 'settings.webhook.enabledLabel': '状態',
1014
+ 'settings.webhook.enableToggle': 'Webhook を有効化',
1015
+ 'settings.webhook.urlLabel': 'Webhook URL',
1016
+ 'settings.webhook.eventsLabel': 'イベント',
1017
+ 'settings.templateConfirm.title': '設定テンプレートの二次確認',
1018
+ 'settings.templateConfirm.meta': '誤書き込みリスクを低減',
1019
+ 'settings.templateConfirm.toggle': 'テンプレート適用前に差分をプレビュー(2段階:確認 → 適用)',
1020
+ 'settings.templateConfirm.hint': '有効時:先に差分プレビューを表示し、確認後に書き込みます。',
1021
+
1022
+ 'settings.reset.title': '設定リセット',
1023
+ 'settings.reset.meta': '注意して操作してください',
1024
+ 'settings.reset.hint': '先に config.toml をバックアップし、デフォルト設定を書き込みます。',
1025
+ 'settings.reset.button': '設定を再インストール',
1026
+ 'settings.reset.loading': '再インストール中...',
1027
+
1028
+ // Market (Skills)
1029
+ 'market.title': 'Skills 概要',
1030
+ 'market.subtitle': 'ターゲットを切り替えてローカル Skills を表示。',
1031
+ 'market.refresh': '概要を更新',
1032
+ 'market.refreshing': '更新中...',
1033
+ 'market.openManager': 'Skills 管理を開く',
1034
+ 'market.target.aria': 'Skills インストールターゲットを選択',
1035
+ 'market.summary.target': 'インストールターゲット',
1036
+ 'market.summary.total': 'ローカル総数',
1037
+ 'market.summary.configured': 'SKILL.md あり',
1038
+ 'market.summary.missing': 'SKILL.md なし',
1039
+ 'market.summary.importable': 'インポート可',
1040
+ 'market.summary.importableDirect': '直接インポート可',
1041
+ 'market.root.fallback': 'デフォルトディレクトリ',
1042
+
1043
+ 'market.installed.title': 'インストール済 Skills',
1044
+ 'market.installed.note': '上位 6 項目のみ表示。',
1045
+ 'market.local.refresh': 'ローカルを更新',
1046
+ 'market.local.refreshing': '更新中...',
1047
+ 'market.local.loading': 'ローカル Skills 読み込み中...',
1048
+ 'market.local.empty': '現在インストール済の skill はありません。',
1049
+ 'market.pill.verified': '検証済',
1050
+ 'market.pill.missingSkill': 'SKILL.md 要追加',
1051
+
1052
+ 'market.import.title': 'インポート可能ソース',
1053
+ 'market.import.note': 'スキャンして現在の {target} にインポートします。',
1054
+ 'market.import.scan': 'ソースをスキャン',
1055
+ 'market.import.scanning': 'スキャン中...',
1056
+ 'market.import.loading': 'インポート可能 skill をスキャン中...',
1057
+ 'market.import.empty': 'インポート可能な skill がスキャンされませんでした。',
1058
+ 'market.pill.importableDirect': '直接インポート可',
1059
+ 'market.pill.importMissing': 'SKILL.md なし',
1060
+
1061
+ 'market.actions.title': '配布エントリ',
1062
+ 'market.actions.note': '操作はすべて現在のインストールターゲットに適用されます。',
1063
+ 'market.action.manage.title': 'ローカル Skills 管理',
1064
+ 'market.action.manage.copy': '現在の {target} のインストール済 skills を管理',
1065
+ 'market.action.crossImport.title': 'クロスアプリインポート',
1066
+ 'market.action.crossImport.copy': '現在の {target} にインポート',
1067
+ 'market.action.zipImport.title': 'ZIP インポート',
1068
+ 'market.action.zipImport.copy': 'ZIP から現在のターゲットにインポート',
1069
+
1070
+ 'market.help.title': '操作説明',
1071
+ 'market.help.target.title': 'ターゲット切替',
1072
+ 'market.help.target.copy': '現在の操作は {target} ディレクトリに書き込まれます。',
1073
+ 'market.help.crossImport.title': 'クロスアプリインポート',
1074
+ 'market.help.crossImport.copy': '他のホストから未管理の skill をインポートします。',
1075
+ 'market.help.zipImport.title': 'ZIP インポート',
1076
+ 'market.help.zipImport.copy': 'ZIP からローカル skill をインポートします。',
1077
+
1078
+ // Claude config panel
1079
+ 'claude.addProvider': 'プロバイダー追加',
1080
+ 'claude.applyDefault': 'デフォルトで ~/.claude/settings.json に適用されます。',
1081
+ 'claude.presetProviders': 'プリセットプロバイダー',
1082
+ 'claude.customConfig': 'カスタム設定',
1083
+ 'claude.model': 'モデル',
1084
+ 'claude.model.placeholder': '例: claude-3-7-sonnet',
1085
+ 'claude.model.hint': 'モデル変更後は自動保存され、現在の設定に適用されます。',
1086
+ 'claude.health.title': '設定ヘルスチェック',
1087
+ 'claude.health.run': 'チェック実行',
1088
+ 'claude.health.running': 'チェック中...',
1089
+ 'claude.health.hint': 'すべての Claude 設定の可用性を一括プローブし、遅延表示を更新します。',
1090
+ 'claude.health.progress': '完了 {done}/{total} · 失敗 {failed}',
1091
+ 'claude.md.title': 'CLAUDE.md',
1092
+ 'claude.md.open': 'CLAUDE.md を開く',
1093
+ 'claude.md.hint': '~/.claude/CLAUDE.md の読み書き。',
1094
+ 'claude.model.unset': 'モデル未設定',
1095
+ 'claude.configured': '設定済み',
1096
+ 'claude.notConfigured': '未設定',
1097
+ 'claude.action.edit': '編集',
1098
+ 'claude.action.delete': '削除',
1099
+ 'claude.action.shareDisabled': 'インポートコマンド共有',
1100
+ 'claude.action.editAria': 'Claude 設定を編集:{name}',
1101
+ 'claude.action.deleteAria': 'Claude 設定を削除:{name}',
1102
+ 'claude.action.clone': 'クローン',
1103
+ 'claude.action.cloneAria': 'Claude 設定をクローン:{name}',
1104
+ 'claude.localBridge.poolTitle': 'ラウンドロビンプール',
1105
+ 'claude.localBridge.poolHint': '負荷分散に参加するプロバイダを選択',
1106
+ 'claude.localBridge.noProviders': '利用可能なプロバイダがありません。まずプロバイダを追加してください。',
1107
+ 'claude.localBridge.disabled': '無効',
1108
+ 'claude.localBridge.enabled': '有効',
1109
+
1110
+ // OpenClaw config panel
1111
+ 'openclaw.applyHint': '~/.openclaw/openclaw.json に書き込みます。JSON5 対応。',
1112
+ 'openclaw.agents.hint': 'Workspace の AGENTS.md を読み書きします。デフォルトパス ~/.openclaw/workspace/AGENTS.md。',
1113
+ 'openclaw.agents.open': 'AGENTS.md を開く',
1114
+ 'openclaw.workspaceFile': 'ワークスペースファイル',
1115
+ 'openclaw.workspace.placeholder': '例: SOUL.md',
1116
+ 'openclaw.workspace.hint': 'Workspace 内の .md ファイルのみ。',
1117
+ 'openclaw.workspace.open': 'ワークスペースファイルを開く',
1118
+ 'openclaw.configured': '設定済み',
1119
+ 'openclaw.notConfigured': '未設定',
1120
+ 'openclaw.action.edit': '編集',
1121
+ 'openclaw.action.delete': '削除',
1122
+ 'modal.openclaw.quick.subtitle': '3ステップで完了:Provider とモデルを入力、エディタに書き込み、保存して適用。',
1123
+ 'modal.openclaw.quick.step2': 'エディタに書き込みをクリック',
1124
+ 'modal.openclaw.structured.writeHint': 'エディタに書き込むと JSON が再配置され、コメントが失われる可能性があります。',
1125
+ 'openclaw.action.applyAria': 'OpenClaw 設定を適用:{name}',
1126
+ 'openclaw.action.editAria': 'OpenClaw 設定を編集:{name}',
1127
+ 'openclaw.action.deleteAria': 'OpenClaw 設定を削除:{name}',
1128
+ });
1129
+
1130
+ export { ja };