From ef0575cc3667859571f118621128b41e3bc1174c Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Fri, 12 Jun 2026 13:53:48 -0700 Subject: [PATCH] New translations en-us.json (Korean) [ci skip] --- messages/ko-KR.json | 242 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 193 insertions(+), 49 deletions(-) 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": "툴바 숨기기" }