diff --git a/messages/ko-KR.json b/messages/ko-KR.json
index 43213d093..f3829dd16 100644
--- a/messages/ko-KR.json
+++ b/messages/ko-KR.json
@@ -101,6 +101,8 @@
"sitesTableViewPrivateResources": "개인 리소스 보기",
"siteInstallNewt": "Newt 설치",
"siteInstallNewtDescription": "시스템에서 Newt 실행하기",
+ "siteInstallKubernetesDocsDescription": "더 많은 정보와 최신의 쿠버네티스 설치 정보를 보려면 docs.pangolin.net/manage/sites/install-kubernetes를 참조하세요.",
+ "siteInstallAdvantechDocsDescription": "Advantech 모뎀 설치 지침은 docs.pangolin.net/manage/sites/install-advantech을 참조하세요.",
"WgConfiguration": "WireGuard 구성",
"WgConfigurationDescription": "네트워크에 연결하기 위한 다음 구성을 사용하세요.",
"operatingSystem": "운영 체제",
@@ -148,16 +150,16 @@
"siteCredentialsSaveDescription": "이것은 한 번만 볼 수 있습니다. 안전한 장소에 복사해 두세요.",
"siteInfo": "사이트 정보",
"status": "상태",
- "shareTitle": "공유 링크 관리",
+ "shareTitle": "공유 가능한 링크 관리",
"shareDescription": "공유 가능한 링크를 생성하여 프록시 리소스에 임시 또는 영구적으로 액세스하세요.",
- "shareSearch": "공유 링크 검색...",
- "shareCreate": "공유 링크 생성",
+ "shareSearch": "공유 가능한 링크 검색...",
+ "shareCreate": "공유 가능한 링크 생성",
"shareErrorDelete": "링크 삭제에 실패했습니다.",
"shareErrorDeleteMessage": "링크 삭제 중 오류가 발생했습니다.",
"shareDeleted": "링크가 삭제되었습니다.",
"shareDeletedDescription": "링크가 삭제되었습니다.",
- "shareDelete": "공유 링크 삭제",
- "shareDeleteConfirm": "공유 링크 삭제 확인",
+ "shareDelete": "공유 가능한 링크 삭제",
+ "shareDeleteConfirm": "공유 가능한 링크 삭제 확인",
"shareQuestionRemove": "이 공유 링크를 삭제하시겠습니까?",
"shareMessageRemove": "삭제되면 링크가 더 이상 작동하지 않으며, 이를 사용하는 모든 사용자는 자원에 대한 접근을 잃게 됩니다.",
"shareTokenDescription": "액세스 토큰은 쿼리 매개변수 또는 요청 헤더의 두 가지 방법으로 전달될 수 있습니다. 이는 인증된 액세스를 위해 클라이언트에서 모든 요청마다 전달되어야 합니다.",
@@ -177,6 +179,7 @@
"shareCreateDescription": "이 링크가 있는 누구나 리소스에 접근할 수 있습니다.",
"shareTitleOptional": "제목 (선택 사항)",
"sharePathOptional": "경로 (선택 사항)",
+ "sharePathDescription": "링크는 인증 후 이 경로로 사용자를 리디렉션합니다.",
"expireIn": "만료됨",
"neverExpire": "만료되지 않음",
"shareExpireDescription": "만료 시간은 링크가 사용 가능하고 리소스에 접근할 수 있는 기간입니다. 이 시간이 지나면 링크는 더 이상 작동하지 않으며, 이 링크를 사용한 사용자는 리소스에 대한 접근 권한을 잃게 됩니다.",
@@ -200,8 +203,8 @@
"shareErrorSelectResource": "리소스를 선택하세요",
"proxyResourceTitle": "공개 리소스 관리",
"proxyResourceDescription": "웹 브라우저를 통해 공용으로 접근할 수 있는 리소스를 생성하고 관리하세요.",
- "publicResourcesBannerTitle": "웹 기반 공공 접근",
- "publicResourcesBannerDescription": "공공 자원은 누구나 웹 브라우저를 통해 접근 가능한 HTTPS 또는 TCP/UDP 프록시입니다. 개인 자원과 달리 클라이언트 측 소프트웨어가 필요하지 않으며, 아이덴티티 및 컨텍스트 인지 접근 정책을 포함할 수 있습니다.",
+ "publicResourcesBannerTitle": "웹 기반의 공개 액세스",
+ "publicResourcesBannerDescription": "공공 자원은 누구나 웹 브라우저를 통해 접근 가능한 HTTPS 프록시입니다. 개인 자원과 달리 클라이언트 측 소프트웨어가 필요하지 않으며, 아이덴티티 및 컨텍스트 인지 접근 정책을 포함할 수 있습니다.",
"clientResourceTitle": "개인 리소스 관리",
"clientResourceDescription": "연결된 클라이언트를 통해서만 접근할 수 있는 리소스를 생성하고 관리하세요.",
"privateResourcesBannerTitle": "제로 트러스트 개인 접근",
@@ -209,15 +212,19 @@
"resourcesSearch": "리소스 검색...",
"resourceAdd": "리소스 추가",
"resourceErrorDelte": "리소스 삭제 중 오류 발생",
- "resourcePoliciesTitle": "리소스 정책 관리",
- "resourcePoliciesAttachedResourcesColumnTitle": "첨부 리소스",
+ "resourcePoliciesBannerTitle": "인증 및 액세스 규칙 재사용",
+ "resourcePoliciesBannerDescription": "공유 리소스 정책을 사용하면 한 번 인증 방법 및 액세스 규칙을 정의하고, 여러 공개 리소스에 첨부할 수 있습니다. 정책을 업데이트하면 모든 연결된 리소스가 자동으로 변경 사항을 상속받습니다.",
+ "resourcePoliciesBannerButtonText": "자세히 알아보기",
+ "resourcePoliciesTitle": "공개 리소스 정책 관리",
+ "resourcePoliciesAttachedResourcesColumnTitle": "리소스",
"resourcePoliciesAttachedResources": "{count} 리소스",
+ "resourcePoliciesAttachedResourcesCount": "{count, plural, other {# 자원}}",
"resourcePoliciesAttachedResourcesEmpty": "리소스 없음",
- "resourcePoliciesDescription": "리소스에 대한 접근을 제어할 인증 정책을 생성 및 관리합니다",
+ "resourcePoliciesDescription": "공개 리소스에 대한 인증 정책을 생성하고 관리하여 접근을 제어합니다",
"resourcePoliciesSearch": "정책 검색...",
"resourcePoliciesAdd": "정책 추가",
"resourcePoliciesDefaultBadgeText": "기본 정책",
- "resourcePoliciesCreate": "리소스 정책 생성",
+ "resourcePoliciesCreate": "공개 리소스 정책 생성",
"resourcePoliciesCreateDescription": "새로운 정책을 생성하려면 아래 단계들을 따르세요",
"resourcePolicyName": "정책 이름",
"resourcePolicyNameDescription": "이 정책에 리소스 간에 식별할 이름을 지정합니다",
@@ -274,7 +281,7 @@
"back": "뒤로",
"cancel": "취소",
"resourceConfig": "구성 스니펫",
- "resourceConfigDescription": "TCP/UDP 리소스를 설정하기 위해 이 구성 스니펫을 복사하여 붙여넣습니다.",
+ "resourceConfigDescription": "TCP/UDP 리소스를 설정하기 위해 이 구성 스니펫을 복사하여 붙여넣으세요.",
"resourceAddEntrypoints": "Traefik: 엔트리포인트 추가",
"resourceExposePorts": "Gerbil: Docker Compose에서 포트 노출",
"resourceLearnRaw": "TCP/UDP 리소스 구성 방법 알아보기",
@@ -287,6 +294,8 @@
"labelDelete": "레이블 삭제",
"labelAdd": "레이블 추가",
"labelCreateSuccessMessage": "레이블이 성공적으로 생성되었습니다",
+ "labelDuplicateError": "중복 레이블",
+ "labelDuplicateErrorDescription": "이 이름의 레이블이 이미 존재합니다.",
"labelEditSuccessMessage": "레이블이 성공적으로 수정되었습니다",
"labelNameField": "레이블 이름",
"labelColorField": "레이블 색상",
@@ -311,7 +320,7 @@
"rules": "규칙",
"resourceSettingDescription": "리소스의 설정을 구성하세요.",
"resourceSetting": "{resourceName} 설정",
- "resourcePolicySettingDescription": "리소스 정책에 대한 설정을 구성합니다",
+ "resourcePolicySettingDescription": "이 공개 리소스 정책의 설정을 구성하세요",
"resourcePolicySetting": "{policyName} 설정",
"alwaysAllow": "인증 우회",
"alwaysDeny": "접근 차단",
@@ -719,7 +728,7 @@
"targetSubmit": "대상 추가",
"targetNoOne": "이 리소스에는 대상이 없습니다. 백엔드로 요청을 보낼 대상을 구성하려면 대상을 추가하세요.",
"targetNoOneDescription": "위에 하나 이상의 대상을 추가하면 로드 밸런싱이 활성화됩니다.",
- "targetsSubmit": "대상 저장",
+ "targetsSubmit": "설정 저장",
"addTarget": "대상 추가",
"proxyMultiSiteRoundRobinNodeHelp": "라운드 로빈 라우팅은 동일한 노드에 연결되지 않은 사이트 간에는 작동하지 않으나, 대체 라우팅은 작동합니다.",
"targetErrorInvalidIp": "유효하지 않은 IP 주소",
@@ -753,11 +762,11 @@
"rulesErrorDuplicate": "중복 규칙",
"rulesErrorDuplicateDescription": "이 설정을 가진 규칙이 이미 존재합니다.",
"rulesErrorInvalidIpAddressRange": "유효하지 않은 CIDR",
- "rulesErrorInvalidIpAddressRangeDescription": "유효한 CIDR 값을 입력하십시오.",
- "rulesErrorInvalidUrl": "유효하지 않은 URL 경로",
- "rulesErrorInvalidUrlDescription": "유효한 URL 경로 값을 입력해 주세요.",
- "rulesErrorInvalidIpAddress": "유효하지 않은 IP",
- "rulesErrorInvalidIpAddressDescription": "유효한 IP 주소를 입력하세요",
+ "rulesErrorInvalidIpAddressRangeDescription": "유효한 CIDR 범위를 입력하세요 (예: 10.0.0.0/8).",
+ "rulesErrorInvalidUrl": "유효하지 않은 경로",
+ "rulesErrorInvalidUrlDescription": "유효한 URL 경로 또는 패턴을 입력하세요 (예: /api/*).",
+ "rulesErrorInvalidIpAddress": "유효하지 않은 IP 주소",
+ "rulesErrorInvalidIpAddressDescription": "유효한 IPv4 또는 IPv6 주소를 입력하세요.",
"rulesErrorUpdate": "규칙 업데이트에 실패했습니다.",
"rulesErrorUpdateDescription": "규칙 업데이트 중 오류가 발생했습니다.",
"rulesUpdated": "규칙 활성화",
@@ -766,14 +775,23 @@
"rulesMatchIpAddress": "IP 주소를 입력하세요 (예: 103.21.244.12)",
"rulesMatchUrl": "URL 경로 또는 패턴을 입력하세요 (예: /api/v1/todos 또는 /api/v1/*)",
"rulesErrorInvalidPriority": "유효하지 않은 우선순위",
- "rulesErrorInvalidPriorityDescription": "유효한 우선 순위를 입력하세요.",
- "rulesErrorDuplicatePriority": "중복 우선순위",
- "rulesErrorDuplicatePriorityDescription": "고유한 우선 순위를 입력하십시오.",
+ "rulesErrorInvalidPriorityDescription": "1 이상의 정수를 입력하세요.",
+ "rulesErrorDuplicatePriority": "중복된 우선순위",
+ "rulesErrorDuplicatePriorityDescription": "각 규칙은 고유한 우선순위 번호를 가져야 합니다.",
+ "rulesErrorValidation": "유효하지 않은 규칙",
+ "rulesErrorValidationRuleDescription": "규칙 {ruleNumber}: {message}",
+ "rulesErrorInvalidMatchTypeDescription": "유효한 매칭 유형을 선택하세요 (경로, IP, CIDR, 국가, 지역, 또는 ASN).",
+ "rulesErrorValueRequired": "이 규칙에 대한 값을 입력하세요.",
+ "rulesErrorInvalidCountry": "유효하지 않은 국가",
+ "rulesErrorInvalidCountryDescription": "유효한 국가를 선택하세요.",
+ "rulesErrorInvalidAsn": "유효하지 않은 ASN",
+ "rulesErrorInvalidAsnDescription": "유효한 ASN을 입력하세요 (예: AS15169).",
"ruleUpdated": "규칙이 업데이트되었습니다",
"ruleUpdatedDescription": "규칙이 성공적으로 업데이트되었습니다",
"ruleErrorUpdate": "작업 실패",
"ruleErrorUpdateDescription": "저장 작업 중 오류가 발생했습니다.",
"rulesPriority": "우선순위",
+ "rulesReorderDragHandle": "드래그하여 규칙 우선순위 재정렬",
"rulesAction": "작업",
"rulesMatchType": "일치 유형",
"value": "값",
@@ -792,7 +810,7 @@
"rulesResource": "리소스 규칙 구성",
"rulesResourceDescription": "리소스에 대한 접근을 제어하는 규칙 구성",
"ruleSubmit": "규칙 추가",
- "rulesNoOne": "규칙이 없습니다. 양식을 사용하여 규칙을 추가하십시오.",
+ "rulesNoOne": "아직 규칙이 없습니다.",
"rulesOrder": "규칙은 우선 순위에 따라 오름차순으로 평가됩니다.",
"rulesSubmit": "규칙 저장",
"policyErrorCreate": "정책 생성 오류",
@@ -803,7 +821,48 @@
"policyErrorUpdateMessageDescription": "예기치 않은 오류가 발생했습니다",
"policyCreatedSuccess": "리소스 정책이 성공적으로 생성되었습니다",
"policyUpdatedSuccess": "리소스 정책이 성공적으로 업데이트되었습니다",
- "authMethodsSave": "인증 방법 저장",
+ "authMethodsSave": "설정 저장",
+ "policyAuthStackTitle": "인증",
+ "policyAuthStackDescription": "이 리소스에 접근하려면 어떤 인증 방법이 필요한지 제어합니다",
+ "policyAuthOrLogicTitle": "다수의 인증 방법 활성화",
+ "policyAuthOrLogicBanner": "방문자는 아래 활성화된 방법 중 하나만을 선택하여 인증할 수 있습니다. 모든 방법을 완료할 필요는 없습니다.",
+ "policyAuthMethodActive": "활성화",
+ "policyAuthMethodOff": "비활성화",
+ "policyAuthSsoTitle": "플랫폼 SSO",
+ "policyAuthSsoDescription": "사용자의 아이덴티티 공급자를 통해 로그인 필요",
+ "policyAuthSsoSummary": "{idp} · {users} 사용자, {roles} 역할",
+ "policyAuthSsoDefaultIdp": "기본 공급자",
+ "policyAuthAddDefaultIdentityProvider": "기본 아이덴티티 공급자 추가",
+ "policyAuthOtherMethodsTitle": "기타 방법",
+ "policyAuthOtherMethodsDescription": "플랫폼 SSO 대신 또는 함께 사용할 수 있는 선택적 방법",
+ "policyAuthPasscodeTitle": "패스코드",
+ "policyAuthPasscodeDescription": "리소스 접근을 위한 공유 알파벳 및 숫자 패스코드 필요",
+ "policyAuthPasscodeSummary": "패스코드 설정됨",
+ "policyAuthPincodeTitle": "PIN 코드",
+ "policyAuthPincodeDescription": "리소스 접근에 필요한 짧은 숫자 코드",
+ "policyAuthPincodeSummary": "6자리 PIN 코드 설정됨",
+ "policyAuthEmailTitle": "이메일 화이트리스트",
+ "policyAuthEmailDescription": "허용된 이메일 주소로 일회용 비밀번호 전송",
+ "policyAuthEmailSummary": "{count}개의 주소 허용됨",
+ "policyAuthEmailOtpCallout": "이메일 화이트리스트를 활성화하면 로그인 시 방문자의 이메일로 일회용 비밀번호가 전송됩니다.",
+ "policyAuthHeaderAuthTitle": "기본 헤더 인증",
+ "policyAuthHeaderAuthDescription": "각 요청에서 맞춤 HTTP 헤더 이름 및 값을 검증",
+ "policyAuthHeaderAuthSummary": "헤더 구성됨",
+ "policyAuthHeaderName": "헤더 이름",
+ "policyAuthHeaderValue": "예상 값",
+ "policyAuthSetPasscode": "패스코드 설정",
+ "policyAuthSetPincode": "PIN 코드 설정",
+ "policyAuthSetEmailWhitelist": "이메일 화이트리스트 설정",
+ "policyAuthSetHeaderAuth": "기본 헤더 인증 설정",
+ "policyAccessRulesTitle": "액세스 규칙",
+ "policyAccessRulesEnableDescription": "활성화되면 규칙은 내림차순으로 평가되며, 하나가 참으로 평가될 때까지 계속됩니다.",
+ "policyAccessRulesFirstMatch": "규칙은 위에서 아래로 평가됩니다. 첫 번째 매칭 규칙이 결과를 결정합니다.",
+ "policyAccessRulesHowItWorks": "규칙은 경로, IP 주소, 위치 또는 기타 기준에 따라 요청을 매칭합니다. 각 규칙은 인증 우회, 접근 차단 또는 인증 전송의 액션을 적용합니다. 매칭되는 규칙이 없으면, 트래픽은 인증으로 계속됩니다.",
+ "policyAccessRulesFallthroughOff": "규칙이 비활성화되면, 모든 트래픽은 인증으로 넘어갑니다.",
+ "policyAccessRulesFallthroughOn": "매칭되는 규칙이 없으면, 트래픽은 인증으로 넘어갑니다.",
+ "rulesPlaceholderCidr": "10.0.0.0/8",
+ "rulesPlaceholderPath": "/admin/*",
+ "rulesPlaceholderGeo": "RU, KP",
"rulesSave": "규칙 저장",
"resourceErrorCreate": "리소스 생성 오류",
"resourceErrorCreateDescription": "리소스를 생성하는 중 오류가 발생했습니다.",
@@ -824,9 +883,9 @@
"resourcesErrorUpdateDescription": "리소스를 업데이트하는 동안 오류가 발생했습니다.",
"access": "접속",
"accessControl": "액세스 제어",
- "shareLink": "{resource} 공유 링크",
+ "shareLink": "{resource} 공유 가능한 링크",
"resourceSelect": "리소스 선택",
- "shareLinks": "공유 링크",
+ "shareLinks": "공유 가능한 링크",
"share": "공유 가능한 링크",
"shareDescription2": "리소스에 대한 공유 가능한 링크를 생성하세요. 링크는 리소스에 대한 임시 또는 무제한 액세스를 제공합니다. 링크를 생성할 때 만료 기간을 설정할 수 있습니다.",
"shareEasyCreate": "생성하고 공유하기 쉬움",
@@ -916,10 +975,18 @@
"resourceRoleDescription": "관리자는 항상 이 리소스에 접근할 수 있습니다.",
"resourcePolicySelectTitle": "리소스 액세스 정책",
"resourcePolicySelectDescription": "인증을 위한 리소스 정책 유형을 선택하세요",
+ "resourcePolicyTypeLabel": "정책 유형",
+ "resourcePolicyLabel": "리소스 정책",
"resourcePolicyInline": "인라인 리소스 정책",
"resourcePolicyInlineDescription": "이 리소스에만 범위가 있는 액세스 정책",
"resourcePolicyShared": "공유 리소스 정책",
- "resourcePolicySharedDescription": "이 리소스는 공유 정책을 사용합니다. 정책 수준 설정(인증 방법, 이메일 화이트리스트)은 잠겨 있습니다. 아래에서 리소스별 규칙, 역할 및 사용자를 추가할 수 있습니다.",
+ "resourcePolicySharedDescription": "이 리소스는 공유 정책을 사용합니다.",
+ "sharedPolicy": "공유 정책",
+ "sharedPolicyNoneDescription": "이 리소스는 자체 정책을 가지고 있습니다.",
+ "resourceSharedPolicyOwnDescription": "이 리소스는 자체 인증 및 접근 규칙 제어를 가지고 있습니다.",
+ "resourceSharedPolicyInheritedDescription": "이 리소스는 {policyName}에서 상속받습니다.",
+ "resourceSharedPolicyAuthenticationNotice": "이 리소스는 공유 정책을 사용합니다. 일부 인증 설정은 이 리소스에서 정책에 추가하기 위해 편집할 수 있습니다. 기본 정책을 변경하려면 {policyName}을 편집해야 합니다.",
+ "resourceSharedPolicyRulesNotice": "이 리소스는 공유 정책을 사용합니다. 일부 액세스 규칙은 이 리소스에서 편집할 수 있습니다. 기본 정책을 변경하려면 {policyName}을 수정해야 합니다.",
"resourceUsersRoles": "접근 제어",
"resourceUsersRolesDescription": "이 리소스를 방문할 수 있는 사용자 및 역할을 구성하십시오",
"resourceUsersRolesSubmit": "접근 제어 저장",
@@ -944,7 +1011,14 @@
"resourceVisibilityTitle": "가시성",
"resourceVisibilityTitleDescription": "리소스 가시성을 완전히 활성화하거나 비활성화",
"resourceGeneral": "일반 설정",
- "resourceGeneralDescription": "이 리소스에 대한 일반 설정을 구성하십시오.",
+ "resourceGeneralDescription": "이 리소스를 위한 이름, 주소 및 접근 정책을 구성하세요.",
+ "resourceGeneralDetailsSubsection": "리소스 세부 정보",
+ "resourceGeneralDetailsSubsectionDescription": "이 리소스를 위한 표시 이름, 식별자 및 공개 도메인을 설정합니다.",
+ "resourceGeneralDetailsSubsectionPortDescription": "이 리소스를 위한 표시 이름, 식별자 및 공개 포트를 설정합니다.",
+ "resourceGeneralPublicAddressSubsection": "공공 주소",
+ "resourceGeneralPublicAddressSubsectionDescription": "사용자가 이 리소스에 도달하는 방법을 구성하세요.",
+ "resourceGeneralAuthenticationAccessSubsection": "인증 및 접근",
+ "resourceGeneralAuthenticationAccessSubsectionDescription": "이 리소스가 자체 정책을 사용하는지 또는 공유 정책에서 상속받는지를 선택하세요.",
"resourceEnable": "리소스 활성화",
"resourceTransfer": "리소스 전송",
"resourceTransferDescription": "이 리소스를 다른 사이트로 전송",
@@ -1220,11 +1294,14 @@
"addLabels": "레이블 추가",
"siteLabelsTab": "레이블",
"siteLabelsDescription": "이 사이트와 연결된 레이블을 관리합니다.",
- "labelsNotFound": "레이블을 찾을 수 없습니다",
+ "labelsNotFound": "레이블을 찾을 수 없습니다.",
+ "labelsEmptyCreateHint": "라벨을 생성하려면 위에서 입력을 시작하세요.",
"labelSearch": "레이블 검색",
+ "labelSearchOrCreate": "레이블을 검색하거나 생성하세요",
"accessLabelFilterCount": "{count, plural, other {# 레이블}}",
"labelOverflowCount": " +{count, plural, other {# 레이블}}",
"accessLabelFilterClear": "레이블 필터 초기화",
+ "accessFilterClear": "필터 지우기",
"selectColor": "색상 선택",
"createNewLabel": "새 조직 레이블 \"{label}\" 만들기",
"inviteInvalidDescription": "초대 링크가 유효하지 않습니다.",
@@ -1461,8 +1538,8 @@
"sidebarResources": "리소스",
"sidebarProxyResources": "공유",
"sidebarClientResources": "비공개",
- "sidebarPolicies": "정책",
- "sidebarResourcePolicies": "리소스",
+ "sidebarPolicies": "공유 정책들",
+ "sidebarResourcePolicies": "공개 리소스",
"sidebarAccessControl": "액세스 제어",
"sidebarLogsAndAnalytics": "로그 및 분석",
"sidebarTeam": "팀",
@@ -1470,7 +1547,7 @@
"sidebarAdmin": "관리자",
"sidebarInvitations": "초대",
"sidebarRoles": "역할",
- "sidebarShareableLinks": "링크",
+ "sidebarShareableLinks": "공유 가능한 링크",
"sidebarApiKeys": "API 키",
"sidebarProvisioning": "프로비저닝",
"sidebarSettings": "설정",
@@ -1647,7 +1724,7 @@
"standaloneHcFilterResourceIdFallback": "리소스 {id}",
"blueprints": "청사진",
"blueprintsLog": "블루프린트 로그",
- "blueprintsDescription": "과거 블루프린트 적용 및 결과 보기",
+ "blueprintsDescription": "이전에 블루프린트 응용 프로그램과 그 결과를 보거나 새 블루프린트를 적용하세요",
"blueprintAdd": "청사진 추가",
"blueprintGoBack": "모든 청사진 보기",
"blueprintCreate": "청사진 생성",
@@ -1667,10 +1744,10 @@
"enableDockerSocket": "Docker 청사진 활성화",
"enableDockerSocketDescription": "블루프린트 레이블을 위한 Docker 소켓 레이블 스크래핑을 활성화합니다. 소켓 경로는 사이트 커넥터에 제공되어야 합니다. 동작 방법에 대한 자세한 정보는 문서에서 확인하세요.",
"newtAutoUpdate": "사이트 자동 업데이트 활성화",
- "newtAutoUpdateDescription": "활성화되면, 사이트 커넥터는 새 릴리스가 출시될 때 자동으로 최신 버전으로 업데이트됩니다.",
+ "newtAutoUpdateDescription": "활성화되면, 사이트 커넥터는 최신 버전을 자동으로 다운로드하고 재시작합니다. 각 사이트별로 이를 무시할 수 있습니다.",
"siteAutoUpdate": "사이트 자동 업데이트",
"siteAutoUpdateLabel": "자동 업데이트 활성화",
- "siteAutoUpdateDescription": "이 사이트의 커넥터가 최신 버전을 자동으로 다운로드할지 여부를 제어합니다.",
+ "siteAutoUpdateDescription": "활성화되면, 이 사이트의 커넥터는 최신 버전을 자동으로 다운로드하고 재시작합니다.",
"siteAutoUpdateOrgDefault": "조직 기본값: {state}",
"siteAutoUpdateOverriding": "조직 설정 재정의",
"siteAutoUpdateResetToOrg": "조직 기본값으로 재설정",
@@ -1768,9 +1845,9 @@
"accountSetupSuccess": "계정 설정이 완료되었습니다! 판골린에 오신 것을 환영합니다!",
"documentation": "문서",
"saveAllSettings": "모든 설정 저장",
- "saveResourceTargets": "대상 저장",
- "saveResourceHttp": "프록시 설정 저장",
- "saveProxyProtocol": "프록시 프로토콜 설정 저장",
+ "saveResourceTargets": "설정 저장",
+ "saveResourceHttp": "설정 저장",
+ "saveProxyProtocol": "설정 저장",
"settingsUpdated": "설정이 업데이트되었습니다",
"settingsUpdatedDescription": "설정이 성공적으로 업데이트되었습니다.",
"settingsErrorUpdate": "설정 업데이트 실패",
@@ -2027,13 +2104,13 @@
"healthCheckUnknown": "알 수 없음",
"healthCheck": "상태 확인",
"configureHealthCheck": "상태 확인 설정",
- "configureHealthCheckDescription": "{target}에 대한 상태 모니터링 설정",
+ "configureHealthCheckDescription": "리소스의 모니터링을 설정하여 항상 이용 가능하도록 하세요",
"enableHealthChecks": "상태 확인 활성화",
"healthCheckDisabledStateDescription": "비활성화되면 이 사이트가 상태 확인을 수행하지 않으며 상태가 알 수 없는 것으로 간주됩니다.",
"enableHealthChecksDescription": "이 대상을 모니터링하여 건강 상태를 확인하세요. 필요에 따라 대상과 다른 엔드포인트를 모니터링할 수 있습니다.",
"healthScheme": "방법",
"healthSelectScheme": "방법 선택",
- "healthCheckPortInvalid": "올바르지 않은 서브넷 마스크입니다. 1에서 65535 사이여야 합니다",
+ "healthCheckPortInvalid": "포트는 1에서 65535 사이여야 합니다",
"healthCheckPath": "경로",
"healthHostname": "IP / 호스트",
"healthPort": "포트",
@@ -2046,6 +2123,7 @@
"requireDeviceApproval": "장치 승인 요구",
"requireDeviceApprovalDescription": "이 역할을 가진 사용자는 장치가 연결되기 전에 관리자의 승인이 필요합니다.",
"sshSettings": "SSH 설정",
+ "sshAccess": "SSH 접속",
"rdpSettings": "RDP 설정",
"vncSettings": "VNC 설정",
"sshServer": "SSH 서버",
@@ -2072,8 +2150,13 @@
"sshDaemonDisclaimer": "이 설정을 완료하기 전에 인증 데몬을 실행할 대상 호스트가 적절히 구성되었는지 확인하십시오. 그렇지 않으면 프로비저닝이 실패할 수 있습니다.",
"sshDaemonPort": "데몬 포트",
"sshServerDestination": "서버 목적지",
- "sshServerDestinationDescription": "SSH 서버의 목적지 및 포트를 구성합니다",
+ "sshServerDestinationDescription": "SSH 서버의 목적지를 설정합니다",
"destination": "대상지",
+ "destinationRequired": "목적지가 필요합니다.",
+ "domainRequired": "도메인은 필수입니다.",
+ "proxyPortRequired": "포트가 필요합니다.",
+ "invalidPathConfiguration": "유효하지 않은 경로 구성입니다.",
+ "invalidRewritePathConfiguration": "유효하지 않은 재작성 경로 구성입니다.",
"bgTargetMultiSiteDisclaimer": "여러 사이트를 선택하면 고가용성을 위한 내구성 있는 라우팅 및 장애 조치를 활성화합니다.",
"roleAllowSsh": "SSH 허용",
"roleAllowSshAllow": "허용",
@@ -2088,10 +2171,25 @@
"sshSudoModeCommandsDescription": "사용자는 sudo로 지정된 명령만 실행할 수 있습니다.",
"sshSudo": "Sudo 허용",
"sshSudoCommands": "Sudo 명령",
- "sshSudoCommandsDescription": "사용자가 sudo로 실행할 수 있는 명령의 쉼표로 구분된 목록입니다. 절대 경로를 사용해야 합니다.",
+ "sshSudoCommandsDescription": "사용자가 쉘에서 sudo로 실행할 수 있는 명령 목록, 쉼표, 공백 또는 새 줄로 구분됩니다. 절대 경로를 사용해야 합니다.",
"sshCreateHomeDir": "홈 디렉터리 생성",
"sshUnixGroups": "유닉스 그룹",
- "sshUnixGroupsDescription": "대상 호스트에서 사용자에게 추가할 유닉스 그룹의 쉼표로 구분된 목록입니다.",
+ "sshUnixGroupsDescription": "사용자를 대상 호스트에 추가할 유닉스 그룹들, 쉼표, 공백 또는 새 줄로 구분됩니다.",
+ "roleTextFieldPlaceholder": "값을 입력하거나 .txt나 .csv 파일을 드롭하세요",
+ "roleTextImportTitle": "파일에서 가져오기",
+ "roleTextImportDescription": "{fileName}을(를) {fieldLabel}에 가져오는 중",
+ "roleTextImportSkipHeader": "첫 행 건너뛰기 (헤더)",
+ "roleTextImportOverride": "기존 항목 교체",
+ "roleTextImportAppend": "기존 항목에 추가",
+ "roleTextImportMode": "가져오기 모드",
+ "roleTextImportPreview": "미리보기",
+ "roleTextImportItemCount": "{count, plural, =0 {가져올 항목 없음} other {# 개의 항목 가져오기}}",
+ "roleTextImportTotalCount": "{existing} 기존 + {imported} 가져옴 = {total} 총계",
+ "roleTextImportConfirm": "가져오기",
+ "roleTextImportInvalidFile": "지원되지 않는 파일 유형",
+ "roleTextImportInvalidFileDescription": ".txt 및 .csv 파일만 지원됩니다.",
+ "roleTextImportEmpty": "파일에서 항목을 찾을 수 없습니다",
+ "roleTextImportEmptyDescription": "파일에 가져올 항목이 포함되어 있지 않습니다.",
"retryAttempts": "재시도 횟수",
"expectedResponseCodes": "예상 응답 코드",
"expectedResponseCodesDescription": "정상 상태를 나타내는 HTTP 상태 코드입니다. 비워 두면 200-300이 정상으로 간주됩니다.",
@@ -2875,9 +2973,10 @@
"enableProxyProtocol": "프록시 프로토콜 활성화",
"proxyProtocolInfo": "TCP 백엔드에 대한 클라이언트 IP 주소를 유지합니다.",
"proxyProtocolVersion": "프록시 프로토콜 버전",
- "version1": " 버전 1 (추천)",
+ "version1": "버전 1 (추천)",
"version2": "버전 2",
- "versionDescription": "버전 1은 텍스트 기반으로 널리 지원됩니다. 버전 2는 이진 기반으로 더 효율적이지만 호환성이 낮습니다.",
+ "version1Description": "텍스트 기반으로 널리 지원됩니다. 서버 전송이 동적 구성에 추가되었는지 확인하세요.",
+ "version2Description": "바이너리 및 더 효율적이지만 호환성은 낮습니다. 서버 전송이 동적 구성에 추가되었는지 확인하세요.",
"warning": "경고",
"proxyProtocolWarning": "백엔드 애플리케이션이 프록시 프로토콜 연결을 허용하도록 구성되어야 합니다. 백엔드가 프록시 프로토콜을 지원하지 않으면, 이를 활성화하면 모든 연결이 끊어집니다. 트래픽에서 온 프록시 프로토콜 헤더를 백엔드가 신뢰하도록 구성하십시오.",
"restarting": "재시작 중...",
@@ -3034,7 +3133,7 @@
"enterConfirmation": "확인 입력",
"blueprintViewDetails": "세부 정보",
"defaultIdentityProvider": "기본 아이덴티티 공급자",
- "defaultIdentityProviderDescription": "기본 ID 공급자가 선택되면, 사용자는 인증을 위해 자동으로 해당 공급자로 리디렉션됩니다.",
+ "defaultIdentityProviderDescription": "사용자는 인증을 위해 이 아이덴티티 공급자로 자동 리디렉션됩니다.",
"editInternalResourceDialogNetworkSettings": "네트워크 설정",
"editInternalResourceDialogAccessPolicy": "액세스 정책",
"editInternalResourceDialogAddRoles": "역할 추가",
@@ -3075,6 +3174,7 @@
"maintenanceModeType": "유지보수 모드 유형",
"showMaintenancePage": "방문자에게 유지보수 페이지 표시",
"enableMaintenanceMode": "유지보수 모드 활성화",
+ "enableMaintenanceModeDescription": "활성화되면 방문자는 리소스 대신 유지보수 페이지를 보게 됩니다.",
"automatic": "자동",
"automaticModeDescription": "백엔드 타깃이 모두 다운되거나 건강하지 않을 때만 유지보수 페이지를 표시합니다. 적어도 하나의 타깃이 건강한 한 리소스는 정상 작동합니다.",
"forced": "강제",
@@ -3082,6 +3182,8 @@
"warning:": "경고:",
"forcedeModeWarning": "모든 트래픽이 유지보수 페이지로 전달됩니다. 백엔드 리소스는 어떠한 요청도 받지 않습니다.",
"pageTitle": "페이지 제목",
+ "maintenancePageContentSubsection": "페이지 콘텐츠",
+ "maintenancePageContentSubsectionDescription": "유지보수 페이지에 표시될 콘텐츠를 사용자 정의하세요",
"pageTitleDescription": "유지보수 페이지에 표시될 주요 제목",
"maintenancePageMessage": "유지보수 메시지",
"maintenancePageMessagePlaceholder": "곧 돌아오겠습니다! 사이트는 현재 예정된 유지보수를 진행 중입니다.",
@@ -3346,6 +3448,8 @@
"idpUnassociateQuestion": "정말로 이 조직에서 이 아이덴티티 공급자의 연관을 해제하시겠습니까?",
"idpUnassociateDescription": "이 아이덴티티 공급자와 연관된 모든 사용자는 이 조직에서 제거될 것이지만, 아이덴티티 공급자는 다른 연관된 조직에 계속해서 존재할 것입니다.",
"idpUnassociateConfirm": "아이덴티티 공급자 연관 해제 확인",
+ "idpConfirmDeleteAndRemoveMeFromOrg": "조직에서 삭제하고 제거하기",
+ "idpUnassociateAndRemoveMeFromOrg": "조직에서 연관 해제하고 제거하기",
"idpUnassociateWarning": "이 조직에서 이것은 되돌릴 수 없습니다.",
"idpUnassociatedDescription": "아이덴티티 공급자가 이 조직에서 성공적으로 연관 해제되었습니다",
"idpUnassociateMenu": "연관 해제",
@@ -3439,18 +3543,58 @@
"sshConnecting": "연결 중…",
"sshInitializing": "초기화 중…",
"sshSignInTitle": "SSH에 로그인",
- "sshSignInDescription": "SSH 자격 증명을 입력하세요",
+ "sshSignInDescription": "연결하려면 SSH 자격 증명을 입력하세요",
"sshPasswordTab": "비밀번호",
"sshPrivateKeyTab": "개인 키",
"sshPrivateKeyField": "개인 키",
"sshPrivateKeyDisclaimer": "당신의 개인 키는 Pangolin에 저장되거나 보이지 않습니다. 대신, 기존 Pangolin 신원을 사용하여 매끄러운 인증을 제공하는 단기 인증서를 사용할 수 있습니다.",
"sshLearnMore": "자세히 알아보기",
"sshPrivateKeyFile": "개인 키 파일",
- "sshAuthenticate": "인증",
+ "sshAuthenticate": "연결",
"sshTerminate": "종료",
"sshPoweredBy": "제공자",
"sshErrorNoTarget": "지정된 대상이 없습니다",
"sshErrorWebSocket": "WebSocket 연결 실패",
"sshErrorAuthFailed": "인증 실패",
- "sshErrorConnectionClosed": "인증이 완료되기 전에 연결이 닫혔습니다"
+ "sshErrorConnectionClosed": "인증이 완료되기 전에 연결이 닫혔습니다",
+ "sitePangolinSshDescription": "이 사이트의 리소스에 SSH 접속을 허용합니다. 나중에 변경할 수 있습니다.",
+ "browserGatewayNoResourceForDomain": "이 도메인에 대한 리소스를 찾을 수 없습니다",
+ "browserGatewayNoTarget": "대상 없음",
+ "browserGatewayConnect": "연결",
+ "browserGatewayCtrlAltDel": "Ctrl+Alt+Del",
+ "sshErrorSignKeyFailed": "PAM 푸시 인증을 위한 SSH 키 서명 실패. 사용자로 로그인하셨나요?",
+ "sshTerminalError": "오류: {error}",
+ "sshConnectionClosedCode": "연결 종료됨 (코드 {code})",
+ "sshPrivateKeyPlaceholder": "-----BEGIN OPENSSH PRIVATE KEY-----",
+ "sshPrivateKeyRequired": "프라이빗 키가 필요합니다",
+ "vncTitle": "VNC",
+ "vncSignInDescription": "연결하려면 VNC 비밀번호를 입력하세요",
+ "vncPasswordOptional": "비밀번호 (선택 사항)",
+ "vncNoResourceTarget": "사용할 수 있는 리소스 대상이 없습니다",
+ "vncFailedToLoadNovnc": "noVNC 로드를 실패했습니다",
+ "vncAuthFailedStatus": "상태 {status}",
+ "vncPasteClipboard": "클립보드 붙여넣기",
+ "rdpTitle": "RDP",
+ "rdpSignInTitle": "원격 데스크톱에 로그인",
+ "rdpSignInDescription": "연결하려면 Windows 자격 증명을 입력하세요",
+ "rdpLoadingModule": "모듈 로딩 중...",
+ "rdpFailedToLoadModule": "RDP 모듈 로딩 실패",
+ "rdpNotReady": "준비되지 않음",
+ "rdpModuleInitializing": "RDP 모듈이 아직 초기화 중입니다",
+ "rdpDownloadingFiles": "원격에서 {count}개의 파일 다운로드 중…",
+ "rdpDownloadFailed": "다운로드 실패: {fileName}",
+ "rdpUploaded": "업로드 완료: {fileName}",
+ "rdpNoConnectionTarget": "연결 대상 없음",
+ "rdpConnectionFailed": "연결 실패",
+ "rdpFit": "적합",
+ "rdpFull": "전체",
+ "rdpReal": "실제",
+ "rdpMeta": "메타",
+ "rdpUploadFiles": "파일 업로드",
+ "rdpFilesReadyToPaste": "붙여넣기 준비 완료된 파일",
+ "rdpFilesReadyToPasteDescription": "{count}개의 파일이 원격 클립보드에 복사되었습니다 — 원격 데스크탑에서 Ctrl+V를 눌러 붙여 넣으세요.",
+ "rdpUploadFailed": "업로드 실패",
+ "rdpUnicodeKeyboardMode": "유니코드 키보드 모드",
+ "sessionToolbarShow": "툴바 보기",
+ "sessionToolbarHide": "툴바 숨기기"
}