{
  "settings": {
    "title": "設定",
    "realtimeHint": "すべての変更はリアルタイムで反映されます",
    "general": "一般",
    "reading": "読書",
    "fonts": "フォント",
    "ai": "AI",
    "translationTab": "翻訳",
    "externalAi": "外部AIアクセス",
    "tts": "読み上げ",
    "about": "このアプリについて",
    "other": "その他",
    "aboutDesc": "Read Any, Understand More",
    "version": "バージョン",
    "techStack": "技術スタック",
    "techStackTauri": "クロスプラットフォームデスクトップフレームワーク",
    "techStackReact": "UIコンポーネントライブラリ",
    "techStackTypeScript": "型安全",
    "techStackFoliate": "電子書籍レンダリングエンジン",
    "feedback": "フィードバック",
    "supportCenter": "サポートセンター",
    "license": "GPL v3ライセンスでオープンソース",
    "checkUpdate": "アップデートを確認",
    "updateChecking": "確認中...",
    "updateAvailable": "アップデートがあります",
    "updateDownloading": "ダウンロード中",
    "updateReady": "アップデート準備完了",
    "updateError": "アップデートに失敗しました",
    "downloadUpdate": "アップデートをダウンロード",
    "downloading": "ダウンロード中",
    "updateReadyMessage": "アップデートがダウンロードされました。アプリを再起動してインストールを完了してください",
    "updateErrorMessage": "アップデートに失敗しました。後でもう一度お試しください",
    "upToDate": "最新版です",
    "relaunch": "アプリを再起動",
    "dismiss": "閉じる",
    "newVersionAvailable": "新しいバージョン{{version}}が利用可能です。ダウンロードしますか？",
    "later": "後で",
    "ok": "OK",
    "skills": "スキル",
    "language": "言語",
    "general_title": "一般",
    "general_desc": "アプリの外観と動作",
    "theme": "テーマ",
    "themeDesc": "お好みのテーマを選択",
    "system": "システム",
    "light": "ライト",
    "dark": "ダーク",
    "sepia": "セピア",
    "autoSave": "自動保存間隔",
    "autoSaveDesc": "読書進捗を保存する頻度",
    "languageDesc": "表示言語を選択",
    "appearance": "外観と言語",
    "updaterNetworkError": "更新サーバーに接続できません。ネットワークを確認してください",
    "updaterNoUpdate": "利用可能な更新がないか、サービスが一時的に利用できません",
    "updaterCheckFailed": "更新の確認に失敗しました",
    "updaterNoAvailable": "利用可能な更新はありません",
    "updaterDownloadFailed": "更新のダウンロードに失敗しました",
    "updaterRelaunchFailed": "アプリの再起動に失敗しました。手動で再起動してインストールを完了してください",
    "relaunching": "再起動中...",
    "reading_title": "読書",
    "reading_desc": "読書体験をカスタマイズ",
    "readingNotice": "フォントとレイアウト設定はEPUBなどのリフロー形式にのみ適用されます。PDFには適用されません。",
    "fontSize": "文字サイズ: {{size}}px",
    "lineHeight": "行間: {{height}}",
    "fontTheme": "フォントテーマ",
    "paragraphSpacing": "段落間隔",
    "showTopTitleProgress": "上部タイトル＆進捗表示",
    "showBottomTimeBattery": "下部時刻＆バッテリー表示",
    "volumeButtonsPageTurn": "音量ボタンでページ送り",
    "volumeButtonsPageTurnDesc": "読書中は音量ボタンでページ送りします",
    "followSystemFontScale": "システムフォントサイズに従う",
    "followSystemFontScaleDesc": "OSのアクセシビリティフォントサイズで自動調整",
    "fixedLayoutNotice": "PDFは固定レイアウト形式です。フォントとレイアウト設定は利用できません。",
    "notAvailableForPdf": "PDFでは利用できません",
    "sansSerif": "ゴシック体",
    "serif": "明朝体",
    "monospace": "等幅",
    "viewMode": "表示モード",
    "paginated": "ページ送り",
    "scroll": "スクロール",
    "paginatedLayout": "ページレイアウト",
    "singlePage": "1ページ",
    "doublePage": "見開き",
    "ai_title": "AI設定",
    "ai_desc": "AIエンドポイントとモデル設定を構成",
    "ai_endpoints": "エンドポイント",
    "ai_addEndpoint": "エンドポイントを追加",
    "ai_provider": "プロバイダー",
    "ai_provider_openai": "OpenAI互換",
    "ai_provider_anthropic": "Anthropic Claude",
    "ai_provider_google": "Google Gemini",
    "ai_provider_deepseek": "DeepSeek",
    "ai_endpointName": "名前",
    "ai_endpointNamePlaceholder": "例: OpenAI, Ollama, Claude...",
    "ai_apiKey": "APIキー",
    "ai_baseUrl": "ベースURL",
    "ai_baseUrlPlaceholder": "https://api.openai.com/v1",
    "ai_baseUrlOptional": "ベースURL（オプション）",
    "ai_fetchModels": "モデルを取得",
    "ai_testConnection": "接続テスト",
    "ai_testingConnection": "テスト中...",
    "ai_testSuccess": "接続に成功しました",
    "ai_testSuccessWithModels": "接続に成功しました。{{count}}個のモデルが利用可能です",
    "ai_testSuccessWithModel": "接続に成功しました。モデル{{model}}でテスト済み",
    "ai_testFailed": "接続に失敗しました",
    "ai_requestUrlPreview": "最終リクエストURL",
    "ai_baseUrlHint": "OpenAI互換エンドポイントはデフォルトで /v1 を追加します。入力したURLをそのまま使用したい場合は、正確なリクエストURLモードを有効にしてください。",
    "ai_ollamaCorsHint": "Ollamaに接続できませんか？環境変数 OLLAMA_ORIGINS=* を設定してOllamaを再起動してください。",
    "ai_exactRequestUrl": "正確なリクエストURLを使用",
    "ai_exactRequestUrlLabel": "正確なリクエストURL",
    "ai_exactRequestUrlDesc": "入力したURLをそのまま使用します。/v1、/chat/completions、/models の自動追加を行いません。",
    "ai_exactRequestUrlFetchHint": "正確なリクエストURLモードではモデル一覧を自動推論できません。テスト前にモデルを手動で追加してください。",
    "ai_testModel": "テストモデル",
    "ai_testModelAuto": "最初の利用可能なモデルを自動選択",
    "ai_fetchingModels": "取得中...",
    "ai_modelsLoaded": "{{count}}個のモデルを読み込みました",
    "ai_noModels": "モデルなし — APIから取得するか手動で追加してください",
    "ai_addModel": "追加",
    "ai_addModelPlaceholder": "モデル名を入力（例: gpt-4o）",
    "ai_removeModel": "モデルを削除",
    "ai_modelsList": "モデル一覧",
    "ai_removeEndpoint": "削除",
    "ai_activeEndpoint": "アクティブなエンドポイント",
    "ai_activeModel": "モデル",
    "ai_selectModel": "モデルを選択",
    "ai_selectEndpoint": "エンドポイントを選択",
    "ai_noEndpoints": "エンドポイントが設定されていません",
    "ai_setDefault": "デフォルトに設定",
    "ai_name": "名前",
    "webdavUrl": "WebDAVサーバーURL",
    "webdavUsername": "ユーザー名",
    "webdavPassword": "アプリパスワード",
    "testConnection": "接続テスト",
    "ai_providerLabel": "プロバイダー",
    "ai_deleteEndpoint": "エンドポイントを削除",
    "ai_globalParams": "グローバルパラメータ",
    "ai_contextWindow": "コンテキストウィンドウ",
    "ai_slidingWindow": "スライディングウィンドウ",
    "ai_contextWindowUnit": "メッセージ",
    "ai_addManualModelPlaceholder": "モデルを手動で追加...",
    "ai_newEndpoint": "新しいエンドポイント",
    "model": "モデル",
    "apiKey": "APIキー",
    "baseUrl": "ベースURL（オプション）",
    "parameters": "パラメータ",
    "temperature": "Temperature: {{value}}",
    "maxTokens": "最大トークン数: {{value}}",
    "slidingWindowSize": "コンテキスト長: {{value}}ラウンド",
    "translation_title": "翻訳設定",
    "translation_desc": "翻訳オプションを設定",
    "enableTranslation": "翻訳を有効化",
    "enableTranslationDesc": "選択テキストの翻訳を表示",
    "targetLanguage": "翻訳先言語",
    "showOriginal": "原文を表示",
    "showOriginalDesc": "訳文と一緒に原文を表示",
    "autoTranslate": "自動翻訳",
    "autoTranslateDesc": "ページを自動的に翻訳",
    "skills_title": "スキル",
    "skills_desc": "AIツール拡張機能を管理",
    "addSkill": "スキルを追加",
    "noSkills": "カスタムスキルはまだありません。組み込みスキルは自動的に利用可能です。",
    "builtIn": "組み込み",
    "enabled": "有効",
    "disabled": "無効",
    "viewSkill": "スキルを表示",
    "editSkill": "スキルを編集",
    "skillName": "スキル名",
    "skillNamePlaceholder": "例: マインドマップを生成",
    "skillDescription": "スキルの説明",
    "skillDescriptionPlaceholder": "このスキルが何をするか簡潔に説明",
    "skillPrompt": "スキルプロンプト",
    "skillPromptPlaceholder": "スキルの動作と出力要件を詳細に記述",
    "builtinNameReadOnly": "組み込みスキルの名前は変更できません",
    "skillUsage": "スキルの使い方",
    "skillUsageSummary": "要約",
    "skillUsageSummaryDesc": "チャットで「この章を要約して」や「本の要約」と入力",
    "skillUsageCharacter": "登場人物",
    "skillUsageCharacterDesc": "「登場人物は誰？」や「主人公を分析して」と質問",
    "skillUsageQuote": "引用",
    "skillUsageQuoteDesc": "「引用を見つけて」や「印象的な文章」とリクエスト",
    "skillUsageAnalysis": "分析",
    "skillUsageAnalysisDesc": "「著者の主張は何？」や「論理を分析して」と質問",
    "vectorModel": "ベクトルモデル",
    "vm_title": "ベクトルモデル",
    "vm_desc": "セマンティック検索とRAG検索のための埋め込みモデルを設定",
    "vm_autoVectorizeOnImport": "新しい本を自動ベクトル化",
    "vm_autoVectorizeOnImportDesc": "有効にすると、インポートまたは同期でダウンロードした本を自動でインデックス作成キューに入れます。予期しないモデル使用を避けるため既定ではオフです。",
    "vm_modeTitle": "モデルソース",
    "vm_modeBuiltin": "組み込みローカルモデル",
    "vm_modeBuiltinDesc": "モデルをダウンロードしてローカルで実行。APIは不要です",
    "vm_modeRemote": "リモートAPI",
    "vm_modeRemoteDesc": "外部の埋め込みAPIサービスを使用",
    "vm_builtinModels": "組み込みモデル",
    "vm_builtinDesc": "軽量モデルをダウンロードしてアプリ内でローカル実行します。初回ダウンロードは自動的にキャッシュされます。",
    "vm_download": "ダウンロード",
    "vm_loaded": "読み込み済み",
    "vm_clearCache": "クリア",
    "vm_clearing": "クリア中...",
    "vm_clearSuccess": "キャッシュをクリアしました",
    "vm_recommended": "おすすめ",
    "vm_loadError": "読み込み失敗: {{error}}",
    "vm_remoteModels": "リモートモデル",
    "vm_remoteDesc": "外部の埋め込みAPIサービスに接続",
    "vm_noRemoteModels": "リモートモデルの設定がまだありません。外部の埋め込みAPIを使用するには追加してください。",
    "vm_models": "モデル一覧",
    "vm_addModel": "モデルを追加",
    "vm_addModelTitle": "新しいモデルを追加",
    "vm_editModel": "モデルを編集",
    "vm_noModels": "ベクトルモデルの設定がありません。セマンティック検索を有効にするには追加してください。",
    "vm_name": "名前",
    "vm_modelId": "モデルID",
    "vm_url": "APIエンドポイント",
    "vm_urlHint": "APIルート、/v1 ベース、または完全な /embeddings URL を入力できます。保存とテスト時に自動で正規化します。",
    "vm_apiKey": "APIキー",
    "vm_description": "説明",
    "vm_descriptionPlaceholder": "モデルの説明（オプション）",
    "vm_dimension": "次元数: {{dim}}",
    "vm_test": "テスト",
    "vm_testing": "テスト中...",
    "vm_testSuccess": "✓ 接続に成功しました | 次元数: {{dimension}}",
    "vm_testFailed": "✗ 接続に失敗しました: {{error}}",
    "vm_testFailedWithUrl": "✗ 接続に失敗しました: {{error}}（テストURL: {{url}}）",
    "vm_model_desc_miniLM": "高速で軽量、汎用的な品質",
    "vm_model_desc_bgeEn": "高品質な英語埋め込み",
    "vm_model_desc_bgeZh": "高品質な中国語埋め込み",
    "vm_model_desc_e5": "多言語対応、全体的に良いパフォーマンス",
    "vm_lang_en": "英語",
    "vm_lang_zh": "中国語",
    "vm_lang_multi": "100以上の言語",
    "sync": "同期",
    "syncTitle": "WebDAV同期",
    "syncDesc": "WebDAV経由でデバイス間の読書データを同期",
    "syncLayoutMigrationNotice": "リモートレイアウトが更新されました — すべての同期デバイスをこのバージョンにアップグレードしてください",
    "syncConnection": "接続設定",
    "syncUrl": "サーバーURL",
    "syncUrlPlaceholder": "https://dav.example.com",
    "syncUsername": "ユーザー名",
    "syncPassword": "パスワード",
    "syncRemoteRoot": "リモートフォルダ",
    "syncRemoteRootPlaceholder": "readany",
    "syncRemoteRootDesc": "ReadAny の同期専用として使用するリモートフォルダを選択してください。ネストされたパスに対応し、テストまたは初回同期時に自動作成されます。ReadAny はここに既に置かれている本をスキャンしません。既存の WebDAV ライブラリを取り込む場合は「別のWebDAVに接続」を使用してください。",
    "syncTestConnection": "接続テスト",
    "syncTesting": "テスト中...",
    "syncTestSuccess": "接続に成功しました",
    "syncTestFailed": "接続に失敗しました: {{error}}",
    "syncSave": "設定を保存",
    "syncSaved": "設定を保存しました",
    "syncStatus": "同期ステータス",
    "syncNow": "今すぐ同期",
    "syncSyncing": "同期中...",
    "syncLastSync": "最終同期",
    "syncNever": "未同期",
    "syncSuccess": "同期完了",
    "syncFailed": "同期に失敗しました: {{error}}",
    "syncRecordsUp": "{{count}}件のレコードをアップロード",
    "syncRecordsDown": "{{count}}件のレコードをダウンロード",
    "syncFilesUp": "{{count}}件のファイルをアップロード",
    "syncFilesDown": "{{count}}件のファイルをダウンロード",
    "syncFilesPartialFailed": "⚠️ 一部のファイルの同期に失敗しました（{{uploadFailed}}件のアップロード失敗、{{downloadFailed}}件のダウンロード失敗）。原因: リモートがフォルダ作成を拒否した、ネットワークの一時的な問題、またはアクセス拒否。次回の同期で自動的に再試行されます。",
    "syncAutoSync": "自動同期",
    "syncAutoSyncDesc": "バックグラウンドで自動的にデータを同期",
    "syncInterval": "同期間隔",
    "syncIntervalDesc": "自動同期が有効な場合、N分ごとに更新を確認します",
    "syncIntervalMinutes": "{{count}}分",
    "syncAllowInsecure": "安全でない接続を許可",
    "syncAllowInsecureDesc": "TLS証明書の検証をスキップ（自己署名証明書用）",
    "syncAllowInsecureDescMobile": "自己署名証明書サーバー用にHTTPSの代わりにHTTPを使用",
    "syncWebdavAuthFailed": "WebDAV認証に失敗しました。ユーザー名とアプリパスワードを確認してください。",
    "syncWebdavForbidden": "WebDAVアクセスが拒否されました。このパスに対するアカウント権限を確認してください。",
    "syncWebdavNotFound": "WebDAVアドレスまたはパスが見つかりません。サーバーURLとルートパスを確認してください。",
    "syncWebdavMethodNotAllowed": "サーバーがWebDAVリクエストに正しく応答しませんでした。WebDAVが有効か確認してください。",
    "syncWebdavTimeout": "WebDAV接続が{{seconds}}秒後にタイムアウトしました。サーバーURL、ポート、ネットワークを確認してください。",
    "syncWebdavNetworkError": "WebDAVサーバーに到達できません。ネットワーク、URL、ポート、または証明書の設定を確認してください。",
    "syncWebdavDesktopScopeError": "このデスクトップビルドはそのWebDAVアドレスをまだ許可していません。最新ビルドに更新してアプリを再起動し、もう一度お試しください。",
    "syncWebdavTlsError": "WebDAV TLS証明書の検証に失敗しました。証明書を確認するか、安全でない接続を許可して再試行してください。",
    "syncWebdavServerError": "WebDAVサーバーエラー ({{status}})。",
    "syncWebdavHttpError": "WebDAVリクエストに失敗しました ({{status}})。",
    "syncWebdavUnknownError": "WebDAVリクエストに失敗しました: {{message}}",
    "syncNotConfigured": "未設定",
    "syncAdvanced": "詳細オプション",
    "syncForceUpload": "全アップロード",
    "syncForceUploadDesc": "このデバイスの現在のデータでリモートのデータベース、書籍、カバーを上書きします。",
    "syncForceUploadConfirm": "全アップロードを開始しますか？リモートデータベースが上書きされ、一致するリモートの書籍とカバーが再アップロードされます。",
    "syncForceDownload": "全ダウンロード",
    "syncForceDownloadDesc": "リモートのコピーでこのデバイスのデータベース、書籍、カバーを上書きします。",
    "syncForceDownloadConfirm": "全ダウンロードを開始しますか？このデバイスのデータベースが上書きされ、リモートの書籍とカバーが再ダウンロードされます。",
    "syncDeviceId": "デバイスID",
    "syncReset": "同期データをリセット",
    "syncResetDesc": "すべての同期メタデータをクリアします。同期に問題がある場合に使用してください。",
    "syncResetConfirm": "リセットしてもよろしいですか？すべての同期ステータスがクリアされ、次回は完全な再同期が行われます。",
    "syncResetDone": "同期データをリセットしました",
    "syncDisconnect": "接続解除",
    "syncDisconnectConfirm": "接続を解除してもよろしいですか？このデバイスのデータは削除されません。",
    "syncChecking": "確認中...",
    "syncUploading": "データベースをアップロード中...",
    "syncDownloading": "データベースをダウンロード中...",
    "syncSyncingFiles": "ファイルを同期中...",
    "syncError": "同期エラー",
    "syncDirection": "方向: {{direction}}",
    "syncDuration": "所要時間: {{ms}}ms",
    "syncConflictTitle": "同期の競合",
    "syncConflictDesc": "ローカルとリモートの両方にデータの変更があります。保持するバージョンを選択してください。",
    "syncConflictUpload": "ローカルをアップロード",
    "syncConflictDownload": "リモートをダウンロード",
    "syncProgressDatabase": "{{operation}}を実行中...",
    "syncProgressFiles": "{{operation}} ファイル {{completed}}/{{total}}",
    "syncBackendType": "同期方法",
    "syncWebdavDesc": "WebDAVサービス経由で同期",
    "syncS3Desc": "S3互換ストレージ経由で同期",
    "syncLANDesc": "LAN高速転送",
    "syncWebDavConfig": "WebDAV設定",
    "syncS3Config": "S3設定",
    "syncS3Endpoint": "サービスエンドポイント",
    "syncS3Region": "リージョン",
    "syncS3Bucket": "バケット",
    "syncS3RemoteRoot": "同期フォルダ",
    "syncS3RemoteRootDesc": "このバケット内のフォルダプレフィックスを選択します。apps/readany のような階層パスにも対応しています。",
    "syncS3AccessKeyId": "アクセスキーID",
    "syncS3SecretAccessKey": "シークレットアクセスキー",
    "syncS3PathStyle": "パススタイルURLを使用",
    "syncLANConfig": "LAN転送",
    "syncLANDescFull": "同じLAN上の別デバイスからデータを増分インポートし、ライブラリの変更をマージして不足している書籍やカバーをダウンロードします。",
    "syncLANServer": "このデバイスから送信",
    "syncLANServerDesc": "このデバイスのデータを他のデバイスにインポートできるように共有",
    "syncLANClient": "デバイスからインポート",
    "syncLANClientDesc": "他のデバイスからライブラリデータを素早くインポート",
    "syncLANServerTitle": "このデバイスのデータを送信",
    "syncLANClientTitle": "デバイスデータをインポート",
    "syncLANServerStatus": {
      "idle": "未開始",
      "starting": "準備中...",
      "running": "インポート待ち",
      "stopping": "停止中...",
      "error": "エラー"
    },
    "syncLANQRPlaceholder": "QRコードがここに表示されます",
    "syncLANPairCode": "ペアリングコード",
    "syncLANServerHint": "別のデバイスでReadAnyを開き、このQRコードをスキャンするかペアリングコードを入力して、このデバイスのデータをインポートしてください",
    "syncLANServerStart": "サーバーを開始",
    "syncLANServerStarting": "開始中...",
    "syncLANServerStop": "サーバーを停止",
    "syncLANScanQR": "QRコードをスキャン",
    "syncLANScannerPlaceholder": "カメラプレビューエリア",
    "syncLANManualConnect": "手動インポート",
    "syncLANIP": "IPアドレス",
    "syncLANPort": "ポート",
    "syncLANPairCodeLabel": "ペアリングコード",
    "syncLANInvalidQR": "無効なQRコードです",
    "syncLANFillAll": "すべてのフィールドを入力してください",
    "syncLANConnectionFailed": "接続に失敗しました。ペアリングコードが正しいか確認してください",
    "syncLANConnecting": "接続中...",
    "syncLANConnect": "接続してインポート",
    "syncLANManual": "または手動入力",
    "syncLANScanHint": "デスクトップのQRコードにスキャナーを合わせてください",
    "syncLANImportWarningTitle": "LANインポートに関する注意",
    "syncLANImportWarning": "接続すると、サーバーデバイスからデータベースの変更を増分インポートし、不足している書籍やカバーをダウンロードします（デバイス全体を置き換えるのではありません）。サーバーに明示的な削除がある場合、それらの削除も同期されます。",
    "syncLANImportBanner": "このLANインポートは、ライブラリ全体を置き換えるのではなく、変更をマージして不足ファイルをダウンロードします。",
    "syncLANImportStatus": "インポート状況",
    "syncLANLastImport": "最終インポート",
    "syncLANPreparingImport": "インポートを準備中",
    "syncLANImporting": "インポート中",
    "syncLANImportingFiles": "ファイルをインポート中",
    "syncLANImportProgressDatabase": "データベースをインポート中...",
    "syncLANImportProgressFiles": "ファイルをインポート中 {{completed}}/{{total}}",
    "syncLANImportComplete": "インポート完了",
    "syncLANImportedFiles": "{{count}}件のファイルをインポートしました",
    "syncLANExpoGoUnsupported": "Expo GoはネイティブTCPモジュールが必要なため、LAN送信機能に対応していません。カスタムDev Client（expo run）またはデスクトップアプリを使用してください。",
    "syncAndroidExpoGoHttpUnsupported": "Android Expo Goでは、このプレーンHTTP WebDAVエンドポイントのテストに対応していません。HTTPSを使用するか、カスタムDev Client / リリースビルドで再テストしてください。",
    "cameraPermission": "カメラの権限",
    "cameraPermissionDesc": "同期機能はQRコードのスキャンにカメラの権限が必要です",
    "syncClose": "閉じる",
    "syncLANManualIPHint": "IPアドレスを自動検出できません。ローカルLAN IPを手動で入力してください。",
    "syncLANTauriRequired": "LAN送信機能はTauriデスクトップアプリ内でのみ動作します。ブラウザの開発ページを実行しているようです。デスクトップシェルを起動してください。",
    "syncLANAddress": "アドレス",
    "translationProvider": "翻訳エンジン",
    "selectModel": "モデルを選択",
    "noModelsFetched": "AI設定でモデル一覧を取得してください",
    "apiKeyPlaceholder": "APIキーを入力",
    "deeplKeyHint": "DeepL APIキー",
    "translationModel": "翻訳モデル",
    "selectEngine": "エンジンを選択",
    "username": "ユーザー名",
    "password": "アプリパスワード",
    "autoSync": "自動同期",
    "autoSyncDesc": "バックグラウンドで自動的にデータを同期",
    "appearanceLanguage": "外観と言語",
    "storageLocation": "ライブラリの保存場所",
    "storageLocationDesc": "デスクトップの書籍、カバー、データベースファイルがここに保存されます。ディレクトリを変更すると、システムドライブの容量不足を避けるため一緒に移行されます。",
    "storageCurrentPath": "現在のディレクトリ",
    "storageTargetPath": "移行先ディレクトリ",
    "storageChooseFolder": "フォルダを選択",
    "storageMigrate": "このディレクトリに移行",
    "storageMigrating": "移行中...",
    "storageResetDefault": "デフォルトディレクトリに戻す",
    "storageMigrationNote": "移行はインポート済みの書籍、カバー、データベースファイルをまとめて移動します。移行後、アプリは自動的に再起動し、今後のインポートや同期ダウンロードも新しいディレクトリを使用します。",
    "storageMigrationSuccess": "{{count}}件のファイルを移行しました。アプリがまもなく再起動します。",
    "storageMigrationFailed": "移行に失敗しました: {{error}}",
    "storageChooseFolderFirst": "先に移行先フォルダを選択してください",
    "storageNoChange": "このディレクトリはすでに使用中です",
    "storageAlreadyDefault": "すでにデフォルトディレクトリを使用しています",
    "aiConfig": "AI設定",
    "aiProvider": "プロバイダー",
    "ai_models": "モデル",
    "ai_namePlaceholder": "例: My OpenAI",
    "configImported": "設定をインポートしました",
    "copiedToClipboard": "トークンをクリップボードにコピーしました",
    "copyToken": "下のトークンをコピーして別のデバイスでインポート",
    "english": "英語",
    "exportConfig": "エクスポート",
    "exportFailed": "エクスポートに失敗しました",
    "importConfig": "インポート",
    "importFailed": "インポートに失敗しました",
    "invalidConfig": "無効な設定形式です",
    "pasteConfig": "設定トークンを貼り付け...",
    "simplifiedChinese": "簡体字中国語",
    "syncConfig": "同期設定",
    "transferConfig": "設定を転送",
    "vectorConfig": "ベクトル設定",
    "webdavAllowInsecure": "安全でない接続を許可",
    "ai_provider_zhipu": "智譜 GLM",
    "ai_provider_aliyun": "アリババクラウド通義",
    "ai_provider_custom": "カスタム（OpenAI互換）",
    "ai_currentLabel": "現在:",
    "ai_searchModels": "モデルを検索...",
    "ai_noMatchingResults": "一致する結果がありません",
    "ai_totalModels": "{{count}}モデル",
    "externalAiSettings": {
      "overview": {
        "title": "外部AIアクセス Beta",
        "description": "CLI、Skill、クライアント検出フォルダ、MCP設定をまとめて確認します。修復は現在選択中の profile を使います。",
        "mcpConfigHint": "MCP config は一般的な設定ファイルに ReadAny が存在することを示します。実際に読み込まれたかは再起動または新規セッションで確認してください。"
      },
      "cli": {
        "title": "ReadAny CLI",
        "description": "デスクトップアプリは許可された CLI チェックのみ実行し、任意の shell は開放しません。",
        "notInstalledOrPath": "未インストール、または PATH で利用不可",
        "runtimeEvidence": "ランタイム / パッケージ証拠"
      },
      "agent": {
        "title": "Agent 初期化",
        "description": "このコマンドを外部AIにコピーします。ReadAny CLI と Skill をインストールし、MCP設定スニペットを返します。",
        "clientDiscoveryStatus": "クライアント検出状態",
        "clientDiscoveryEmpty": "診断を実行するとクライアントの Skill 検出状態が表示されます。",
        "mcpConfigStatus": "MCP設定状態",
        "mcpConfigEmpty": "診断を実行すると MCP 設定結果が表示されます。",
        "profileRiskWarning": "この profile は draft 書き込みまたはエクスポートを許可します。コピーまたは初期化の前に上のリスクスイッチを確認してください。",
        "latestInstallResult": "直近のワンクリックインストール結果"
      },
      "skill": {
        "title": "AIアシスタントにインストール",
        "description": "AIアシスタントへ1つの指示をコピーし、Skill と MCP をインストールさせます。",
        "copyToCurrentAssistant": "現在のAIアシスタントへコピー",
        "copyHint": "選択した profile で直接インストールします。",
        "allClients": "すべてのクライアント",
        "skillInstalled": "スキルインストール済み",
        "pending": "未インストール"
      },
      "mcp": {
        "title": "MCPアクセス profile",
        "description": "MCP のアクセス権限を選択します。editor / publisher は明示確認が必要です。CLI や Skill のインストールだけでは書き込み権限は付与されません。",
        "currentTemplate": "{{description}} 現在 {{client}} テンプレートをコピーしています。",
        "riskConfirmation": "外部AIに書き込み/エクスポートツールを許可",
        "currentTools": "現在の MCP ツール"
      },
      "profileDescriptions": {
        "readonly": "読み取り専用アクセス：ライブラリ、章、ノート、ハイライト、RAG、診断読み取り。",
        "editor": "編集アクセス：readonly を含み、EPUB draft の作成と draft 内容の編集を許可します。",
        "publisher": "公開アクセス：editor を含み、validate / export / notes export / knowledge export を許可します。"
      },
      "clients": {
        "generic": "汎用 JSON",
        "genericShort": "汎用",
        "codex": "Codex TOML",
        "agents": "Agents 汎用"
      },
      "output": {
        "notRun": "まだ実行していません。",
        "success": "コマンドが正常に完了しました。",
        "exitStatus": "コマンド終了コード {{status}}",
        "accessUninstalled": "外部AI接続を削除しました。",
        "cliUninstalled": "ReadAny CLI をアンインストールしました。"
      },
      "skillPrompt": {
        "intro": "ReadAny 外部AI Skill を直接インストールして有効化してください。",
        "execute": "手順説明だけで終わらせず、インストール先の表も出さず、次を直接実行してください：",
        "mergeConfig": "現在のAIクライアント設定を変更できる場合は MCP 設定を直接マージしてください。できない場合は必要最小限の設定スニペットだけを返してください。",
        "done": "完了後は次だけ返信してください：ReadAny Skill をインストールしました。現在のAIクライアントを再起動するか、新しいセッションを開いてください。",
        "protectBooks": "私の書籍内容を変更、エクスポート、削除しないでください。"
      },
      "status": {
        "betaReady": "Beta 利用可能",
        "needsRepair": "修復が必要",
        "notReady": "未準備",
        "available": "利用可能",
        "missing": "不足",
        "passed": "成功",
        "failed": "失敗",
        "healthy": "正常",
        "abnormal": "異常",
        "installed": "インストール済み",
        "notInstalled": "未インストール",
        "complete": "完了",
        "configured": "設定済み",
        "needsPasteRestart": "貼り付け/再起動が必要",
        "notDetected": "未検出",
        "notDetectedYet": "まだ未検出",
        "canCopy": "コピー可能",
        "canConfigure": "設定可能",
        "waitingConfirmation": "確認待ち",
        "exists": "存在",
        "managed": "管理対象",
        "unmanaged": "非管理",
        "checked": "確認済み",
        "notFound": "未検出",
        "containsReadAny": "readany あり",
        "needsConfig": "設定が必要"
      },
      "actions": {
        "verify": "検証",
        "repairExternalAI": "外部AIを修復",
        "diagnose": "診断",
        "install": "インストール",
        "repair": "修復",
        "uninstall": "アンインストール",
        "update": "更新",
        "copied": "コピー済み",
        "copyEvidence": "証拠をコピー",
        "copyCommand": "コマンドをコピー",
        "copyAllCommand": "全クライアント用コマンドをコピー",
        "oneClickInstall": "ワンクリックインストール",
        "oneClickInstallAll": "全クライアントをインストール",
        "uninstallAccess": "接続を削除",
        "copyInstructions": "指示をコピー",
        "copyConfig": "設定をコピー",
        "expandDetails": "詳細を開く"
      },
      "labels": {
        "cli": "CLI",
        "doctor": "診断",
        "runtime": "ランタイム",
        "skill": "スキル",
        "clientLinks": "クライアントリンク",
        "mcpConfig": "MCP 設定",
        "version": "バージョン",
        "profile": "権限",
        "tools": "ツール",
        "commandSource": "実行元",
        "client": "クライアント",
        "skillTarget": "スキルの保存先",
        "returnedCommand": "返されたコマンド",
        "removedCliShim": "削除済み CLI shim",
        "removedSkill": "削除済みスキル",
        "distribution": "配布形式",
        "builtBundle": "ビルド済みバンドル",
        "desktopResource": "デスクトップリソース",
        "nativeBinary": "ネイティブバイナリ",
        "usesNodeRuntime": "Node ランタイム使用",
        "node": "Node",
        "nativeSqlite": "ネイティブ SQLite",
        "bundleRoot": "バンドルルート",
        "entrypoint": "エントリポイント",
        "nodeExecutable": "Node 実行ファイル",
        "cliShim": "CLI shim",
        "mcpFormat": "MCP 形式"
      },
      "empty": {
        "runDiagnostics": "診断を実行すると表示されます。"
      },
      "doctorChecks": {
        "nodeRuntime": {
          "name": "Node ランタイム",
          "message": "Node ランタイムが利用可能です：{{executable}}（{{version}}）。"
        },
        "nativeSqlite": {
          "name": "ネイティブ SQLite",
          "ok": "better-sqlite3 はライブラリと MCP データコマンドで利用可能です。",
          "fail": "better-sqlite3 が利用できません。ライブラリと MCP データコマンドが失敗する可能性があります。"
        },
        "readanyHome": {
          "name": "ReadAny ホーム",
          "ok": "ReadAny ホームは書き込み可能です。",
          "fail": "ReadAny ホームに書き込めません。"
        },
        "skill": {
          "name": "スキル",
          "ok": "ReadAny スキルは {{path}} にインストール済みです。",
          "fail": "ReadAny スキルは {{path}} にインストールされていません。"
        }
      }
    }
  }
}
