diff --git a/messages/zh-CN.json b/messages/zh-CN.json
index f297d1ea9..07ffe4d5b 100644
--- a/messages/zh-CN.json
+++ b/messages/zh-CN.json
@@ -148,6 +148,11 @@
"createLink": "创建链接",
"resourcesNotFound": "找不到资源",
"resourceSearch": "搜索资源",
+ "machineSearch": "搜索机",
+ "machinesSearch": "搜索机器客户端...",
+ "machineNotFound": "未找到任何机",
+ "userDeviceSearch": "搜索用户设备",
+ "userDevicesSearch": "搜索用户设备...",
"openMenu": "打开菜单",
"resource": "资源",
"title": "标题",
@@ -323,6 +328,54 @@
"apiKeysDelete": "删除 API 密钥",
"apiKeysManage": "管理 API 密钥",
"apiKeysDescription": "API 密钥用于认证集成 API",
+ "provisioningKeysTitle": "置备密钥",
+ "provisioningKeysManage": "管理置备键",
+ "provisioningKeysDescription": "置备密钥用于验证您组织的自动站点配置。",
+ "provisioningManage": "置备中",
+ "provisioningDescription": "管理预配键和审查等待批准的站点。",
+ "pendingSites": "待定站点",
+ "siteApproveSuccess": "站点批准成功",
+ "siteApproveError": "批准站点出错",
+ "provisioningKeys": "置备键",
+ "searchProvisioningKeys": "搜索配备密钥...",
+ "provisioningKeysAdd": "生成置备键",
+ "provisioningKeysErrorDelete": "删除预配键时出错",
+ "provisioningKeysErrorDeleteMessage": "删除预配键时出错",
+ "provisioningKeysQuestionRemove": "您确定要从组织中删除此预配键吗?",
+ "provisioningKeysMessageRemove": "一旦移除,密钥不能再用于站点预配。",
+ "provisioningKeysDeleteConfirm": "确认删除置备键",
+ "provisioningKeysDelete": "删除置备键",
+ "provisioningKeysCreate": "生成置备键",
+ "provisioningKeysCreateDescription": "为组织生成一个新的预置密钥",
+ "provisioningKeysSeeAll": "查看所有预配键",
+ "provisioningKeysSave": "保存预配键",
+ "provisioningKeysSaveDescription": "您只能看到一次。复制它到一个安全的地方。",
+ "provisioningKeysErrorCreate": "创建预配键时出错",
+ "provisioningKeysList": "新建预配键",
+ "provisioningKeysMaxBatchSize": "最大批量大小",
+ "provisioningKeysUnlimitedBatchSize": "无限批量大小(无限制)",
+ "provisioningKeysMaxBatchUnlimited": "无限制",
+ "provisioningKeysMaxBatchSizeInvalid": "输入一个有效的最大批处理大小(1-1,000,000)。",
+ "provisioningKeysValidUntil": "有效期至",
+ "provisioningKeysValidUntilHint": "留空为无过期。",
+ "provisioningKeysValidUntilInvalid": "输入一个有效的日期和时间。",
+ "provisioningKeysNumUsed": "使用的时间",
+ "provisioningKeysLastUsed": "上次使用",
+ "provisioningKeysNoExpiry": "没有过期",
+ "provisioningKeysNeverUsed": "永不过期",
+ "provisioningKeysEdit": "编辑置备键",
+ "provisioningKeysEditDescription": "更新此密钥的最大批量大小和过期时间。",
+ "provisioningKeysApproveNewSites": "批准新站点",
+ "provisioningKeysApproveNewSitesDescription": "自动批准使用此密钥注册的站点。",
+ "provisioningKeysUpdateError": "更新预配键时出错",
+ "provisioningKeysUpdated": "置备密钥已更新",
+ "provisioningKeysUpdatedDescription": "您的更改已保存。",
+ "provisioningKeysBannerTitle": "站点置备密钥",
+ "provisioningKeysBannerDescription": "生成一个预配键并使用它来在首次启动时自动创建站点——无需为每个站点设置单独的凭证。",
+ "provisioningKeysBannerButtonText": "了解更多",
+ "pendingSitesBannerTitle": "待定站点",
+ "pendingSitesBannerDescription": "使用预配键连接的站点会出现在这里供审核。在站点开始运行之前批准并获取对您资源的访问权限。",
+ "pendingSitesBannerButtonText": "了解更多",
"apiKeysSettings": "{apiKeyName} 设置",
"userTitle": "管理所有用户",
"userDescription": "查看和管理系统中的所有用户",
@@ -509,9 +562,12 @@
"userSaved": "用户已保存",
"userSavedDescription": "用户已更新。",
"autoProvisioned": "自动设置",
+ "autoProvisionSettings": "自动提供设置",
"autoProvisionedDescription": "允许此用户由身份提供商自动管理",
"accessControlsDescription": "管理此用户在组织中可以访问和做什么",
"accessControlsSubmit": "保存访问控制",
+ "singleRolePerUserPlanNotice": "您的计划仅支持每个用户一个角色。",
+ "singleRolePerUserEditionNotice": "此版本仅支持每个用户一个角色。",
"roles": "角色",
"accessUsersRoles": "管理用户和角色",
"accessUsersRolesDescription": "邀请用户加入角色来管理访问组织",
@@ -1119,6 +1175,7 @@
"setupTokenDescription": "从服务器控制台输入设置令牌。",
"setupTokenRequired": "需要设置令牌",
"actionUpdateSite": "更新站点",
+ "actionResetSiteBandwidth": "重置组织带宽",
"actionListSiteRoles": "允许站点角色列表",
"actionCreateResource": "创建资源",
"actionDeleteResource": "删除资源",
@@ -1148,7 +1205,7 @@
"actionRemoveUser": "删除用户",
"actionListUsers": "列出用户",
"actionAddUserRole": "添加用户角色",
- "actionSetUserOrgRoles": "Set User Roles",
+ "actionSetUserOrgRoles": "设置用户角色",
"actionGenerateAccessToken": "生成访问令牌",
"actionDeleteAccessToken": "删除访问令牌",
"actionListAccessTokens": "访问令牌",
@@ -1265,6 +1322,7 @@
"sidebarRoles": "角色",
"sidebarShareableLinks": "链接",
"sidebarApiKeys": "API密钥",
+ "sidebarProvisioning": "置备中",
"sidebarSettings": "设置",
"sidebarAllUsers": "所有用户",
"sidebarIdentityProviders": "身份提供商",
@@ -1890,6 +1948,40 @@
"exitNode": "出口节点",
"country": "国家",
"rulesMatchCountry": "当前基于源 IP",
+ "region": "地区",
+ "selectRegion": "选择区域",
+ "searchRegions": "搜索区域...",
+ "noRegionFound": "未找到区域。",
+ "rulesMatchRegion": "选择一个区域国家组",
+ "rulesErrorInvalidRegion": "无效区域",
+ "rulesErrorInvalidRegionDescription": "请选择一个有效的区域。",
+ "regionAfrica": "非洲",
+ "regionNorthernAfrica": "B. 北非地区",
+ "regionEasternAfrica": "东部非洲",
+ "regionMiddleAfrica": "中东",
+ "regionSouthernAfrica": "D. 南 非",
+ "regionWesternAfrica": "D. 西部非洲",
+ "regionAmericas": "Americas",
+ "regionCaribbean": "加勒比",
+ "regionCentralAmerica": "中美洲:",
+ "regionSouthAmerica": "南 非",
+ "regionNorthernAmerica": "北美洲:",
+ "regionAsia": "亚洲",
+ "regionCentralAsia": "B. 亚 洲",
+ "regionEasternAsia": "东亚",
+ "regionSouthEasternAsia": "D. 东南亚区域",
+ "regionSouthernAsia": "D. 亚 洲",
+ "regionWesternAsia": "西亚",
+ "regionEurope": "欧洲",
+ "regionEasternEurope": "D. 欧 洲",
+ "regionNorthernEurope": "北欧洲",
+ "regionSouthernEurope": "南欧洲",
+ "regionWesternEurope": "西欧洲",
+ "regionOceania": "Oceania",
+ "regionAustraliaAndNewZealand": "澳大利亚和新西兰",
+ "regionMelanesia": "Melanesia",
+ "regionMicronesia": "Micronesia",
+ "regionPolynesia": "Polynesia",
"managedSelfHosted": {
"title": "托管自托管",
"description": "更可靠和低维护自我托管的 Pangolin 服务器,带有额外的铃声和告密器",
@@ -1938,6 +2030,25 @@
"invalidValue": "无效的值",
"idpTypeLabel": "身份提供者类型",
"roleMappingExpressionPlaceholder": "例如: contains(group, 'admin' &'Admin' || 'Member'",
+ "roleMappingModeFixedRoles": "固定角色",
+ "roleMappingModeMappingBuilder": "映射构建器",
+ "roleMappingModeRawExpression": "原始表达式",
+ "roleMappingFixedRolesPlaceholderSelect": "选择一个或多个角色",
+ "roleMappingFixedRolesPlaceholderFreeform": "输入角色名称 (每个组织确切匹配)",
+ "roleMappingFixedRolesDescriptionSameForAll": "将相同的角色分配给每个自动配备的用户。",
+ "roleMappingFixedRolesDescriptionDefaultPolicy": "对于缺省策略,每个提供用户的组织中存在的角色名称类型。名称必须完全匹配。",
+ "roleMappingClaimPath": "认领路径",
+ "roleMappingClaimPathPlaceholder": "组",
+ "roleMappingClaimPathDescription": "包含源值的 token 有效负载路径 (例如组)。",
+ "roleMappingMatchValue": "匹配值",
+ "roleMappingAssignRoles": "分配角色",
+ "roleMappingAddMappingRule": "添加映射规则",
+ "roleMappingRawExpressionResultDescription": "表达式必须值为字符串或字符串。",
+ "roleMappingRawExpressionResultDescriptionSingleRole": "表达式必须计算到字符串(单个角色名称)。",
+ "roleMappingMatchValuePlaceholder": "匹配值(例如: 管理员)",
+ "roleMappingAssignRolesPlaceholderFreeform": "输入角色名称 (每个组织确切)",
+ "roleMappingBuilderFreeformRowHint": "角色名称必须匹配每个目标组织的角色。",
+ "roleMappingRemoveRule": "删除",
"idpGoogleConfiguration": "Google 配置",
"idpGoogleConfigurationDescription": "配置 Google OAuth2 凭据",
"idpGoogleClientIdDescription": "Google OAuth2 Client ID",
@@ -2334,6 +2445,8 @@
"logRetentionAccessDescription": "保留访问日志的时间",
"logRetentionActionLabel": "动作日志保留",
"logRetentionActionDescription": "保留操作日志的时间",
+ "logRetentionConnectionLabel": "连接日志保留",
+ "logRetentionConnectionDescription": "保留连接日志的时间",
"logRetentionDisabled": "已禁用",
"logRetention3Days": "3 天",
"logRetention7Days": "7 天",
@@ -2344,6 +2457,13 @@
"logRetentionEndOfFollowingYear": "下一年结束",
"actionLogsDescription": "查看此机构执行的操作历史",
"accessLogsDescription": "查看此机构资源的访问认证请求",
+ "connectionLogs": "连接日志",
+ "connectionLogsDescription": "查看此机构隧道的连接日志",
+ "sidebarLogsConnection": "连接日志",
+ "sidebarLogsStreaming": "流流",
+ "sourceAddress": "源地址",
+ "destinationAddress": "目的地址",
+ "duration": "期限",
"licenseRequiredToUse": "使用此功能需要企业版许可证或Pangolin Cloud。预约演示或POC试用。",
"ossEnterpriseEditionRequired": "需要 Enterprise Edition 才能使用此功能。 此功能也可在 Pangolin Cloud上获取。 预订演示或POC 试用。",
"certResolver": "证书解决器",
@@ -2683,5 +2803,90 @@
"approvalsEmptyStateStep2Description": "编辑角色并启用“需要设备审批”选项。具有此角色的用户需要管理员批准新设备。",
"approvalsEmptyStatePreviewDescription": "预览:如果启用,待处理设备请求将出现在这里供审核",
"approvalsEmptyStateButtonText": "管理角色",
- "domainErrorTitle": "我们在验证您的域名时遇到了问题"
+ "domainErrorTitle": "我们在验证您的域名时遇到了问题",
+ "idpAdminAutoProvisionPoliciesTabHint": "在 自动供应设置 选项卡上配置角色映射和组织策略。",
+ "streamingTitle": "事件流",
+ "streamingDescription": "实时将事件从您的组织流到外部目的地。",
+ "streamingUnnamedDestination": "未命名目标",
+ "streamingNoUrlConfigured": "未配置URL",
+ "streamingAddDestination": "添加目标",
+ "streamingHttpWebhookTitle": "HTTP Webhook",
+ "streamingHttpWebhookDescription": "将事件发送到任意HTTP端点并灵活验证和模板。",
+ "streamingS3Title": "Amazon S3",
+ "streamingS3Description": "将事件串流到 S3 兼容的对象存储桶。即将推出。",
+ "streamingDatadogTitle": "Datadog",
+ "streamingDatadogDescription": "直接转发事件到您的Datadog 帐户。即将推出。",
+ "streamingTypePickerDescription": "选择要开始的目标类型。",
+ "streamingFailedToLoad": "加载目的地失败",
+ "streamingUnexpectedError": "发生意外错误.",
+ "streamingFailedToUpdate": "更新目标失败",
+ "streamingDeletedSuccess": "目标删除成功",
+ "streamingFailedToDelete": "删除目标失败",
+ "streamingDeleteTitle": "删除目标",
+ "streamingDeleteButtonText": "删除目标",
+ "streamingDeleteDialogAreYouSure": "您确定要删除吗?",
+ "streamingDeleteDialogThisDestination": "这个目标",
+ "streamingDeleteDialogPermanentlyRemoved": "? 所有配置将被永久删除。",
+ "httpDestEditTitle": "编辑目标",
+ "httpDestAddTitle": "添加 HTTP 目标",
+ "httpDestEditDescription": "更新此 HTTP 事件流媒体目的地的配置。",
+ "httpDestAddDescription": "配置新的 HTTP 端点来接收您的组织事件。",
+ "httpDestTabSettings": "设置",
+ "httpDestTabHeaders": "信头",
+ "httpDestTabBody": "正文内容",
+ "httpDestTabLogs": "日志",
+ "httpDestNamePlaceholder": "我的 HTTP 目标",
+ "httpDestUrlLabel": "目标网址",
+ "httpDestUrlErrorHttpRequired": "URL 必须使用 http 或 https",
+ "httpDestUrlErrorHttpsRequired": "云端部署需要HTTPS",
+ "httpDestUrlErrorInvalid": "输入一个有效的 URL (例如,https://example.com/webhook)",
+ "httpDestAuthTitle": "认证",
+ "httpDestAuthDescription": "选择如何验证您的端点的请求。",
+ "httpDestAuthNoneTitle": "无身份验证",
+ "httpDestAuthNoneDescription": "在没有授权头的情况下发送请求。",
+ "httpDestAuthBearerTitle": "持有者令牌",
+ "httpDestAuthBearerDescription": "添加授权:每个请求的标题为 。",
+ "httpDestAuthBearerPlaceholder": "您的 API 密钥或令牌",
+ "httpDestAuthBasicTitle": "基本认证",
+ "httpDestAuthBasicDescription": "添加授权:基本 头。提供用户名:密码的凭据。",
+ "httpDestAuthBasicPlaceholder": "用户名:密码",
+ "httpDestAuthCustomTitle": "自定义标题",
+ "httpDestAuthCustomDescription": "指定自定义 HTTP 头名称和身份验证值 (例如,X-API 键)。",
+ "httpDestAuthCustomHeaderNamePlaceholder": "标题名称(例如X-API-键)",
+ "httpDestAuthCustomHeaderValuePlaceholder": "页眉值",
+ "httpDestCustomHeadersTitle": "自定义 HTTP 头",
+ "httpDestCustomHeadersDescription": "向每个输出请求添加自定义标题。用于静态令牌或自定义内容类型。默认情况下,内容类型:应用程序/json已发送。",
+ "httpDestNoHeadersConfigured": "未配置自定义头。单击\"添加头\"以添加一个。",
+ "httpDestHeaderNamePlaceholder": "标题名称",
+ "httpDestHeaderValuePlaceholder": "值",
+ "httpDestAddHeader": "添加标题",
+ "httpDestBodyTemplateTitle": "自定义实体模板",
+ "httpDestBodyTemplateDescription": "控制发送到您的端点的 JSON 有效载荷结构。如果禁用,将为每个事件发送一个 JSON 默认对象。",
+ "httpDestEnableBodyTemplate": "启用自定义实体模板",
+ "httpDestBodyTemplateLabel": "身体模板 (JSON)",
+ "httpDestBodyTemplateHint": "将模板变量用于您有效载荷中的参考事件字段。",
+ "httpDestPayloadFormatTitle": "有效载荷格式",
+ "httpDestPayloadFormatDescription": "事件如何序列化为每个请求实体。",
+ "httpDestFormatJsonArrayTitle": "JSON 数组",
+ "httpDestFormatJsonArrayDescription": "每批一个请求,实体是一个 JSON 数组。与大多数通用的 Web 钩子和数据兼容。",
+ "httpDestFormatNdjsonTitle": "NDJSON",
+ "httpDestFormatNdjsonDescription": "每批有一个请求,物体是换行符限制的 JSON ——每行一个对象,不是外部数组。 Sluk HEC、Elastic / OpenSearch和Grafana Loki所需。",
+ "httpDestFormatSingleTitle": "每个请求一个事件",
+ "httpDestFormatSingleDescription": "为每个事件单独发送一个 HTTP POST。仅用于无法处理批量的端点。",
+ "httpDestLogTypesTitle": "日志类型",
+ "httpDestLogTypesDescription": "选择转发到此目的地的日志类型。只有启用的日志类型才会被连续使用。",
+ "httpDestAccessLogsTitle": "访问日志",
+ "httpDestAccessLogsDescription": "资源访问尝试,包括已验证和拒绝的请求。",
+ "httpDestActionLogsTitle": "操作日志",
+ "httpDestActionLogsDescription": "组织内部用户采取的行政行动。",
+ "httpDestConnectionLogsTitle": "连接日志",
+ "httpDestConnectionLogsDescription": "站点和隧道连接事件,包括连接和断开连接。",
+ "httpDestRequestLogsTitle": "请求日志",
+ "httpDestRequestLogsDescription": "HTTP 请求代理资源日志,包括方法、路径和响应代码。",
+ "httpDestSaveChanges": "保存更改",
+ "httpDestCreateDestination": "创建目标",
+ "httpDestUpdatedSuccess": "目标已成功更新",
+ "httpDestCreatedSuccess": "目标创建成功",
+ "httpDestUpdateFailed": "更新目标失败",
+ "httpDestCreateFailed": "创建目标失败"
}