码桶

发现社区成员的开源项目

ko.js47.2 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: '2단계 인증',
        totpSetupDesc: '인증 앱으로 보안을 강화하세요',
        totpEnabled: '2단계 인증이 활성화되어 있습니다',
        totpNotEnabled: '2단계 인증이 비활성화되어 있습니다',
        totpEnable: '2단계 인증 활성화',
        totpDisable: '2단계 인증 비활성화',
        totpScanQR: '인증 앱으로 QR 코드를 스캔하거나 키를 수동 입력하세요',
        totpSecretKey: '비밀 키',
        totpEnterCode: '설정을 완료하려면 코드를 입력하세요',
        totpCodePlaceholder: '6자리 코드',
        totpVerify: '확인',
        totpVerified: '2단계 인증이 활성화되었습니다',
        totpDisabled: '2단계 인증이 비활성화되었습니다',
        totpDisableDesc: '2단계 인증을 비활성화하려면 현재 코드를 입력하세요',
        totpRequired: '2단계 인증 코드를 입력하세요',
        totpInvalid: '인증 코드가 유효하지 않습니다',
        totpStep: '2단계 인증',
        // 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을 한 줄에 하나씩 입력하세요 (요청당 최대 30개).',
        cachePurgeUrlsPlaceholder: 'https://example.com/page1\nhttps://example.com/page2',
        cachePurgeUrlsBtn: 'URL 캐시 제거',
        cachePurgeUrlsSuccess: '{count}개 URL의 캐시가 제거되었습니다',
        cacheUrlsEmpty: 'URL을 하나 이상 입력하세요',
        cacheUrlsLimit: '요청당 최대 30개 URL (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 규칙 세트 엔진 기반의 URL 리디렉트를 관리합니다.',
        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: '콘텐츠로 건너뛰기',
};