diff --git a/static/i18n.js b/static/i18n.js index 54b34bbc..3c55bf51 100644 --- a/static/i18n.js +++ b/static/i18n.js @@ -3637,7 +3637,7 @@ const LOCALES = { pdf_no_pages: 'PDF にページがありません', pdf_error: 'PDF プレビューの描画に失敗しました', pdf_download: 'PDF をダウンロード', - pdf_truncated: 'Showing the first {0} of {1} pages — download for the full document', + pdf_truncated: '最初の {0} / {1} ページを表示しています。ドキュメント全体を閲覧するにはダウンロードしてください', // HTML sandbox preview (#482) html_loading: 'HTML プレビューを読み込み中…', html_too_large: 'HTML が大きすぎてインラインプレビューできません', @@ -3647,8 +3647,8 @@ const LOCALES = { thinking: '考え中', expand_all: 'すべて展開', collapse_all: 'すべて折りたたむ', - show_earlier_step_one: 'Show 1 earlier step', - show_earlier_steps: 'Show {0} earlier steps', + show_earlier_step_one: '前のステップを1件表示', + show_earlier_steps: '前のステップを{0}件表示', edit_failed: '編集失敗: ', regen_failed: '再生成失敗: ', reconnect_active: '応答を生成中です。準備ができたら再読み込みしますか?', @@ -3698,19 +3698,19 @@ const LOCALES = { provider_mismatch_warning: (m,p)=>`"${m}" は設定されたプロバイダ (${p}) で動作しない可能性があります。このまま送信するか、ターミナルで \`hermes model\` を実行して切り替えてください。`, provider_mismatch_label: 'プロバイダ不一致', gateway_auth_label: 'ゲートウェイ認証に失敗しました', - gateway_start: 'Start', - gateway_stop: 'Stop', - gateway_restart: 'Restart', - gateway_start_success: 'Gateway start completed.', - gateway_stop_success: 'Gateway stop completed.', - gateway_restart_success: 'Gateway restart completed.', - gateway_start_failed: 'Gateway start failed', - gateway_stop_failed: 'Gateway stop failed', - gateway_restart_failed: 'Gateway restart failed', - gateway_running: 'Running', - gateway_session: 'session', - gateway_sessions: 'sessions', - gateway_status_load_failed: 'Failed to load gateway status', + gateway_start: '起動', + gateway_stop: '停止', + gateway_restart: '再起動', + gateway_start_success: 'ゲートウェイの起動が完了しました。', + gateway_stop_success: 'ゲートウェイの停止が完了しました。', + gateway_restart_success: 'ゲートウェイの再起動が完了しました。', + gateway_start_failed: 'ゲートウェイの起動に失敗しました', + gateway_stop_failed: 'ゲートウェイの停止に失敗しました', + gateway_restart_failed: 'ゲートウェイの再起動に失敗しました', + gateway_running: '実行中', + gateway_session: 'セッション', + gateway_sessions: 'セッション', + gateway_status_load_failed: 'ゲートウェイのステータス取得に失敗しました', model_not_found_label: 'モデルが見つかりません', model_custom_label: 'カスタムモデルID', model_custom_placeholder: '例: openai/gpt-5.4', @@ -3807,16 +3807,16 @@ const LOCALES = { cmd_steer_delivered: 'ステア送信完了 — 次のツール結果でエージェントが認識します', steer_leftover_queued: 'ステアを次のターンへキュー', busy_steer_fallback: 'ステア利用不可 — 下書きを復元しました', - steer_fail_no_cached_agent: 'No cached agent is available for steering this run', - steer_fail_agent_lacks_steer: 'This agent version does not support steer', - steer_fail_session_not_found: 'Session not found — it may have expired', - steer_fail_not_running: 'Agent is not currently running', - steer_fail_stream_dead: 'The agent stream has ended', - steer_fail_steer_error: 'Steer delivery failed — the agent may have finished', - steer_fail_network_error: 'Network error — check your connection', - steer_fail_unknown: 'Steer unavailable', - steer_recovery_retry: 'Retry', - steer_recovery_dismiss: 'Dismiss', + steer_fail_no_cached_agent: 'この実行を操作割り込み(Steer)するためのキャッシュされたエージェントがありません', + steer_fail_agent_lacks_steer: 'このエージェントのバージョンは操作割り込み(Steer)をサポートしていません', + steer_fail_session_not_found: 'セッションが見つかりません。期限が切れた可能性があります', + steer_fail_not_running: 'エージェントは現在実行されていません', + steer_fail_stream_dead: 'エージェントのストリームが終了しました', + steer_fail_steer_error: '操作割り込み(Steer)の送信に失敗しました。エージェントが既に処理を完了している可能性があります', + steer_fail_network_error: 'ネットワークエラーが発生しました。接続を確認してください', + steer_fail_unknown: '操作割り込み(Steer)を利用できません', + steer_recovery_retry: '再試行', + steer_recovery_dismiss: '閉じる', busy_interrupt_confirm: '中断 — 新しいメッセージを送信中', settings_label_default_message_mode: '既定のメッセージモード', settings_desc_default_message_mode: 'エージェント実行中にメッセージを送信した時の動作を制御します。Queue は待機、Interrupt はキャンセルして再開、Steer は中断せずにターン中に修正を注入します。Steer が利用できない場合は、下書きが復元されるため、次の操作を選べます。', @@ -3829,14 +3829,14 @@ const LOCALES = { settings_default_message_mode_queue: 'フォローアップをキュー', settings_default_message_mode_interrupt: '現在のターンを中断', settings_default_message_mode_steer: 'ステア (ターン中の修正)', - settings_label_busy_placeholder_hint: 'Show busy placeholder hint', - settings_label_new_chat_on_workspace_switch: 'Start a new chat when switching workspace', - settings_desc_new_chat_on_workspace_switch: 'When on, selecting a different workspace starts a fresh conversation bound to that workspace and leaves your current chat on its original workspace, avoiding stale cross-workspace context. When off (default), switching workspace changes the current workspace in place.', - workspace_switched_new_chat: 'Started a new chat in {0}', - settings_desc_busy_placeholder_hint: 'Shows the composer placeholder with the current busy action while the session is running and the draft is empty.', - composer_placeholder_busy_queue: 'Enter = queue | /interrupt | /background | /steer', - composer_placeholder_busy_interrupt: 'Enter = interrupt | /queue | /background | /steer', - composer_placeholder_busy_steer: 'Enter = steer | /queue | /background | /interrupt', + settings_label_busy_placeholder_hint: '処理中のプレースホルダーヒントを表示する', + settings_label_new_chat_on_workspace_switch: 'ワークスペース切り替え時に新しいチャットを開始', + settings_desc_new_chat_on_workspace_switch: '有効にすると、別のワークスペースを選択したときにそのワークスペースに紐づく新しい会話を開始し、現在のチャットは元のワークスペースに残ります。ワークスペースをまたいだ古いコンテキストが混入するのを防げます。無効の場合(既定)、ワークスペースを切り替えると現在のワークスペースがその場で変更されます。', + workspace_switched_new_chat: '{0} で新しいチャットを開始しました', + settings_desc_busy_placeholder_hint: 'セッションが実行中で入力欄が空のときに、現在の実行中タスクをプレースホルダーとして表示します。', + composer_placeholder_busy_queue: 'Enter = キュー登録 | /interrupt | /background | /steer', + composer_placeholder_busy_interrupt: 'Enter = 割り込み | /queue | /background | /steer', + composer_placeholder_busy_steer: 'Enter = 割り込み操作 | /queue | /background | /interrupt', slash_skill_badge:'スキル', slash_skill_desc:'このスキルを呼び出す', @@ -3956,16 +3956,16 @@ const LOCALES = { workspace_empty_dir: 'このワークスペースは空です。', workspace_show_hidden_files: '隠しファイルを表示', workspace_show_hidden_files_desc: '.DS_Store、.git、node_modules などの隠しファイル・システムファイルをファイルツリーに表示します。', - workspace_panel_show: 'Show workspace panel', - workspace_panel_hide: 'Hide workspace panel', - workspace_panel_close: 'Close workspace panel', - workspace_panel_toggle: 'Toggle workspace files panel', - workspace_panel_views: 'Workspace panel views', - workspace_parent_directory: 'Parent directory', - workspace_upload_file: 'Upload file', - workspace_close_preview: 'Close preview', - workspace_files_tab: 'Files', - workspace_artifacts_tab: 'Artifacts', + workspace_panel_show: 'ワークスペースパネルを表示', + workspace_panel_hide: 'ワークスペースパネルを非表示', + workspace_panel_close: 'ワークスペースパネルを閉じる', + workspace_panel_toggle: 'ワークスペースファイルパネルの切り替え', + workspace_panel_views: 'ワークスペースパネルの表示', + workspace_parent_directory: '親ディレクトリ', + workspace_upload_file: 'ファイルをアップロード', + workspace_close_preview: 'プレビューを閉じる', + workspace_files_tab: 'ファイル', + workspace_artifacts_tab: 'アーティファクト', workspace_hidden_files_visible: '隠しファイル表示中', workspace_hidden_files_visible_title: '隠しファイルが表示されています — クリックでオプション', workspace_options: 'ワークスペースオプション', @@ -3988,10 +3988,10 @@ const LOCALES = { file_open_failed: 'ファイルを開けませんでした', downloading: (name) => `${name} をダウンロード中…`, double_click_rename: 'ダブルクリックで名前変更', - symlink_link_to: 'Symlink → {target}', - external_link_open_confirm: 'This symlink points outside the workspace. Open it in a read-only external view for this browser session?', - external_link_read_only: 'This external view is read-only. Create, rename, move, delete, upload, reveal, and editor actions stay disabled here.', - external_link_grant_expired: 'This external view expired. Reopen the escape-target symlink to authorize it again.', + symlink_link_to: 'シンボリックリンク → {target}', + external_link_open_confirm: 'このシンボリックリンクはワークスペースの外部を指しています。このブラウザセッション中、読み取り専用の外部ビューで開きますか?', + external_link_read_only: 'この外部ビューは読み取り専用です。作成、名前変更、移動、削除、アップロード、フォルダ表示、エディタ操作はここでは無効です。', + external_link_grant_expired: 'この外部ビューの期限が切れました。再度承認するには、リンク元のシンボリックリンクを開き直してください。', session_rename_failed_no_row: '名前変更を開始できませんでした — 行が見つかりません。', renamed_to: '名前を変更: ', rename_failed: '名前変更失敗: ', @@ -4024,20 +4024,20 @@ const LOCALES = { session_copy_link_desc: 'この会話への直接リンクをコピー', session_link_copied: '会話リンクをクリップボードにコピーしました', session_link_copy_failed: '会話リンクをコピーできませんでした: ', - share_session: 'Share', - share_session_tooltip: 'Create a public read-only share link', - share_session_status_active: 'Public share active', - share_session_existing_confirm: 'This conversation already has a public read-only share link.\n\nChoose Copy existing to reuse that link, or Refresh snapshot to rebuild the public snapshot from the latest visible messages.', - share_session_copy_existing: 'Copy existing', - share_session_refresh_snapshot: 'Refresh snapshot', - share_session_link_copied: 'Share link copied to clipboard', - share_session_created: 'Public share link created', - share_session_failed: 'Share failed: ', - stop_sharing_session: 'Stop sharing', - stop_sharing_session_tooltip: 'Revoke the public read-only share link for this conversation', - stop_sharing_session_confirm: 'Revoke this public share link? Anyone opening the old link will see that it is no longer available.', - share_session_revoked: 'Public share link revoked', - share_session_revoke_failed: 'Failed to revoke share link: ', + share_session: '共有', + share_session_tooltip: '公開の読み取り専用共有リンクを作成', + share_session_status_active: '公開共有が有効です', + share_session_existing_confirm: 'この会話にはすでに公開の読み取り専用共有リンクがあります。\n\n既存のリンクを再利用するには「既存のリンクをコピー」を、最新の表示メッセージから公開スナップショットを再構築するには「スナップショットを更新」を選択してください。', + share_session_copy_existing: '既存のリンクをコピー', + share_session_refresh_snapshot: 'スナップショットを更新', + share_session_link_copied: '共有リンクをクリップボードにコピーしました', + share_session_created: '公開共有リンクを作成しました', + share_session_failed: '共有に失敗しました: ', + stop_sharing_session: '共有を停止', + stop_sharing_session_tooltip: 'この会話の公開読み取り専用共有リンクを無効にします', + stop_sharing_session_confirm: 'この公開共有リンクを無効にしますか? 以前のリンクを開いた人には、リンクが利用できなくなったことが表示されます。', + share_session_revoked: '公開共有リンクを無効にしました', + share_session_revoke_failed: '共有リンクの無効化に失敗しました: ', new_file_prompt: '新しいファイル名 (例: notes.md):', new_file: '新規ファイル', new_folder: '新規フォルダ', @@ -4084,8 +4084,8 @@ const LOCALES = { session_archive_failed: 'アーカイブ失敗: ', session_duplicate: '会話を複製', session_duplicate_desc: '同じワークスペースとモデルでコピーを作成', - session_export_html: 'Export as HTML', - session_export_html_desc: 'Download this conversation as a self-contained HTML file', + session_export_html: 'HTMLとしてエクスポート', + session_export_html_desc: 'この会話を自己完結型のHTMLファイルとしてダウンロードします', session_duplicated: 'セッションを複製しました', session_duplicate_failed: '複製失敗: ', session_stop_response: '応答を停止', @@ -4137,15 +4137,15 @@ const LOCALES = { settings_check_now: '今すぐ確認', settings_checking: '確認中…', settings_up_to_date: '最新です ✓', - update_later: 'Later', - update_now: 'Update Now', - update_updating: 'Updating…', - update_force: 'Force update', - update_clear_lock_retry: 'Clear lock and retry update', - update_hard_refresh_now: 'Hard refresh now', - update_no_target: 'No update target selected. Refresh update status and retry.', - update_failed_network: 'Update failed: could not reach the WebUI server. It may have restarted or the connection was interrupted. Please wait a few seconds, reload the page, then check the server if it still does not come back.', - update_failed_prefix: 'Update failed: ', + update_later: '後で', + update_now: '今すぐ更新', + update_updating: '更新中…', + update_force: '強制更新', + update_clear_lock_retry: 'ロックを解除して更新を再試行', + update_hard_refresh_now: '今すぐハードリフレッシュ', + update_no_target: '更新対象が選択されていません。更新ステータスを再取得してから再試行してください。', + update_failed_network: '更新に失敗しました: WebUIサーバーに到達できませんでした。サーバーが再起動したか、接続が中断された可能性があります。数秒待ってからページを再読み込みし、それでも復旧しない場合はサーバーを確認してください。', + update_failed_prefix: '更新に失敗しました: ', settings_updates_available: '{count} 件のアップデートあり', settings_update_check_failed: 'アップデート確認失敗', settings_update_no_git: 'アップデートを確認できません(gitチェックアウトではありません)', @@ -4165,59 +4165,59 @@ const LOCALES = { settings_desc_session_endless_scroll: '有効にすると、上にスクロールしたとき古いメッセージを自動で読み込みます。無効の場合は古いメッセージボタンを使います。', settings_label_auto_scroll_follow: '新しい内容を自動で追従', settings_desc_auto_scroll_follow: '有効にすると、ストリーミング中に画面が自動で一番下までスクロールします。無効にすると、スクロール位置を自分で操作できます。', - settings_label_render_user_markdown: 'Render markdown in user messages', + settings_label_render_user_markdown: 'ユーザーメッセージでMarkdownをレンダリングする', settings_label_show_titlebar_profile: 'タイトルバーにプロファイル切替を表示', settings_desc_show_titlebar_profile: '有効にすると、左上のアプリのタイトルバーにプロファイル切替ボタンが表示され、どのタブからでもプロファイルを変更できます。既定ではオフです。この設定に関係なく、コンポーザーのフッターには常にプロファイル切替があります。', - settings_desc_render_user_markdown: 'When enabled, bold, italic, links, and other markdown in your own messages are rendered. Off by default; fenced code blocks and math always render regardless of this setting.', - settings_label_large_text_paste_as_attachment: 'Attach large pasted text as file', - settings_desc_large_text_paste_as_attachment: 'When enabled, long pasted text becomes a .md attachment instead of filling the composer.', - settings_label_project_quick_create: 'Show per-project new-conversation buttons', - settings_desc_project_quick_create: 'When enabled, each project chip in the sidebar gets a + button to start a conversation in that project.', - settings_label_structured_code: 'JSON/YAML code blocks', - settings_option_structured_code_auto: 'Auto: Tree for long blocks', - settings_option_structured_code_on: 'Tree by default', - settings_option_structured_code_off: 'Raw by default', - settings_label_structured_code_auto_lines: 'Auto threshold lines', - settings_desc_structured_code: 'When Auto is selected, JSON/YAML blocks with at least this many lines open in Tree view. Tree always opens the structured viewer; Raw keeps the syntax-highlighted text. You can still switch Tree/Raw on each block.', + settings_desc_render_user_markdown: '有効にすると、自分のメッセージ内の太字、斜体、リンクなどのMarkdownをレンダリングします。デフォルトはオフです。コードブロックや数式はこの設定に関わらず常にレンダリングされます。', + settings_label_large_text_paste_as_attachment: '長いペーストテキストをファイルとして添付する', + settings_desc_large_text_paste_as_attachment: '有効にすると、入力欄に長いテキストをペーストした際に入力欄を埋める代わりに .md ファイルとして自動添付します。', + settings_label_project_quick_create: 'プロジェクトごとの新規会話ボタンを表示する', + settings_desc_project_quick_create: '有効にすると、サイドバー内の各プロジェクトチップに「+」ボタンが表示され、そのプロジェクトで素早く会話を開始できるようになります。', + settings_label_structured_code: 'JSON/YAML コードブロック', + settings_option_structured_code_auto: '自動: 長いブロックはツリー表示', + settings_option_structured_code_on: 'デフォルトでツリー表示', + settings_option_structured_code_off: 'デフォルトでテキスト表示', + settings_label_structured_code_auto_lines: '自動切り替えのしきい値行数', + settings_desc_structured_code: '「自動」が選択されている場合、指定した行数以上のJSON/YAMLブロックはツリービューで開きます。ツリーは構造化ビューアで開き、テキスト(Raw)は構文強調表示のテキストとして残ります。ブロックごとにツリー/テキストを切り替えることも可能です。', settings_label_worklog_details_expanded_default: 'Worklog の詳細を自動的に開く', settings_desc_worklog_details_expanded_default: '有効にすると、新しい Worklog の詳細が展開された状態で始まり、ツール、Thinking、進捗カードをクリックなしで確認できます。無効の場合、Worklog の詳細はデフォルトで折りたたまれます。ターンごとの手動折りたたみ/展開は優先されます。', settings_label_chat_activity_display_mode: 'アクティビティ表示', settings_desc_chat_activity_display_mode: '「コンパクトワークログ」はバックグラウンドアクティビティを簡潔なサマリーにまとめます。「トランスペアレントストリーム」は思考プロセスやツールの呼び出しイベントを、時系列順に展開可能な個別の行として表示し続けます。 Final answer only hides activity rows while keeping the final answer visible.', - settings_label_transparent_stream_event_timestamps: 'Show Transparent Stream event timestamps', - settings_desc_transparent_stream_event_timestamps: 'Keeps the response footer time visible while hiding the per-event timestamp chips.', + settings_label_transparent_stream_event_timestamps: 'Transparent Stream のイベントタイムスタンプを表示', + settings_desc_transparent_stream_event_timestamps: '応答フッターの時刻表示は維持したまま、イベントごとのタイムスタンプチップを非表示にします。', first_token_time: '最初のトークン出力までの時間', processed_elapsed: _i18nProcessedElapsedEn, - worklog_thinking: 'Thinking', - tool_target_skill_suffix: 'skill', + worklog_thinking: '思考中', + tool_target_skill_suffix: 'スキル', tool_action_label: _i18nToolActionLabelEn, tool_worklog_summary: _i18nToolWorklogSummaryEn, tool_summary_join: _i18nToolSummaryJoinEn, done: '完了', settings_option_compact_worklog: 'コンパクトワークログ', settings_option_transparent_stream: 'トランスペアレントストリーム', - settings_option_final_answer_only: 'Final answer only', + settings_option_final_answer_only: '最終回答のみ', settings_label_tab_visibility: 'サイドバータブ', settings_desc_tab_visibility: 'サイドバーとレールに表示するタブを選択します。チャットと設定は常に表示されます。', - settings_label_composer_controls: 'Chat footer controls', - settings_desc_composer_controls: 'Toggle which controls are shown in the chat footer. Drag chips to reorder each footer group.', - settings_label_composer_situational_controls: 'Situational footer controls', - settings_desc_composer_situational_controls: 'These controls do not always appear, depending on viewport, mode, or runtime state. You can still toggle them off if needed.', - composer_control_attach: 'Attach', - composer_control_saved_prompts: 'Saved prompts', - composer_control_mic: 'Mic', - composer_control_profile: 'Profile', - composer_control_workspace: 'Workspace', - composer_control_model: 'Model', - composer_control_reasoning: 'Reasoning', - composer_control_context: 'Context', - composer_control_voice_mode: 'Voice mode', + settings_label_composer_controls: 'チャットフッターのコントロール', + settings_desc_composer_controls: 'チャットのフッターに表示するコントロールを切り替えます。チップをドラッグして各グループの並び順を変更できます。', + settings_label_composer_situational_controls: '状況に応じたフッターコントロール', + settings_desc_composer_situational_controls: 'これらのコントロールは、表示領域やモード、実行状態に応じて常に表示されるとは限りません。不要な場合はオフに切り替えることができます。', + composer_control_attach: '添付', + composer_control_saved_prompts: '保存されたプロンプト', + composer_control_mic: 'マイク', + composer_control_profile: 'プロファイル', + composer_control_workspace: 'ワークスペース', + composer_control_model: 'モデル', + composer_control_reasoning: '思考', + composer_control_context: 'コンテキスト', + composer_control_voice_mode: '音声モード', composer_control_yolo: 'YOLO', - composer_control_bg_badge: 'Background badge', - composer_control_mobile_config: 'Mobile config', - composer_control_quota_chip: 'Quota chip', - composer_control_toolsets: 'Toolsets', - composer_control_status: 'Status', + composer_control_bg_badge: 'バックグラウンドバッジ', + composer_control_mobile_config: 'モバイル設定', + composer_control_quota_chip: 'クォータ', + composer_control_toolsets: 'ツールセット', + composer_control_status: 'ステータス', open_in_browser: 'ブラウザで開く', settings_dropdown_conversation: '会話', settings_dropdown_appearance: '外観', @@ -4229,24 +4229,24 @@ const LOCALES = { settings_tab_preferences: '環境設定', settings_tab_plugins: 'プラグイン', settings_tab_extensions: '拡張機能', - settings_extensions_gallery_tab: 'Gallery', - settings_extensions_installed_tab: 'Installed', - settings_extensions_diagnostics_tab: 'Diagnostics', - settings_extensions_gallery_loading: 'Loading gallery…', - settings_extensions_gallery_empty: 'No extensions found in the registry.', - settings_extensions_gallery_error: 'Failed to load gallery.', - ext_gallery_install: 'Install', - ext_gallery_installing: 'Installing…', - ext_gallery_installed: 'Installed', - ext_gallery_uninstall: 'Uninstall', - ext_gallery_uninstalling: 'Uninstalling…', - ext_gallery_restart_required: 'Restart required', - ext_gallery_permissions_show: 'Permissions', - ext_gallery_permissions_hide: 'Hide permissions', + settings_extensions_gallery_tab: 'ギャラリー', + settings_extensions_installed_tab: 'インストール済み', + settings_extensions_diagnostics_tab: '診断', + settings_extensions_gallery_loading: 'ギャラリーを読み込み中…', + settings_extensions_gallery_empty: 'レジストリ内に拡張機能が見つかりません。', + settings_extensions_gallery_error: 'ギャラリーの読み込みに失敗しました。', + ext_gallery_install: 'インストール', + ext_gallery_installing: 'インストール中…', + ext_gallery_installed: 'インストール済み', + ext_gallery_uninstall: 'アンインストール', + ext_gallery_uninstalling: 'アンインストール中…', + ext_gallery_restart_required: '再起動が必要', + ext_gallery_permissions_show: '権限', + ext_gallery_permissions_hide: '権限を非表示', ext_gallery_permissions_empty: '追加の権限は宣言されていません。', - ext_gallery_version: 'Version', - ext_gallery_author: 'Author', - ext_gallery_capabilities: 'Capabilities', + ext_gallery_version: 'バージョン', + ext_gallery_author: '作成者', + ext_gallery_capabilities: '機能', ext_gallery_next_step: '次の手順', ext_gallery_after_install: 'インストール後', ext_gallery_local_component_required: 'この拡張機能にはローカルコンポーネントが必要です。インストール後に必要なローカルアプリまたはサイドカーを起動してください。', @@ -4257,8 +4257,8 @@ const LOCALES = { ext_gallery_open_setup_guide: 'セットアップガイドを開く', ext_gallery_install_restart_required: '拡張機能をインストールしました。適用するには再起動が必要です。', ext_gallery_install_followup: '拡張機能をインストールしました。次の手順はカードで確認してください。', - ext_gallery_install_ok: 'Extension installed successfully.', - ext_gallery_uninstall_ok: 'Extension uninstalled.', + ext_gallery_install_ok: '拡張機能が正常にインストールされました。', + ext_gallery_uninstall_ok: '拡張機能がアンインストールされました。', settings_plugins_title: 'プラグイン', plugins_enable_toggle: '有効化', settings_plugins_meta: 'インストール済みのHermesプラグインと登録されているライフサイクルフックを確認できます。このパネルは読み取り専用です。', @@ -4292,10 +4292,10 @@ const LOCALES = { settings_main_advanced_subtitle: 'デフォルトのチャットモデルに関する詳細設定です。', settings_main_advanced_saved: 'メインモデルのオプションを保存しました', settings_main_advanced_save_failed: 'メインモデルのオプションの保存に失敗しました', - settings_main_advanced_service_tier: 'Service tier', - settings_main_advanced_service_tier_desc: 'Optional request setting for OpenAI-family providers.', - settings_main_advanced_service_tier_default: 'Default / off', - settings_main_advanced_service_tier_priority: 'Priority (fast)', + settings_main_advanced_service_tier: 'サービスティア', + settings_main_advanced_service_tier_desc: 'OpenAIファミリー系プロバイダー向けのリクエスト設定(オプション)です。', + settings_main_advanced_service_tier_default: 'デフォルト / オフ', + settings_main_advanced_service_tier_priority: '優先(高速)', settings_label_auxiliary_models: '補助モデル', settings_desc_auxiliary_models: 'ビジョン、圧縮、タイトル生成などの補助タスクのルーティング。「自動」はメインチャットモデルを使用します。', settings_btn_reset_aux_models: 'すべて自動にリセット', @@ -4378,15 +4378,15 @@ const LOCALES = { settings_desc_hide_suggestions: '空の新規チャット画面に表示されるデフォルトの候補ボタン3つを非表示にして、誤タップを防ぎます。', settings_label_hide_empty_state_panel: '新規チャットのウェルカムパネルを非表示', settings_desc_hide_empty_state_panel: '空の新規会話でロゴ、見出し、サブタイトル、候補ボタンを非表示にします。', - settings_label_virtualize_transcript: 'Virtualize long transcripts', - settings_desc_virtualize_transcript: "Render only the visible portion of very long chat transcripts (over 80 messages) for smoother scrolling. Turn this off if you see any rendering or scroll issues, or want the browser's Find (Ctrl+F) to match the whole conversation \u2014 the full transcript will render at once.", + settings_label_virtualize_transcript: '長い会話履歴を仮想化する(実験的)', + settings_desc_virtualize_transcript: '実験的機能です。非常に長いチャット履歴(80メッセージ以上)の表示領域のみをレンダリングし、スクロールを高速化します。大きなツール呼び出しブロックを含む長いセッションでスクロール時にちらつきが発生することがあるため、デフォルトではオフになっています。試す場合はオンにしてください。オフのままにすると履歴全体が一度にレンダリングされます(ブラウザの検索機能(Ctrl+F)でも会話全体を検索できます)。', settings_label_token_usage: 'トークン使用量を表示', settings_label_token_speed: 'トークン速度 (TPS) を表示', settings_desc_token_speed: 'ストリーミング中および応答完了後にアシスタントメッセージヘッダーにトークン/秒を表示します。デフォルトではオフ。', settings_label_sidebar_density: 'サイドバー密度', cmd_reasoning: '思考表示の切り替え (表示/非表示)、努力レベル設定、現在状態の確認', settings_label_external_sessions: '非WebUIセッションを表示', - settings_label_claude_code_sessions: 'Show Claude Code sessions', + settings_label_claude_code_sessions: 'Claude Code セッションを表示', settings_label_cron_sessions: 'Cronセッションを表示', settings_label_webhook_sessions: 'Webhookセッションを表示', settings_label_previous_messaging_sessions: '以前のメッセージングセッションを表示', @@ -4455,8 +4455,8 @@ const LOCALES = { kanban_no_matching_tasks: '一致するタスクがありません', kanban_no_data: 'カンバンデータがありません', kanban_work_queue_hint: 'これは Hermes Agent のワークキューです。タスクを作成またはトリアージし、担当者を割り当て、Ready に移動すると、ディスパッチャーがそれをクレームします。', - kanban_tasks_hidden_by_filters: 'Tasks hidden by filters', - kanban_clear_filters: 'Clear filters', + kanban_tasks_hidden_by_filters: 'フィルターによって非表示のタスク', + kanban_clear_filters: 'フィルターをクリア', kanban_unavailable: 'カンバンを利用できません', kanban_read_only: '読み取り専用', kanban_empty: '空', @@ -4514,24 +4514,24 @@ const LOCALES = { kanban_view_consolidated_saved: 'Kanban 表示: 統合ビュー', kanban_view_update_failed: 'Kanban 表示の更新に失敗しました: ', kanban_add_comment: 'コメント追加', - kanban_workspace_kind: 'Workspace kind', - kanban_workspace_path: 'Workspace path', - kanban_workspace_path_placeholder: 'Path to workspace', - kanban_workspace_scratch: 'Scratch', - kanban_workspace_worktree: 'Worktree', - kanban_workspace_dir: 'Directory', - kanban_workspace_path_required: 'Workspace path is required for non-scratch workspaces.', - kanban_skills: 'Skills', - kanban_skills_placeholder: 'Comma-separated skill names, e.g. python,git', - kanban_max_runtime_seconds: 'Max runtime (seconds)', - kanban_max_runtime_hint: 'Leave empty for unlimited.', - kanban_max_runtime_invalid: 'Max runtime must be a whole number of seconds greater than 0.', - kanban_parents_modal: 'Parent dependencies', - kanban_parents_placeholder: 'Parent task ID', - kanban_add_dependency: 'Add dependency', - kanban_remove_dependency: 'Remove dependency', - kanban_dependency_placeholder: 'Task ID to link', - kanban_dependency_self: 'A task cannot depend on itself', + kanban_workspace_kind: 'ワークスペースの種類', + kanban_workspace_path: 'ワークスペースのパス', + kanban_workspace_path_placeholder: 'ワークスペースへのパス', + kanban_workspace_scratch: 'スクラッチ', + kanban_workspace_worktree: 'ワークツリー', + kanban_workspace_dir: 'ディレクトリ', + kanban_workspace_path_required: 'スクラッチ以外のワークスペースではパスの指定が必須です。', + kanban_skills: 'スキル', + kanban_skills_placeholder: 'カンマ区切りのスキル名(例: python,git)', + kanban_max_runtime_seconds: '最大実行時間(秒)', + kanban_max_runtime_hint: '無制限にする場合は空欄にします。', + kanban_max_runtime_invalid: '最大実行時間は0より大きい整数値である必要があります。', + kanban_parents_modal: '依存元の親タスク', + kanban_parents_placeholder: '親タスクID', + kanban_add_dependency: '依存関係を追加', + kanban_remove_dependency: '依存関係を削除', + kanban_dependency_placeholder: 'リンクするタスクID', + kanban_dependency_self: 'タスクが自分自身に依存することはできません', kanban_only_mine: '自分のみ', kanban_bulk_action: '一括操作', kanban_nudge_dispatcher: 'ディスパッチャープレビュー', @@ -4611,7 +4611,7 @@ const LOCALES = { insights_messages: 'メッセージ', insights_tokens: 'トークン', insights_cost: '推定コスト', - insights_no_cost: 'N/A', + insights_no_cost: '該当なし', insights_models: 'モデル', insights_activity_by_day: '日別アクティビティ', insights_activity_by_hour: '時間別アクティビティ', @@ -4712,7 +4712,7 @@ const LOCALES = { settings_auto_title_refresh_20: '20 回ごと', settings_desc_auto_title_refresh: '最新のやり取りに基づいてセッションタイトルを自動再生成し、会話の進行に合わせて適切に保ちます。LLM タイトル生成モデルの設定が必要です。', settings_desc_external_sessions: 'CLI、Telegram、Discord、Slack その他のチャネルからの会話をセッション一覧に表示します。クリックでインポートして続行できます。', - settings_desc_claude_code_sessions: 'Show Claude Code imported sessions in the sidebar, or hide them while leaving other external sessions visible.', + settings_desc_claude_code_sessions: 'サイドバーに Claude Code からインポートされたセッションを表示します。または、他の外部セッションは表示したまま Claude Code のセッションのみを非表示にします。', settings_desc_cron_sessions: 'Cronジョブの出力をサイドバーの会話として表示します。WebUI以外のセッションが有効な場合のみ機能します。デフォルトはオフ。高頻度のジョブはサイドバーを溢れさせる可能性があります。', settings_desc_webhook_sessions: 'Webhook実行をサイドバーの会話として表示します。WebUI以外のセッションが有効な場合のみ機能します。デフォルトはオフ。高頻度のルートはサイドバーを溢れさせる可能性があります。', settings_desc_previous_messaging_sessions: 'reset または compression によって置き換えられた以前の Discord、Telegram、Slack、Weixin セッションを表示します。', @@ -4798,12 +4798,12 @@ const LOCALES = { provider_quota_pool_summary_exhausted: '{0} 使い切り済み', provider_quota_pool_summary_failed: '{0} 失敗', provider_quota_pool_summary_checked: '{0} 確認済み', - provider_cost_budget_label: 'Monthly budget', - provider_cost_budget_placeholder: 'e.g. 50.00', - provider_cost_budget_set: 'Set', - provider_cost_budget_clear: 'Clear', - provider_cost_budget_pct: '{0}% of ${1} budget (monthly pace)', - provider_cost_budget_save_failed: 'Failed to save budget', + provider_cost_budget_label: '月間予算', + provider_cost_budget_placeholder: '例: 50.00', + provider_cost_budget_set: '設定', + provider_cost_budget_clear: 'クリア', + provider_cost_budget_pct: '予算 ${1} の {0}%(月換算ペース)', + provider_cost_budget_save_failed: '予算の保存に失敗しました', cancel: 'キャンセル', create_job: 'ジョブを作成', save_skill: 'スキルを保存', @@ -4928,7 +4928,7 @@ const LOCALES = { error_prefix: 'エラー: ', default: 'デフォルト', search: '検索', - not_available: 'N/A', + not_available: '利用不可', never: 'なし', add: '追加', add_failed: '追加失敗: ', @@ -4992,7 +4992,7 @@ const LOCALES = { cron_job_updated: 'ジョブを更新しました', cron_model_label: 'モデルの上書き', cron_model_hint: 'このジョブのデフォルトモデルを上書きします。', - cron_model_no_agent_hint: 'No-agent jobs run the configured script directly; model is unused.', + cron_model_no_agent_hint: 'エージェントなしのジョブは設定済みスクリプトを直接実行します。モデルは使用されません。', cron_model_use_default: 'デフォルト(プロファイル/システムの既定を使用)', cron_delete_confirm_title: 'Cronジョブを削除', cron_delete_confirm_message: 'この操作は取り消せません。', @@ -5143,18 +5143,18 @@ const LOCALES = { cron_schedule_preset_weekly: '毎週', cron_schedule_preset_monthly: '毎月', cron_schedule_preset_custom: 'カスタム', - cron_schedule_time_label: 'Time', - cron_schedule_conj_on: 'on', - cron_schedule_conj_on_day: 'on day', - cron_schedule_conj_at: 'at', - cron_schedule_conj_at_minute: 'at minute', - cron_weekday_sun: 'Sunday', - cron_weekday_mon: 'Monday', - cron_weekday_tue: 'Tuesday', - cron_weekday_wed: 'Wednesday', - cron_weekday_thu: 'Thursday', - cron_weekday_fri: 'Friday', - cron_weekday_sat: 'Saturday', + cron_schedule_time_label: '時刻', + cron_schedule_conj_on: '曜日', + cron_schedule_conj_on_day: '日', + cron_schedule_conj_at: '時刻', + cron_schedule_conj_at_minute: '分', + cron_weekday_sun: '日曜日', + cron_weekday_mon: '月曜日', + cron_weekday_tue: '火曜日', + cron_weekday_wed: '水曜日', + cron_weekday_thu: '木曜日', + cron_weekday_fri: '金曜日', + cron_weekday_sat: '土曜日', cron_schedule_hour_label: '時', cron_schedule_minute_label: '分', cron_schedule_weekday_label: '曜日 (0-6, 日-土)', @@ -5247,10 +5247,10 @@ const LOCALES = { outline_title: 'アウトライン', outline_empty: 'まだ質問はありません。', outline_loading: '読み込み中…', - wiki_browse: 'Browse wiki', - wiki_search_placeholder: 'Search pages...', - wiki_no_pages: 'No wiki pages found', - wiki_not_configured: 'Wiki not configured', + wiki_browse: 'Wikiを閲覧', + wiki_search_placeholder: 'ページを検索...', + wiki_no_pages: 'Wikiページが見つかりません', + wiki_not_configured: 'Wikiが設定されていません', }, ru: {