diff --git a/messages/ko-KR.json b/messages/ko-KR.json
index 02915abd7..23ac7dafa 100644
--- a/messages/ko-KR.json
+++ b/messages/ko-KR.json
@@ -148,6 +148,11 @@
"createLink": "링크 생성",
"resourcesNotFound": "리소스가 발견되지 않았습니다.",
"resourceSearch": "리소스 검색",
+ "machineSearch": "Search machines",
+ "machinesSearch": "Search machine clients...",
+ "machineNotFound": "No machines found",
+ "userDeviceSearch": "Search user devices",
+ "userDevicesSearch": "Search user devices...",
"openMenu": "메뉴 열기",
"resource": "리소스",
"title": "제목",
@@ -323,6 +328,41 @@
"apiKeysDelete": "API 키 삭제",
"apiKeysManage": "API 키 관리",
"apiKeysDescription": "API 키는 통합 API와 인증하는 데 사용됩니다.",
+ "provisioningKeysTitle": "Provisioning Key",
+ "provisioningKeysManage": "Manage Provisioning Keys",
+ "provisioningKeysDescription": "Provisioning keys are used to authenticate automated site provisioning for your organization.",
+ "provisioningKeys": "Provisioning Keys",
+ "searchProvisioningKeys": "Search provisioning keys...",
+ "provisioningKeysAdd": "Generate Provisioning Key",
+ "provisioningKeysErrorDelete": "Error deleting provisioning key",
+ "provisioningKeysErrorDeleteMessage": "Error deleting provisioning key",
+ "provisioningKeysQuestionRemove": "Are you sure you want to remove this provisioning key from the organization?",
+ "provisioningKeysMessageRemove": "Once removed, the key can no longer be used for site provisioning.",
+ "provisioningKeysDeleteConfirm": "Confirm Delete Provisioning Key",
+ "provisioningKeysDelete": "Delete Provisioning key",
+ "provisioningKeysCreate": "Generate Provisioning Key",
+ "provisioningKeysCreateDescription": "Generate a new provisioning key for the organization",
+ "provisioningKeysSeeAll": "See all provisioning keys",
+ "provisioningKeysSave": "Save the provisioning key",
+ "provisioningKeysSaveDescription": "You will only be able to see this once. Copy it to a secure place.",
+ "provisioningKeysErrorCreate": "Error creating provisioning key",
+ "provisioningKeysList": "New provisioning key",
+ "provisioningKeysMaxBatchSize": "Max batch size",
+ "provisioningKeysUnlimitedBatchSize": "Unlimited batch size (no limit)",
+ "provisioningKeysMaxBatchUnlimited": "Unlimited",
+ "provisioningKeysMaxBatchSizeInvalid": "Enter a valid max batch size (1–1,000,000).",
+ "provisioningKeysValidUntil": "Valid until",
+ "provisioningKeysValidUntilHint": "Leave empty for no expiration.",
+ "provisioningKeysValidUntilInvalid": "Enter a valid date and time.",
+ "provisioningKeysNumUsed": "Times used",
+ "provisioningKeysLastUsed": "Last used",
+ "provisioningKeysNoExpiry": "No expiration",
+ "provisioningKeysNeverUsed": "Never",
+ "provisioningKeysEdit": "Edit Provisioning Key",
+ "provisioningKeysEditDescription": "Update the max batch size and expiration time for this key.",
+ "provisioningKeysUpdateError": "Error updating provisioning key",
+ "provisioningKeysUpdated": "Provisioning key updated",
+ "provisioningKeysUpdatedDescription": "Your changes have been saved.",
"apiKeysSettings": "{apiKeyName} 설정",
"userTitle": "모든 사용자 관리",
"userDescription": "시스템의 모든 사용자를 보고 관리합니다",
@@ -509,9 +549,12 @@
"userSaved": "사용자 저장됨",
"userSavedDescription": "사용자가 업데이트되었습니다.",
"autoProvisioned": "자동 프로비저닝됨",
+ "autoProvisionSettings": "Auto Provision Settings",
"autoProvisionedDescription": "이 사용자가 ID 공급자에 의해 자동으로 관리될 수 있도록 허용합니다",
"accessControlsDescription": "이 사용자가 조직에서 접근하고 수행할 수 있는 작업을 관리하세요",
"accessControlsSubmit": "접근 제어 저장",
+ "singleRolePerUserPlanNotice": "Your plan only supports one role per user.",
+ "singleRolePerUserEditionNotice": "This edition only supports one role per user.",
"roles": "역할",
"accessUsersRoles": "사용자 및 역할 관리",
"accessUsersRolesDescription": "사용자를 초대하고 역할에 추가하여 조직에 대한 접근을 관리하세요",
@@ -887,7 +930,7 @@
"defaultMappingsRole": "기본 역할 매핑",
"defaultMappingsRoleDescription": "이 표현식의 결과는 조직에서 정의된 역할 이름을 문자열로 반환해야 합니다.",
"defaultMappingsOrg": "기본 조직 매핑",
- "defaultMappingsOrgDescription": "이 표현식은 사용자가 조직에 접근할 수 있도록 조직 ID 또는 true를 반환해야 합니다.",
+ "defaultMappingsOrgDescription": "When set, this expression must return the organization ID or true for the user to access that organization. When unset, defining an organization policy for that org is enough: the user is allowed in as long as a valid role mapping can be resolved for them within the organization.",
"defaultMappingsSubmit": "기본 매핑 저장",
"orgPoliciesEdit": "조직 정책 편집",
"org": "조직",
@@ -1119,6 +1162,7 @@
"setupTokenDescription": "서버 콘솔에서 설정 토큰 입력.",
"setupTokenRequired": "설정 토큰이 필요합니다",
"actionUpdateSite": "사이트 업데이트",
+ "actionResetSiteBandwidth": "Reset Organization Bandwidth",
"actionListSiteRoles": "허용된 사이트 역할 목록",
"actionCreateResource": "리소스 생성",
"actionDeleteResource": "리소스 삭제",
@@ -1265,6 +1309,7 @@
"sidebarRoles": "역할",
"sidebarShareableLinks": "링크",
"sidebarApiKeys": "API 키",
+ "sidebarProvisioning": "Provisioning",
"sidebarSettings": "설정",
"sidebarAllUsers": "모든 사용자",
"sidebarIdentityProviders": "신원 공급자",
@@ -1890,6 +1935,40 @@
"exitNode": "종단 노드",
"country": "국가",
"rulesMatchCountry": "현재 소스 IP를 기반으로 합니다",
+ "region": "Region",
+ "selectRegion": "Select region",
+ "searchRegions": "Search regions...",
+ "noRegionFound": "No region found.",
+ "rulesMatchRegion": "Select a regional grouping of countries",
+ "rulesErrorInvalidRegion": "Invalid region",
+ "rulesErrorInvalidRegionDescription": "Please select a valid region.",
+ "regionAfrica": "Africa",
+ "regionNorthernAfrica": "Northern Africa",
+ "regionEasternAfrica": "Eastern Africa",
+ "regionMiddleAfrica": "Middle Africa",
+ "regionSouthernAfrica": "Southern Africa",
+ "regionWesternAfrica": "Western Africa",
+ "regionAmericas": "Americas",
+ "regionCaribbean": "Caribbean",
+ "regionCentralAmerica": "Central America",
+ "regionSouthAmerica": "South America",
+ "regionNorthernAmerica": "Northern America",
+ "regionAsia": "Asia",
+ "regionCentralAsia": "Central Asia",
+ "regionEasternAsia": "Eastern Asia",
+ "regionSouthEasternAsia": "South-Eastern Asia",
+ "regionSouthernAsia": "Southern Asia",
+ "regionWesternAsia": "Western Asia",
+ "regionEurope": "Europe",
+ "regionEasternEurope": "Eastern Europe",
+ "regionNorthernEurope": "Northern Europe",
+ "regionSouthernEurope": "Southern Europe",
+ "regionWesternEurope": "Western Europe",
+ "regionOceania": "Oceania",
+ "regionAustraliaAndNewZealand": "Australia and New Zealand",
+ "regionMelanesia": "Melanesia",
+ "regionMicronesia": "Micronesia",
+ "regionPolynesia": "Polynesia",
"managedSelfHosted": {
"title": "관리 자체 호스팅",
"description": "더 신뢰할 수 있고 낮은 유지보수의 자체 호스팅 팡골린 서버, 추가 기능 포함",
@@ -1938,6 +2017,25 @@
"invalidValue": "잘못된 값",
"idpTypeLabel": "신원 공급자 유형",
"roleMappingExpressionPlaceholder": "예: contains(groups, 'admin') && 'Admin' || 'Member'",
+ "roleMappingModeFixedRoles": "Fixed Roles",
+ "roleMappingModeMappingBuilder": "Mapping Builder",
+ "roleMappingModeRawExpression": "Raw Expression",
+ "roleMappingFixedRolesPlaceholderSelect": "Select one or more roles",
+ "roleMappingFixedRolesPlaceholderFreeform": "Type role names (exact match per organization)",
+ "roleMappingFixedRolesDescriptionSameForAll": "Assign the same role set to every auto-provisioned user.",
+ "roleMappingFixedRolesDescriptionDefaultPolicy": "For default policies, type role names that exist in each organization where users are provisioned. Names must match exactly.",
+ "roleMappingClaimPath": "Claim Path",
+ "roleMappingClaimPathPlaceholder": "groups",
+ "roleMappingClaimPathDescription": "Path in the token payload that contains source values (for example, groups).",
+ "roleMappingMatchValue": "Match Value",
+ "roleMappingAssignRoles": "Assign Roles",
+ "roleMappingAddMappingRule": "Add Mapping Rule",
+ "roleMappingRawExpressionResultDescription": "Expression must evaluate to a string or string array.",
+ "roleMappingRawExpressionResultDescriptionSingleRole": "Expression must evaluate to a string (a single role name).",
+ "roleMappingMatchValuePlaceholder": "Match value (for example: admin)",
+ "roleMappingAssignRolesPlaceholderFreeform": "Type role names (exact per org)",
+ "roleMappingBuilderFreeformRowHint": "Role names must match a role in each target organization.",
+ "roleMappingRemoveRule": "Remove",
"idpGoogleConfiguration": "Google 구성",
"idpGoogleConfigurationDescription": "Google OAuth2 자격 증명을 구성합니다.",
"idpGoogleClientIdDescription": "Google OAuth2 클라이언트 ID",
@@ -2334,6 +2432,8 @@
"logRetentionAccessDescription": "접근 로그를 얼마나 오래 보관할지",
"logRetentionActionLabel": "작업 로그 보관",
"logRetentionActionDescription": "작업 로그를 얼마나 오래 보관할지",
+ "logRetentionConnectionLabel": "Connection Log Retention",
+ "logRetentionConnectionDescription": "How long to retain connection logs",
"logRetentionDisabled": "비활성화됨",
"logRetention3Days": "3 일",
"logRetention7Days": "7 일",
@@ -2344,6 +2444,12 @@
"logRetentionEndOfFollowingYear": "다음 연도 말",
"actionLogsDescription": "이 조직에서 수행된 작업의 기록을 봅니다",
"accessLogsDescription": "이 조직의 자원에 대한 접근 인증 요청을 확인합니다",
+ "connectionLogs": "Connection Logs",
+ "connectionLogsDescription": "View connection logs for tunnels in this organization",
+ "sidebarLogsConnection": "Connection Logs",
+ "sourceAddress": "Source Address",
+ "destinationAddress": "Destination Address",
+ "duration": "Duration",
"licenseRequiredToUse": "이 기능을 사용하려면 엔터프라이즈 에디션 라이선스가 필요합니다. 이 기능은 판골린 클라우드에서도 사용할 수 있습니다. 데모 또는 POC 체험을 예약하세요.",
"ossEnterpriseEditionRequired": "이 기능을 사용하려면 엔터프라이즈 에디션이(가) 필요합니다. 이 기능은 판골린 클라우드에서도 사용할 수 있습니다. 데모 또는 POC 체험을 예약하세요.",
"certResolver": "인증서 해결사",
@@ -2683,5 +2789,6 @@
"approvalsEmptyStateStep2Description": "역할을 편집하고 '장치 승인 요구' 옵션을 활성화하세요. 이 역할을 가진 사용자는 새 장치에 대해 관리자의 승인이 필요합니다.",
"approvalsEmptyStatePreviewDescription": "미리 보기: 활성화된 경우, 승인 대기 중인 장치 요청이 검토용으로 여기에 표시됩니다.",
"approvalsEmptyStateButtonText": "역할 관리",
- "domainErrorTitle": "도메인 확인에 문제가 발생했습니다."
+ "domainErrorTitle": "도메인 확인에 문제가 발생했습니다.",
+ "idpAdminAutoProvisionPoliciesTabHint": "Configure role mapping and organization policies on the Auto Provision Settings tab."
}