{ "app": { "brand": "nanobot", "loading": { "connecting": "nanobot に接続中…", "boot": "nanobot を読み込み中…" }, "error": { "title": "nanobot に接続できませんでした", "gatewayHint": "gateway(`nanobot gateway`)が起動しており、このページが同じマシン上で開かれていることを確認してください。" }, "system": { "section": "システム", "restartHint": "実行時の変更を適用するには nanobot を再起動します。", "restart": "nanobot を再起動", "restarting": "再起動中..." }, "restart": { "completed": "{{seconds}} 秒で再起動が完了しました。" }, "documentTitle": { "base": "nanobot", "chat": "{{title}} · nanobot" }, "meta": { "description": "nanobot Web UI — nanobot ワークスペースと会話します。" } }, "sidebar": { "collapse": "サイドバーを閉じる", "toggleTheme": "テーマを切り替える", "newChat": "新しいチャット", "recent": "最近のチャット", "refreshSessions": "セッションを更新", "settings": "設定", "language": { "label": "言語", "ariaLabel": "言語を変更" } }, "settings": { "backToChat": "チャットに戻る", "sidebar": { "title": "設定", "ariaLabel": "設定セクション" }, "nav": { "general": "一般", "byok": "BYOK" }, "sections": { "interface": "インターフェース", "ai": "AI", "system": "システム" }, "rows": { "theme": "テーマ", "language": "言語", "provider": "プロバイダー", "model": "モデル", "restart": "nanobot を再起動", "configPath": "設定パス" }, "help": { "theme": "ライト表示とダーク表示を切り替えます。", "language": "WebUI で使用する言語を選択します。", "provider": "新しいモデルリクエストに使うプロバイダーを選択します。", "model": "nanobot が既定で使用するモデル名を設定します。", "configPath": "現在ゲートウェイが使用している設定ファイルです。" }, "values": { "light": "ライト", "dark": "ダーク", "notAvailable": "利用不可" }, "status": { "loading": "設定を読み込んでいます...", "loadError": "設定を読み込めませんでした", "unsaved": "未保存の変更があります。", "savedRestart": "保存しました。反映するには nanobot を再起動してください。" }, "actions": { "save": "保存", "saving": "保存中", "edit": "編集", "cancel": "キャンセル" }, "byok": { "description": "自分の provider キーを使います。Nanobot は現在の config から値を読み込み、設定済みの provider だけを一般設定で選択できます。", "configured": "設定済み", "notConfigured": "未設定", "configuredSection": "設定済み", "notConfiguredSection": "未設定", "showMore": "さらに {{count}} 件表示", "showLess": "折りたたむ", "apiKey": "API key", "apiBase": "API base", "apiKeyPlaceholder": "API key を入力", "apiKeyConfiguredPlaceholder": "空欄のままなら現在の key を保持", "configuredKeyHint": "設定済み key", "apiBasePlaceholder": "provider の既定値を使用", "apiKeyRequired": "この provider を設定するには API key が必要です。", "showApiKey": "API key を表示", "hideApiKey": "API key を隠す", "noConfiguredProviders": "設定済み provider がありません", "configureFirst": "先に BYOK で provider を設定してください。", "openByok": "BYOK を開く", "tabs": { "ariaLabel": "BYOK 認証情報タイプ", "llm": "LLM", "webSearch": "Web Search" }, "webSearch": { "provider": "検索 provider", "providerHelp": "web search ツールで使うバックエンドを選択します。", "selectProvider": "provider を選択", "credentials": "認証情報", "noCredentialRequired": "key は不要", "noCredentialHelp": "DuckDuckGo は API key を保存せずに使えます。", "apiKeyHelp": "config に保存され、保存後はマスク表示されます。", "baseUrl": "Base URL", "baseUrlHelp": "SearXNG には自分のインスタンス URL が必要です。", "baseUrlPlaceholder": "https://search.example.com", "apiKeyRequired": "この検索 provider には API key が必要です。", "baseUrlRequired": "SearXNG には Base URL が必要です。", "missingCredential": "保存する前に必要な認証情報を入力してください。", "saveHint": "変更は新しい web search リクエストに適用されます。" } } }, "chat": { "fallbackTitle": "チャット {{id}}", "loading": "読み込み中…", "noSessions": "まだセッションがありません。", "actions": "「{{title}}」のチャット操作", "delete": "削除", "newChat": "新しいチャット" }, "deleteConfirm": { "title": "このチャットを削除しますか?", "description": "この操作は元に戻せません。", "cancel": "キャンセル", "confirm": "削除" }, "connection": { "idle": "待機中", "connecting": "接続中…", "open": "接続済み", "reconnecting": "再接続中…", "closed": "切断済み", "error": "接続エラー" }, "thread": { "loadingConversation": "会話を読み込み中…", "empty": { "description": "質問したり、ローカル作業を続けたり、新しいスレッドを始めたりできます。", "greeting": "何をお手伝いしましょうか?", "quickActions": { "plan": { "title": "プロジェクト計画を作成", "prompt": "次に作るものについて、簡潔なプロジェクト計画を作成してください。" }, "analyze": { "title": "このデータを分析", "prompt": "このデータを分析し、最も重要なパターンを指摘してください。" }, "brainstorm": { "title": "アイデアを出す", "prompt": "この問題について、実用的なアイデアとトレードオフをいくつか出してください。" }, "code": { "title": "コードを書く", "prompt": "このタスクのコードを書くのを手伝ってください。まず最小限の有用な変更から始めてください。" }, "summarize": { "title": "この文書を要約", "prompt": "この文書を要約し、重要なポイントを列挙してください。" }, "more": { "title": "その他", "prompt": "このワークスペースであなたが手伝える便利な方法をいくつか見せてください。" } }, "imageQuickActions": { "icon": { "title": "アプリアイコンを作る", "prompt": "nanobot のクリーンな 1:1 アプリアイコンを生成してください。親しみやすいロボット、シンプルなベクター風、柔らかい青と白の配色、文字なし。" }, "sticker": { "title": "ステッカーを作る", "prompt": "小さなロボットアシスタントのかわいいステッカー風画像を生成してください。透明風の背景で、表情豊かで遊び心のある雰囲気。" }, "poster": { "title": "ポスターを作る", "prompt": "個人向け AI アシスタントの洗練されたポスター案を生成してください。モダンな構図、強い視覚階層、ランディングページ向け。" }, "product": { "title": "製品モックアップ", "prompt": "会話型 AI Web アプリのクリーンな製品モックアップ画像を生成してください。ミニマルな UI、上質なライティング、リアルなデバイスフレーム。" }, "portrait": { "title": "スタイル付きポートレート", "prompt": "親しみやすい AI コンパニオンのスタイル付きポートレートを生成してください。柔らかい光、細部は豊かで近づきやすい、モダンなイラスト風。" }, "edit": { "title": "画像を編集", "prompt": "画像編集を手伝ってください。まず編集する画像のアップロードまたは指定を求め、その後に編集後の結果を生成してください。" } } }, "header": { "toggleSidebar": "サイドバーを切り替える" }, "composer": { "placeholderThread": "メッセージを入力…", "placeholderHero": "何を考えていますか?", "placeholderOpening": "新しいチャットを開いています…", "placeholderStreaming": "モデルが応答しています…", "inputAria": "メッセージ入力欄", "sendHint": "Enter で送信 · Shift+Enter で改行", "runRuntimeTitle": "実行中 · {{elapsed}}", "goalStateStrip": "目標 · {{label}}", "goalStateFallback": "目標", "goalStateExpandAria": "目標の全文を表示", "goalStateSheetTitle": "目標", "send": "メッセージを送信", "stop": "応答を停止", "attachImage": "画像を添付", "imageMode": { "label": "画像生成", "toggle": "画像生成モードを切り替え", "placeholder": "画像を説明または編集…", "aspectAria": "画像のアスペクト比", "aspectLabel": "画像の比率", "aspect": { "auto": "自動", "1_1": "正方形 1:1", "3_4": "縦長 3:4", "9_16": "ストーリー 9:16", "4_3": "横長 4:3", "16_9": "ワイド 16:9" } }, "encoding": "処理中…", "remove": "添付を削除", "normalizedSizeHint": "{{orig}} → {{current}}(自動圧縮)", "imageRejected": { "unsupported_type": "対応していないファイル形式です", "too_many_images": "1 メッセージにつき最大 {{max}} 枚です", "magic_mismatch": "画像ファイルではないようです", "decode_failed": "この画像をデコードできません", "too_large": "画像が大きすぎます。小さいものを選んでください", "io": "このファイルを読み込めません" }, "slash": { "ariaLabel": "スラッシュコマンド", "label": "コマンド", "navigateHint": "↑↓ 選択", "selectHint": "Enter/Tab 入力", "closeHint": "Esc 閉じる", "commands": { "new": { "title": "新しいチャット", "description": "現在のタスクを停止して、新しい会話を開始します。" }, "stop": { "title": "現在のタスクを停止", "description": "このチャットで実行中の agent ターンをキャンセルします。" }, "restart": { "title": "nanobot を再起動", "description": "bot プロセスをその場で再起動します。" }, "status": { "title": "ステータスを表示", "description": "ランタイム、provider、channel の状態を表示します。" }, "history": { "title": "会話履歴を表示", "description": "保存済みの直近 N 件の会話メッセージを表示します。" }, "dream": { "title": "Dream を実行", "description": "メモリ統合を手動で開始します。" }, "dream_log": { "title": "Dream ログを表示", "description": "直近の Dream 統合で変更された内容を表示します。" }, "dream_restore": { "title": "メモリを復元", "description": "以前の Dream スナップショットへメモリを戻します。" }, "goal": { "title": "長期目標", "description": "持続的な複数ステップの目標として扱うようエージェントに伝えます。" }, "help": { "title": "ヘルプを表示", "description": "利用可能なスラッシュコマンドを一覧表示します。" } } }, "goalStateCloseAria": "目標を閉じる" }, "scrollToBottom": "一番下へスクロール", "loadEarlier": "以前のメッセージを読み込む" }, "message": { "streaming": "生成中", "assistantTyping": "アシスタントが入力中", "toolSingle": "ツールを使用中", "toolMany": "{{count}} 個のツールを使用", "toolSummary": "{{count}} 個のツール", "toolSummaryMany": "{{count}} 個のツール", "reasoningTools": "思考 · {{count}} 個のツール", "reasoningToolsSingular": "思考 · 1 個のツール", "reasoning": "思考", "reasoningStreaming": "思考中…", "reasoningSummary": "思考", "agentActivitySummary": "{{reasoning}} ステップ · ツール呼び出し {{tools}} 回", "agentActivityToolsOnly": "ツール呼び出し {{tools}} 回", "agentActivityLiveSummary": "実行中… · {{reasoning}} ステップ · ツール呼び出し {{tools}} 回", "agentActivityLiveToolsOnly": "実行中… · ツール呼び出し {{tools}} 回", "imageAttachment": "画像の添付", "turnLatencyTitle": "応答時間(全行程)" }, "lightbox": { "title": "画像プレビュー", "open": "画像を表示", "prev": "前の画像", "next": "次の画像", "close": "プレビューを閉じる" }, "code": { "fallbackLanguage": "コード", "copyAria": "コードをコピー", "copy": "コピー", "copied": "コピーしました" }, "common": { "dismiss": "閉じる" }, "errors": { "messageTooBig": { "title": "メッセージが大きすぎます", "body": "サイズ上限を超えたため、直前のメッセージはサーバーに拒否されました。画像を減らすか、より小さいファイルに差し替えて再送してください。" } } }