dns-worker 1.1.1 → 1.1.2
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.
- package/README.md +3 -3
- package/dist/serverfull.mjs +73 -69
- package/dist/serverfull.mjs.map +4 -4
- package/package.json +3 -1
- package/static/assets/AccountView-p5jSjMAE.js +4 -0
- package/static/assets/{AnalyticsView-C_g_jz14.js → AnalyticsView-BywwDzah.js} +2 -2
- package/static/assets/AuthView-qoUKd5PS.js +2 -0
- package/static/assets/{DestinationMap-jSW7gimP.js → DestinationMap-9Yc54Mdj.js} +1 -1
- package/static/assets/FilteringView-Bs3__NpV.js +1 -0
- package/static/assets/LogsView-B-U9oaxB.js +5 -0
- package/static/assets/{QRCodeCanvas-Cu_-aNyM.js → QRCodeCanvas-DQ-xNuwF.js} +2 -2
- package/static/assets/{RulesView-CfVeQv0-.js → RulesView-B2kL1QhI.js} +1 -1
- package/static/assets/SettingsView-DTGI6eSd.js +1 -0
- package/static/assets/SetupView-DE9MM-32.js +1 -0
- package/static/assets/{SwipeableDrawer-BrmEzhuP.js → SwipeableDrawer-B81ANpsc.js} +1 -1
- package/static/assets/{TrendChart-Dc5yJndv.js → TrendChart-CCR1W3fC.js} +3 -3
- package/static/assets/browser-Dc5iKjY4.js +1 -0
- package/static/assets/date-CpvuBM37.js +1 -0
- package/static/assets/{de-DE-CA3VPcoz.js → de-DE-kDnumQOF.js} +1 -1
- package/static/assets/{es-ES-CHvRWwd-.js → es-ES-CqKS7vHl.js} +1 -1
- package/static/assets/{fr-FR-CqGOuepx.js → fr-FR-BRcdpT35.js} +1 -1
- package/static/assets/getFlagEmoji-DRubsb7D.js +1 -0
- package/static/assets/index-Bheo8y3N.css +2 -0
- package/static/assets/index-dXN_pYn1.js +16 -0
- package/static/assets/{ja-JP-BJSbUSmh.js → ja-JP-C5jk6SuH.js} +1 -1
- package/static/assets/{ko-KR-Chzg6jwO.js → ko-KR-z38NtMFa.js} +1 -1
- package/static/assets/{ru-RU-CSyCGGPn.js → ru-RU-Bicx52lz.js} +1 -1
- package/static/assets/services-BVnEJBDq.js +1 -0
- package/static/assets/vendor-i18next-BKUzkAKP.js +1 -0
- package/static/assets/vendor-react-BmoHsW1x.js +11 -0
- package/static/assets/{vendor-ui-core-sfZn2C08.js → vendor-ui-core-CY_WyMIf.js} +1 -1
- package/static/assets/{vendor-utils-CnB7BG7m.js → vendor-utils-BWSB0jGn.js} +1 -1
- package/static/assets/{vi-VN-D7rcA1IX.js → vi-VN-CvS_mTAu.js} +1 -1
- package/static/assets/{zh-CN-CSPdaOkF.js → zh-CN-B0nRgJTD.js} +1 -1
- package/static/assets/{zh-TW-DETA1X3X.js → zh-TW-lc_SSoVI.js} +1 -1
- package/static/index.html +6 -6
- package/static/sw.js +1 -1
- package/static/assets/AccountView-CGRwz6ae.js +0 -4
- package/static/assets/AuthView-BQzmEyvO.js +0 -2
- package/static/assets/FilteringView-CQ7sX3Rp.js +0 -1
- package/static/assets/LogsView-eLfZMRVo.js +0 -5
- package/static/assets/SettingsView-agJiYEt5.js +0 -1
- package/static/assets/SetupView-CTgCUAgk.js +0 -1
- package/static/assets/browser-DPi2BX_1.js +0 -1
- package/static/assets/date-IKj2stuv.js +0 -1
- package/static/assets/getFlagEmoji-_Wxhq0lT.js +0 -1
- package/static/assets/index-919BqnYI.css +0 -2
- package/static/assets/index-CbTjGMTZ.js +0 -16
- package/static/assets/services-Cwvmit1q.js +0 -1
- package/static/assets/vendor-i18next-cO7FDf_e.js +0 -1
- package/static/assets/vendor-react-CHk5ngkq.js +0 -11
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e={account:`アカウント`,logout:`ログアウト`,selectProfile:`設定を選択`,add:`追加`,newProfileName:`新しい設定名...`,profileNameFormatTip:`設定名のヒント:1〜30文字。既存の設定と重複しないユニークな名前を指定してください`,profileLimitExceeded:`設定数が上限に達しました(最大 {{max}} 個)`,profileNameExists:`この設定名は既に存在します`,profileNameFormatError:`設定名の形式が正しくありません`,create:`作成`,welcome:`ようこそ`,createProfileToStart:`開始するには設定を作成してください。`,loading:`読み込み中...`,errorNetwork:`ネットワークエラー`,confirmDelete:`この設定を削除してもよろしいですか?`,confirmLogout:`ログアウトしてもよろしいですか?`,notFound:`404 - ページが見つかりません`,notFoundDesc:`お探しのページは存在しないか、移動された可能性があります。`,backToHome:`ホームに戻る`,apac:`アジア太平洋`,mainlandChina:`中国本土`,HongKong:`香港`,Singapore:`シンガポール`,Tokyo:`東京`,NorthAmerica:`北米`,nae:`北米東部`,naw:`北米西部`,eu:`ヨーロッパ`,invalidFormat:`無効なファイル形式`,import:`インポート`,importSuccess:`設定のインポートに成功しました`,importError:`設定のインポートに失敗しました。形式を確認し、後でもう一度お試しください`,save:`保存`,saveSuccess:`設定を保存しました`,close:`閉じる`,cancel:`キャンセル`,continue:`続行`,back:`戻る`,copy:`コピー`,copied:`コピーしました`,copyKey:`新しいリカバリキーをコピー`,confirm:`確認`,delete:`削除`,rename:`名前を変更`,disable:`無効化`,confirmDisable:`無効化を確認`,modeServerfull:`Serverfull モード`,modeCloudflare:`Cloudflare Worker モード`},t={setup:`インストール`,rules:`ルール`,stats:`統計`,logs:`ログ`,filter:`フィルター`,settings:`設定`},n={light:`ライト`,dark:`ダーク`,system:`システムに従う`},r=JSON.parse(`{"login":"DNS Worker にログイン","signup":"アカウント作成して開始","welcomeBack":"おかえりなさい、認証情報を入力してください","protectInternet":"インターネットの最初の一歩を保護します","error":"エラー","username":"ユーザー名","usernamePlaceholder":"ユーザー名を入力してください","password":"パスワード","passwordPlaceholder":"パスワードを入力してください","loginBtn":"ログイン","signupBtn":"新規登録","totpVerification":"TOTP 認証","noAccount":"アカウントをお持ちでないですか? 新規登録","haveAccount":"既にアカウントをお持ちですか? ログインに戻る","formatTipUsername":"ユーザー名の形式ヒント:5〜32文字のUnixユーザー名形式(英小文字またはアンダースコアで始まり、英小文字、数字、アンダースコア、ハイフンのみ使用可能)","formatTipPassword":"パスワードの形式ヒント:12〜100文字。","authFailed":"認証に失敗しました。ユーザー名またはパスワードを確認してください","networkError":"ネットワークエラーが発生しました。しばらくしてからもう一度お試しください","turnstileRequired":"画像認証を完了してください","turnstileError":"認証サービスの読み込みに失敗しました。Site Keyまたはドメイン設定を確認してください","verifying":"安全性を確認中...","passwordLeaked":"このパスワードは漏洩している可能性があります。アカウントの安全のため、ランダムなパスワードまたは強力なパスワードを使用してください。","usernameExists":"このユーザー名は既に登録されています。別のユーザー名をお試しください。","skip":"スキップ","showPassword":"パスワードを表示","hidePassword":"パスワードを非表示","geolocationRequired":"位置情報の取得に失敗しました。再起動または再入場してください。","unauthorizedDefault":"セッションの有効期限が切れました。再度ログインしてください。","unauthorizedGeo":"地理的位置の変更(距離制限超過)が検出されたため、セッションが強制終了されました。","unauthorizedExpired":"ログイン有効期限が切れました。再度ログインしてください。","unauthorizedReuse":"セキュリティ警告:重複ログインが検出されたため、セッションを終了しました。","unauthorizedRevoked":"セッションが取り消されたか削除されました。再度ログインしてください。","sessionLockTitle":"無操作時のセッションロック","sessionLockDesc":"アプリケーションがアイドル状態のときにインターフェースを4桁のPINでロックし、不正な物理アクセスからアクティブなセッションを保護します。","enableSessionLock":"セッションロックを有効にする","inactivityTimeout":"無操作のタイムアウト","timeout1m":"1分","timeout2m":"2分","timeout5m":"5分","timeout15m":"15分","timeout30m":"30分","timeout60m":"60分","changePin":"PINの変更","disablePin":"セッションロックを無効にする","configurePin":"PINの設定","newPin":"新しい4桁のPIN","pinHelper":"数字のみ、例:1234","confirmPin":"新しいPINの確認","verifyIdentity":"本人確認","usePassword":"パスワードを使用","use2fa":"TOTP コードを使用","totpCode":"TOTP コード","currentPassword":"現在のパスワード","disablePinWarning":"PINを無効にすると、無操作セッションロック機能が完全に無効になります。","pinFormatTip":"PINは正確に4桁である必要があります","pinMatchTip":"PINが一致しません","passwordRequired":"確認にはパスワードが必要です","sessionLocked":"無操作のためセッションがロックされました","sessionExpired":"試行回数が多すぎます。セッションが終了しました。","pinIncorrect":"PINが正しくありません","attemptsRemaining":"残り試行回数: {{count}}回","logoutAndReturn":"セッションからログアウト","lockNow":"今すぐロック","cfErrorWithDetails":"Cloudflare Edge エラー (エラー {{code}}: {{desc}})。サービスは一時的に利用できません。しばらくしてからもう一度お試しください。{{rayId}}","cfErrorCodeOnly":"Cloudflare Edge エラー (エラー {{code}})。サービスは一時的に利用できません。{{rayId}}","cfErrorGeneric":"Cloudflare Edge エラーが発生しました。しばらくしてからもう一度お試しください。{{rayId}}","htmlErrorGeneric":"サーバーが異常なレスポンスを返しました (HTTP {{status}})。しばらくしてからもう一度お試しください。","tooManyAttempts":"リクエストまたは試行回数が多すぎます。しばらくしてからもう一度お試しください。","dbQuotaExceeded":"データベースの1日の読み取りクォータを超過しました。毎日のリセットをお待ちください。","noUsersRegistered":"アカウントが登録されていません。管理者として登録してください。","registerAdminTitle":"管理者アカウントの登録","registerAdminDesc":"システムにアカウントがありません。最初に登録されたユーザーがシステム管理者になります。","goToRegisterAdmin":"管理者登録","dbNotInitialized":"データベースが初期化されていないかテーブルが見つかりません。npm run db:migrate:prod を実行してください。","verifyWithPasskey":"パスキーで検証","orUseTotp":"または認証アプリのコードを使用","passwordRequiredFirst":"最初にパスワードを入力してください","passkeyVerification":"パスキー認証","passkeyPromptDesc":"登録された生体認証またはセキュリティキーを使用して検証","forgotPassword":"パスワードをお忘れですか?","forgotPasswordTitle":"パスワードのリセット","forgotPasswordDesc":"多要素認証(パスキーまたは認証コード)を使用して安全にアカウントを回復します。","noMfaContactAdmin":"このアカウントには多要素認証(PasskeyまたはTOTP)が設定されていないため、セルフ回復できません。システム管理者にリセットを依頼してください。","chooseMfaForReset":"本人確認の方法を選択してください:","authViaPasskey":"パスキーで認証","authViaPasskeyDesc":"生体認証またはセキュリティキーを使用したワンクリック認証","authViaTotp":"認証アプリ (TOTP) で認証","authViaTotpDesc":"認証アプリに表示される6桁の動的コードを入力","authViaRecoveryKey":"緊急リカバリーキーを使用","authViaRecoveryKeyDesc":"10文字の緊急リカバリーキーを入力","verifyAndProceed":"検証して続行","setNewPassword":"新しいパスワードを設定","setNewPasswordDesc":"本人確認が完了しました。アカウントの新しいパスワードを入力してください。","newPassword":"新しいパスワード","confirmNewPassword":"新しいパスワードの確認","passwordMismatch":"パスワードが一致しません","saveAndReset":"保存してリセット","resetSuccessTitle":"パスワードのリセットが完了しました","resetSuccessDesc":"パスワードが更新され、すべての既存セッションが無効化されました。新しいパスワードで再ログインしてください。","goToLogin":"ログインへ進む","mfaSetupTitle":"アカウントのセキュリティ強化","mfaSetupDesc":"多要素認証 (MFA) を設定すると、アカウントの保護、パスワードレスログイン、パスワードのセルフ復旧が有効になります。","mfaRecommended":"おすすめ","passkeySignupDesc":"Touch ID、Face ID、セキュリティキーを使用して、手軽かつ最高水準のセキュリティを実現します。","bindPasskeyNow":"パスキーを登録する","mfaUniversal":"汎用","totpSignupDesc":"Google Authenticatorや1Passwordなどの認証アプリを使用して6桁コードを生成します。","setupTotpBtn":"認証アプリを設定する","skipMfaSetup":"今はスキップして完了","backToMfaOptions":"オプションの選択に戻る","otherOptions":"その他のオプション","next":"次へ","mfaVerification":"多要素認証 (MFA)","totpPrompt":"認証アプリの 6 桁の動的確認コードを入力してください","recoveryPrompt":"30 桁の緊急リカバリキー(6 桁 × 5 グループ)を入力してください","recoveryChecksumError":"チェックサムエラー:このグループの 6 桁の数値は 11 で割り切れません","recoveryChecksumErrorDesc":"第 {{groups}} グループのチェックサムエラーです。確認して再試行してください","backToPasskey":"パスキー認証に戻る","recoveryKeyRequired":"緊急リカバリキーを入力してください","totpFormatError":"有効な 6 桁のコードを入力してください","registrationDisabledTitle":"登録は停止されています","registrationDisabledDesc":"現在、新規ユーザーの登録は停止されています。アカウントの取得についてはシステム管理者にお問い合わせください。","backToLogin":"ログインに戻る","jwtSecretPreset":"デフォルトの JWT_SECRET が検出されました。デプロイ前に環境変数でプリセットの JWT_SECRET を変更してください。","jwtSecretMissing":"JWT_SECRET が見つかりません。デプロイ前に環境変数で安全なキーを設定してください。","jwtSecretInvalid":"JWT_SECRET の形式が無効です。設定を確認してください。","keepLoggedIn":"{{days}} 日間ログイン状態を保持する","orUseOtherMfa":"または別の方法を使用","totpUseRecovery":"リカバリキーを使用","totpUseApp":"認証アプリを使用","mfaMethodTotp":"認証アプリ (TOTP)","invalidTotp":"無効なTOTP認証コードです。もう一度お試しください。"}`),i={title:`インストールガイド`,subtitle:`デバイスを設定し、DNS Worker でインターネットセキュリティを管理します。`,regionOptimization:`接続地域の最適化 (Windows)`,otherRegion:`その他の地域`,copied:`クリップボードにコピーしました`,verifyConnection:`接続の検証`,verifying:`検証中...`,connected:`接続完了`,notConnected:`未接続`,profileMatch:`この設定でフィルタリングされています。`,profileMismatch:`Obex に接続されていますが、設定IDが一致しません。`,verifyHint:`以下の設定を完了後、ボタンをクリックして接続を検証してください。`,refreshStatus:`ステータスを更新`,egressIp:`送信元 IP アドレス`,currentLocation:`現在地`,edgeServer:`エッジサーバー`,serverLocation:`サーバーの場所`,dohUrlTitle:`現在の設定の DoH URL`,accessPointTitle:`アクセス用 DoH URL`,defaultAccessPointName:`デバイス-1`,moreAccessPoints:`アクセスポイントの追加設定 ↗`,accessPointName:`アクセスポイント名`,accessPointToken:`アクセストークン`,addAccessPoint:`アクセスポイントの追加`,renameAccessPoint:`名前変更`,rotateToken:`トークンの更新`,rotateTokenConfirmDesc:`トークンを更新すると、古いトークンを使用しているすべてのデバイスが即座に切断されます。続行してもよろしいですか?`,deleteAccessPoint:`削除`,deleteAccessPointConfirm:`このアクセスポイントを削除してもよろしいですか?`,manageAccessPoints:`アクセスポイントの管理`,searchAccessPoints:`アクセスポイントを検索...`,accessPointNameExists:`アクセスポイント名は既に存在します`,accessPointCreated:`アクセスポイントを作成しました`,accessPointRenamed:`アクセスポイント名を変更しました`,accessPointDeleted:`アクセスポイントを削除しました`,accessPointNameFormatTip:`アクセスポイント名ヒント:1〜30文字。英数字、アンダースコア、ハイフンのみ使用可能`,accessPointLimitExceeded:`アクセスポイント数が上限に達しました(最大 {{max}} 個)`,tokenRotated:`アクセストークンを更新しました`,whatIsDoh:`DoH とは?`,dohDesc:`DNS over HTTPS (DoH) は、暗号化された HTTPS プロトコルを介してDNSクエリを実行する技術です。`,dohBenefit1:`プロバイダー等による通信の改ざんや盗聴を防ぎます`,dohBenefit2:`DNS解決およびインターネットアクセスの安全性を向上させます`,learnMore:`詳細情報`,copyUrl:`URL をコピー`,browsers:`ブラウザ`,browserTitle:`ブラウザ設定 (Chrome/Edge)`,browserSteps:`設定 > プライバシーとセキュリティ > セキュリティ > セキュア DNS を使用する > カスタム > URL を貼り付けます。`,browserTips:`または、以下のアドレスをアドレスバーにコピーしてください:`,apple:`Apple`,appleTitle:`macOS / iOS / iPadOS / tvOS`,appleDesc:`Apple デバイスは、構成プロファイルを使用して素早く設定できます。`,appleWarning:`「ロックダウンモード」が有効な場合、プロファイルはインストールできません。インストール前にシステム状態を確認してください。`,downloadConfig:`構成プロファイルをダウンロード`,appleInstallHint:`ダウンロード後、「設定」>「ダウンロード済みのプロファイル」からインストールを行ってください`,windows:`MS Windows`,windowsTitle:`Windows 11 設定`,windowsStep0:`設定 > ネットワークとインターネット`,windowsStep1:`プロパティ > DNS サーバー割り当て > 編集 > 手動。`,windowsStep2:`以下の DNS IP を選択して入力します:`,windowsStep3:`DoH(テンプレート手動入力)をオンにして、URLを貼り付けます。`,windowsStep4:`「暗号化されていない接続へのフォールバック」をオフにします。`,android:`Android`,androidTitle:`Android / プライベート DNS (DoT & DoQ)`,androidDesc:`システムの標準機能「プライベート DNS (DoT)」またはサードパーティ製アプリによる DoH 設定に対応しています。`,androidDotTitle:`プライベート DNS (DoT / DoQ)`,androidDotDesc:`設定 > ネットワークとインターネット > プライベート DNS > プライベート DNS プロバイダのホスト名(各DoQクライアントにも対応):`,androidWildcardHint:`(ワイルドカード証明書、この設定にルーティング)`,androidSingleDomainHint:`(単一ドメイン証明書、デフォルト設定にルーティング)`,androidIpNotice:`現在 IP またはローカルアドレスでダッシュボードにアクセスしています。Android プライベート DNS はドメイン名のみ受け付けます。.env に SERVERFULL_DOT_DOMAIN (例: dns.example.com) を設定してください。`,androidWarning:`注意:Android 標準の「プライベート DNS」は DoT プロトコルを使用します。Cloudflare Workers にデプロイしている場合は Intra などのアプリで DoH を設定してください。TLS 証明書を設定した Serverfull モードで動作している場合は、上記 DoT ホスト名を直接指定できます。`,dynamicFromDomain:`動的 (以下から取得 "{{domain}}")`,dynamicFromDomainV6:`動的 IPv6 (以下から取得 "{{domain}}")`,linux:`Linux`,linuxTitle:`Linux (Cloudflared DoH プロキシ)`,linuxDesc:`ローカルで軽量なDNSプロキシを実行し、DoH 経由でリクエストを暗号化して Obex に転送します。`,linuxStep1:`以下のスクリプトを実行して cloudflared をインストールし、systemd サービスを作成します(127.0.0.1:53 を監視)。`,linuxStep2:`システムの DNS を 127.0.0.1 に変更します。`,routeros:`MikroTik`,routerosTitle:`MikroTik RouterOS`,routerosDesc:`ルーターの DoH サーバーとして設定すると、ネットワーク内のすべてのデバイスでこのリゾルバーを使用できます。`,routerosStep1:`RouterOS のターミナルで実行します(RouterOS 7):`,routerosNote:`ルーター経由のクエリは、個々のデバイスではなくルーターとしてログに記録されます。デバイスごとのログが必要な場合は、各デバイスを直接設定してください。`,routerosDocs:`MikroTik DNS ドキュメント`,accessPointsCardTitle:`アクセスポイント`,currentAccessPoint:`現在のアクセスポイント`,selectAccessPointToConfigure:`設定するアクセスポイントを選択`,quic:`QUIC & HTTP/3`,quicTitle:`DNS over QUIC (DoQ) & HTTP/3 (DoH3)`,quicDesc:`RFC 9250 (DNS over QUIC) および RFC 9460 (HTTP/3 & Encrypted Client Hello) をネイティブサポートし、0-RTT の高速ハンドシェイクと SNI 盗聴防止を提供します。`,doqTitle:`DNS over QUIC (DoQ - RFC 9250)`,doqAppHint:`AdGuard、Clash Meta (Mihomo)、Sing-box などの最新クライアントに対応:`,doqWildcardHint:`(ワイルドカード証明書、このプロファイルにルーティング)`,doqSingleDomainHint:`(単一ドメイン証明書、デフォルトプロファイルにルーティング)`,doqIpNotice:`DoQ には TLS 証明書と有効なドメイン名が必要です。.env に SERVERFULL_DOT_DOMAIN を設定して再読み込みしてください。`,h3Title:`HTTP/3 (DoH3) & ECH (Encrypted Client Hello)`,h3Desc:`最新のブラウザ (Chrome/Firefox/Safari) は、Alt-Svc および RFC 9460 HTTPS レコードを介して HTTP/3 と ECH 暗号化を自動ネゴシエーションします:`,ddrHint:`RFC 9460 Section 8 DDR (Discovery of Designated Resolvers) を統合済み。クライアントは _dns クエリを通じて自動的に DoQ / DoT および ECH にアップグレード可能です。`,e2eeDesc:`独自のエッジ耐量子ハイブリッド鍵 (P256-MLKEM768) で DNS ログを暗号化します。クラウド側からは閲覧できず、Passkey で認証されたローカル環境でのみ復号されます。`,detecting:`検出中...`,dotUnavailableCfTitle:`Cloudflare Worker モードでは DoT / DoQ を利用できません`,dotUnavailableCfDesc:`現在 Cloudflare Worker (Serverless) モードで実行されています。エッジ環境の制約により、ネイティブの TCP/UDP 853 ポートのリッスンはサポートされていません。DoT / DoQ を使用するには Serverfull モードでデプロイしてください。現在は DoH をご利用ください。`},a={title:`カスタムルール`,subtitle:`特定のドメインの解決動作(ブロック、許可、またはリダイレクト)を手動で制御します。`,action:`アクション`,typeBlock:`ブロック (BLOCK)`,typeAllow:`許可 (ALLOW)`,typeRedirect:`リダイレクト (REDIRECT)`,pattern:`ドメインパターン (Pattern)`,patternPlaceholder:`example.com 或 *.test.com`,addRule:`ルールを追加`,redirectSettings:`リダイレクトレコード設定`,aRecord:`A レコード (IPv4)`,aaaaRecord:`AAAA レコード (IPv6)`,cnameRecord:`CNAME レコード`,txtRecord:`TXT レコード`,optional:`(任意)`,ipv4Placeholder:`例: 1.2.3.4`,ipv6Placeholder:`例: 2001:db8::1`,cnamePlaceholder:`例: target.com`,txtPlaceholder:`テキスト内容を入力してください...`,saveRedirectRule:`リダイレクトルールを保存して追加`,noRulesTitle:`カスタムルールなし`,noRulesDesc:`追加された手動ルールはありません。`,tableAction:`アクション`,tablePattern:`パターン`,tableDetails:`解決詳細`,tableOps:`操作`,labelBlock:`ブロック`,labelAllow:`許可`,labelRedirect:`リダイレクト`,detailBlock:`解決先:`,detailAllow:`上流サービスへ転送`,patternEmpty:`ドメインパターンを入力してください`,duplicatePattern:`このドメインのルールは既に存在します`,addSuccess:`ルールを追加しました`,addFailed:`ルールの追加に失敗しました`,updateSuccess:`ルールを更新しました`,updateFailed:`ルールの更新に失敗しました`,tableCreatedAt:`追加日時`,clickToSort:`クリックして並べ替え`,editRule:`ルールを編集`,cancel:`キャンセル`,saveChanges:`変更を保存`,delete:`削除`,close:`閉じる`},o={customRange:`カスタム期間`,startTime:`開始日時`,endTime:`終了日時`,apply:`適用`,custom:`カスタム`,totalQueries:`総クエリ数`,blocked:`ブロック済み`,redirected:`リダイレクト済み`,blockRate:`ブロック率`,activeDevices:`アクティブデバイス`,activeIPs:`アクティブ IP アドレス`,queryTrend:`クエリの推移`,noRecords:`指定された期間の記録はありません`,topAllowed:`よくアクセスされるドメイン (Allowed)`,topBlocked:`ブロック頻度の高いドメイン (Blocked)`,noData:`データなし`,clientActivity:`クライアントアクティビティ`,ipAddress:`IP アドレス`,location:`国/地域`,queries:`クエリ数`,destinationDistribution:`トラフィックの送信先分布`,requests:`リクエスト`,topIsps:`主要プロバイダー`,pressToShowMore:`クリックしてさらに表示`,maximize:`拡大`,minimize:`縮小`,loading:`読み込み中...`},s={title:`クエリログ`,subtitle:`この設定の DNS 解決ログとブロック記録を確認します。`,realtime:`リアルタイム`,allStatus:`すべてのステータス`,onlyPass:`許可済み`,onlyBlock:`ブロック済み`,onlyRedirect:`リダイレクト済み`,searchPlaceholder:`ドメインを検索...`,noResults:`結果が見つかりません`,noRecords:`記録がありません`,noResultsDesc:`"{{query}}" に一致するドメインレコードはありません。`,noRecordsDesc:`選択された期間内に受信した DNS クエリはありません。`,tableTime:`時間`,tableDomain:`ドメイン`,tableAnswer:`解決結果`,tableSource:`送信元`,tableType:`タイプ`,tableStatus:`ステータス`,tableReason:`理由`,loadedAll:`全 {{count}} 件の記録を読み込みました`,realtimeLoadMoreTip:`さらに読み込むには「リアルタイム」モードをオフにしてください`,filterAccessPoint:`アクセスポイント`,allAccessPoint:`すべてのアクセスポイント`,allCountry:`すべての国`,filterCountry:`宛先国`,allIsp:`すべてのプロバイダ`,filterIsp:`プロバイダ`,timeRange:`期間`,clearFilters:`フィルターをクリア`,details:`クエリ詳細`,detailAccessPoint:`アクセスポイント`,basicInfo:`基本情報`,detailDomain:`ドメイン`,detailType:`タイプ`,detailTime:`時間`,detailLatency:`レイテンシ`,detailProfile:`使用された設定`,detailStatus:`ステータス`,detailUpstream:`上流サーバー`,detailReason:`理由`,detailNoReason:`なし (許可済み)`,detailECS:`ECS`,resolutionResult:`解決結果`,noResult:`結果なし`,networkDetails:`ネットワーク詳細`,clientSource:`クライアント (送信元)`,destination:`宛先`,quickActions:`クイック操作`,actionAllow:`許可する`,actionBlock:`ブロックする`,actionRedirect:`リダイレクトする`,statusPass:`許可済み`,statusBlock:`ブロック済み`,statusRedirect:`リダイレクト済み`,export:`ログをエクスポート`,rewritten:`書き換え済み`,logDetails:`ログの詳細`,searchCountry:`国を検索...`,noMatchingCountries:`一致する国が見つかりません`,searchIsp:`プロバイダを検索...`,noMatchingIsps:`一致するプロバイダが見つかりません`,loadingIsps:`プロバイダを読み込み中...`,loggingDisabledTitle:`ログ記録が無効です`,loggingDisabledDesc:`このプロファイルのログ保存期間は「無効」に設定されています。クエリログは記録されません。ログを表示するには、設定でログ保存を有効にしてください。`,detailIsClientEncrypted:`クライアント側暗号化`,encryptedLocked:`はい(未解除)`,encryptedDecrypted:`はい(ローカル復号済)`,encryptedYes:`はい`,notEncrypted:`いいえ`,encryptedRecord:`[暗号化された記録]`,exportSuccess:`ログのエクスポートに成功しました`,exportError:`ログのエクスポートに失敗しました`},c={title:`外部ブロックリスト`,subtitle:`サードパーティが管理するドメインブロックリスト(AdGuardなど)を購読します。`,formatDisclaimer:`本システムは、一部の AdGuard 形式およびプレーンテキストのドメインリストのみ対応しています。基本的なブロックルール(例: ||example.com^)のみサポートされ、「@@」によるホワイトリスト、 「$」による書き換えルール、 「*」によるワイルドカードルールは現在無視されます。サブドメインは自動的にマッチングされます。`,syncAll:`すべてのリストを同期`,urlPlaceholder:`ブロックリストの URL を入力してください...`,addSubscription:`購読を追加`,supportedFormats:`対応リスト形式:`,formatAdGuard:`||domain.com^ などのフィルタリングルールに対応。`,formatHosts:`標準的な hosts ファイルに対応 (例: 0.0.0.0 domain.com)。`,noListsTitle:`リスト未追加`,noListsDesc:`購読している外部ブロックリストはありません。`,tableUrl:`リスト URL`,tableLastSync:`最終同期`,tableStatus:`ステータス`,tableOps:`操作`,neverSynced:`未同期`,enabled:`正常`,disabled:`同期失敗`,statusNormal:`正常`,statusDisabled:`無効`,statusOutdated:`期限切れ`,statusMissing:`未同期`,presetOisdBig:`OISD Big (広告/マルウェア等のブロック)`,presetOisdNsfw:`OISD NSFW (ポルノ/成人向けコンテンツのブロック)`,presetAdGuard:`AdGuard AdServers (広告サーバー)`,presetStevenBlack:`StevenBlack Hosts (総合ブロック)`,syncTaskStarted:`同期タスクを開始しました`,syncCheckComplete:`同期チェックが完了しました`,syncTaskFailed:`同期に失敗しました`,syncing:`同期中...`,syncSuccess:`同期に成功しました`,syncError:`同期に失敗しました`,syncErrorDesc:`ブロックリストのダウンロードまたは解析に失敗しました。リンクが正しいこと、および正常にアクセスできることを確認してください。`,deleteConfirm:`購読を削除してもよろしいですか?`,deleteSuccess:`リストを削除しました`,deleteError:`リストの削除に失敗しました`,addSuccess:`リストを追加しました`,addError:`リストの追加に失敗しました`,listEnabled:`リストを有効化`,listEnabledHint:`無効にすると、このリストを削除せずにフィルタリングだけを停止できます。購読情報と同期履歴は保持されます。`,listEnabledToast:`リストを有効にしました - フィルターを再構築中`,listDisabledToast:`リストを無効にしました - フィルターを再構築中`,checkDomain:`ドメインを確認`,checkDomainHint:`リストはコンパクトなフィルターとして保存されているため、内容を一覧表示することはできません。任意のドメインをこのリストに対して即座にテストできます。`,check:`確認`,checkBlocked:`このリストでブロック済み`,checkNotBlocked:`このリストではブロックされていません`,checkViaParent:`(上位ドメインで一致)`,checkNotSynced:`このリストはまだ同期が完了していないため、確認できるものがありません。`,checkListDisabled:`このリストは現在無効になっているため、現時点では何もフィルタリングしていません。`,checkProbabilisticRate:`フィルターは確率的です: 約{{odds}}件に1件が誤検知です。例外を追加すると、そのすべてのサブドメインもカバーされます。`,checkProbabilistic:`フィルターは確率的であるため、一致の一部は誤検知です。例外を追加すると、そのすべてのサブドメインもカバーされます。`,checkAllowAction:`それでも許可する`,checkAllowed:`例外を追加しました - このドメインは解決されるようになりました`,allowRuleAdded:`{{domain}} の例外を追加しました`,listDetails:`リスト詳細`},l={title:`動作設定`,subtitle:`DNS 解決ポリシーと高度なオプションを管理します。`,saveChanges:`すべての変更を保存`,saveSuccess:`設定を保存しました`,saveError:`設定の保存に失敗しました。しばらくしてからもう一度お試しください`,upstreamTitle:`上流サーバー`,dohUrl:`DoH URL`,dnsIP:`DNS IP`,classicDns:`従来の DNS`,httpsOnly:`HTTPS のみサポート`,upstreamDesc:`ブロックされなかったすべてのクエリはこのサーバーへ転送されます。DoH (HTTPS)、DoT (tls://)、DNS Stamp (sdns://)、従来の DNS に対応しています。従来の DNS は TCP 経由で転送されます。`,defaultPolicyTitle:`デフォルトの動作`,onNoMatch:`ルールにマッチしない場合`,allowAll:`すべてのクエリを許可`,blockAll:`すべてのクエリをブロック`,logRetentionTitle:`ログ保存期間`,retentionDuration:`保存期间`,retentionDesc:`ログは自動的に削除されます。`,skipLogOnPass:`許可されたクエリを記録しない`,skipLogOnPassDesc:`有効にすると、正常に許可されたクエリは記録されず、ブロック、リダイレクト、または失敗したクエリのみが記録されます。`,ecsTitle:`EDNS Client Subnet (ECS)`,ecsUpstreamHint:`上流サーバーに送信される ECS サブネット`,sendEcs:`ECS を送信する`,customSubnet:`カスタムサブネット`,customIpv4:`カスタム IPv4 サブネット`,customIpv6:`カスタム IPv6 サブネット`,ipv4Hint:`(例: 1.2.3.0/24)`,ipv6Hint:`(例: 2001:db8::/32)`,testToolTitle:`リアルタイム解決テストツール`,testDomain:`テストドメイン`,recordType:`レコードタイプ`,runTest:`テストを実行`,domainPlaceholder:`例: google.com`,hitRule:`ヒットしたルール / 理由`,defaultAllow:`デフォルトの許可ポリシー`,parseLatency:`解決レイテンシ`,sourceIp:`送信元 IP アドレス`,answerSection:`解決結果 (Answer Section)`,noRecordsReturned:`このクエリから返されたレコードはありませんでした。`,diagnostics:`診断情報`,errorDetail:`エラー詳細`,upstreamResponse:`アップストリーム応答内容`,presetCloudflareSecurity:`Cloudflare Security (高速/マルウェア・フィッシング対策)`,presetCloudflareFamilies:`Cloudflare Families (高速/マルウェア・成人向けコンテンツブロック)`,presetQuad9:`Quad9 (マルウェア対策/ログなし/ECS非送信)`,presetQuad9Ecs:`Quad9 ECS (マルウェア対策/ログなし/ECS送信)`,presetControlDFree:`ControlD Free (広告/トラッカー/マルウェア・フィッシング対策)`,presetControlDUncensored:`ControlD Uncensored (検閲回避)`,presetAdGuard:`AdGuard (広告/トラッカーブロック)`,presetAdGuardFamily:`AdGuard Family protection (広告/トラッカー/成人向けコンテンツブロック/セーフサーチ)`,retention10m:`10分`,retention1h:`1時間`,retention24h:`24時間`,retention7d:`7日間`,retention30d:`30日間`,retention90d:`90日(最大)`,blockModeTitle:`ブロック応答モード`,blockModeDesc:`ドメインがブロックされた際に返される応答内容`,default:`デフォルト`,NXDOMAIN:`NXDOMAIN (ドメインが存在しない)`,NODATA:`NODATA (レコードなし)`,customIP:`カスタム IP`,export:`設定をエクスポート`,exportSuccess:`設定をエクスポートしました`,exportError:`設定のエクスポートに失敗しました。しばらくしてからもう一度お試しください`,nameUpdateSuccess:`設定名を更新しました`,saving:`保存中...`,echTitle:`ECH 書き換え`,enableEch:`ECH 書き換えを有効化`,echDesc:`Cloudflare 経由のドメインに対し、HTTPS (Type 65) / SVCB (Type 64) クエリ時に ECH パラメータと表層 SNI を自動注入・書き換えてプライバシーを保護します。`,echFrontingTitle:`外層 SNI (ECH Fronting)`,echFrontingDesc:`TLS ハンドシェイク外層で可視となるカモフラージュドメイン`,echFrontingCustomPlaceholder:`カスタムフロンティングドメインを入力(例: crypto.cloudflare.com)`,echPreferred:`推奨`,whatIsEch:`ECH (Encrypted Client Hello) とは?`,echHelpDesc:`ECH は TLS 1.3 の重要なプライバシー拡張機能であり、実際の接続先ドメイン (Inner SNI) を完全暗号化し、ネットワーク監視者にはダミードメイン (Outer SNI) のみを表示します。`,echHelpBenefit1:`プロバイダや中間者による閲覧先ドメインの盗聴を防止`,echHelpBenefit2:`DoH と連携して平文 SNI の漏洩や検閲を回避`,retentionDisabled:`無効 (プライバシー配慮)`,retentionDisabledDesc:`ログ記録は無効です。システムはDNSクエリログを記録せず、過去のログを即座に消去します。`,localRetentionTitle:`ローカルストレージと保持期間`,localRetentionDuration:`ローカル保持期間`,localRetentionDesc:`ログはブラウザのローカル SQLite データベース (OPFS) に永続的に保存され、高速な検索とクラウドストレージ費用の節約を実現します。この期間を超えたローカルログは自動的に削除されます。`,localRetention30d:`30日`,localRetention90d:`90日 (推奨)`,localRetention180d:`180日`,localRetention365d:`365日 (1年)`,localRetentionUnlimited:`無制限 (手動削除まで)`,localEngineStorage:`ストレージエンジン`,localEngineOpfs:`OPFS 永続ストレージ`,localEngineMemory:`メモリ一時保存 (プライベートモード)`,localCachedCount:`ローカルキャッシュログ`,localCachedCountUnit:`{{count}} 件`,clearLocalData:`ローカルログを消去`,clearLocalDataConfirm:`このプロファイルのローカル保存ログをすべて消去しますか?(クラウド上のログは影響を受けません)`,clearLocalDataSuccess:`ローカルログを消去しました`,clearLocalDataError:`ローカルログの消去に失敗しました`,e2eeTitle:`エンドツーエンド暗号化 (E2EE)`,e2eeEnabled:`有効`,e2eeDisabled:`無効`,e2eeDesc:`独自のエッジ耐量子ハイブリッド鍵 (P256-MLKEM768) で DNS ログを暗号化します。クラウド側からは閲覧できず、Passkey で認証されたローカル環境でのみ復号されます。`,e2eePasskeyRequired:`E2EE にはハードウェア Passkey (WebAuthn) が必要です。アカウント設定で Passkey を登録してください。`,e2eeGoToAccount:`アカウント設定で Passkey を追加`,e2eeEnableSwitch:`ログの E2EE を有効にする`,e2eeKeyType:`暗号化アルゴリズム`,e2eeDeviceState:`現在の端末状態`,e2eeUnlocked:`この端末でロック解除済み`,e2eeUnlockButton:`Passkey でロック解除`,e2eeProtectedPasskeys:`承認済み Passkey 認証情報`,e2eeDevicesUnit:`件の認証情報`,e2eeEnableSuccess:`エンドツーエンド暗号化を有効にしました`,e2eeEnableError:`E2EE の有効化に失敗しました`,e2eeDisableSuccess:`エンドツーエンド暗号化を無効にしました`,e2eeDisableError:`E2EE の無効化に失敗しました`,e2eeUnlockSuccess:`秘密鍵をこの端末で解除しました`,e2eeUnlockError:`Passkey の検証に失敗しました`,e2eeDisableConfirm:`エンドツーエンド暗号化を無効にしますか?以降のログは平文で保存されます。`,e2eeUnlockPrompt:`このプロファイルは E2EE が有効です。Passkey を認証してログを表示してください。`,e2eeUnlockNow:`暗号化ログを解除`,e2eeUnlockRecovery:`リカバリーキーでロック解除`,securityTitle:`セキュリティとアクセス`,rotateKeyTitle:`アクセスURL`,rotateKeyDesc:`このプロファイルの新しいアクセスURLを生成します。古いURLを使用しているすべてのデバイスは直ちに接続を失い、新しいURLで再設定する必要があります。`,rotateKeyBtn:`URLをローテーション`,copied:`クリップボードにコピーしました`,nameUpdateFailed:`更新に失敗しました`},u=JSON.parse(`{"title":"アカウント設定","subtitle":"セキュリティ資格情報とシステムユーザーを管理します。","e2ee":{"title":"エンドツーエンド暗号化 (E2EE)","desc":"ハードウェアPasskeyに基づくクライアント側耐量子ハイブリッド暗号化(P256-MLKEM768 + AES-256-GCM / NIST FIPS 203)エンベロープ暗号化を採用。エッジWorkerで即時に暗号化され、クラウド側には暗号文のみが保存されます。復号は許可されたデバイス上でのみ行われます。","pqcTag":"PQC / NIST FIPS 203","upgradePqcBtn":"耐量子暗号 (PQC) にアップグレード","upgradePqcSuccess":"耐量子ハイブリッド暗号 (P256-MLKEM768) へのアップグレードが完了しました","upgradePqcError":"耐量子暗号へのアップグレードに失敗しました","enabled":"有効","disabled":"無効","passkeyRequired":"エンドツーエンド暗号化にはハードウェアPasskey (WebAuthn) が必要です。上部のMFA設定でPasskeyを登録してください。","scopesTitle":"暗号化データ範囲","scopesSubtitle":"ハードウェアPasskeyでエンドツーエンド暗号化するデータカテゴリを選択します。","scopeLogsTitle":"DNSクエリログ","scopeLogsDesc":"D1に保存される前にエッジでドメイン名、クライアントIP、回答レコード、アップストリーム遅延を暗号化します。","scopeRulesTitle":"カスタムルール&リダイレクト","scopeRulesDesc":"カスタムブロック/許可ルールおよびリダイレクト設定をクライアント側で暗号化します。","scopeClientsTitle":"デバイス別名&クライアントメタデータ","scopeClientsDesc":"アクセスポイントのデバイス名、IP別名、ネットワークトポロジ情報を暗号化します。","statusActive":"保護済み","statusPlanned":"予定","profileSelect":"Profileを設定","keyType":"暗号化アルゴリズム","deviceState":"現在のデバイス状態","unlocked":"このデバイスでロック解除済み","unlockButton":"Passkeyを認証してロック解除","protectedPasskeys":"認証済みPasskey資格情報","devicesUnit":"個の資格情報","enableSuccess":"エンドツーエンド暗号化が正常に有効化されました","enableError":"エンドツーエンド暗号化の有効化に失敗しました","disableSuccess":"エンドツーエンド暗号化が無効化されました","disableError":"エンドツーエンド暗号化の無効化に失敗しました","unlockSuccess":"このデバイスで秘密鍵が正常にロック解除されました","unlockError":"Passkey認証によるロック解除に失敗しました","disableConfirm":"このプロファイルのエンドツーエンド暗号化を無効化してもよろしいですか?今後のログは平文で保存されます。(過去の暗号化ログの復号には秘密鍵が引き続き必要です)","noKeypairTitle":"エンドツーエンド暗号化キーペアが未初期化です","noKeypairDesc":"エンドツーエンド暗号化には、アカウント専用の耐量子(P256-MLKEM768)キーペアの生成が必要です。秘密鍵はパスキーまたはリカバリーキーによるエンベロープ暗号化で保護され、サーバーはログを復号できません。","initPasskeyBtn":"既存のパスキーを検証してキーペアを生成","addPasskeyBtn":"ハードウェア暗号化を有効にするパスキーを追加","initRecoveryBtn":"リカバリーキーでキーペアを生成","initWithRecoveryTitle":"リカバリーキーでキーペアを生成","initWithRecoveryDesc":"現在の30桁の緊急リカバリーキーを入力してください。システムがローカルで耐量子(P256-MLKEM768)キーペアを生成します。使用後、リカバリーキーは直ちに自動ローテーションされます。","keypairGenSuccess":"エンドツーエンド暗号化キーペアが正常に生成されました!","keypairGenError":"暗号化キーペアの生成に失敗しました","unlockRecoveryButton":"リカバリーキーでロック解除","unlockWithRecoveryTitle":"リカバリーキーでロック解除","unlockWithRecoveryDesc":"30桁の緊急リカバリーキーを入力してください。注意:使い捨てルールに従い、認証成功後にキーは直ちに自動ローテーションされます。","recoveryKeyInputLabel":"リカバリーキー","unlockConfirm":"秘密鍵をロック解除","recoveryUnlockFailed":"無効なリカバリーキー、または復号に失敗しました","generateKeypairBtn":"キーペアを生成","enableSwitch":"クエリログのエンドツーエンド暗号化を有効化","enableSwitchDesc":"ドメイン名、クライアントIP、応答レコード、上流レイテンシをエッジで暗号化してからクラウドストレージに保存します。","trustBoundaryTitle":"セキュリティと信頼境界に関する注意事項","trustBoundaryDesc":"すべてのDNSクエリトラフィックは名前解決時にホスティングサーバー(Cloudflare Workersエッジノードまたは自ホストランタイム)を必ず通過し、メモリ上で処理された後に暗号化されて永続化されます。本機能はクラウドデータベース(D1 / 永続ストレージ)の保存データ漏洩を防ぐためのものであり、リクエストを処理するホスティングサーバーに対してリアルタイムトラフィックを隠蔽するものではありません。","initFailed":"エンドツーエンド暗号化の初期化に失敗しました","lockDevice":"この端末をロック","lockSuccess":"ロックしました。秘密鍵は端末から削除されました"},"jwtSecretWarningTitle":"セキュリティ警告:JWTシークレットの強度が不足しています","jwtSecretWarningDesc":"現在の JWT_SECRET は32文字未満であり、セキュリティ上の潜在的なリスクがあります。エンベロープ暗号化された既存のTOTPおよびリカバリキーの復号を維持するため、JWT_SECRET をローテーションする前に環境変数 KEK_v1 を設定してください。","roleAdmin":"システム管理者","roleUser":"ユーザー","personalInfo":"個人情報","username":"ユーザー名","userId":"ユーザー ID","changePassword":"パスワード変更","currentPassword":"現在のパスワード","newPassword":"新しいパスワード","updatePassword":"パスワードを更新","userManagement":"ユーザー管理 (管理者限定)","createUser":"ユーザー作成","role":"ロール","createdAt":"作成日時","lastActive":"最終アクティブ時間","lastResolve":"最終解決時間","actions":"操作","dangerZone":"危険ゾーン","clearLogs":"すべてのログを消去","clearLogsDesc":"あなたのアカウントに関連付けられたすべての設定のクエリログを削除します。この操作は元に戻せません。","clearLogsBtn":"今すぐログを消去する","deleteAccount":"アカウントの退会","deleteAccountDesc":"アカウントおよび関連するすべてのデータを永久に削除します。作成したすべてのDNS解決設定にアクセスできなくなります。","deleteAccountBtn":"退会してアカウントを削除","createNewUser":"新規ユーザー作成","initialPassword":"初期パスワード","userRole":"ユーザーロール","cancel":"キャンセル","createNow":"今すぐ作成","formatTipUsername":"ユーザー名の形式ヒント:5〜32文字のUnixユーザー名形式","formatTipPassword":"パスワードの形式ヒント:12〜100文字。","passwordSuccess":"パスワードを更新しました","updateFailed":"更新に失敗しました","confirmDeleteUser":"このユーザーを削除してもよろしいですか?このユーザーが所有するすべての設定も削除されます。","confirmClearLogs":"アカウント内のすべての設定のクエリログを消去してもよろしいですか?この操作は元に戻せません。","clearLogsSuccess":"ログを正常に消去しました","confirmDeleteAccount":"警告:本当にアカウントを削除して退会しますか?\\n\\n作成したすべての DNS 設定、カスタムルール、クエリログが永久に削除されます。この操作は元に戻せません!","inactivityPolicy":"非アクティブポリシー","inactivityDesc":"ユーザーのプライバシー保護とリソース節約のため、30日間解決アクティビティのないアカウントのすべてのクエリログおよびDNS設定は自動的に削除されます。アカウント自体は、90日間のログインがない場合に削除されます。","systemSettings":"システム設定 (管理者限定)","adminOnlyView":"管理者のみ表示可能","featureToggle":"功能开关","enableTurnstileSignup":"新規登録ページで画像認証を有効にする","enableTurnstileLogin":"ログインページで画像認証を有効にする","totp":{"title":"認証アプリ (TOTP)","enabled":"有効","disabled":"無効","setupDesc":"アカウントにセキュリティレイヤーを追加します。Google AuthenticatorやAuthyなどのTOTP対応アプリを使用してください。","setupBtn":"認証アプリ (TOTP) を設定","scanQR":"安全性を確認中...","orEnterManually":"または、手動でキーを入力してください:","enterCode":"確認のため、認証アプリのコードを入力してください:","enterCodeHint":"キーが正しく登録されていることを確認するため、6桁のコードを入力します。","activate":"TOTP を有効化","skipPassword":"パスワードをスキップ — ログイン時にTOTPコードのみ入力(パスワード入力を省略)","disable":"認証アプリ (TOTP) を無効化","disableTitle":"認証アプリ (TOTP) を無効化","disableWarning":"TOTP を無効化すると、パスキーが設定されていない場合、アカウントはパスワードのみで保護されます。","confirmDisable":"TOTP を無効化","recoveryKeysTitle":"リカバリキーを保存してください","recoveryKeysWarning":"リカバリキーを安全な場所(パスワード管理アプリなど)に保存してください。各キーは1回のみ使用可能です。","copyKeys":"すべてのキーをコピー","copied":"コピーしました!","done":"完了(キーを保存しました)","activeDesc":"認証アプリ (TOTP) が有効化され、6桁の確認コードを生成しています。","invalidCode":"6桁のコードを入力してください"},"activity":{"title":"アカウントアクティビティ履歴","action":"イベント","time":"時間","ip":"IP アドレス","session":"セッション","empty":"アクティビティ履歴はありません。","loadMore":"さらに読み込む","signup":"アカウント登録","loginSuccess":"ログイン成功","loginFail":"ログイン失敗","logout":"ログアウト","pwChangeSuccess":"パスワード変更成功","pwChangeFail":"パスワード変更失敗","totpVerifySuccess":"TOTP 認証成功","totpVerifyFail":"TOTP 認証失敗","totpSetup":"TOTP 認証アプリを設定","totpRemoved":"TOTP 認証アプリを解除","recoveryKeyUsed":"リカバリキーの使用","sessionRevoked":"セッションの取り消し","reasons":{"user_active":"手動ログアウト","user_revoke":"セッションの取り消し","expired":"セッションの有効期限切れ","geolocation_mismatch":"地理的位置の不一致(異地アクセス制限)","geolocation_missing":"地理的位置情報の不足","token_reuse":"トークンの再利用(セキュリティ警告)"},"passkeyRegistered":"パスキー登録","passkeyDeleted":"パスキー削除","passkeyVerifySuccess":"パスキー認証成功","passkeyVerifyFail":"パスキー認証失敗","recoveryKeyRotated":"復旧キーをローテーションしました","device":"端末"},"sessions":{"title":"アクティブなセッション","session":"セッション","device":"デバイス","ip":"IPアドレス","loginTime":"ログイン時間","expires":"有効期限","action":"操作","current":"現在","revoke":"取り消す","revokeFailed":"セッションの取り消しに失敗しました。","empty":"アクティブなセッションは見つかりませんでした。","unknownDevice":"不明なデバイス","revokeOthers":"他のセッションを取り消す","confirmRevokeOthers":"他のセッションを取り消す","revokeOthersConfirmText":"他のすべてのアクティブなセッションを取り消してもよろしいですか?現在のデバイス以外のログイン中デバイスは即座にログアウトされます。"},"passkey":{"title":"パスキー (Passkey)","addBtn":"パスキーを追加","desc":"生体認証(Touch ID、Face ID、Windows Hello)またはセキュリティキー(YubiKey)を使用して、迅速でフィッシング耐性のある多要素認証を実現します。","empty":"パスキーはまだ追加されていません。","addTitle":"パスキーを追加","nameLabel":"パスキー名","namePlaceholder":"例:my_passkey","promptNotice":"「続行」をクリックすると、ブラウザがプロンプトを表示し、生体認証またはセキュリティキーの登録を案内します。","continue":"続行","renameTitle":"パスキーの名前を変更","deleteTitle":"パスキーを削除","deleteConfirm":"パスキー「{{name}}」を削除してもよろしいですか?削除後は多要素認証に使用できなくなります。","defaultName":"パスキー","notSupported":"お使いのブラウザまたは環境はパスキー(WebAuthn)に対応していません。","regFailed":"パスキーの登録に失敗しました","count":"{{count}} 件設定済み","none":"未設定","created":"追加日時","lastUsed":"最終使用","neverUsed":"未使用","updated":"パスキーを更新しました","registered":"パスキーを登録しました","deleted":"パスキーを削除しました","appNameLabel":"ドメイン","appNameHelper":"パスキーはこのドメインに関連付けられます","formatTip":"パスキー名ヒント:1〜30文字。英数字、アンダースコア、ハイフンのみ使用可能","verifyPrompt":"デバイスの生体認証(Touch ID、Face ID、Windows Hello)またはセキュリティキーで認証してください。","changePwNotice":"送信時にパスキーによる生体認証またはセキュリティキー認証が要求されます。","submitNotice":"送信時にパスキーによる生体認証またはセキュリティキー認証が要求されます。"},"mfaNone":"なし","resetUserPassword":"パスワードをリセット","resetPasswordTitle":"ユーザーパスワードのリセット","resetPasswordWarning":"リセット後、このユーザーの既存のログインセッションはすべて即座に無効化されます。","resetPasswordSuccess":"パスワードが正常にリセットされました。アクティブなセッションは終了しました。","confirmReset":"リセットを確認","mfa":{"title":"多要素認証 (MFA)","enabled":"設定済み","notConfigured":"未設定","desc":"パスキー (Passkey) と認証アプリ (TOTP) の両方がMFA認証方法として利用できます。少なくとも1つを設定することでアカウントを保護し、パスワードレスログインが可能になります。","passwordlessTitle":"パスワードレスログイン","passwordlessDesc":"有効にするとパスワード入力が不要となり、パスキーまたはTOTPで直接本人確認が行われます。","unconfiguredHint":"MFA認証方法がまだ設定されていません。下記よりパスキーまたは認証アプリを設定してください。","password":"パスワード","passkey":"パスキー (Passkey)","totp":"認証アプリ (TOTP)"},"recoveryKey":{"title":"緊急リカバリーキー","desc":"緊急リカバリーキーを使用すると、登録されているすべてのパスキーや認証アプリを紛失した場合でもアカウントにアクセスできます。ゼロ知識セキュリティを確保するため、リカバリーキーは一方向の暗号化ハッシュとして保存され、Web上で平文表示することはできません。1回使用すると直ちに自動ローテーションされます。","configured":"設定済み","notConfigured":"未設定","rotateBtn":"リカバリーキーをローテーション","yourKey":"あなたの30桁のリカバリーキー","securityTip":"このキーを秘密に保管してください。このキーを知っている人は誰でもあなたのアカウントにアクセスできます。","rotateConfirm":"リカバリーキーをローテーションすると、現在のキーは即座に無効化されます。確認は既存のパスキーまたは元のリカバリーキーでのみ許可されます。続行しますか?","confirmRotateBtn":"ローテーションを続行","rotateVerifyTitle":"リカバリーキーのローテーションのための本人確認","rotateSuccess":"リカバリーキーが正常にローテーションされました!新しいキーをすぐに安全な場所に保管してください。","oneWayHash":"一方向暗号ハッシュ保護","oneWayTooltip":"SHA-256一方向暗号ハッシュで保護されています。サーバーに平文は保存されず、復号もできません。","newKeyGenerated":"新しい30桁のリカバリーキーが生成されました(今すぐ保存してください)","oneWayWarning":"注意:このキーは一度しか表示されません!サーバーには復元不可能なハッシュのみが保存されるため、必ずコピーして安全な場所にオフライン保存してください。","autoRotatedTitle":"リカバリーキーが自動ローテーションされました","autoRotatedNotice":"使い捨てルールに従い、以前のキーは無効化され、新しい30桁のリカバリーキーが生成されました。直ちにコピーして安全にオフライン保存してください!","savedAndClose":"安全に保存したので閉じる","savedAndContinue":"安全に保存してダッシュボードへ","descOneWay":"緊急リカバリキーは、すべてのパスキーや認証アプリを紛失した場合に、アカウントへのアクセスを回復しE2EEデータを復号化するための唯一の認証情報です。ゼロ知識セキュリティを確保するため、一方向の不可逆ハッシュとして保存され、Web上で平文を表示することはできません。元のリカバリキーまたは既存のパスキーを使用してのみローテーション可能です。使用されると直ちに自動ローテーションされます。","keyRequired":"リカバリキーを入力してください","verifyBtn":"リカバリキー","verifyPromptLabel":"元のリカバリキー (Original Recovery Key)"},"verifyIdentity":"セキュリティ本人確認","verifyIdentityDesc":"アカウントの安全のため、この操作を実行する前に本人確認を行ってください。","usePasskeyInstead":"パスキーで認証","changePasswordWithPasskey":"パスキーで認証してパスワードを変更","enableRegistration":"新規ユーザー登録を許可","timezone":"タイムゾーン","timezoneAuto":"自動(ブラウザのデフォルト)","totpCode":"認証コード"}`),d={item1Title:`Obex 保護DNS`,item1Desc:`速度とセキュリティを重視した Cloudflare Workers & D1 ベースの DNS リゾルバーです。`,item2Title:`DoH によるプライバシー保護`,item2Desc:`DNS over HTTPS (RFC 8484) による暗号化トンネルで、プロバイダーによる改ざんを防ぎプライバシーを保護します。`,item3Title:`グローバルエッジネットワーク`,item3Desc:`Cloudflare の巨大なエッジネットワークを利用し、超高速な名前解決と極めて低いレイテンシを提供します。`,item4Title:`高度なフィルタリング`,item4Desc:`ホワイトリスト/ブラックリスト、AdGuard ルール、およびカスタムDNSレコードのリダイレクトをフルサポートします。`,item5Title:`リアルタイム統計・分析`,item5Desc:`詳細なクエリログと総合的な統計ダッシュボードで、ネットワークの健全性を視覚化します。`,item6Title:`モダンな UI とダークモード`,item6Desc:`エンジニアや家庭向けにデザインされた、Palantir 社の Blueprint UI ベースの高密度管理パネルです。`,item7Title:`クラウドネイティブインフラ`,item7Desc:`サーバーレスアーキテクチャにより、メンテナンスフリーかつ無限のスケール性を保証します。`,item8Title:`複数設定の管理`,item8Desc:`デバイスやネットワーク環境ごとに、独立したDNS設定プロファイルを複数作成し管理できます。`,item9Title:`複数アクセスポイント管理`,item9Desc:`異なるデバイスに対して専用のDNSアクセスポイントを設定し、ログや統計データの詳細な隔離と分析を実現します。`},f={title:`DNS Worker セットアップ&デプロイガイド`,subtitle:`インスタンスがまだ完全に構成されていません。以下の手順に従って、DNS Worker を有効にして下さい。`,dbStatus:`D1 データベースバインディング (env.DB)`,jwtStatus:`JWT シークレットキー (env.JWT_SECRET)`,configured:`構成済み`,missing:`未構成 / 欠落`,refresh:`更新して再検証`,methodCli:`CLI デプロイ`,methodDash:`Cloudflare ダッシュボードデプロイ`,copy:`コピー`,copied:`コピーしました!`,stepDbTitle:`1. D1 データベースのバインド`,stepDbDesc:`D1 データベースを作成し、Worker にバインドします。ターミナルで以下を実行します:`,stepDbCommand1:`wrangler d1 create dns_worker_db`,stepDbDesc2:`出力された D1 データベース情報をコピーし、プロジェクトルートの wrangler.toml 内の [[d1_databases]] に貼り付けます:`,stepDbCommand2:`[[d1_databases]]
|
|
1
|
+
const e={account:`アカウント`,logout:`ログアウト`,selectProfile:`設定を選択`,add:`追加`,newProfileName:`新しい設定名...`,profileNameFormatTip:`設定名のヒント:1〜30文字。既存の設定と重複しないユニークな名前を指定してください`,profileLimitExceeded:`設定数が上限に達しました(最大 {{max}} 個)`,profileNameExists:`この設定名は既に存在します`,profileNameFormatError:`設定名の形式が正しくありません`,create:`作成`,welcome:`ようこそ`,createProfileToStart:`開始するには設定を作成してください。`,loading:`読み込み中...`,errorNetwork:`ネットワークエラー`,confirmDelete:`この設定を削除してもよろしいですか?`,confirmLogout:`ログアウトしてもよろしいですか?`,notFound:`404 - ページが見つかりません`,notFoundDesc:`お探しのページは存在しないか、移動された可能性があります。`,backToHome:`ホームに戻る`,apac:`アジア太平洋`,mainlandChina:`中国本土`,HongKong:`香港`,Singapore:`シンガポール`,Tokyo:`東京`,NorthAmerica:`北米`,nae:`北米東部`,naw:`北米西部`,eu:`ヨーロッパ`,invalidFormat:`無効なファイル形式`,import:`インポート`,importSuccess:`設定のインポートに成功しました`,importError:`設定のインポートに失敗しました。形式を確認し、後でもう一度お試しください`,save:`保存`,saveSuccess:`設定を保存しました`,close:`閉じる`,cancel:`キャンセル`,continue:`続行`,back:`戻る`,copy:`コピー`,copied:`コピーしました`,copyKey:`新しいリカバリキーをコピー`,confirm:`確認`,delete:`削除`,rename:`名前を変更`,disable:`無効化`,confirmDisable:`無効化を確認`,modeServerfull:`Serverfull モード`,modeCloudflare:`Cloudflare Worker モード`},t={setup:`インストール`,rules:`ルール`,stats:`統計`,logs:`ログ`,filter:`フィルター`,settings:`設定`},n={light:`ライト`,dark:`ダーク`,system:`システムに従う`},r=JSON.parse(`{"login":"DNS Worker にログイン","signup":"アカウント作成して開始","welcomeBack":"おかえりなさい、認証情報を入力してください","protectInternet":"インターネットの最初の一歩を保護します","error":"エラー","username":"ユーザー名","usernamePlaceholder":"ユーザー名を入力してください","password":"パスワード","passwordPlaceholder":"パスワードを入力してください","loginBtn":"ログイン","signupBtn":"新規登録","totpVerification":"TOTP 認証","noAccount":"アカウントをお持ちでないですか? 新規登録","haveAccount":"既にアカウントをお持ちですか? ログインに戻る","formatTipUsername":"ユーザー名の形式ヒント:5〜32文字のUnixユーザー名形式(英小文字またはアンダースコアで始まり、英小文字、数字、アンダースコア、ハイフンのみ使用可能)","formatTipPassword":"パスワードの形式ヒント:12〜100文字。","authFailed":"認証に失敗しました。ユーザー名またはパスワードを確認してください","networkError":"ネットワークエラーが発生しました。しばらくしてからもう一度お試しください","turnstileRequired":"画像認証を完了してください","turnstileError":"認証サービスの読み込みに失敗しました。Site Keyまたはドメイン設定を確認してください","verifying":"安全性を確認中...","passwordLeaked":"このパスワードは漏洩している可能性があります。アカウントの安全のため、ランダムなパスワードまたは強力なパスワードを使用してください。","usernameExists":"このユーザー名は既に登録されています。別のユーザー名をお試しください。","skip":"スキップ","showPassword":"パスワードを表示","hidePassword":"パスワードを非表示","geolocationRequired":"位置情報の取得に失敗しました。再起動または再入場してください。","unauthorizedDefault":"セッションの有効期限が切れました。再度ログインしてください。","unauthorizedGeo":"地理的位置の変更(距離制限超過)が検出されたため、セッションが強制終了されました。","unauthorizedExpired":"ログイン有効期限が切れました。再度ログインしてください。","unauthorizedReuse":"セキュリティ警告:重複ログインが検出されたため、セッションを終了しました。","unauthorizedRevoked":"セッションが取り消されたか削除されました。再度ログインしてください。","sessionLockTitle":"無操作時のセッションロック","sessionLockDesc":"アプリケーションがアイドル状態のときにインターフェースを4桁のPINでロックし、不正な物理アクセスからアクティブなセッションを保護します。","enableSessionLock":"セッションロックを有効にする","inactivityTimeout":"無操作のタイムアウト","timeout1m":"1分","timeout2m":"2分","timeout5m":"5分","timeout15m":"15分","timeout30m":"30分","timeout60m":"60分","changePin":"PINの変更","disablePin":"セッションロックを無効にする","configurePin":"PINの設定","newPin":"新しい4桁のPIN","pinHelper":"数字のみ、例:1234","confirmPin":"新しいPINの確認","verifyIdentity":"本人確認","usePassword":"パスワードを使用","use2fa":"TOTP コードを使用","totpCode":"TOTP コード","currentPassword":"現在のパスワード","disablePinWarning":"PINを無効にすると、無操作セッションロック機能が完全に無効になります。","pinFormatTip":"PINは正確に4桁である必要があります","pinMatchTip":"PINが一致しません","passwordRequired":"確認にはパスワードが必要です","sessionLocked":"無操作のためセッションがロックされました","sessionExpired":"試行回数が多すぎます。セッションが終了しました。","pinIncorrect":"PINが正しくありません","attemptsRemaining":"残り試行回数: {{count}}回","logoutAndReturn":"セッションからログアウト","lockNow":"今すぐロック","cfErrorWithDetails":"Cloudflare Edge エラー (エラー {{code}}: {{desc}})。サービスは一時的に利用できません。しばらくしてからもう一度お試しください。{{rayId}}","cfErrorCodeOnly":"Cloudflare Edge エラー (エラー {{code}})。サービスは一時的に利用できません。{{rayId}}","cfErrorGeneric":"Cloudflare Edge エラーが発生しました。しばらくしてからもう一度お試しください。{{rayId}}","htmlErrorGeneric":"サーバーが異常なレスポンスを返しました (HTTP {{status}})。しばらくしてからもう一度お試しください。","tooManyAttempts":"リクエストまたは試行回数が多すぎます。しばらくしてからもう一度お試しください。","dbQuotaExceeded":"データベースの1日の読み取りクォータを超過しました。毎日のリセットをお待ちください。","noUsersRegistered":"アカウントが登録されていません。管理者として登録してください。","registerAdminTitle":"管理者アカウントの登録","registerAdminDesc":"システムにアカウントがありません。最初に登録されたユーザーがシステム管理者になります。","goToRegisterAdmin":"管理者登録","dbNotInitialized":"データベースが初期化されていないかテーブルが見つかりません。npm run db:migrate:prod を実行してください。","verifyWithPasskey":"パスキーで検証","orUseTotp":"または認証アプリのコードを使用","passwordRequiredFirst":"最初にパスワードを入力してください","passkeyVerification":"パスキー認証","passkeyPromptDesc":"登録された生体認証またはセキュリティキーを使用して検証","forgotPassword":"パスワードをお忘れですか?","forgotPasswordTitle":"パスワードのリセット","forgotPasswordDesc":"多要素認証(パスキーまたは認証コード)を使用して安全にアカウントを回復します。","noMfaContactAdmin":"このアカウントには多要素認証(PasskeyまたはTOTP)が設定されていないため、セルフ回復できません。システム管理者にリセットを依頼してください。","chooseMfaForReset":"本人確認の方法を選択してください:","authViaPasskey":"パスキーで認証","authViaPasskeyDesc":"生体認証またはセキュリティキーを使用したワンクリック認証","authViaTotp":"認証アプリ (TOTP) で認証","authViaTotpDesc":"認証アプリに表示される6桁の動的コードを入力","authViaRecoveryKey":"緊急リカバリーキーを使用","authViaRecoveryKeyDesc":"10文字の緊急リカバリーキーを入力","verifyAndProceed":"検証して続行","setNewPassword":"新しいパスワードを設定","setNewPasswordDesc":"本人確認が完了しました。アカウントの新しいパスワードを入力してください。","newPassword":"新しいパスワード","confirmNewPassword":"新しいパスワードの確認","passwordMismatch":"パスワードが一致しません","saveAndReset":"保存してリセット","resetSuccessTitle":"パスワードのリセットが完了しました","resetSuccessDesc":"パスワードが更新され、すべての既存セッションが無効化されました。新しいパスワードで再ログインしてください。","goToLogin":"ログインへ進む","mfaSetupTitle":"アカウントのセキュリティ強化","mfaSetupDesc":"多要素認証 (MFA) を設定すると、アカウントの保護、パスワードレスログイン、パスワードのセルフ復旧が有効になります。","mfaRecommended":"おすすめ","passkeySignupDesc":"Touch ID、Face ID、セキュリティキーを使用して、手軽かつ最高水準のセキュリティを実現します。","bindPasskeyNow":"パスキーを登録する","mfaUniversal":"汎用","totpSignupDesc":"Google Authenticatorや1Passwordなどの認証アプリを使用して6桁コードを生成します。","setupTotpBtn":"認証アプリを設定する","skipMfaSetup":"今はスキップして完了","backToMfaOptions":"オプションの選択に戻る","otherOptions":"その他のオプション","next":"次へ","mfaVerification":"多要素認証 (MFA)","totpPrompt":"認証アプリの 6 桁の動的確認コードを入力してください","recoveryPrompt":"30 桁の緊急リカバリキー(6 桁 × 5 グループ)を入力してください","recoveryChecksumError":"チェックサムエラー:このグループの 6 桁の数値は 11 で割り切れません","recoveryChecksumErrorDesc":"第 {{groups}} グループのチェックサムエラーです。確認して再試行してください","backToPasskey":"パスキー認証に戻る","recoveryKeyRequired":"緊急リカバリキーを入力してください","totpFormatError":"有効な 6 桁のコードを入力してください","registrationDisabledTitle":"登録は停止されています","registrationDisabledDesc":"現在、新規ユーザーの登録は停止されています。アカウントの取得についてはシステム管理者にお問い合わせください。","backToLogin":"ログインに戻る","jwtSecretPreset":"デフォルトの JWT_SECRET が検出されました。デプロイ前に環境変数でプリセットの JWT_SECRET を変更してください。","jwtSecretMissing":"JWT_SECRET が見つかりません。デプロイ前に環境変数で安全なキーを設定してください。","jwtSecretInvalid":"JWT_SECRET の形式が無効です。設定を確認してください。","keepLoggedIn":"{{days}} 日間ログイン状態を保持する","orUseOtherMfa":"または別の方法を使用","totpUseRecovery":"リカバリキーを使用","totpUseApp":"認証アプリを使用","mfaMethodTotp":"認証アプリ (TOTP)","invalidTotp":"無効なTOTP認証コードです。もう一度お試しください。"}`),i={title:`インストールガイド`,subtitle:`デバイスを設定し、DNS Worker でインターネットセキュリティを管理します。`,regionOptimization:`接続地域の最適化 (Windows)`,otherRegion:`その他の地域`,copied:`クリップボードにコピーしました`,verifyConnection:`接続の検証`,verifying:`検証中...`,connected:`接続完了`,notConnected:`未接続`,profileMatch:`この設定でフィルタリングされています。`,profileMismatch:`Obex に接続されていますが、設定IDが一致しません。`,verifyHint:`以下の設定を完了後、ボタンをクリックして接続を検証してください。`,refreshStatus:`ステータスを更新`,egressIp:`送信元 IP アドレス`,currentLocation:`現在地`,edgeServer:`エッジサーバー`,serverLocation:`サーバーの場所`,dohUrlTitle:`現在の設定の DoH URL`,accessPointTitle:`アクセス用 DoH URL`,defaultAccessPointName:`デバイス-1`,moreAccessPoints:`アクセスポイントの追加設定 ↗`,accessPointName:`アクセスポイント名`,accessPointToken:`アクセストークン`,addAccessPoint:`アクセスポイントの追加`,renameAccessPoint:`名前変更`,rotateToken:`トークンの更新`,rotateTokenConfirmDesc:`トークンを更新すると、古いトークンを使用しているすべてのデバイスが即座に切断されます。続行してもよろしいですか?`,deleteAccessPoint:`削除`,deleteAccessPointConfirm:`このアクセスポイントを削除してもよろしいですか?`,manageAccessPoints:`アクセスポイントの管理`,searchAccessPoints:`アクセスポイントを検索...`,accessPointNameExists:`アクセスポイント名は既に存在します`,accessPointCreated:`アクセスポイントを作成しました`,accessPointRenamed:`アクセスポイント名を変更しました`,accessPointDeleted:`アクセスポイントを削除しました`,accessPointNameFormatTip:`アクセスポイント名ヒント:1〜30文字。英数字、アンダースコア、ハイフンのみ使用可能`,accessPointLimitExceeded:`アクセスポイント数が上限に達しました(最大 {{max}} 個)`,tokenRotated:`アクセストークンを更新しました`,whatIsDoh:`DoH とは?`,dohDesc:`DNS over HTTPS (DoH) は、暗号化された HTTPS プロトコルを介してDNSクエリを実行する技術です。`,dohBenefit1:`プロバイダー等による通信の改ざんや盗聴を防ぎます`,dohBenefit2:`DNS解決およびインターネットアクセスの安全性を向上させます`,learnMore:`詳細情報`,copyUrl:`URL をコピー`,browsers:`ブラウザ`,browserTitle:`ブラウザ設定 (Chrome/Edge)`,browserSteps:`設定 > プライバシーとセキュリティ > セキュリティ > セキュア DNS を使用する > カスタム > URL を貼り付けます。`,browserTips:`または、以下のアドレスをアドレスバーにコピーしてください:`,apple:`Apple`,appleTitle:`macOS / iOS / iPadOS / tvOS`,appleDesc:`Apple デバイスは、構成プロファイルを使用して素早く設定できます。`,appleWarning:`「ロックダウンモード」が有効な場合、プロファイルはインストールできません。インストール前にシステム状態を確認してください。`,downloadConfig:`構成プロファイルをダウンロード`,appleInstallHint:`ダウンロード後、「設定」>「ダウンロード済みのプロファイル」からインストールを行ってください`,windows:`MS Windows`,windowsTitle:`Windows 11 設定`,windowsStep0:`設定 > ネットワークとインターネット`,windowsStep1:`プロパティ > DNS サーバー割り当て > 編集 > 手動。`,windowsStep2:`以下の DNS IP を選択して入力します:`,windowsStep3:`DoH(テンプレート手動入力)をオンにして、URLを貼り付けます。`,windowsStep4:`「暗号化されていない接続へのフォールバック」をオフにします。`,android:`Android`,androidTitle:`Android / プライベート DNS (DoT & DoQ)`,androidDesc:`システムの標準機能「プライベート DNS (DoT)」またはサードパーティ製アプリによる DoH 設定に対応しています。`,androidDotTitle:`プライベート DNS (DoT / DoQ)`,androidDotDesc:`設定 > ネットワークとインターネット > プライベート DNS > プライベート DNS プロバイダのホスト名(各DoQクライアントにも対応):`,androidWildcardHint:`(ワイルドカード証明書、この設定にルーティング)`,androidSingleDomainHint:`(単一ドメイン証明書、デフォルト設定にルーティング)`,androidIpNotice:`現在 IP またはローカルアドレスでダッシュボードにアクセスしています。Android プライベート DNS はドメイン名のみ受け付けます。.env に SERVERFULL_DOT_DOMAIN (例: dns.example.com) を設定してください。`,androidWarning:`注意:Android 標準の「プライベート DNS」は DoT プロトコルを使用します。Cloudflare Workers にデプロイしている場合は Intra などのアプリで DoH を設定してください。TLS 証明書を設定した Serverfull モードで動作している場合は、上記 DoT ホスト名を直接指定できます。`,dynamicFromDomain:`動的 (以下から取得 "{{domain}}")`,dynamicFromDomainV6:`動的 IPv6 (以下から取得 "{{domain}}")`,linux:`Linux`,linuxTitle:`Linux (Cloudflared DoH プロキシ)`,linuxDesc:`ローカルで軽量なDNSプロキシを実行し、DoH 経由でリクエストを暗号化して Obex に転送します。`,linuxStep1:`以下のスクリプトを実行して cloudflared をインストールし、systemd サービスを作成します(127.0.0.1:53 を監視)。`,linuxStep2:`システムの DNS を 127.0.0.1 に変更します。`,routeros:`MikroTik`,routerosTitle:`MikroTik RouterOS`,routerosDesc:`ルーターの DoH サーバーとして設定すると、ネットワーク内のすべてのデバイスでこのリゾルバーを使用できます。`,routerosStep1:`RouterOS のターミナルで実行します(RouterOS 7):`,routerosNote:`ルーター経由のクエリは、個々のデバイスではなくルーターとしてログに記録されます。デバイスごとのログが必要な場合は、各デバイスを直接設定してください。`,routerosDocs:`MikroTik DNS ドキュメント`,accessPointsCardTitle:`アクセスポイント`,currentAccessPoint:`現在のアクセスポイント`,selectAccessPointToConfigure:`設定するアクセスポイントを選択`,quic:`QUIC & HTTP/3`,quicTitle:`DNS over QUIC (DoQ) & HTTP/3 (DoH3)`,quicDesc:`RFC 9250 (DNS over QUIC) および RFC 9460 (HTTP/3 & Encrypted Client Hello) をネイティブサポートし、0-RTT の高速ハンドシェイクと SNI 盗聴防止を提供します。`,doqTitle:`DNS over QUIC (DoQ - RFC 9250)`,doqAppHint:`AdGuard、Clash Meta (Mihomo)、Sing-box などの最新クライアントに対応:`,doqWildcardHint:`(ワイルドカード証明書、このプロファイルにルーティング)`,doqSingleDomainHint:`(単一ドメイン証明書、デフォルトプロファイルにルーティング)`,doqIpNotice:`DoQ には TLS 証明書と有効なドメイン名が必要です。.env に SERVERFULL_DOT_DOMAIN を設定して再読み込みしてください。`,h3Title:`HTTP/3 (DoH3) & ECH (Encrypted Client Hello)`,h3Desc:`最新のブラウザ (Chrome/Firefox/Safari) は、Alt-Svc および RFC 9460 HTTPS レコードを介して HTTP/3 と ECH 暗号化を自動ネゴシエーションします:`,ddrHint:`RFC 9460 Section 8 DDR (Discovery of Designated Resolvers) を統合済み。クライアントは _dns クエリを通じて自動的に DoQ / DoT および ECH にアップグレード可能です。`,e2eeDesc:`独自のエッジ耐量子ハイブリッド鍵 (P256-MLKEM768) で DNS ログを暗号化します。クラウド側からは閲覧できず、Passkey で認証されたローカル環境でのみ復号されます。`,detecting:`検出中...`,dotUnavailableCfTitle:`Cloudflare Worker モードでは DoT / DoQ を利用できません`,dotUnavailableCfDesc:`現在 Cloudflare Worker (Serverless) モードで実行されています。エッジ環境の制約により、ネイティブの TCP/UDP 853 ポートのリッスンはサポートされていません。DoT / DoQ を使用するには Serverfull モードでデプロイしてください。現在は DoH をご利用ください。`},a={title:`カスタムルール`,subtitle:`特定のドメインの解決動作(ブロック、許可、またはリダイレクト)を手動で制御します。`,action:`アクション`,typeBlock:`ブロック (BLOCK)`,typeAllow:`許可 (ALLOW)`,typeRedirect:`リダイレクト (REDIRECT)`,pattern:`ドメインパターン (Pattern)`,patternPlaceholder:`example.com 或 *.test.com`,addRule:`ルールを追加`,redirectSettings:`リダイレクトレコード設定`,aRecord:`A レコード (IPv4)`,aaaaRecord:`AAAA レコード (IPv6)`,cnameRecord:`CNAME レコード`,txtRecord:`TXT レコード`,optional:`(任意)`,ipv4Placeholder:`例: 1.2.3.4`,ipv6Placeholder:`例: 2001:db8::1`,cnamePlaceholder:`例: target.com`,txtPlaceholder:`テキスト内容を入力してください...`,saveRedirectRule:`リダイレクトルールを保存して追加`,noRulesTitle:`カスタムルールなし`,noRulesDesc:`追加された手動ルールはありません。`,tableAction:`アクション`,tablePattern:`パターン`,tableDetails:`解決詳細`,tableOps:`操作`,labelBlock:`ブロック`,labelAllow:`許可`,labelRedirect:`リダイレクト`,detailBlock:`解決先:`,detailAllow:`上流サービスへ転送`,patternEmpty:`ドメインパターンを入力してください`,duplicatePattern:`このドメインのルールは既に存在します`,addSuccess:`ルールを追加しました`,addFailed:`ルールの追加に失敗しました`,updateSuccess:`ルールを更新しました`,updateFailed:`ルールの更新に失敗しました`,tableCreatedAt:`追加日時`,clickToSort:`クリックして並べ替え`,editRule:`ルールを編集`,cancel:`キャンセル`,saveChanges:`変更を保存`,delete:`削除`,close:`閉じる`},o={customRange:`カスタム期間`,startTime:`開始日時`,endTime:`終了日時`,apply:`適用`,custom:`カスタム`,totalQueries:`総クエリ数`,blocked:`ブロック済み`,redirected:`リダイレクト済み`,blockRate:`ブロック率`,activeDevices:`アクティブデバイス`,activeIPs:`アクティブ IP アドレス`,queryTrend:`クエリの推移`,noRecords:`指定された期間の記録はありません`,topAllowed:`よくアクセスされるドメイン (Allowed)`,topBlocked:`ブロック頻度の高いドメイン (Blocked)`,noData:`データなし`,clientActivity:`クライアントアクティビティ`,ipAddress:`IP アドレス`,location:`国/地域`,queries:`クエリ数`,destinationDistribution:`トラフィックの送信先分布`,requests:`リクエスト`,topIsps:`主要プロバイダー`,pressToShowMore:`クリックしてさらに表示`,maximize:`拡大`,minimize:`縮小`,loading:`読み込み中...`},s={title:`クエリログ`,subtitle:`この設定の DNS 解決ログとブロック記録を確認します。`,realtime:`リアルタイム`,allStatus:`すべてのステータス`,onlyPass:`許可済み`,onlyBlock:`ブロック済み`,onlyRedirect:`リダイレクト済み`,searchPlaceholder:`ドメインを検索...`,noResults:`結果が見つかりません`,noRecords:`記録がありません`,noResultsDesc:`"{{query}}" に一致するドメインレコードはありません。`,noRecordsDesc:`選択された期間内に受信した DNS クエリはありません。`,tableTime:`時間`,tableDomain:`ドメイン`,tableAnswer:`解決結果`,tableSource:`送信元`,tableType:`タイプ`,tableStatus:`ステータス`,tableReason:`理由`,loadedAll:`全 {{count}} 件の記録を読み込みました`,realtimeLoadMoreTip:`さらに読み込むには「リアルタイム」モードをオフにしてください`,filterAccessPoint:`アクセスポイント`,allAccessPoint:`すべてのアクセスポイント`,allCountry:`すべての国`,filterCountry:`宛先国`,allIsp:`すべてのプロバイダ`,filterIsp:`プロバイダ`,timeRange:`期間`,clearFilters:`フィルターをクリア`,details:`クエリ詳細`,detailAccessPoint:`アクセスポイント`,basicInfo:`基本情報`,detailDomain:`ドメイン`,detailType:`タイプ`,detailTime:`時間`,detailLatency:`レイテンシ`,detailProfile:`使用された設定`,detailStatus:`ステータス`,detailUpstream:`上流サーバー`,detailReason:`理由`,detailNoReason:`なし (許可済み)`,detailECS:`ECS`,resolutionResult:`解決結果`,noResult:`結果なし`,networkDetails:`ネットワーク詳細`,clientSource:`クライアント (送信元)`,destination:`宛先`,quickActions:`クイック操作`,actionAllow:`許可する`,actionBlock:`ブロックする`,actionRedirect:`リダイレクトする`,statusPass:`許可済み`,statusBlock:`ブロック済み`,statusRedirect:`リダイレクト済み`,export:`ログをエクスポート`,rewritten:`書き換え済み`,logDetails:`ログの詳細`,searchCountry:`国を検索...`,noMatchingCountries:`一致する国が見つかりません`,searchIsp:`プロバイダを検索...`,noMatchingIsps:`一致するプロバイダが見つかりません`,loadingIsps:`プロバイダを読み込み中...`,loggingDisabledTitle:`ログ記録が無効です`,loggingDisabledDesc:`このプロファイルのログ保存期間は「無効」に設定されています。クエリログは記録されません。ログを表示するには、設定でログ保存を有効にしてください。`,detailIsClientEncrypted:`クライアント側暗号化`,encryptedLocked:`はい(未解除)`,encryptedDecrypted:`はい(ローカル復号済)`,encryptedYes:`はい`,notEncrypted:`いいえ`,encryptedRecord:`[暗号化された記録]`,exportSuccess:`ログのエクスポートに成功しました`,exportError:`ログのエクスポートに失敗しました`},c={title:`外部ブロックリスト`,subtitle:`サードパーティが管理するドメインブロックリスト(AdGuardなど)を購読します。`,formatDisclaimer:`本システムは、一部の AdGuard 形式およびプレーンテキストのドメインリストのみ対応しています。基本的なブロックルール(例: ||example.com^)のみサポートされ、「@@」によるホワイトリスト、 「$」による書き換えルール、 「*」によるワイルドカードルールは現在無視されます。サブドメインは自動的にマッチングされます。`,syncAll:`すべてのリストを同期`,urlPlaceholder:`ブロックリストの URL を入力してください...`,addSubscription:`購読を追加`,supportedFormats:`対応リスト形式:`,formatAdGuard:`||domain.com^ などのフィルタリングルールに対応。`,formatHosts:`標準的な hosts ファイルに対応 (例: 0.0.0.0 domain.com)。`,noListsTitle:`リスト未追加`,noListsDesc:`購読している外部ブロックリストはありません。`,tableUrl:`リスト URL`,tableLastSync:`最終同期`,tableStatus:`ステータス`,tableOps:`操作`,neverSynced:`未同期`,enabled:`正常`,disabled:`同期失敗`,statusNormal:`正常`,statusDisabled:`無効`,statusOutdated:`期限切れ`,statusMissing:`未同期`,presetOisdBig:`OISD Big (広告/マルウェア等のブロック)`,presetOisdNsfw:`OISD NSFW (ポルノ/成人向けコンテンツのブロック)`,presetAdGuard:`AdGuard AdServers (広告サーバー)`,presetStevenBlack:`StevenBlack Hosts (総合ブロック)`,syncTaskStarted:`同期タスクを開始しました`,syncCheckComplete:`同期チェックが完了しました`,syncTaskFailed:`同期に失敗しました`,syncing:`同期中...`,syncSuccess:`同期に成功しました`,syncError:`同期に失敗しました`,syncErrorDesc:`ブロックリストのダウンロードまたは解析に失敗しました。リンクが正しいこと、および正常にアクセスできることを確認してください。`,deleteConfirm:`購読を削除してもよろしいですか?`,deleteSuccess:`リストを削除しました`,deleteError:`リストの削除に失敗しました`,addSuccess:`リストを追加しました`,addError:`リストの追加に失敗しました`,listEnabled:`リストを有効化`,listEnabledHint:`無効にすると、このリストを削除せずにフィルタリングだけを停止できます。購読情報と同期履歴は保持されます。`,listEnabledToast:`リストを有効にしました - フィルターを再構築中`,listDisabledToast:`リストを無効にしました - フィルターを再構築中`,checkDomain:`ドメインを確認`,checkDomainHint:`リストはコンパクトなフィルターとして保存されているため、内容を一覧表示することはできません。任意のドメインをこのリストに対して即座にテストできます。`,check:`確認`,checkBlocked:`このリストでブロック済み`,checkNotBlocked:`このリストではブロックされていません`,checkViaParent:`(上位ドメインで一致)`,checkNotSynced:`このリストはまだ同期が完了していないため、確認できるものがありません。`,checkListDisabled:`このリストは現在無効になっているため、現時点では何もフィルタリングしていません。`,checkProbabilisticRate:`フィルターは確率的です: 約{{odds}}件に1件が誤検知です。例外を追加すると、そのすべてのサブドメインもカバーされます。`,checkProbabilistic:`フィルターは確率的であるため、一致の一部は誤検知です。例外を追加すると、そのすべてのサブドメインもカバーされます。`,checkAllowAction:`それでも許可する`,checkAllowed:`例外を追加しました - このドメインは解決されるようになりました`,allowRuleAdded:`{{domain}} の例外を追加しました`,listDetails:`リスト詳細`},l={title:`動作設定`,subtitle:`DNS 解決ポリシーと高度なオプションを管理します。`,saveChanges:`すべての変更を保存`,saveSuccess:`設定を保存しました`,saveError:`設定の保存に失敗しました。しばらくしてからもう一度お試しください`,upstreamTitle:`上流サーバー`,dohUrl:`DoH URL`,dnsIP:`DNS IP`,classicDns:`従来の DNS`,httpsOnly:`HTTPS のみサポート`,upstreamDesc:`ブロックされなかったすべてのクエリはこのサーバーへ転送されます。DoH (HTTPS)、DoT (tls://)、DNS Stamp (sdns://)、従来の DNS に対応しています。従来の DNS は TCP 経由で転送されます。`,defaultPolicyTitle:`デフォルトの動作`,onNoMatch:`ルールにマッチしない場合`,allowAll:`すべてのクエリを許可`,blockAll:`すべてのクエリをブロック`,logRetentionTitle:`ログ保存期間`,retentionDuration:`保存期间`,retentionDesc:`ログは自動的に削除されます。`,skipLogOnPass:`許可されたクエリを記録しない`,skipLogOnPassDesc:`有効にすると、正常に許可されたクエリは記録されず、ブロック、リダイレクト、または失敗したクエリのみが記録されます。`,ecsTitle:`EDNS Client Subnet (ECS)`,ecsUpstreamHint:`上流サーバーに送信される ECS サブネット`,sendEcs:`ECS を送信する`,customSubnet:`カスタムサブネット`,customIpv4:`カスタム IPv4 サブネット`,customIpv6:`カスタム IPv6 サブネット`,ipv4Hint:`(例: 1.2.3.0/24)`,ipv6Hint:`(例: 2001:db8::/32)`,testToolTitle:`リアルタイム解決テストツール`,testDomain:`テストドメイン`,recordType:`レコードタイプ`,runTest:`テストを実行`,domainPlaceholder:`例: google.com`,hitRule:`ヒットしたルール / 理由`,defaultAllow:`デフォルトの許可ポリシー`,parseLatency:`解決レイテンシ`,sourceIp:`送信元 IP アドレス`,answerSection:`解決結果 (Answer Section)`,noRecordsReturned:`このクエリから返されたレコードはありませんでした。`,diagnostics:`診断情報`,errorDetail:`エラー詳細`,upstreamResponse:`アップストリーム応答内容`,presetCloudflareSecurity:`Cloudflare Security (高速/マルウェア・フィッシング対策)`,presetCloudflareFamilies:`Cloudflare Families (高速/マルウェア・成人向けコンテンツブロック)`,presetQuad9:`Quad9 (マルウェア対策/ログなし/ECS非送信)`,presetQuad9Ecs:`Quad9 ECS (マルウェア対策/ログなし/ECS送信)`,presetControlDFree:`ControlD Free (広告/トラッカー/マルウェア・フィッシング対策)`,presetControlDUncensored:`ControlD Uncensored (検閲回避)`,presetAdGuard:`AdGuard (広告/トラッカーブロック)`,presetAdGuardFamily:`AdGuard Family protection (広告/トラッカー/成人向けコンテンツブロック/セーフサーチ)`,retention10m:`10分`,retention1h:`1時間`,retention24h:`24時間`,retention7d:`7日間`,retention30d:`30日間`,retention90d:`90日`,retention180d:`180日`,retention360d:`360日`,retentionMaxSuffix:`(最大)`,daysUnit:`日`,blockModeTitle:`ブロック応答モード`,blockModeDesc:`ドメインがブロックされた際に返される応答内容`,default:`デフォルト`,NXDOMAIN:`NXDOMAIN (ドメインが存在しない)`,NODATA:`NODATA (レコードなし)`,customIP:`カスタム IP`,export:`設定をエクスポート`,exportSuccess:`設定をエクスポートしました`,exportError:`設定のエクスポートに失敗しました。しばらくしてからもう一度お試しください`,nameUpdateSuccess:`設定名を更新しました`,saving:`保存中...`,echTitle:`ECH 書き換え`,enableEch:`ECH 書き換えを有効化`,echDesc:`Cloudflare 経由のドメインに対し、HTTPS (Type 65) / SVCB (Type 64) クエリ時に ECH パラメータと表層 SNI を自動注入・書き換えてプライバシーを保護します。`,echFrontingTitle:`外層 SNI (ECH Fronting)`,echFrontingDesc:`TLS ハンドシェイク外層で可視となるカモフラージュドメイン`,echFrontingCustomPlaceholder:`カスタムフロンティングドメインを入力(例: crypto.cloudflare.com)`,echPreferred:`推奨`,whatIsEch:`ECH (Encrypted Client Hello) とは?`,echHelpDesc:`ECH は TLS 1.3 の重要なプライバシー拡張機能であり、実際の接続先ドメイン (Inner SNI) を完全暗号化し、ネットワーク監視者にはダミードメイン (Outer SNI) のみを表示します。`,echHelpBenefit1:`プロバイダや中間者による閲覧先ドメインの盗聴を防止`,echHelpBenefit2:`DoH と連携して平文 SNI の漏洩や検閲を回避`,retentionDisabled:`無効 (プライバシー配慮)`,retentionDisabledDesc:`ログ記録は無効です。システムはDNSクエリログを記録せず、過去のログを即座に消去します。`,localRetentionTitle:`ローカルストレージと保持期間`,localRetentionDuration:`ローカル保持期間`,localRetentionDesc:`ログはブラウザのローカル SQLite データベース (OPFS) に永続的に保存され、高速な検索とクラウドストレージ費用の節約を実現します。この期間を超えたローカルログは自動的に削除されます。`,localRetention30d:`30日`,localRetention90d:`90日 (推奨)`,localRetention180d:`180日`,localRetention365d:`365日 (1年)`,localRetentionUnlimited:`無制限 (手動削除まで)`,localEngineStorage:`ストレージエンジン`,localEngineOpfs:`OPFS 永続ストレージ`,localEngineMemory:`メモリ一時保存 (プライベートモード)`,localCachedCount:`ローカルキャッシュログ`,localCachedCountUnit:`{{count}} 件`,clearLocalData:`ローカルログを消去`,clearLocalDataConfirm:`このプロファイルのローカル保存ログをすべて消去しますか?(クラウド上のログは影響を受けません)`,clearLocalDataSuccess:`ローカルログを消去しました`,clearLocalDataError:`ローカルログの消去に失敗しました`,e2eeTitle:`エンドツーエンド暗号化 (E2EE)`,e2eeEnabled:`有効`,e2eeDisabled:`無効`,e2eeDesc:`独自のエッジ耐量子ハイブリッド鍵 (P256-MLKEM768) で DNS ログを暗号化します。クラウド側からは閲覧できず、Passkey で認証されたローカル環境でのみ復号されます。`,e2eePasskeyRequired:`E2EE にはハードウェア Passkey (WebAuthn) が必要です。アカウント設定で Passkey を登録してください。`,e2eeGoToAccount:`アカウント設定で Passkey を追加`,e2eeEnableSwitch:`ログの E2EE を有効にする`,e2eeKeyType:`暗号化アルゴリズム`,e2eeDeviceState:`現在の端末状態`,e2eeUnlocked:`この端末でロック解除済み`,e2eeUnlockButton:`Passkey でロック解除`,e2eeProtectedPasskeys:`承認済み Passkey 認証情報`,e2eeDevicesUnit:`件の認証情報`,e2eeEnableSuccess:`エンドツーエンド暗号化を有効にしました`,e2eeEnableError:`E2EE の有効化に失敗しました`,e2eeDisableSuccess:`エンドツーエンド暗号化を無効にしました`,e2eeDisableError:`E2EE の無効化に失敗しました`,e2eeUnlockSuccess:`秘密鍵をこの端末で解除しました`,e2eeUnlockError:`Passkey の検証に失敗しました`,e2eeDisableConfirm:`エンドツーエンド暗号化を無効にしますか?以降のログは平文で保存されます。`,e2eeUnlockPrompt:`このプロファイルは E2EE が有効です。Passkey を認証してログを表示してください。`,e2eeUnlockNow:`暗号化ログを解除`,e2eeUnlockRecovery:`リカバリーキーでロック解除`,securityTitle:`セキュリティとアクセス`,rotateKeyTitle:`アクセスURL`,rotateKeyDesc:`このプロファイルの新しいアクセスURLを生成します。古いURLを使用しているすべてのデバイスは直ちに接続を失い、新しいURLで再設定する必要があります。`,rotateKeyBtn:`URLをローテーション`,copied:`クリップボードにコピーしました`,nameUpdateFailed:`更新に失敗しました`},u=JSON.parse(`{"title":"アカウント設定","subtitle":"セキュリティ資格情報とシステムユーザーを管理します。","e2ee":{"title":"エンドツーエンド暗号化 (E2EE)","desc":"ハードウェアPasskeyに基づくクライアント側耐量子ハイブリッド暗号化(P256-MLKEM768 + AES-256-GCM / NIST FIPS 203)エンベロープ暗号化を採用。エッジWorkerで即時に暗号化され、クラウド側には暗号文のみが保存されます。復号は許可されたデバイス上でのみ行われます。","pqcTag":"PQC / NIST FIPS 203","upgradePqcBtn":"耐量子暗号 (PQC) にアップグレード","upgradePqcSuccess":"耐量子ハイブリッド暗号 (P256-MLKEM768) へのアップグレードが完了しました","upgradePqcError":"耐量子暗号へのアップグレードに失敗しました","enabled":"有効","disabled":"無効","passkeyRequired":"エンドツーエンド暗号化にはハードウェアPasskey (WebAuthn) が必要です。上部のMFA設定でPasskeyを登録してください。","scopesTitle":"暗号化データ範囲","scopesSubtitle":"ハードウェアPasskeyでエンドツーエンド暗号化するデータカテゴリを選択します。","scopeLogsTitle":"DNSクエリログ","scopeLogsDesc":"D1に保存される前にエッジでドメイン名、クライアントIP、回答レコード、アップストリーム遅延を暗号化します。","scopeRulesTitle":"カスタムルール&リダイレクト","scopeRulesDesc":"カスタムブロック/許可ルールおよびリダイレクト設定をクライアント側で暗号化します。","scopeClientsTitle":"デバイス別名&クライアントメタデータ","scopeClientsDesc":"アクセスポイントのデバイス名、IP別名、ネットワークトポロジ情報を暗号化します。","statusActive":"保護済み","statusPlanned":"予定","profileSelect":"Profileを設定","keyType":"暗号化アルゴリズム","deviceState":"現在のデバイス状態","unlocked":"このデバイスでロック解除済み","unlockButton":"Passkeyを認証してロック解除","protectedPasskeys":"認証済みPasskey資格情報","devicesUnit":"個の資格情報","enableSuccess":"エンドツーエンド暗号化が正常に有効化されました","enableError":"エンドツーエンド暗号化の有効化に失敗しました","disableSuccess":"エンドツーエンド暗号化が無効化されました","disableError":"エンドツーエンド暗号化の無効化に失敗しました","unlockSuccess":"このデバイスで秘密鍵が正常にロック解除されました","unlockError":"Passkey認証によるロック解除に失敗しました","disableConfirm":"このプロファイルのエンドツーエンド暗号化を無効化してもよろしいですか?今後のログは平文で保存されます。(過去の暗号化ログの復号には秘密鍵が引き続き必要です)","noKeypairTitle":"エンドツーエンド暗号化キーペアが未初期化です","noKeypairDesc":"エンドツーエンド暗号化には、アカウント専用の耐量子(P256-MLKEM768)キーペアの生成が必要です。秘密鍵はパスキーまたはリカバリーキーによるエンベロープ暗号化で保護され、サーバーはログを復号できません。","initPasskeyBtn":"既存のパスキーを検証してキーペアを生成","addPasskeyBtn":"ハードウェア暗号化を有効にするパスキーを追加","initRecoveryBtn":"リカバリーキーでキーペアを生成","initWithRecoveryTitle":"リカバリーキーでキーペアを生成","initWithRecoveryDesc":"現在の30桁の緊急リカバリーキーを入力してください。システムがローカルで耐量子(P256-MLKEM768)キーペアを生成します。使用後、リカバリーキーは直ちに自動ローテーションされます。","keypairGenSuccess":"エンドツーエンド暗号化キーペアが正常に生成されました!","keypairGenError":"暗号化キーペアの生成に失敗しました","unlockRecoveryButton":"リカバリーキーでロック解除","unlockWithRecoveryTitle":"リカバリーキーでロック解除","unlockWithRecoveryDesc":"30桁の緊急リカバリーキーを入力してください。注意:使い捨てルールに従い、認証成功後にキーは直ちに自動ローテーションされます。","recoveryKeyInputLabel":"リカバリーキー","unlockConfirm":"秘密鍵をロック解除","recoveryUnlockFailed":"無効なリカバリーキー、または復号に失敗しました","generateKeypairBtn":"キーペアを生成","enableSwitch":"クエリログのエンドツーエンド暗号化を有効化","enableSwitchDesc":"ドメイン名、クライアントIP、応答レコード、上流レイテンシをエッジで暗号化してからクラウドストレージに保存します。","trustBoundaryTitle":"セキュリティと信頼境界に関する注意事項","trustBoundaryDesc":"すべてのDNSクエリトラフィックは名前解決時にホスティングサーバー(Cloudflare Workersエッジノードまたは自ホストランタイム)を必ず通過し、メモリ上で処理された後に暗号化されて永続化されます。本機能はクラウドデータベース(D1 / 永続ストレージ)の保存データ漏洩を防ぐためのものであり、リクエストを処理するホスティングサーバーに対してリアルタイムトラフィックを隠蔽するものではありません。","initFailed":"エンドツーエンド暗号化の初期化に失敗しました","lockDevice":"この端末をロック","lockSuccess":"ロックしました。秘密鍵は端末から削除されました","enrollPasskeyBtn":"現在のパスキーを関連付け","enrollPasskeySuccess":"パスキーがエンドツーエンド暗号化に正常に関連付けられました!","enrollPasskeyFailed":"パスキーの関連付けに失敗しました","resetKeypairBtn":"鍵ペアをリセット","confirmResetBtn":"リセットして再生成を確認","resetKeypairTitle":"E2EE鍵ペアをリセット","resetKeypairDesc":"リカバリーキーが一致しない、または復号できず、パスキーも関連付けられていない場合、リセットによりサーバーから古いキーが消去され、新しい耐量子(P256-MLKEM768)キーペアが再生成されます。","resetKeypairPasskeyNotice":"確認後、設定済みのパスキーが直ちに呼び出され、新しい鍵ペアの暗号化と承認が行われます。","resetKeypairRecoveryNotice":"確認後、現在のリカバリーキーの入力を求められ、新しい鍵ペアの生成と暗号化が行われます。","resetAndInitPasskeySuccess":"鍵ペアが正常にリセットされ、パスキーで再暗号化されました!","resetSuccessEnterRecovery":"古いキーが消去されました。リカバリーキーを使用して新しいキーペアを初期化してください。","resetFailed":"鍵ペアのリセットに失敗しました"},"jwtSecretWarningTitle":"セキュリティ警告:JWTシークレットの強度が不足しています","jwtSecretWarningDesc":"現在の JWT_SECRET は32文字未満であり、セキュリティ上の潜在的なリスクがあります。エンベロープ暗号化された既存のTOTPおよびリカバリキーの復号を維持するため、JWT_SECRET をローテーションする前に環境変数 KEK_v1 を設定してください。","roleAdmin":"システム管理者","roleUser":"ユーザー","personalInfo":"個人情報","username":"ユーザー名","userId":"ユーザー ID","changePassword":"パスワード変更","currentPassword":"現在のパスワード","newPassword":"新しいパスワード","updatePassword":"パスワードを更新","userManagement":"ユーザー管理 (管理者限定)","createUser":"ユーザー作成","role":"ロール","createdAt":"作成日時","lastActive":"最終アクティブ時間","lastResolve":"最終解決時間","actions":"操作","dangerZone":"危険ゾーン","clearLogs":"すべてのログを消去","clearLogsDesc":"あなたのアカウントに関連付けられたすべての設定のクエリログを削除します。この操作は元に戻せません。","currentDbSize":"現在のデータベースサイズ","clearLogsBtn":"今すぐログを消去する","deleteAccount":"アカウントの退会","deleteAccountDesc":"アカウントおよび関連するすべてのデータを永久に削除します。作成したすべてのDNS解決設定にアクセスできなくなります。","deleteAccountBtn":"退会してアカウントを削除","createNewUser":"新規ユーザー作成","initialPassword":"初期パスワード","userRole":"ユーザーロール","cancel":"キャンセル","createNow":"今すぐ作成","formatTipUsername":"ユーザー名の形式ヒント:5〜32文字のUnixユーザー名形式","formatTipPassword":"パスワードの形式ヒント:12〜100文字。","passwordSuccess":"パスワードを更新しました","updateFailed":"更新に失敗しました","confirmDeleteUser":"このユーザーを削除してもよろしいですか?このユーザーが所有するすべての設定も削除されます。","confirmClearLogs":"アカウント内のすべての設定のクエリログを消去してもよろしいですか?この操作は元に戻せません。","clearLogsSuccess":"ログを正常に消去しました","confirmDeleteAccount":"警告:本当にアカウントを削除して退会しますか?\\n\\n作成したすべての DNS 設定、カスタムルール、クエリログが永久に削除されます。この操作は元に戻せません!","inactivityPolicy":"非アクティブポリシー","inactivityDesc":"ユーザーのプライバシー保護とリソース節約のため、30日間解決アクティビティのないアカウントのすべてのクエリログおよびDNS設定は自動的に削除されます。アカウント自体は、90日間のログインがない場合に削除されます。","systemSettings":"システム設定 (管理者限定)","adminOnlyView":"管理者のみ表示可能","featureToggle":"功能开关","enableTurnstileSignup":"新規登録ページで画像認証を有効にする","enableTurnstileLogin":"ログインページで画像認証を有効にする","totp":{"title":"認証アプリ (TOTP)","enabled":"有効","disabled":"無効","setupDesc":"アカウントにセキュリティレイヤーを追加します。Google AuthenticatorやAuthyなどのTOTP対応アプリを使用してください。","setupBtn":"認証アプリ (TOTP) を設定","scanQR":"安全性を確認中...","orEnterManually":"または、手動でキーを入力してください:","enterCode":"確認のため、認証アプリのコードを入力してください:","enterCodeHint":"キーが正しく登録されていることを確認するため、6桁のコードを入力します。","activate":"TOTP を有効化","skipPassword":"パスワードをスキップ — ログイン時にTOTPコードのみ入力(パスワード入力を省略)","disable":"認証アプリ (TOTP) を無効化","disableTitle":"認証アプリ (TOTP) を無効化","disableWarning":"TOTP を無効化すると、パスキーが設定されていない場合、アカウントはパスワードのみで保護されます。","confirmDisable":"TOTP を無効化","recoveryKeysTitle":"リカバリキーを保存してください","recoveryKeysWarning":"リカバリキーを安全な場所(パスワード管理アプリなど)に保存してください。各キーは1回のみ使用可能です。","copyKeys":"すべてのキーをコピー","copied":"コピーしました!","done":"完了(キーを保存しました)","activeDesc":"認証アプリ (TOTP) が有効化され、6桁の確認コードを生成しています。","invalidCode":"6桁のコードを入力してください","testBtn":"認証コードをテスト","testTitle":"認証アプリをテスト (TOTP)","testDesc":"認証アプリに表示されている6桁の確認コードを入力し、正しく同期され有効なコードが生成されていることを確認します。","testSuccess":"検証に成功しました!認証アプリは正常に設定されています。","testFailed":"無効な確認コードまたは端末の時刻が同期されていません","verificationCode":"6桁の確認コード","verifyBtn":"今すぐ検証"},"activity":{"title":"アカウントアクティビティ履歴","action":"イベント","time":"時間","ip":"IP アドレス","session":"セッション","empty":"アクティビティ履歴はありません。","loadMore":"さらに読み込む","signup":"アカウント登録","loginSuccess":"ログイン成功","loginFail":"ログイン失敗","logout":"ログアウト","pwChangeSuccess":"パスワード変更成功","pwChangeFail":"パスワード変更失敗","totpVerifySuccess":"TOTP 認証成功","totpVerifyFail":"TOTP 認証失敗","totpSetup":"TOTP 認証アプリを設定","totpRemoved":"TOTP 認証アプリを解除","recoveryKeyUsed":"リカバリキーの使用","sessionRevoked":"セッションの取り消し","reasons":{"user_active":"手動ログアウト","user_revoke":"セッションの取り消し","expired":"セッションの有効期限切れ","geolocation_mismatch":"地理的位置の不一致(異地アクセス制限)","geolocation_missing":"地理的位置情報の不足","token_reuse":"トークンの再利用(セキュリティ警告)"},"passkeyRegistered":"パスキー登録","passkeyDeleted":"パスキー削除","passkeyVerifySuccess":"パスキー認証成功","passkeyVerifyFail":"パスキー認証失敗","recoveryKeyRotated":"復旧キーをローテーションしました","device":"端末"},"sessions":{"title":"アクティブなセッション","session":"セッション","device":"デバイス","ip":"IPアドレス","loginTime":"ログイン時間","expires":"有効期限","action":"操作","current":"現在","revoke":"取り消す","revokeFailed":"セッションの取り消しに失敗しました。","empty":"アクティブなセッションは見つかりませんでした。","unknownDevice":"不明なデバイス","revokeOthers":"他のセッションを取り消す","confirmRevokeOthers":"他のセッションを取り消す","revokeOthersConfirmText":"他のすべてのアクティブなセッションを取り消してもよろしいですか?現在のデバイス以外のログイン中デバイスは即座にログアウトされます。"},"passkey":{"title":"パスキー (Passkey)","addBtn":"パスキーを追加","desc":"生体認証(Touch ID、Face ID、Windows Hello)またはセキュリティキー(YubiKey)を使用して、迅速でフィッシング耐性のある多要素認証を実現します。","empty":"パスキーはまだ追加されていません。","addTitle":"パスキーを追加","nameLabel":"パスキー名","namePlaceholder":"例:my_passkey","promptNotice":"「続行」をクリックすると、ブラウザがプロンプトを表示し、生体認証またはセキュリティキーの登録を案内します。","continue":"続行","renameTitle":"パスキーの名前を変更","deleteTitle":"パスキーを削除","deleteConfirm":"パスキー「{{name}}」を削除してもよろしいですか?削除後は多要素認証に使用できなくなります。","defaultName":"パスキー","notSupported":"お使いのブラウザまたは環境はパスキー(WebAuthn)に対応していません。","regFailed":"パスキーの登録に失敗しました","count":"{{count}} 件設定済み","none":"未設定","created":"追加日時","lastUsed":"最終使用","neverUsed":"未使用","updated":"パスキーを更新しました","registered":"パスキーを登録しました","deleted":"パスキーを削除しました","appNameLabel":"ドメイン","appNameHelper":"パスキーはこのドメインに関連付けられます","formatTip":"パスキー名ヒント:1〜30文字。英数字、アンダースコア、ハイフンのみ使用可能","verifyPrompt":"デバイスの生体認証(Touch ID、Face ID、Windows Hello)またはセキュリティキーで認証してください。","changePwNotice":"送信時にパスキーによる生体認証またはセキュリティキー認証が要求されます。","submitNotice":"送信時にパスキーによる生体認証またはセキュリティキー認証が要求されます。","testBtn":"パスキーをテスト","testThis":"このパスキーをテスト","testSuccess":"パスキーの検証に成功しました: {{name}}","testCancelled":"パスキーの検証がキャンセルされました","testFailed":"パスキーの検証に失敗しました"},"mfaNone":"なし","resetUserPassword":"パスワードをリセット","resetPasswordTitle":"ユーザーパスワードのリセット","resetPasswordWarning":"リセット後、このユーザーの既存のログインセッションはすべて即座に無効化されます。","resetPasswordSuccess":"パスワードが正常にリセットされました。アクティブなセッションは終了しました。","confirmReset":"リセットを確認","mfa":{"title":"多要素認証 (MFA)","enabled":"設定済み","notConfigured":"未設定","desc":"パスキー (Passkey) と認証アプリ (TOTP) の両方がMFA認証方法として利用できます。少なくとも1つを設定することでアカウントを保護し、パスワードレスログインが可能になります。","passwordlessTitle":"パスワードレスログイン","passwordlessDesc":"有効にするとパスワード入力が不要となり、パスキーまたはTOTPで直接本人確認が行われます。","unconfiguredHint":"MFA認証方法がまだ設定されていません。下記よりパスキーまたは認証アプリを設定してください。","password":"パスワード","passkey":"パスキー (Passkey)","totp":"認証アプリ (TOTP)"},"recoveryKey":{"title":"緊急リカバリーキー","desc":"緊急リカバリーキーを使用すると、登録されているすべてのパスキーや認証アプリを紛失した場合でもアカウントにアクセスできます。ゼロ知識セキュリティを確保するため、リカバリーキーは一方向の暗号化ハッシュとして保存され、Web上で平文表示することはできません。1回使用すると直ちに自動ローテーションされます。","configured":"設定済み","notConfigured":"未設定","rotateBtn":"リカバリーキーをローテーション","yourKey":"あなたの30桁のリカバリーキー","securityTip":"このキーを秘密に保管してください。このキーを知っている人は誰でもあなたのアカウントにアクセスできます。","rotateConfirm":"リカバリーキーをローテーションすると、現在のキーは即座に無効化されます。確認は既存のパスキーまたは元のリカバリーキーでのみ許可されます。続行しますか?","confirmRotateBtn":"ローテーションを続行","rotateVerifyTitle":"リカバリーキーのローテーションのための本人確認","rotateSuccess":"リカバリーキーが正常にローテーションされました!新しいキーをすぐに安全な場所に保管してください。","oneWayHash":"一方向暗号ハッシュ保護","oneWayTooltip":"SHA-256一方向暗号ハッシュで保護されています。サーバーに平文は保存されず、復号もできません。","newKeyGenerated":"新しい30桁のリカバリーキーが生成されました(今すぐ保存してください)","oneWayWarning":"注意:このキーは一度しか表示されません!サーバーには復元不可能なハッシュのみが保存されるため、必ずコピーして安全な場所にオフライン保存してください。","autoRotatedTitle":"リカバリーキーが自動ローテーションされました","autoRotatedNotice":"使い捨てルールに従い、以前のキーは無効化され、新しい30桁のリカバリーキーが生成されました。直ちにコピーして安全にオフライン保存してください!","savedAndClose":"安全に保存したので閉じる","savedAndContinue":"安全に保存してダッシュボードへ","descOneWay":"緊急リカバリキーは、すべてのパスキーや認証アプリを紛失した場合に、アカウントへのアクセスを回復しE2EEデータを復号化するための唯一の認証情報です。ゼロ知識セキュリティを確保するため、一方向の不可逆ハッシュとして保存され、Web上で平文を表示することはできません。元のリカバリキーまたは既存のパスキーを使用してのみローテーション可能です。使用されると直ちに自動ローテーションされます。","keyRequired":"リカバリキーを入力してください","verifyBtn":"リカバリキー","verifyPromptLabel":"元のリカバリキー (Original Recovery Key)","rotateSuccessE2eeWarning":"リカバリーキーが正常にローテーションされました!注意:E2EEが以前ロックされており復号できなかったため、古いE2EEデータは以前のリカバリーキーでロック解除するか、下の「鍵ペアをリセット」をクリックしてください。"},"verifyIdentity":"セキュリティ本人確認","verifyIdentityDesc":"アカウントの安全のため、この操作を実行する前に本人確認を行ってください。","usePasskeyInstead":"パスキーで認証","changePasswordWithPasskey":"パスキーで認証してパスワードを変更","enableRegistration":"新規ユーザー登録を許可","timezone":"タイムゾーン","timezoneAuto":"自動(ブラウザのデフォルト)","totpCode":"認証コード"}`),d={item1Title:`Obex 保護DNS`,item1Desc:`速度とセキュリティを重視した Cloudflare Workers & D1 ベースの DNS リゾルバーです。`,item2Title:`DoH によるプライバシー保護`,item2Desc:`DNS over HTTPS (RFC 8484) による暗号化トンネルで、プロバイダーによる改ざんを防ぎプライバシーを保護します。`,item3Title:`グローバルエッジネットワーク`,item3Desc:`Cloudflare の巨大なエッジネットワークを利用し、超高速な名前解決と極めて低いレイテンシを提供します。`,item4Title:`高度なフィルタリング`,item4Desc:`ホワイトリスト/ブラックリスト、AdGuard ルール、およびカスタムDNSレコードのリダイレクトをフルサポートします。`,item5Title:`リアルタイム統計・分析`,item5Desc:`詳細なクエリログと総合的な統計ダッシュボードで、ネットワークの健全性を視覚化します。`,item6Title:`モダンな UI とダークモード`,item6Desc:`エンジニアや家庭向けにデザインされた、Palantir 社の Blueprint UI ベースの高密度管理パネルです。`,item7Title:`クラウドネイティブインフラ`,item7Desc:`サーバーレスアーキテクチャにより、メンテナンスフリーかつ無限のスケール性を保証します。`,item8Title:`複数設定の管理`,item8Desc:`デバイスやネットワーク環境ごとに、独立したDNS設定プロファイルを複数作成し管理できます。`,item9Title:`複数アクセスポイント管理`,item9Desc:`異なるデバイスに対して専用のDNSアクセスポイントを設定し、ログや統計データの詳細な隔離と分析を実現します。`},f={title:`DNS Worker セットアップ&デプロイガイド`,subtitle:`インスタンスがまだ完全に構成されていません。以下の手順に従って、DNS Worker を有効にして下さい。`,dbStatus:`D1 データベースバインディング (env.DB)`,jwtStatus:`JWT シークレットキー (env.JWT_SECRET)`,configured:`構成済み`,missing:`未構成 / 欠落`,refresh:`更新して再検証`,methodCli:`CLI デプロイ`,methodDash:`Cloudflare ダッシュボードデプロイ`,copy:`コピー`,copied:`コピーしました!`,stepDbTitle:`1. D1 データベースのバインド`,stepDbDesc:`D1 データベースを作成し、Worker にバインドします。ターミナルで以下を実行します:`,stepDbCommand1:`wrangler d1 create dns_worker_db`,stepDbDesc2:`出力された D1 データベース情報をコピーし、プロジェクトルートの wrangler.toml 内の [[d1_databases]] に貼り付けます:`,stepDbCommand2:`[[d1_databases]]
|
|
2
2
|
binding = "DB"
|
|
3
3
|
database_name = "dns_worker_db"
|
|
4
4
|
database_id = "<あなたの_D1_DATABASE_ID>"
|