码桶

发现社区成员的开源项目

ja.js51.4 KB
export default {
        title: 'DNS 管理パネル',
        subtitle: 'Cloudflare ドメインを安全に管理',
        serverMode: 'サーバーモード',
        clientMode: 'クライアントモード',
        usernameLabel: 'ユーザー名',
        usernamePlaceholder: 'ユーザー名を入力...',
        passwordLabel: 'パスワード',
        passwordPlaceholder: 'パスワードを入力...',
        tokenLabel: 'Cloudflare API トークン',
        tokenPlaceholder: 'API トークンを貼り付け...',
        tokenHint: 'トークンはヘッダー経由で送信され、バックエンドは透過プロキシとして動作します。',
        apiTokenTab: 'API Token',
        globalKeyTab: 'Global API Key',
        globalKeyEmailLabel: 'Cloudflare アカウントメール',
        globalKeyEmailPlaceholder: '[email protected]',
        globalKeyLabel: 'Global API Key',
        globalKeyPlaceholder: 'Global API Key を入力',
        globalKeyHint: 'Cloudflare ダッシュボード > My Profile > API Tokens > Global API Key で取得:',
        globalKeyWarning: 'セキュリティ注意:Global API Key はアカウント全体の制御権を持ちます。漏洩した場合、攻撃者がCloudflareアカウントを完全に制御できます。より細かい権限制御にはAPI Tokenを推奨します。',
        serverHint: 'バックエンドは Pages 環境変数で動作します。',
        loginBtn: 'ダッシュボードへ',
        loginFailed: 'ログイン失敗',
        sessionExpired: 'セッションが期限切れです。再度ログインしてください。',
        errorOccurred: 'エラーが発生しました',
        yourDomains: 'ドメイン一覧',
        domainSubtitle: 'ゾーンを選択して DNS および SaaS 設定を管理します',
        refresh: '更新',
        id: 'ID',
        manage: '管理',
        back: 'ゾーン一覧に戻る',
        dnsRecords: 'DNS レコード',
        saasHostnames: 'カスタムホスト名',
        addRecord: 'レコード追加',
        type: 'タイプ',
        name: '名前',
        content: '内容',
        proxied: 'プロキシ',
        actions: '操作',
        hostname: 'ホスト名',
        status: 'ステータス',
        sslStatus: 'SSL ステータス',
        confirmDelete: 'このレコードを削除してもよろしいですか?',
        logout: 'ログアウト',
        managed: 'マネージド',
        clientOnly: 'クライアント専用',
        cancel: 'キャンセル',
        save: '保存',
        saving: '保存中...',
        addModalTitle: '新しい DNS レコードを追加',
        confirmTitle: '操作の確認',
        confirmDeleteText: 'この操作は取り消せません。続行しますか?',
        yes: '確認',
        no: 'いいえ',
        statusActive: '有効',
        statusPending: '保留中',
        statusInitializing: '初期化中',
        statusMoved: '移動済み',
        statusDeactivated: '無効化',
        rememberMe: 'ログイン状態を維持',
        rememberToken: 'API トークンを保存',
        searchPlaceholder: 'レコードを検索...',
        editRecord: 'レコード編集',
        addSaaS: 'カスタムホスト名を追加',
        confirmDeleteSaaS: 'このカスタムホスト名を削除してもよろしいですか?',
        proxiedHint: '有効にすると、トラフィックは Cloudflare によって高速化・保護されます',
        hostnamePlaceholder: '例: app.example.com',
        fallbackOrigin: 'フォールバックオリジン',
        fallbackOriginPlaceholder: '例: origin.example.com',
        updateFallback: 'フォールバックオリジンを更新',
        fallbackStatus: 'フォールバックステータス',
        sslMethod: 'SSL 検証方法',
        sslType: 'SSL タイプ',
        sslMethodTxt: 'TXT レコード',
        sslMethodHttp: 'HTTP 検証',
        sslMethodCname: 'CNAME 検証',
        sslMethodEmail: 'メール検証',
        httpWarning: 'セキュリティ警告:安全でない HTTP 接続が検出されました。トークンを保護するため、非 HTTPS 環境での機密情報の送信は禁止されています(localhost を除く)。',
        recommended: '推奨',
        copied: 'クリップボードにコピーしました',
        updateSuccess: '更新成功',
        addSuccess: '追加成功',
        deleteSuccess: '削除成功',
        importSuccess: 'インポート成功',
        exportSuccess: 'エクスポート成功',
        batchDelete: '一括削除',
        confirmBatchDelete: '選択した {count} 件のレコードを削除してもよろしいですか?',
        comment: 'コメント',
        tags: 'タグ',
        addTag: 'タグを追加',
        commentPlaceholder: 'コメントを追加...',
        tagsPlaceholder: 'タグを入力して Enter を押してください',
        priority: '優先度',
        weight: 'ウェイト',
        port: 'ポート',
        service: 'サービス',
        protocol: 'プロトコル',
        tag: 'タグ',
        flags: 'フラグ',
        import: 'インポート',
        export: 'エクスポート',
        uploadFile: '設定ファイルをアップロード',
        order: '順序',
        preference: '優先度',
        regex: '正規表現',
        replacement: '置換値',
        algorithm: 'アルゴリズム',
        fingerprint: 'フィンガープリント',
        keyTag: 'キータグ',
        digestType: 'ダイジェストタイプ',
        digest: 'ダイジェスト',
        usage: '用途',
        selector: 'セレクタ',
        matchingType: 'マッチングタイプ',
        certificate: '証明書',
        target: 'ターゲット',
        value: '値',
        ttl: 'TTL',
        ttlAuto: '自動',
        ttl1min: '1 分',
        ttl2min: '2 分',
        ttl5min: '5 分',
        ttl10min: '10 分',
        ttl15min: '15 分',
        ttl30min: '30 分',
        ttl1h: '1 時間',
        ttl2h: '2 時間',
        ttl5h: '5 時間',
        ttl12h: '12 時間',
        ttl1d: '1 日',
        ownership: '所有権の確認',
        sslValidation: 'SSL 検証',
        verifyMethod: '検証方法',
        verifyType: '検証タイプ',
        verifyName: '検証名',
        verifyValue: '検証値',
        certificateStatus: '証明書ステータス',
        hostnameStatus: 'ホスト名ステータス',
        verificationRecords: '検証レコード',
        noVerificationNeeded: '検証は不要です',
        editSaaS: 'カスタムホスト名を編集',
        minTlsVersion: '最小 TLS バージョン',
        certType: '証明書タイプ',
        certCloudflare: 'Cloudflare 提供',
        certCustom: 'カスタム証明書',
        originServer: 'オリジンサーバー',
        defaultOrigin: 'デフォルトオリジン',
        customOrigin: 'カスタムオリジン',
        originPlaceholder: '例: origin.example.com',
        tlsDefault: 'TLS 1.0(デフォルト)',
        active: '有効',
        pending_validation: '検証待ち',
        pending_deployment: 'デプロイ中',
        pending: '保留中',
        switchZone: 'ドメイン切り替え',
        deleteZone: 'ゾーン削除',
        deleteZoneWarning: 'この操作により、このドメインとそのすべてのDNSレコード、設定、構成がCloudflareアカウントから永久に削除されます。この操作は元に戻せません。',
        deleteZoneTypeConfirm: '削除を確認するには {zone} と入力してください:',
        zoneDeleted: 'ゾーンが正常に削除されました',
        zoneDeleteFailed: 'ゾーンの削除に失敗しました',
        saasNotEnabled: 'カスタムホスト名が有効化されていません',
        saasNotEnabledDesc: 'Cloudflareはすべてのプランで100個の無料カスタムホスト名(SSL for SaaS)を提供していますが、まずCloudflareダッシュボードで有効化し、有効な支払い方法を追加する必要があります。',
        saasStep1: '1. Cloudflareダッシュボード → SSL/TLS → カスタムホスト名に移動',
        saasStep2: '2. 有効な支払い方法を追加(課金はされません)',
        saasStep3: '3. 有効化後、最大100個のカスタムホスト名を無料で管理できます',
        unbindZone: 'ゾーン解除',
        unbindZoneDesc: 'このマネージャーからドメインを削除するだけです。ゾーンはCloudflareアカウントに残ります。更新すると再表示されます。',
        zoneUnbound: 'ゾーンがマネージャーから削除されました',
        unbindZoneConfirmShort: 'このゾーンをマネージャーから削除しますか?',
        deleteGroup: '認証情報グループを削除',
        deleteGroupDesc: 'この認証情報と配下の {count} 個のゾーンを削除します。ゾーンはCloudflareアカウントに残りますが、トークン/キーは削除されます。',
        zoneActions: 'ゾーン操作',
        toggleSidebar: 'サイドバー切替',
        overview: '概要',
        selectZone: 'ゾーンを選択',
        noZonesFound: 'ドメインが見つかりません。トークンを確認するか、Cloudflare でドメインを追加してください。',
        fallbackError: 'このレコードは SSL for SaaS のフォールバックオリジンとして設定されているため、編集できません。',
        invalidPassword: 'パスワードが無効です',
        accountLocked: 'アカウントが一時的にロックされています。しばらくしてから再試行してください。',
        serverNotConfigured: 'サーバーはパスワードログイン用に設定されていません',
        switchAccount: 'アカウント切り替え',
        not_set: '未設定',
        invalidToken: '無効な API トークン',
        tokenRequired: 'API トークンが必要です',
        verifyFailed: 'トークン検証に失敗しました',
        noZonesServerExplanation: 'サーバーモードですが、サーバーに CF_API_TOKEN が設定されていないか、トークンにドメインへのアクセス権がありません。',
        noZonesClientExplanation: 'API トークンが無効、期限切れ、または必要な権限がない可能性があります。',
        noZonesRetryWithToken: 'API トークンで再試行',
        noZonesEnterToken: 'Cloudflare API トークンを入力して直接接続します。',
        noZonesGetToken: 'トークンを作成してください:',
        tokenRequiredPermissions: '必要な権限:Zone > Zone Read, DNS Edit, Zone Settings Edit, Cache Purge, SSL and Certificates Edit',
        backToLogin: 'ログインに戻る',
        retryFetch: '再試行',
        saveToServer: 'サーバーに保存',
        saveToServerHint: 'トークンをサーバーに保存すると、次回パスワードでログインするだけでドメインを管理できます。',
        tokenSaved: 'トークンをサーバーに保存しました',
        tokenSaveFailed: '保存に失敗しました',
        useDirectly: 'そのまま使用',
        addAccount: 'アカウント追加',
        addNewToken: '新しいトークンを追加',
        addAccountTitle: 'Cloudflare アカウントを追加',
        accountName: 'アカウント名(任意)',
        accountNamePlaceholder: '例: マイブログ',
        removeAccount: 'アカウント削除',
        confirmRemoveAccount: 'このアカウントを削除しますか?トークンはサーバーから削除されます。',
        accountAdded: 'アカウントを追加しました',
        accountRemoved: 'アカウントを削除しました',
        storageServer: 'マネージド',
        storageLocal: 'ローカル',
        switchingStorage: '切り替え中...',
        switchedToLocal: 'ローカルモードに切り替えました',
        switchedToServer: 'マネージドモードに切り替えました',
        localModeTitle: 'ローカルモード',
        localModeDesc: 'トークンはブラウザのみに保存され、サーバーを経由しません。',
        localTokens: 'ローカルトークン',
        noLocalTokens: 'ローカルトークンがありません。Cloudflare API トークンを追加してください。',
        addLocalToken: 'ローカルトークンを追加',
        localTokenAdded: 'トークンをローカルに追加しました',
        removeLocalToken: '削除',
        confirmRemoveLocalToken: 'このローカルトークンを削除しますか?',
        localTokenRemoved: 'ローカルトークンを削除しました',
        uploadToServer: 'サーバーにアップロード',
        uploadedToServer: 'サーバーにアップロードしました',
        switchToLocal: 'ローカルストレージに切り替え',
        localBadge: 'ローカル',
        apiTokenBadge: 'API Token',
        globalKeyBadge: 'Global Key',
        usersManagement: 'ユーザー管理',
        addUser: 'ユーザー追加',
        editUser: 'ユーザー編集',
        deleteUser: 'ユーザー削除',
        confirmDeleteUser: 'このユーザーを削除しますか?ユーザーのすべてのトークンも削除されます。',
        roleAdmin: '管理者',
        roleUser: '一般ユーザー',
        userCreated: 'ユーザーを作成しました',
        userUpdated: 'ユーザーを更新しました',
        userDeleted: 'ユーザーを削除しました',
        newPassword: '新しいパスワード',
        newPasswordPlaceholder: '新しいパスワードを入力(空欄で変更なし)',
        role: 'ロール',
        loginAnotherAccount: '別のアカウントでログイン',
        addSessionTitle: '別のアカウントでログイン',
        sessionAdded: 'アカウントを追加しました',
        removeSession: 'このアカウントからログアウト',
        setupAccount: 'アカウント設定',
        setupAccountDesc: '管理者から受け取ったセットアップトークンでパスワードを設定します',
        setupTokenLabel: 'セットアップトークン',
        setupTokenPlaceholder: '管理者からのセットアップトークンを貼り付け...',
        setupSuccess: 'アカウントが有効化されました。ログインしてください。',
        setupFailed: 'セットアップ失敗',
        needsSetup: 'アカウントが未設定です。先にセットアップトークンを使用してください。',
        changePassword: 'パスワード変更',
        currentPassword: '現在のパスワード',
        currentPasswordPlaceholder: '現在のパスワードを入力...',
        newPasswordPlaceholder2: '新しいパスワードを入力...',
        confirmNewPassword: '新しいパスワードの確認',
        confirmNewPasswordPlaceholder: '新しいパスワードを再入力...',
        passwordChanged: 'パスワードを変更しました',
        passwordMismatch: 'パスワードが一致しません',
        passwordTooWeak: 'パスワードは8文字以上で、英字と数字を含む必要があります',
        passwordChangeError: 'パスワード変更に失敗しました',
        setupTokenCopied: 'セットアップトークンをコピーしました',
        resetSetupToken: 'セットアップトークンを再生成',
        userStatusPending: '未有効化',
        userStatusActive: '有効',
        adminPasswordNote: '管理者パスワードは環境変数で管理されています',
        register: '新規登録',
        registerDesc: '新しいアカウントを作成',
        registerSuccess: '登録完了。ログインしてください。',
        registerFailed: '登録に失敗しました',
        registrationDisabled: '登録は無効です。管理者に招待を依頼してください。',
        appSettings: '設定',
        openRegistration: 'オープン登録',
        openRegistrationDesc: '招待トークンなしで誰でも自己登録できるようにする',
        settingsSaved: '設定を保存しました',
        inviteTokenMode: '招待トークンモード',
        inviteTokenModeDesc: '新規ユーザーは登録時に管理者が提供する招待トークンが必要です',
        badgeE2E: 'E2E 暗号化',
        badgeZeroKnowledge: 'ゼロナレッジ',
        badgeSHA256: 'PBKDF2 ハッシュ',
        badgeJWT: 'JWT 認証',
        badgeHTTPS: 'HTTPS のみ',
        badgeNoPlaintext: '平文パスワード送信なし',
        passkey: 'パスキー',
        passkeyLogin: 'パスキーログイン',
        passkeyLoginDesc: '登録済みのパスキーでサインイン',
        passkeyLoginBtn: 'パスキーでサインイン',
        passkeyManage: 'パスキー管理',
        passkeyRegister: 'パスキー登録',
        passkeyRegistered: 'パスキーを登録しました',
        passkeyDeleted: 'パスキーを削除しました',
        passkeyNone: 'パスキーが未登録です',
        passkeyName: '名前',
        passkeyCreatedAt: '登録日時',
        passkeyNoSupport: 'このブラウザはパスキーに対応していません',
        passkeyNoCredentials: 'このユーザーにはパスキーが登録されていません',
        passkeyError: 'パスキー操作に失敗しました',
        passkeyUsernameRequired: '先にユーザー名を入力してください',
        badgePasskey: 'パスキー対応',
        darkMode: 'ダークモード',
        lightMode: 'ライトモード',
        // Audit Log
        auditLog: '監査ログ',
        auditLogEmpty: '監査記録はまだありません',
        auditLogClear: 'ログをクリア',
        auditLogClearConfirm: 'すべての監査ログをクリアしてもよろしいですか?',
        auditLogCleared: '監査ログをクリアしました',
        auditTime: '時刻',
        auditUser: 'ユーザー',
        auditAction: '操作',
        auditDetail: '詳細',
        auditPrev: '前へ',
        auditNext: '次へ',
        // Global Search
        globalSearchPlaceholder: '全ゾーンの DNS レコードを検索...',
        searchResults: '検索結果',
        searchNoResults: '一致するレコードが見つかりません',
        searchMinChars: '2 文字以上入力してください',
        searching: '検索中...',
        searchResultCount: '{count} 件のレコードが見つかりました({zones} ゾーンを検索)',
        // TOTP/2FA
        totpManage: '二段階認証',
        totpSetupDesc: '認証アプリでセキュリティを強化します',
        totpEnabled: '二段階認証が有効です',
        totpNotEnabled: '二段階認証が無効です',
        totpEnable: '二段階認証を有効化',
        totpDisable: '二段階認証を無効化',
        totpScanQR: '認証アプリで QR コードをスキャンするか、キーを手動で入力してください',
        totpSecretKey: 'シークレットキー',
        totpEnterCode: '設定を完了するにはコードを入力してください',
        totpCodePlaceholder: '6 桁のコード',
        totpVerify: '確認',
        totpVerified: '二段階認証を有効化しました',
        totpDisabled: '二段階認証を無効化しました',
        totpDisableDesc: '二段階認証を無効にするには現在のコードを入力してください',
        totpRequired: '二段階認証コードを入力してください',
        totpInvalid: '認証コードが無効です',
        totpStep: '二段階認証',
        // DNS History/Rollback
        dnsHistory: 'DNS 履歴',
        noSnapshots: 'スナップショットはありません',
        snapshotTime: '時刻',
        snapshotUser: 'ユーザー',
        snapshotAction: '操作',
        rollback: 'ロールバック',
        rollbackConfirm: 'このスナップショットにロールバックしますか?現在のレコードは置き換えられます。',
        rollbackSuccess: 'ロールバック完了',
        rollbackDetail: '削除: {deleted}、作成: {created}、更新: {updated}',
        // Diff View
        compare: '比較',
        diffTitle: 'スナップショット差分',
        diffNoChanges: 'スナップショットと現在のレコードに差異はありません',
        diffAdded: '追加',
        diffRemoved: '削除',
        diffModified: '変更',
        diffAddedSection: '追加されたレコード(現在あり、スナップショットになし)',
        diffRemovedSection: '削除されたレコード(スナップショットにあり、現在なし)',
        diffModifiedSection: '変更されたレコード',
        diffBefore: 'スナップショット',
        diffAfter: '現在',
        // Bulk Operations
        bulkOperations: '一括操作',
        bulkDesc: '複数ゾーンの DNS レコードを一括管理',
        bulkCreate: '一括作成',
        bulkDelete: '一括削除',
        bulkAllZones: '全ゾーン',
        bulkSelectedZones: '選択したゾーン',
        bulkExecute: '実行',
        bulkExecuting: '実行中...',
        bulkResults: '結果',
        bulkSuccess: '一括操作が完了しました',
        bulkSelectZones: 'ゾーンを選択',
        bulkRecordType: 'レコードタイプ',
        bulkRecordName: 'レコード名',
        bulkRecordContent: 'レコード値',
        // Webhook
        webhookUrl: 'Webhook URL',
        webhookUrlPlaceholder: 'https://example.com/webhook',
        webhookDesc: 'DNS 変更やログインイベントの通知を受け取る Webhook を設定します',
        webhookSaved: 'Webhook を保存しました',
        // DNS Templates
        templates: 'テンプレート',
        templateSpf: 'SPF(ドメインのメールサーバーを許可)',
        templateDmarc: 'DMARC(基本ポリシー)',
        templateGoogleMx: 'Google Workspace MX',
        templateWwwCname: 'WWW リダイレクト (CNAME)',
        templateMailMx: 'メール (MX 基本)',
        templateGoogleVerify: '検証 (Google)',
        templateApplied: 'テンプレートを適用しました',
        // Bulk Import
        bulkImport: '一括インポート',
        bulkImportDesc: 'JSON で DNS レコードを一括インポート',
        pasteJson: 'JSON を貼り付け',
        uploadJsonFile: 'または .json ファイルをアップロード',
        previewRecords: 'レコードをプレビュー',
        importRecords: 'レコードをインポート',
        importing: 'インポート中...',
        importResultCreated: '{count} 件のレコードを作成しました',
        importResultErrors: '{count} 件のレコードのインポートに失敗しました',
        invalidJson: '無効な JSON 形式です',
        noRecordsFound: 'レコードが見つかりません',
        jsonFormatHint: '形式: { "records": [{ "type": "A", "name": "@", "content": "1.2.3.4" }] }',
        // Zone Permissions
        allowedZones: 'ゾーン権限',
        allowedZonesDesc: 'このユーザーが管理できるゾーンを制限します(空欄 = すべてのゾーン)',
        allowedZonesPlaceholder: 'ゾーン名を入力して Enter(例: example.com)',
        allowedZonesAll: 'すべてのゾーン(制限なし)',
        allowedZonesAdd: '追加',
        allowedZonesRemove: '削除',
        // Dashboard
        dashboard: 'ダッシュボード',
        dashboardZones: 'ゾーン数',
        dashboardRecords: 'DNS レコード数',
        dashboardAccounts: 'アカウント数',
        dashboardLastLogin: '最終ログイン',
        dashboardRecentActivity: '最近のアクティビティ',
        dashboardNoActivity: 'アクティビティはありません',
        dashboardJustNow: 'たった今',
        // Scheduled Changes
        scheduledChanges: '予約変更',
        scheduleForLater: '後で実行',
        scheduleDateTime: '実行日時',
        scheduleConfirm: '予約する',
        scheduleCreated: '予約変更を作成しました',
        scheduleCancelled: '予約変更をキャンセルしました',
        scheduleMustBeFuture: '実行日時は未来でなければなりません',
        noScheduledChanges: '予約変更はありません',
        scheduledFor: '予約日時',
        cancelSchedule: '予約をキャンセル',
        scheduleActionCreate: '作成',
        scheduleActionUpdate: '更新',
        scheduleActionDelete: '削除',
        // Keyboard Shortcuts
        keyboardShortcuts: 'キーボードショートカット',
        shortcutFocusSearch: '検索にフォーカス',
        shortcutNewRecord: '新しい DNS レコード',
        shortcutCloseModal: 'モーダルを閉じる',
        shortcutShowHelp: 'ショートカットヘルプを表示',
        shortcutGeneral: '全般',
        shortcutOr: 'または',
        errorBoundaryTitle: '問題が発生しました',
        errorBoundaryMessage: 'このセクションで予期しないエラーが発生しました。もう一度お試しいただくか、問題が解決しない場合はページを更新してください。',
        errorBoundaryRetry: 'もう一度試す',
        errorBoundaryDetails: 'エラーの詳細',
        offlineMessage: 'オフラインです。一部の機能が利用できない場合があります。',
        // Onboarding Tour
        onboardingWelcomeTitle: 'DNS Manager へようこそ',
        onboardingWelcomeDesc: '主な機能をご紹介します。',
        onboardingZoneTitle: 'ゾーンセレクター',
        onboardingZoneDesc: 'ここでドメインを切り替えて管理できます。ドメイン名をクリックして切り替えメニューを開きます。',
        onboardingDnsTitle: 'DNS レコード',
        onboardingDnsDesc: 'すべての DNS レコードの表示、編集、管理ができます。プロキシステータスのインライン切り替えに対応しています。',
        onboardingTemplatesTitle: 'テンプレート',
        onboardingTemplatesDesc: 'SPF、DMARC、Google MX などのプリセットテンプレートを使って、よく使う DNS レコードをすばやく追加できます。',
        onboardingSearchTitle: '検索',
        onboardingSearchDesc: '検索ボックスでレコードをすばやくフィルタリングできます。名前、タイプ、内容で検索できます。',
        onboardingDoneTitle: '準備完了!',
        onboardingDoneDesc: '基本的な機能を理解しました。DNS レコードの管理を始めましょう!',
        onboardingSkip: 'スキップ',
        onboardingNext: '次へ',
        onboardingFinish: '完了',
        // DNS Record Grouping
        groupBy: 'グループ化',
        groupByNone: 'なし',
        groupByType: 'タイプ別',
        groupBySubdomain: 'サブドメイン別',
        // Import Formats
        importFormatHint: 'JSON、BIND ゾーンファイル、CSV 形式に対応しています。形式は自動検出されます。',
        importDetectedFormat: '検出された形式',
        importPasteData: 'データを貼り付け',
        importUploadFile: 'ファイルをアップロード',
        importPlaceholder: 'JSON: [{"type":"A","name":"@","content":"1.2.3.4"}]\nBIND: @ IN A 1.2.3.4\nCSV: type,name,content,ttl,proxied',
        importCsvMissingHeaders: 'CSV に必要な列ヘッダー(type, name, content)がありません',
        // Share Snapshot
        shareSnapshot: '共有',
        shareSnapshotTitle: 'スナップショットを共有',
        shareSnapshotDesc: '読み取り専用の共有リンクを作成(7日間有効)',
        shareLinkCopied: '共有リンクをコピーしました',
        // Inline Edit
        inlineEditHint: 'ダブルクリックで素早く編集',
        inlineEditSave: '保存',
        inlineEditCancel: 'キャンセル',
        inlineEditSaving: '保存中...',
        // Drag and Drop Reorder
        dragHandle: 'ドラッグして並べ替え',
        dragReorderHint: '行をドラッグして優先度を変更',
        priorityUpdated: '優先度が更新されました',
        priorityUpdateFailed: '優先度の更新に失敗しました',
        // DNS Monitors
        monitors: 'DNS モニタリング',
        monitorAdd: 'モニター追加',
        monitorDelete: 'モニター削除',
        monitorAdded: 'モニターを追加しました',
        monitorDeleted: 'モニターを削除しました',
        monitorNone: 'モニターがありません',
        monitorNoneHint: 'モニターを追加して DNS レコードの変更を追跡',
        monitorZone: 'ゾーン',
        monitorSelectZone: 'ゾーンを選択...',
        monitorRecordName: 'レコード名',
        monitorExpectedContent: '期待される内容',
        monitorExpected: '期待値',
        monitorLastCheck: '最終チェック',
        monitorAutoRefresh: '60秒ごとに自動更新',
        // Cache Management
        cacheTab: 'キャッシュ',
        cacheDevMode: '開発モード',
        cacheDevModeDesc: '開発モードはキャッシュを一時的に無効にします。3時間後に自動的に無効になります。',
        cacheDevModeOn: '開発モードを有効にする',
        cacheDevModeOff: '開発モードを無効にする',
        cacheDevModeExpires: '{time} 後に自動的に無効になります',
        devModeEnabled: '開発モードが有効になりました',
        devModeDisabled: '開発モードが無効になりました',
        cachePurgeAll: 'すべてのキャッシュをパージ',
        cachePurgeAllDesc: 'このゾーンのすべてのキャッシュファイルを削除します。この操作は元に戻せません。',
        cachePurgeAllBtn: 'すべてのキャッシュをパージ',
        cachePurgeAllConfirm: 'このゾーンのすべてのキャッシュをパージしてもよろしいですか?',
        cachePurgeAllSuccess: 'すべてのキャッシュがパージされました',
        cachePurgeUrls: 'URL 指定パージ',
        cachePurgeUrlsDesc: 'キャッシュをパージする URL を1行に1つずつ入力してください(1回のリクエストにつき最大30件)。',
        cachePurgeUrlsPlaceholder: 'https://example.com/page1\nhttps://example.com/page2',
        cachePurgeUrlsBtn: 'URL をパージ',
        cachePurgeUrlsSuccess: '{count} 件の URL のキャッシュをパージしました',
        cacheUrlsEmpty: 'URL を1つ以上入力してください',
        cacheUrlsLimit: '1回のリクエストにつき最大30件(Cloudflare API の制限)',
        tokenPermissionHint: 'APIトークンの権限が不足しています。Zone Settings Edit、Cache Purge、SSL and Certificates Edit を追加してください。',
        loadSettingsError: '設定の読み込みに失敗しました:{error}',

        // Speed Optimization
        speedTab: '速度',
        speedQuickActions: 'ワンクリック速度最適化',
        speedQuickActionsDesc: '圧縮、プリロード、プロトコル最適化など、すべての速度最適化設定を一括で有効化・無効化します。',
        speedEnableAll: 'すべての速度最適化を有効にする',
        speedDisableAll: 'すべて無効にする',
        speedEnableAllSuccess: 'すべての速度最適化が有効になりました',
        speedDisableAllSuccess: 'すべての速度最適化が無効になりました',
        speedAdvanced: '詳細 / カスタマイズ',
        speed_rocket_loader: 'Rocket Loader',
        speedRocketLoaderDesc: 'JavaScript の読み込みを遅延させ、描画速度を向上させます。一部の JS 依存機能に影響する場合があります。',
        speedRocketLoaderWarning: 'インラインスクリプトに問題が発生する可能性があります',
        speed_minify: '自動圧縮',
        speedMinifyDesc: '不要な文字を削除してファイルサイズを削減します',
        speed_brotli: 'Brotli 圧縮',
        speedBrotliDesc: 'Brotli 圧縮を適用してページの読み込みを高速化します',
        speed_early_hints: 'Early Hints(スマートヒント)',
        speedEarlyHintsDesc: '完全なレスポンスの準備前にブラウザにプリロードヒントを送信します',
        speed_h2_prioritization: 'HTTP/2 優先順位付け',
        speedH2Desc: 'HTTP/2 でのリソース配信順序を最適化します',
        speed_0rtt: '0-RTT 接続再開',
        speed0rttDesc: 'TLS 1.3 接続をフルハンドシェイクなしで再開できるようにします',
        speed_fonts: 'Cloudflare フォント',
        speedFontsDesc: 'Google Fontsをあなたのドメインから配信するよう書き換え、サードパーティ接続を排除してプライバシーとパフォーマンスを向上させます。',
        speed_polish: 'Polish (画像最適化)',
        speedPolishDesc: 'サイトの画像サイズを最適化します。ロスレスは品質を保ちつつファイルサイズを縮小、ロッシーはより高い圧縮率を提供します。',
        speedPolish_off: 'オフ',
        speedPolish_lossless: 'ロスレス',
        speedPolish_lossy: 'ロッシー',
        speed_mirage: 'Mirage',
        speedMirageDesc: '画像の遅延読み込みと最適化されたプレースホルダーにより、モバイルデバイスでの画像読み込みを高速化します。',
        speed_image_resizing: '画像リサイズ',
        speedImageResizingDesc: 'URLパラメータまたはWorkersを使用して、画像をリアルタイムでリサイズ、トリミング、変換します。',

        // SSL/TLS
        sslTab: 'SSL/TLS',
        sslModeTitle: 'SSL/TLS 暗号化モード',
        sslModeDescription: 'Cloudflare が訪問者とオリジンサーバー間のトラフィックを暗号化する方法を選択します。',
        sslModeOff: 'オフ',
        sslModeOffDesc: '暗号化なし。すべてのトラフィックが平文で送信されます。',
        sslModeFlexible: 'フレキシブル',
        sslModeFlexibleDesc: 'ブラウザと Cloudflare 間のトラフィックのみを暗号化します。オリジンに SSL 証明書は不要です。',
        sslModeFull: 'フル',
        sslModeFullDesc: 'エンドツーエンドの暗号化ですが、オリジン証明書を検証しません。',
        sslModeStrict: 'フル(厳格)',
        sslModeStrictDesc: 'オリジン証明書を検証するエンドツーエンドの暗号化。最も安全なオプションです。',
        sslAlwaysHttps: '常に HTTPS を使用',
        sslAlwaysHttpsDesc: 'すべての HTTP リクエストを HTTPS にリダイレクトします。',
        sslMinTls: '最小 TLS バージョン',
        sslMinTlsDesc: 'ドメインへの接続に許可する最小 TLS バージョンを設定します。',
        sslAutoRewrites: '自動 HTTPS リライト',
        sslAutoRewritesDesc: 'HTTP を HTTPS にリライトして混合コンテンツを修正します。',
        sslUpdateSuccess: 'SSL/TLS 設定が更新されました',
        sslOffWarning: '警告: SSL がオフです。サイトのトラフィックは暗号化されておらず、傍受のリスクがあります。',
        sslDiagramBrowser: 'ブラウザ',
        sslDiagramOrigin: 'オリジン',
        errPermission: '権限不足',
        errPermissionDesc: 'この API トークンには必要な権限がありません。Zone:Read と DNS:Edit のスコープがあるか確認してください。',
        errAuth: '認証情報が無効または期限切れ',
        errAuthDesc: 'この API トークンまたはキーは無効、削除済み、または期限切れです。有効な認証情報を再追加してください。',
        errNetwork: 'ネットワークエラー',
        errNetworkDesc: 'Cloudflare API に接続できません。ネットワーク接続を確認して再試行してください。',
        errUnknown: '予期しないエラーが発生しました',
        retry: '再試行',
        goToCfDashboard: 'CF ダッシュボードを開く',
        loadingRecords: '読み込み中...',
        searchZones: 'ゾーンを検索...',
        sidebarPerformance: 'パフォーマンス',
        sidebarSecurity: 'セキュリティ',
        sidebarConfig: '設定',
        sidebarMonitoring: 'モニタリング',
        pageRulesTab: 'ページルール',
        securityTab: 'セキュリティ',
        networkTab: 'ネットワーク',
        scrapeShieldTab: 'スクレイプシールド',
        workersTab: 'Workers',
        rulesTab: 'リダイレクトルール',
        analyticsTab: 'アナリティクス',
        dnsSettingsTab: 'DNS 設定',
        dnsSettingsTitle: 'DNS 設定',
        enable: '有効化',
        disable: '無効化',
        disabled: '無効',
        dnssecDesc: 'DNSSEC は DNS レコードにデジタル署名することで、DNS スプーフィングやキャッシュポイズニングからドメインを保護します。有効化後、レジストラに DS レコードを追加する必要があります。',
        dnssecPending: 'DNSSEC はアクティベーション待ちです。ドメインレジストラに DS レコードを追加してください。',
        cnameFlattening: 'CNAME フラット化',
        cnameFlattenRoot: 'ルートのみフラット化',
        cnameFlattenAll: 'すべての CNAME をフラット化',
        cnameFlatteningDesc: 'CNAME フラット化は CNAME レコードを A レコードに解決して互換性を向上させます。デフォルトではルート(@)のみ有効です。',
        cnameFlattenPaidOnly: '「すべての CNAME をフラット化」は有料プランでのみ利用可能です。',
        paidOnly: '有料',
        nameservers: 'ネームサーバー',
        nameserversDesc: 'このドメインに現在割り当てられている Cloudflare ネームサーバー。',
        pointDnsTo: 'ドメインの DNS を以下に設定:',
        transformTab: '変換ルール',
        originTab: 'オリジンルール',
        emailTab: 'メールルーティング',
        customPagesTab: 'カスタムページ',
        sidebarEmail: 'メール&ページ',
        // DNS Settings
        dsTitle: 'DNS 設定',
        dsDesc: 'DNSSEC、CNAMEフラット化、ネームサーバーなどのDNSレベル設定を管理します。',
        dsDnssec: 'DNSSEC',
        dsDnssecDesc: 'デジタル署名でDNSクエリを保護し、DNSスプーフィングやキャッシュポイズニングを防止します。',
        dsDnssecEnabled: 'DNSSEC 有効',
        dsDnssecDisabled: 'DNSSEC 無効',
        dsDnssecPending: 'DNSSEC 保留中',
        dsDsRecord: 'DS レコード',
        dsDsRecordHint: 'DNSSECを有効にするには、このDSレコードをドメインレジストラに追加してください。',
        dsCnameFlattening: 'CNAME フラット化',
        dsCnameFlatteningDesc: 'CNAMEフラット化の動作を制御します。フラット化はCNAMEレコードを最終IPアドレスに解決します。',
        dsFlattenAll: 'すべてのCNAMEをフラット化',
        dsFlattenAtRoot: 'ルートのみフラット化',
        dsNameservers: 'ネームサーバー',
        dsNameserversDesc: 'このゾーンに割り当てられたCloudflareネームサーバー。',
        // Transform Rules
        trTitle: '変換ルール',
        trDesc: 'URLリライトとHTTPリクエスト/レスポンスヘッダー変更ルールを管理します。',
        trUrlRewrites: 'URL リライト',
        trHeaderMods: 'ヘッダー変更',
        trNoRules: '変換ルールはありません。',
        trInfoCard: '変換ルールはCloudflareルールセットエンジンの一部です。複雑なルールの作成・編集はCloudflareダッシュボードで行えます。ここでは既存ルールの有効/無効を切り替えられます。',
        trManageInDashboard: 'ダッシュボードで管理',
        // Origin Rules
        orTitle: 'オリジンルール',
        orDesc: 'ホストヘッダーの書き換えやポートオーバーライドなど、リクエストがオリジンサーバーに到達する方法を制御するルールを管理します。',
        orNoRules: 'オリジンルールはありません。',
        orInfoCard: 'オリジンルールはCloudflareルールセットエンジンの一部です。複雑なルールの作成・編集はCloudflareダッシュボードで行えます。ここでは既存ルールの有効/無効を切り替えられます。',
        orManageInDashboard: 'ダッシュボードで管理',
        // Email Routing
        erTitle: 'メールルーティング',
        erDesc: 'ドメインに送信されたメールを宛先メールボックスにルーティングするメール転送ルールを設定します。',
        erAddRule: 'ルールを追加',
        erEditRule: 'ルールを編集',
        erDeleteConfirm: 'このメールルーティングルールを削除しますか?',
        erSaved: 'メールルーティングルールを保存しました',
        erDeleted: 'メールルーティングルールを削除しました',
        erNoRules: 'メールルーティングルールはありません。',
        erEnable: 'メールルーティング',
        erEnableDesc: 'このゾーンのメールルーティングを有効にします。',
        erMatchType: 'マッチタイプ',
        erExactMatch: '完全一致',
        erCatchAll: 'キャッチオール',
        erFromAddress: '送信元アドレス',
        erForwardTo: '転送先',
        // Custom Pages
        cpTitle: 'カスタムエラーページ',
        cpDesc: 'WAFチャレンジやレート制限など、特定のイベント時にCloudflareが訪問者に表示するページをカスタマイズします。',
        cpNoPages: '利用可能なカスタムページはありません。',
        cpCustomUrl: 'カスタムページURL',
        cpUrlHint: '空にするとデフォルトページに戻ります。',
        ssTitle: 'スクレイプシールド',
        ssDesc: 'コンテンツスクレイピングやデータ漏洩からサイトを保護します。',
        ss_email_obfuscation: 'メールアドレス難読化',
        ssEmailObfuscationDesc: 'ボットからメールアドレスを隠し、人間には表示します。',
        ss_server_side_exclude: 'サーバーサイド除外',
        ssServerSideExcludeDesc: '疑わしい訪問者から特定のコンテンツを自動的に非表示にします。',
        ss_hotlink_protection: 'ホットリンク保護',
        ssHotlinkProtectionDesc: '他のサイトからの直接リンクをブロックし、帯域を節約します。',
        netTitle: 'ネットワーク設定',
        netDesc: 'HTTP/3、WebSocket、IPv6などのネットワーク設定を管理します。',
        net_websockets: 'WebSocket',
        netWebsocketsDesc: 'オリジンサーバーへのWebSocket接続を許可します。',
        net_ip_geolocation: 'IP ジオロケーション',
        netIpGeoDesc: 'リクエストヘッダーに訪問者の国コードを含めます (CF-IPCountry)。',
        net_ipv6: 'IPv6 互換',
        netIpv6Desc: 'ドメインのIPv6サポートを有効にします。',
        net_pseudo_ipv4: 'Pseudo IPv4',
        netPseudoIpv4Desc: 'IPv6接続の訪問者に疑似IPv4ヘッダーを追加します。',
        net_opportunistic_onion: 'Onion ルーティング',
        netOnionDesc: 'Torネットワーク経由でサイトにアクセスできるようにします。',
        net_http3: 'HTTP/3 (QUIC)',
        netHttp3Desc: 'HTTP/3プロトコルを有効にして接続速度を向上させます。',
        net_true_client_ip_header: 'True-Client-IP',
        netTrueClientIpDesc: 'エンドユーザーのIPを含むTrue-Client-IPヘッダーを送信します。',
        net_max_upload: '最大アップロードサイズ',
        netMaxUploadDesc: '許可される最大HTTPリクエストボディサイズ(プランにより異なります)。',
        secTitle: 'セキュリティ設定',
        secLevel: 'セキュリティレベル',
        secLevelDesc: 'Cloudflareのセキュリティ機能の厳しさを制御します。',
        secEssentiallyOff: 'ほぼ無効',
        secEssentiallyOffDesc: '最も悪質なリクエストのみにチャレンジします。',
        secLow: '低',
        secLowDesc: '最も脅威度の高い訪問者にのみチャレンジします。',
        secMedium: '中',
        secMediumDesc: '中程度および高い脅威度の訪問者にチャレンジします。',
        secHigh: '高',
        secHighDesc: '低・中・高の脅威スコアの訪問者にチャレンジします。',
        secUnderAttack: '攻撃を受けています!',
        secUnderAttackDesc: 'すべてのリクエストにJSチャレンジを表示します。DDoS攻撃時のみ使用してください。',
        secUnderAttackWarning: '攻撃モードが有効です!すべての訪問者に5秒のチャレンジページが表示されます。',
        secBrowserCheck: 'ブラウザ整合性チェック',
        secBrowserCheckDesc: '訪問者のブラウザHTTPヘッダーを評価し、一般的な不正行為を検出します。',
        secChallengeTtl: 'チャレンジ有効期限',
        secChallengeTtlDesc: 'チャレンジに合格した訪問者が再チャレンジされるまでの時間。',
        secPrivacyPass: 'Privacy Pass',
        secPrivacyPassDesc: 'Privacy Passトークンを持つ訪問者に表示するCAPTCHAを減らします。',
        secFirewallRules: 'ファイアウォールルール',
        secFirewallRulesDesc: '既存のファイアウォールルールを表示します。ここでルールの有効/無効を切り替えられます。',
        secNoFirewallRules: 'ファイアウォールルールはありません。',
        wrTitle: 'Workers ルート',
        wrDesc: 'Cloudflare Workersにリクエストをルーティングするルールを管理します。',
        wrAddRoute: 'ルートを追加',
        wrPattern: 'ルートパターン',
        wrPatternPlaceholder: '*example.com/path/*',
        wrScript: 'Worker スクリプト',
        wrScriptPlaceholder: 'my-worker',
        wrScriptHint: '空にするとルート除外になります',
        wrWorkerScript: 'Worker スクリプト',
        wrNoRoutes: 'Workers ルートはありません。',
        wrNoScript: 'スクリプトなし(ルート無効)',
        wrDeleteConfirm: 'このWorkersルートを削除しますか?',
        wrSaved: 'Workersルートを保存しました',
        wrDeleted: 'Workersルートを削除しました',
        wrEditRoute: 'ルートを編集',
        prTitle: 'ページルール',
        prDesc: 'URLパターンに一致するリクエストの設定と動作を構成します。',
        prAddRule: 'ルールを追加',
        prUrlPattern: 'URLパターン',
        prUrlPlaceholder: '*example.com/path/*',
        prActions: 'アクション',
        prAddAction: 'アクションを追加',
        prActive: '有効',
        prPaused: '一時停止',
        prDeleteConfirm: 'このページルールを削除しますか?',
        prSaved: 'ページルールを保存しました',
        prDeleted: 'ページルールを削除しました',
        prNoRules: 'ページルールはありません。',
        prEditRule: 'ルールを編集',
        rlTitle: 'リダイレクトルール',
        rlDesc: 'Cloudflareルールセットエンジンによるリダイレクトを管理します。',
        rlManageInDashboard: 'ダッシュボードで管理',
        rlInfoCard: 'リダイレクトルールはCloudflareルールセットエンジンの一部です。複雑なルールの作成・編集はCloudflareダッシュボードで行えます。ここでは既存ルールの有効/無効を切り替えられます。',
        rlNoRules: 'リダイレクトルールはありません。',
        // Rule CRUD
        addRule: 'ルール追加',
        editRule: 'ルール編集',
        saveRule: 'ルール保存',
        deleteRuleConfirm: 'このルールを削除しますか?',
        ruleSaved: 'ルールを保存しました',
        ruleDeleted: 'ルールを削除しました',
        ruleDescription: '説明',
        ruleExpression: '式 (Wirefilter)',
        ruleExpressionPlaceholder: '(http.host eq "example.com")',
        ruleEnabled: '有効',
        staticValue: '静的',
        dynamicExpression: '動的',
        rlTargetUrl: 'ターゲット URL',
        rlStatusCode: 'ステータスコード',
        rlPreserveQuery: 'クエリ文字列を保持',
        orOriginHost: 'オリジンホスト名',
        orOriginPort: 'オリジンポート',
        orHostHeader: 'Host ヘッダーオーバーライド',
        trRewritePath: 'パス書き換え',
        trRewriteQuery: 'クエリ書き換え',
        trHeaderOperation: 'ヘッダー操作',
        trHeaderName: 'ヘッダー名',
        trHeaderValue: '値',
        trHeaderOpSet: '設定',
        trHeaderOpAdd: '追加',
        trHeaderOpRemove: '削除',
        trAddHeaderOp: 'ヘッダー追加',
        copyToken: 'トークンをコピー',
        tokenCopied: 'トークンをクリップボードにコピーしました',
        anTitle: 'トラフィック分析',
        anTotalRequests: '総リクエスト数',
        anCachedRequests: 'キャッシュ済み',
        anBandwidth: '帯域幅',
        anCachedBandwidth: 'キャッシュ済み',
        anThreats: 'ブロックされた脅威',
        anVisitors: 'ユニーク訪問者',
        anHttpStatus: 'HTTPステータス分布',
        anCountries: '上位の国',
        // DNS Analytics
        dnsAnalyticsTab: 'DNS アナリティクス',
        dnsAnTitle: 'DNS アナリティクス',
        dnsAnQueryCount: '総クエリ数',
        dnsAnNxdomain: 'NXDOMAIN',
        dnsAnOfTotal: '全体の',
        dnsAnQueryTypes: 'クエリタイプ',
        dnsAnResponseCodes: 'レスポンスコード',
        dnsAnNoData: 'この期間のDNSアナリティクスデータはありません。',
        // Bulk Settings
        bulkApplySetting: '設定を適用',
        bulkSettingName: '設定',
        bulkSettingValue: '値',
        // Enhanced Monitors
        monitorTrafficSpike: 'トラフィック急増',
        monitorErrorRate: 'エラー率',
        monitorSslExpiry: 'SSL 有効期限',
        monitorThreshold: 'しきい値',
        monitorTimeWindow: '時間枠',
        monitorStatusType: 'ステータスタイプ',
        monitorDaysBefore: 'アラート',
        monitorDaysBeforeUnit: '日前に通知',
        // Firewall CRUD
        fwCreateRule: 'ルール作成',
        fwEditRule: 'ルール編集',
        fwExpression: '式',
        fwAction: 'アクション',
        fwPriority: '優先度',
        fwPaused: '一時停止',
        fwDeleteConfirm: 'このファイアウォールルールを削除しますか?',
        fwSaved: 'ファイアウォールルールを保存しました',
        fwDeleted: 'ファイアウォールルールを削除しました',
        // Bot Fight Mode
        botFightMode: 'ボットファイトモード',
        botFightModeDesc: 'ボットトラフィックを自動検出・軽減します。',
        // Accessibility
        skipToContent: 'コンテンツへスキップ',
};