export default {
  common: {
    loading: "加载中...",
    restrictedAccessHeading: "您无权访问",
    restrictedAccessDescription:
      "您似乎无权访问此页面。只有具有相应权限的用户才能访问此页面。请联系您的网络管理员获取更多信息。",
    error: "错误",
    success: "成功",
    cancel: "取消",
    confirm: "确认",
    save: "保存",
    delete: "删除",
    edit: "编辑",
    create: "创建",
    search: "搜索",
    refresh: "刷新",
    close: "关闭",
    yes: "是",
    no: "否",
    back: "返回",
    next: "下一步",
    previous: "上一步",
    actions: "操作",
    status: "状态",
    name: "名称",
    description: "描述",
    type: "类型",
    enabled: "已启用",
    disabled: "已禁用",
    active: "活跃",
    inactive: "非活跃",
    connected: "已连接",
    disconnected: "已断开",
    online: "在线",
    offline: "离线",
    unknown: "未知",
    all: "全部",
    none: "无",
    select: "选择",
    selected: "已选择",
    filter: "筛选",
    filters: "筛选器",
    reset: "重置",
    apply: "应用",
    export: "导出",
    import: "导入",
    download: "下载",
    upload: "上传",
    copy: "复制",
    settings: "设置",
    logout: "退出登录",
    login: "登录",
    profile: "个人资料",
    allLocations: "所有位置",
    selectCityOptional: "选择城市（可选）...",
    searchCity: "搜索城市...",
    selectCountry: "选择国家...",
    searchCountry: "搜索国家...",
    learnMore: "了解更多",
    selectAll: "全选",
    selectRow: "选择行",
    selectLanguage: "选择语言",
    language: "语言",
    configurePolicies: "配置策略",
    configureAccessControl: "配置访问控制",
    configureAuthentication: "配置认证",
    removeRule: "移除规则",
    removeHeader: "移除标头",
    publicListenPort: "公共监听端口",
    destinationPort: "目标端口",
    allowSSH: "允许 SSH",
    currentPassword: "当前密码",
    newPassword: "新密码",
    confirmNewPassword: "确认新密码",
    lastUsed: "上次使用",
    lastUsedOn: "上次使用于",
    nameAndKey: "名称与密钥",
    logFileCount: "日志文件数",
    duration: "持续时间",
    blockUser: "阻止用户",
    removePeersFromGroup: "从组中移除节点",
    routingPeer: "路由节点",
    newNetworkRoute: "新网络路由",
    existingNetwork: "现有网络",
    debugBundle: "调试包",
    metricPriority: "较低的度量值具有更高的优先级。",
    peerGroup: "节点组",
    expires: "过期",
    distributionGroups: "分发组",
    networkIdentifier: "网络标识符",
    accessControlRules: "访问控制规则",
    customHeaders: "自定义标头",
    metric: "度量值",
    addNewRoutingPeer: "添加新的路由节点",
    routingPeerHelp: "指定单个节点作为路由节点",
    exitNode: "出口节点",
    networkRoute: "网络路由",
    addRoute: "添加路由",
    addPolicy: "添加策略",
    newNetworkRouteDesc: "使用此节点创建新的网络路由",
    existingNetworkDesc: "将此节点添加到现有网络",
    networkRoutes: "网络路由",
    noNetworkRoutes: "此节点没有网络路由",
    noNetworkRoutesDesc:
      "您还没有分配的网络路由。您可以将此节点添加到现有网络或创建新的网络路由。",
    runRemoteJob: "运行远程任务",
    peerOfflineRemoteJob:
      "节点 <bold>{name}</bold> 当前离线。请连接节点以运行远程任务。",
    debugBundleDesc: "收集调试信息以进行故障排除",
    accessTokens: "访问令牌",
    noAccessTokens: "暂无访问令牌",
    noAccessTokensDesc:
      "您还没有任何访问令牌。您可以添加令牌以访问 NetBird API。",
    disable: "禁用",
    network: "网络",
    customHeadersHelp:
      "添加额外的标头以包含在转发请求中。\nHop-by-hop 标头如 Host 或 Connection 不被允许。",
    goBack: "返回",
    tryAgain: "重试",
    installNetBird: "安装 NetBird",
    new: "新",
    peers: "节点",
    resources: "资源",
    assignedGroups: "已分配的组",
    assignedGroupsDescription: "使用组来控制此节点可以访问的内容",
    routeCount: "{count, plural, other {# 个路由}}",
    domainCount: "{count, plural, other {# 个域名}}",
    allDomains: "全部",
    validDomainError: "请输入有效的域名，例如 example.com 或 intra.example.com",
    domainPlaceholder: "例如：example.com",
    peerCount: "{count, plural, =0 {0 个节点} other {# 个节点}}",
    resourceCount: "{count, plural, =0 {0 个资源} other {# 个资源}}",
  },
  navigation: {
    controlCenter: "控制中心",
    peers: "节点",
    userDevices: "用户设备",
    servers: "服务器",
    accessControl: "访问控制",
    policies: "策略",
    groups: "组",
    postureChecks: "姿态检查",
    networkRouting: "网络路由",
    networks: "网络",
    routes: "路由",
    reverseProxy: "反向代理",
    services: "服务",
    customDomains: "自定义域名",
    clusters: "集群",
    accessLogs: "访问日志",
    dns: "DNS",
    nameservers: "名称服务器",
    zones: "区域",
    dnsSettings: "DNS 设置",
    team: "团队",
    users: "用户",
    serviceUsers: "服务用户",
    activity: "活动",
    auditEvents: "审计事件",
    settings: "设置",
    documentation: "文档",
    helpAndSupport: "帮助和支持",
    integrations: "集成",
    trafficEvents: "流量事件",
    troubleshooting: "故障排除",
    forum: "NetBird 论坛",
    slack: "NetBird Slack",
    feedback: "反馈",
  },
  table: {
    search: "搜索...",
    noResults: "无结果",
    noResultsCardTitle: "未找到任何结果",
    noResultsDescription: "未找到任何结果。请尝试不同的搜索词或更改筛选条件。",
    rowsPerPage: "每页行数",
    previous: "上一页",
    next: "下一页",
    resetFilters: "重置筛选和搜索",
    loading: "加载中...",
    error: "加载数据时出错",
    empty: "暂无数据",
    selected: "已选择 {count} 项",
    total: "共 {total} 项",
    showing: "显示",
    to: "至",
    of: "共",
    cancel: "取消",
    rows: "行",
    selectAll: "全选",
    selectRow: "选择行",
  },
  auth: {
    login: "登录",
    logout: "退出登录",
    signIn: "登录",
    signOut: "退出",
    email: "邮箱",
    password: "密码",
    rememberMe: "记住我",
    forgotPassword: "忘记密码？",
    resetPassword: "重置密码",
    createAccount: "创建账户",
    accountCreated: "账户已创建",
    invalidCredentials: "无效的凭据",
    accountBlocked: "账户已被阻止",
    accountPending: "账户待审批",
    sessionExpired: "会话已过期",
    sessionExpiredDescription:
      "您的登录会话似乎不再活跃或已过期。请重新登录以继续使用应用。",
    loginRequired: "需要登录",
    unauthorized: "未授权",
    forbidden: "禁止访问",
    accessDenied: "访问被拒绝",
    tooManyRequests: "请求过多",
    tryAgainLater: "请稍后再试",
    contactAdmin: "请联系管理员",
  },
  errors: {
    generic: "发生错误",
    networkError: "网络错误",
    timeout: "请求超时",
    notFound: "未找到",
    serverError: "服务器错误",
    validationError: "验证错误",
    permissionDenied: "权限被拒绝",
    resourceNotFound: "资源未找到",
    serviceUnavailable: "服务不可用",
    userAccountBlocked: "用户账户已被阻止",
    userApprovalPending: "用户待审批",
    accessError: "访问错误",
    accessBlockedDescription:
      "您的访问已被 NetBird 账户管理员阻止，可能是由于新用户审批要求或安全策略。请联系您的管理员以恢复访问。",
    pendingApprovalDescription:
      "您的账户正在等待管理员审批。请在访问仪表板前等待审批。",
    accessGenericDescription:
      "尝试访问仪表板时发生错误。请重试或联系您的管理员。",
    contactAdminDescription:
      "如果您认为这是一个错误，请联系您的管理员。",
  },
  pageNotFound: {
    title: "请求的页面不存在",
    description:
      "您尝试访问的页面无法找到。请验证 URL 或返回仪表板继续浏览。",
  },
  peers: {
    title: "节点",
    name: "名称",
    ip: "IP 地址",
    status: "状态",
    connected: "已连接",
    disconnected: "已断开",
    lastSeen: "最后上线",
    os: "操作系统",
    version: "版本",
    address: "地址",
    location: "位置",
    groups: "组",
    users: "用户",
    routes: "路由",
    ssh: "SSH",
    rdp: "RDP",
    actions: "操作",
    approve: "批准",
    reject: "拒绝",
    delete: "删除",
    edit: "编辑",
    view: "查看",
    viewDetails: "查看详情",
    connect: "连接",
    disconnect: "断开",
    approvePeer: "批准节点",
    rejectPeer: "拒绝节点",
    deletePeer: "删除节点",
    confirmDelete: "确定要删除此节点吗？",
    confirmApprove: "批准节点 '{name}'？",
    confirmApproveDescription: "确定要批准此节点吗？",
    approveSuccess: "节点 {name} 已批准",
    approveSuccessDescription: "此节点已获批准，现在可以连接到其他节点。",
    approveLoading: "正在批准节点...",
    approved: "已批准",
    pending: "待审批",
    pendingApprovals: "待审批",
    noPeers: "暂无节点",
    noAccessiblePeersTitle: "此节点没有可访问的节点",
    noAccessiblePeersDescription:
      "向您的网络添加更多节点，或检查访问控制策略。",
    searchPlaceholder: "按名称或 IP 搜索节点...",
    selectPeer: "选择一个节点...",
    noPeersAvailable: "没有可选的节点。",
    noPeersMatching: "没有匹配的节点。",
    updateRequired:
      "请将 NetBird 更新到 v0.36.6 或更高版本，才能将此节点用作路由节点。",
    serialNumber: "序列号",
    loginExpiration: "会话过期",
    enableLoginExpiration: "启用人会话过期",
    disableLoginExpiration: "禁用人会话过期",
    loginExpirationUpdated: "会话过期已{state}",
    loginExpirationUpdateDescription: "节点 {name} 的会话过期已成功{state}。",
    loginExpirationUpdating: "正在更新会话过期...",
    loginRequired: "需要登录",
    loginExpiredTooltip:
      "此节点已离线，由于其登录已过期，需要重新认证。",
    enableSSH: "启用 SSH 访问",
    disableSSH: "禁用 SSH 访问",
    disableSSHConfirmation: "禁用 SSH 访问？",
    disableSSHDescription:
      "从 NetBird v0.61.0 开始，一旦 SSH 访问被禁用，将无法再从控制台重新启用。您需要创建一个明确的访问控制策略并更新 NetBird 客户端以恢复 SSH 功能。",
    sshLearnMore: "了解更多",
    cancel: "取消",
    changesTakeEffect: "更改将在节点下次更新时生效。",
    sshAccess: "SSH 访问",
    sshAccessHelp: "在此节点上启用 SSH 服务器，以通过安全 shell 访问计算机。",
    sshSetupHelp:
      "设置 SSH 并创建明确的访问控制策略，定义哪些用户可以通过 SSH 访问此计算机的特定本地用户名。",
    sshOldVersionWarning:
      "您已配置 SSH 访问，但您的客户端运行的是旧版 NetBird。请将 NetBird 客户端更新到 v.0.61.0+ 以允许 SSH 连接。",
    sshServerNotEnabled:
      "您已配置 SSH 访问策略，但此客户端上未启用 SSH 服务器。启用 SSH 服务器以允许 SSH 连接。",
    sshNeedsPolicy:
      "您的 SSH 服务器已启用，但从 NetBird v0.61.0 开始，SSH 需要明确的访问控制策略。请创建 SSH 访问控制策略以允许 SSH 连接。",
    createSSHPolicy: "创建 SSH 策略",
    activePoliciesCount: "{count, plural, other {# 个活跃策略}}",
    browserPeerTooltip:
      "显示由 NetBird 浏览器客户端创建的临时节点。这些节点是临时的，将在一段时间后自动删除。",
    connectTooltipOffline: "只有节点在线时才能通过 SSH 或 RDP 连接。",
    expirationDisabledTooltip: "通过 setup-key 添加的所有节点都会禁用过期。",
    justNow: "刚刚",
    at: "于",
    searchByNameIpOwnerOrGroup: "按名称、IP、所有者或组搜索...",
    selectedCount: "已选择 {count} 个节点",
    assignGroups: "分配组",
    deleteAll: "全部删除",
    deleteAllConfirm: "删除 {count} 个{peerWord}？",
    deleteAllConfirmDescription: "确定要删除这些节点吗？此操作无法撤销。",
    deleteAllConfirmText: "全部删除",
    peersDeleted: "节点已成功删除",
    peersDeleting: "正在删除所选节点...",
    groupsAssigned: "组已成功分配给节点",
    groupsAssigning: "正在更新所选节点的组...",
    assigningGroups: "正在分配组...",
    groupsAssignedSuccess: "组已成功分配",
    assignGroupsDescription:
      "将以下组分配给所选节点。除非选择覆盖，否则将保留先前分配的组。",
    overwriteGroups: "覆盖现有组",
    overwriteGroupsHelp: "使用所选组覆盖节点的现有组。先前分配的组将被移除。",
    overwrite: "覆盖",
    overwriteGroupsConfirm: "覆盖现有组？",
    overwriteGroupsConfirmDescription:
      "确定要覆盖所选 {count} 个节点的现有组吗？此操作无法撤销。",
    addGroups: "添加组",
    assignedGroups: "已分配的组",
    groupsSaved: "节点的组已成功保存",
    groupsSaving: "正在保存节点的组...",
    assignedGroupsDescription: "使用组来控制此节点可以访问的内容",
    peerWord: "节点",
    peersWord: "节点",
    createPeer: "创建节点",
    addPeer: "添加节点",
    server: "服务器",
    servers: "服务器",
    userDevice: "用户设备",
    userDevices: "用户设备",
    operatingSystem: {
      linux: "Linux",
      windows: "Windows",
      macos: "macOS",
      android: "Android",
      ios: "iOS",
    },
    updateAvailable: "有新版本可用",
    updateDescription:
      "NetBird 有新版本可用。请更新客户端以获取最新功能和错误修复。",
    downloadChangelog: "下载与更新日志",
    dnsLabelCopied: "DNS 标签已复制到剪贴板",
    ipCopied: "IP 地址已复制到剪贴板",
    viewDetailsOf: "查看节点详情",
    userLabel: "用户：{id}",
    netbirdIp: "NetBird IP",
    netbirdIpv6: "NetBird IPv6",
    netbirdIpCopied: "NetBird IP 已复制到剪贴板",
    netbirdIpv6Copied: "NetBird IPv6 已复制到剪贴板",
    publicIp: "公网 IP",
    publicIpCopied: "公网 IP 已复制到剪贴板",
    domain: "域名",
    region: "地区",
    regionCopied: "地区已复制到剪贴板",
    peerNotFoundDescription:
      "您尝试访问的节点不存在。可能已被删除，或您没有查看权限。请验证 URL 或返回控制台。",
    tabOverview: "概览",
    tabNetworkRoutes: "网络路由",
    tabAccessiblePeers: "可访问节点",
    tabRemoteJobs: "远程任务",
    peerSaved: "节点已成功保存",
    peerSaving: "正在保存节点...",
    editPeerIPAddress: "编辑节点 IP 地址",
    updatePeerIPDescription: "更新此节点的 NetBird IP 地址。",
    editPeerIPPlaceholder: "例如：100.64.0.15",
    editPeerIPErrorMessage: "请输入有效的 IP，例如：100.64.0.15",
    editPeerIPv6Address: "编辑节点 IPv6 地址",
    updatePeerIPv6Description: "更新此节点的 NetBird IPv6 地址。",
    editPeerIPv6Placeholder: "例如：fd00:1234::1",
    editPeerIPv6ErrorMessage: "请输入有效的 IPv6 地址，例如：fd00:1234::1",
    remoteAccess: "远程访问",
    remoteAccessDescription: "通过 SSH 或 RDP 直接连接到此节点。",
    domainName: "域名",
    hostname: "主机名",
    operatingSystemLabel: "操作系统",
    registeredOn: "注册时间",
    agentVersion: "代理版本",
    uiVersion: "UI 版本",
    peerIpUpdated: "NetBird 节点 IP 已成功更新",
    peerIpUpdating: "正在更新节点 IP...",
    peerIpv6Updated: "NetBird 节点 IPv6 已成功更新",
    peerIpv6Updating: "正在更新节点 IPv6...",
    noServicesForPeer: "此节点未配置服务",
    addServicesDescription:
      "将您的服务添加到此节点，并通过 NetBird 反向代理安全地暴露它们",
    editPeerName: "编辑节点名称",
    editPeerNameDescription: "为您的节点设置一个易于识别的名称。",
    peerNamePlaceholder: "例如：AWS 服务器",
    domainNamePreview: "域名预览",
    domainNamePreviewHelp: "如果域名已存在，我们会添加一个递增数字后缀。",
    userDevicesDescription:
      "笔记本电脑、手机和其他由用户操作的私人设备，通常在用户使用 SSO 登录时添加。",
    learnMore: "了解更多",
    addNewDeviceTitle: "添加新设备到您的网络",
    addNewDeviceDescription:
      "首先，安装 NetBird 并使用您的电子邮件账户登录。之后您应该已连接。如有其他问题，请查看我们的",
    installationGuide: "安装指南",
    serversDescription:
      "服务器、虚拟机、自治代理和其他无用户的无人值守机器，通常使用安装密钥注册。",
    addNewServerTitle: "添加新服务器到您的网络",
    addNewServerDescription:
      "首先，在服务器上安装 NetBird 并使用安装密钥注册。如有其他问题，请查看我们的",
    saveGroups: "保存组",
    sessionExpiration: "会话过期",
    sessionExpirationDescription:
      "启用后，要求 SSO 登录的节点在会话过期后必须重新身份验证。",
    inactivityExpirationDescription:
      "启用后，要求用户在与管理界面断开连接 10 分钟后重新身份验证。",
    setupKeyPeerExpirationDisabled: "此设置对使用安装密钥添加的所有节点禁用。",
    noPermissionToUpdateSetting: "您没有更新此设置所需的权限。",
    globalSettingDisabled:
      "全局设置 {setting} 当前已禁用。请启用全局设置以便能够按节点单独切换。",
    goToSettings: "前往设置",
    expirationUpdateSuccess: "过期时间已成功更新",
    expirationUpdating: "正在更新设置...",
    peerSessionExpiration: "节点会话过期",
    requireLoginAfterDisconnect: "断开连接后要求重新登录",
    getStarted: "开始使用 NetBird",
    getStartedDescription:
      "看起来您还没有任何连接的设备。\n开始使用，向您的网络中添加一台设备。",
    learnMoreInOur: "在我们的",
    gettingStartedGuide: "入门指南",
    userPeersDescription: "查看此用户注册的所有节点。",
    accessiblePeersDesc: "此节点可以连接到 NetBird 网络中的以下节点。",
    networkRoutesDesc: "无需在每个资源上安装 NetBird 即可访问其他网络。",
    remoteJobsDesc:
      "远程触发此节点上的操作，如调试包或其他任务，无需 CLI 访问。",
    revoke: "撤销",
    bypassCompliance: "绕过合规检查",
    bypassComplianceConfirmTitle: "绕过节点 '{name}' 的合规检查？",
    bypassComplianceConfirmDescription:
      "此操作将覆盖合规检查，允许此节点进行连接。当设备恢复合规时，绕过将自动移除。",
    bypassComplianceSuccess: "已为 {name} 绕过合规检查",
    bypassComplianceSuccessDescription: "此节点现在可以连接到其他节点。",
    bypassComplianceLoading: "正在绕过合规检查...",
    revokeBypass: "撤销绕过",
    revokeBypassConfirmTitle: "撤销节点 '{name}' 的合规绕过？",
    revokeBypassConfirmDescription:
      "此节点将接受正常的合规验证。如果仍然不合规，它将失去网络访问权限。",
    revokeBypassSuccess: "合规绕过已撤销",
    revokeBypassSuccessDescription:
      "节点 {name} 现在接受正常的合规验证。",
    revokeBypassLoading: "正在撤销合规绕过...",
    bypassTooltip:
      "绕过 {integrationName} 合规检查并允许此节点连接。当设备恢复合规时，绕过将自动移除。",
  },
  policies: {
    title: "策略",
    name: "名称",
    description: "描述",
    enabled: "已启用",
    disabled: "已禁用",
    rules: "规则",
    sources: "源",
    destinations: "目标",
    actions: "操作",
    create: "创建策略",
    edit: "编辑策略",
    delete: "删除策略",
    enable: "启用",
    disable: "禁用",
    confirmDelete: "确定要删除此策略吗？",
    noPolicies: "暂无策略",
    searchPlaceholder: "搜索策略...",
    policyName: "策略名称",
    policyNameHelp: "为策略设置一个易于识别的名称",
    policyNamePlaceholder: "例如：工程师访问",
    enabledDescription: "启用或禁用此策略",
    rule: "规则",
    addRule: "添加规则",
    removeRule: "删除规则",
    source: "源",
    destination: "目标",
    all: "全部",
    protocol: "协议",
    action: "动作",
    port: "端口",
    portRange: "端口范围",
    direction: "方向",
    bidirectional: "双向",
    oneWay: "单向",
    allow: "允许",
    deny: "拒绝",
    allProtocols: "所有协议",
    protocols: "协议",
    tcp: "TCP",
    udp: "UDP",
    icmp: "ICMP",
    any: "任意",
    netbirdSsh: "NetBird SSH",
    protoPorts: "协议与端口",
    portsPlaceholder: "例如：443",
    addPolicy: "添加策略",
    createNewPolicy: "创建新策略",
    createNewPolicyDescription:
      "看起来您还没有任何策略。策略可以按特定协议和端口允许连接。",
    noPoliciesForGroup: "此组尚未在任何策略中使用",
    noPoliciesForGroupDescription:
      "将组作为策略中的源或目标分配，以在此处查看其列表。",
    temporaryPoliciesTooltip:
      "显示由 NetBird 浏览器客户端创建的临时策略。这些策略是临时的，将在一段时间后自动删除。",
    learnMoreAbout: "了解更多关于",
    accessControls: "访问控制",
    policyActions: "策略操作",
    policyEnabledSuccess: "策略已成功启用",
    policyDisabledSuccess: "策略已成功禁用",
    confirmDeleteTitle: "删除 '{name}'？",
    confirmDeleteDescription: "确定要删除此访问控制策略吗？此操作无法撤销。",
    updatePolicy: "更新访问控制策略",
    modalDescription: "使用此策略限制对资源组的访问。",
    tabPolicy: "策略",
    tabNameDescription: "名称与描述",
    protocolHelp:
      "仅允许指定的网络协议。要更改流量方向和端口，请选择 TCP 或 UDP 协议。",
    selectProtocol: "选择协议...",
    netbirdSshHelp:
      "为 SSH 专用策略选择 NetBird SSH 以进行细粒度访问控制，或使用端口 22 的 TCP 进行基本网络级 SSH 访问",
    sourceHelp:
      "通常是一组用户设备（例如开发人员、市场人员）或点对点连接中将访问目标的单个设备。",
    selectSource: "选择源...",
    destinationHelp:
      "通常是一组节点或资源（例如服务器、数据库、内部服务），将由源访问。也可以是单个节点或资源。",
    selectDestination: "选择目标...",
    resourcesBidirectionalWarning:
      "某些目标组包含资源。资源仅支持入站流量，无法发起连接。",
    sshResourceWarning:
      "SSH 访问仅适用于节点，不适用于路由资源。请确保您的目标组包含用于 SSH 连接的节点。",
    sshAccess: "SSH 访问",
    sshAccessHelp:
      "选择'完全访问'以允许任何本地用户进行 SSH，或选择'受限访问'以指定每个组允许使用的本地用户。",
    ports: "端口",
    portsHelp:
      "仅允许对指定端口的网络流量和访问。选择 1 到 65535 之间的端口或端口范围。",
    enablePolicy: "启用策略",
    enablePolicyHelp: "使用此开关启用或禁用策略。",
    ruleName: "规则名称",
    ruleNameHelp: "为策略设置一个易于识别的名称。",
    ruleNamePlaceholder: "例如：开发人员到服务器",
    policyDescriptionLabel: "描述（可选）",
    policyDescriptionHelp: "写一个简短的描述为此策略添加更多上下文。",
    policyDescriptionPlaceholder:
      "例如：允许开发人员访问服务器，并允许服务器访问开发人员。",
    accessControlDescription:
      "创建规则以管理网络中的访问，并定义节点可以连接的内容。",
    policyCreated: "策略 '{name}' 创建成功",
    policyUpdated: "策略 '{name}' 更新成功",
    policyDeleted: "策略 '{name}' 已删除",
    policyEnableLoading: "正在启用策略...",
    policyDisableLoading: "正在禁用策略...",
    policySaveLoading: "正在保存策略...",
    policyDeleteLoading: "正在删除策略...",

    // SSH 访问类型
    sshFullAccess: "完全访问",
    sshLimitedAccess: "受限访问",
    sshAccessPlaceholder: "选择 SSH 访问类型...",

    // SSH 授权组
    sshNoSourceGroups: "您尚未添加任何源组。请添加源组以指定哪些用户组可以访问目标机器上的哪些系统用户。",

    // SSH 用户名选择器
    sshAllLocalUsers: "所有本地用户",
    sshUsernamePlaceholder: "例如：root、ec2-user、ubuntu",
    sshAddUsernameByPressing: "按 '{key}' 键添加用户名",

    // 协议端口单元格
    nPorts: "{count} 个端口",
    netbirdSshTooltip: "NETBIRD-SSH",

    // 姿态检查单元格
    addPostureCheck: "添加姿态检查",
    postureCheckCount: "{count} 个姿态检查",

    // useAccessControl 通知
    createPolicyTitle: "创建访问控制策略",
    createPolicySuccess: "策略创建成功。",
    createPolicyLoading: "正在创建策略...",
    policySaveSuccess: "策略已成功保存",

    // AccessControlTable
    tableHeading: "访问控制策略",
    searchByNameAndDescription: "按名称和描述搜索...",
    filterPort: "端口",
    filterPostureChecks: "姿态检查",
    filterWith: "包含",
    filterWithout: "不包含",
  },
  groups: {
    title: "组",
    name: "名称",
    peers: "节点",
    users: "用户",
    policies: "策略",
    resources: "资源",
    create: "创建组",
    createDescription: "创建一个组来管理和组织网络中的访问权限",
    createSuccess: "组 '{name}' 创建成功",
    creating: "正在创建组...",
    nameHelp: "为组设置一个易于识别的名称",
    namePlaceholder: "例如：开发人员",
    learnMore: "了解更多关于",
    edit: "编辑组",
    delete: "删除组",
    confirmDelete: "确定要删除此组吗？",
    noGroups: "暂无组",
    searchPlaceholder: "搜索组...",
    cancel: "取消",
    addPeerToGroup: "添加节点",
    addUserToGroup: "添加用户",
    editName: "编辑名称",
    groupName: "组名称",
    groupUpdated: "组 '{name}' 更新成功",
    groupUpdating: "正在更新组...",
    assignedPeers: "已分配的节点",
    assignedUsers: "已分配的用户",
    assignedResources: "已分配的资源",
    assignPeersDescription: "使用节点来控制此组可以访问的内容",
    assignUsersDescription: "使用用户来控制此组可以访问的内容",
    assignResourcesDescription: "使用资源来控制此组可以访问的内容",
    addPeerToGroupTitle: "将节点添加到组",
    addUserToGroupTitle: "将用户添加到组",
    addResourcesToGroupTitle: "将资源添加到组",
    searchPeer: "搜索节点...",
    searchUser: "搜索用户...",
    searchResource: "搜索资源...",
    used: "已使用",
    unused: "未使用",
    usage: "使用情况",
    inUse: "正在使用",
    nameservers: "名称服务器",
    zones: "区域",
    routes: "路由",
    setupKeys: "安装密钥",
    viewDetails: "查看详情",
    rename: "重命名",
    groupsDescription: "将节点、用户和资源组织到组中以管理访问。",
    allGroups: "所有组",
    nGroups: "{n} 个组",
    noGroupsMatching: "没有匹配的组。请尝试其他搜索词。",
    noGroupsAvailable: "似乎您还没有任何组。",
    nPeers: "{n} 个节点",
    nResources: "{n} 个资源",
    renameDisabledJWT: "此组由 JWT 颁发，无法重命名。",
    renameDisabledIdP: "此组由 IdP 颁发，无法重命名。",
    deleteDisabledIdP: "此组由 IdP 颁发，无法删除。",
    deleteDisabledInUse: "请先移除此组的依赖关系后再删除。",
    assignedGroups: "已分配的组",
  },
  users: {
    title: "用户",
    name: "名称",
    email: "邮箱",
    role: "角色",
    status: "状态",
    lastLogin: "最后登录",
    actions: "操作",
    invite: "邀请用户",
    edit: "编辑用户",
    delete: "删除用户",
    block: "阻止",
    unblock: "取消阻止",
    approve: "批准",
    reject: "拒绝",
    resendInvite: "重新发送邀请",
    confirmDelete: "确定要删除此用户吗？",
    noUsers: "暂无用户",
    searchPlaceholder: "搜索用户...",
    owner: "所有者",
    user: "用户",
    admin: "管理员",
    blocked: "已阻止",
    invited: "已邀请",
    active: "活跃",
    inactive: "非活跃",
    roleOwner: "所有者",
    roleAdmin: "管理员",
    roleUser: "用户",
    roleServiceUser: "服务用户",
    inviteUser: "邀请用户",
    inviteUserDescription: "邀请用户加入您的 NetBird 网络",
    userEmail: "用户邮箱",
    userEmailPlaceholder: "user@example.com",
    userEmailHelp: "输入要邀请的用户的电子邮件地址",
    group: "组",
    selectGroup: "选择组...",
    selectRole: "选择角色...",
    userRole: "用户角色",
    userRoleHelp: "为用户设置角色以分配访问权限。",
    autoSSODescription: "此用户将在首次登录时通过 SSO 自动添加。",
    inviteSuccess: "用户 {email} 已收到邀请",
    inviting: "正在邀请用户...",
    userBlocked: "用户 {name} 已被阻止",
    userUnblocked: "用户 {name} 已取消阻止",
    blocking: "正在阻止用户...",
    unblocking: "正在取消阻止...",
    userDeleted: "用户 {name} 已删除",
    deleting: "正在删除用户...",
    inviteResent: "邀请已重新发送",
    resending: "正在重新发送邀请...",
    userApproved: "用户 {name} 已批准",
    approving: "正在批准用户...",
    userRejected: "用户 {name} 已拒绝",
    rejecting: "正在拒绝用户...",
    copyUserId: "复制用户 ID",
    copyUserIdSuccess: "用户 ID 已复制到剪贴板",
    networkAdmin: "网络管理员",
    billingAdmin: "账单管理员",
    auditor: "审计员",
    pending: "待审批",
    lastLoginOn: "最后登录于",
    showInvites: "显示邀请",
    addNewUsers: "添加新用户",
    addNewUsersDescription:
      "看起来您还没有任何用户。开始使用，邀请用户加入您的账户。",
    addUser: "添加用户",
    localAuthDisabled: "本地身份验证已禁用。请使用您的 IdP 进行身份验证。",
    team: "团队",
    usersPageDescription:
      "管理用户及其权限。同域名电子邮件用户在首次登录时会自动添加。",
    expiresIn: "过期时间",
    expiresInHelp: "邀请过期前的天数。",
    // Shared labels
    groups: "组",
    learnMoreAbout: "了解更多关于",
    // UsersTable
    searchByNameEmailOrRole: "按名称、邮箱或角色搜索...",
    // UserInviteModal
    userCreatedSuccess: "用户创建成功！",
    inviteLinkCreated: "邀请链接已创建！",
    passwordCopyWarning:
      "此密码将不会再次显示，请务必复制并保存到安全位置。",
    inviteLinkShareInfo: "将此链接分享给用户。用户可以通过此链接设置自己的密码。",
    passwordCopied: "密码已复制到剪贴板！",
    inviteLinkCopied: "邀请链接已复制到剪贴板！",
    expiresOn: "过期时间",
    copyAndClose: "复制并关闭",
    createUserTitle: "创建用户",
    inviteUserTitle: "邀请用户",
    createUserDescription: "创建一个使用邮箱和密码的 NetBird 用户账户。",
    inviteUserDescription2: "邀请用户加入您的网络并设置其权限。",
    generateInviteLinkDesc: "生成一个邀请链接，用户可以通过此链接设置自己的密码。",
    sendInvitation: "发送邀请",
    createInviteLink: "创建邀请链接",
    inviteUserTab: "邀请用户",
    createUserTab: "创建用户",
    autoAssignedGroups: "自动分配组",
    autoAssignedGroupsHelp: "组将自动分配给此用户添加的节点。",
    dayUnit: "天",
    createUserNotify: "创建用户",
    creatingUserFor: "正在为 {name} 创建用户账户...",
    creatingUserNotify: "正在创建用户...",
    createInviteNotify: "创建邀请",
    creatingInviteFor: "正在为 {name} 创建邀请链接...",
    creatingInviteNotify: "正在创建邀请...",
    // UserStatusCell
    statusDisabled: "已禁用",
    localAuthDisabledTooltip:
      "本地身份验证已禁用。此用户将无法再登录。请使用您的 IdP 进行身份验证。",
    invitedTooltip:
      "此用户已被邀请但尚未接受邀请。请使用重新发送按钮发送另一封邀请邮件。",
    pendingApprovalTooltip:
      "此用户在加入您的组织之前需要管理员审批。要禁用审批，请关闭",
    userApprovalRequiredLabel: "「需要用户审批」",
    inSettings: "在设置中",
    // UserNameCell
    you: "你",
    // UserActionCell
    userDeletedNotify: "'{name}' 已删除",
    userDeletedDesc: "用户已成功删除。",
    deletingUser: "正在删除用户...",
    userApprovedNotify: "'{name}' 已批准",
    userApprovedDesc: "用户已成功批准。",
    approvingUser: "正在批准用户...",
    rejectUserTitle: "拒绝 '{name}'？",
    rejectUserDesc: "拒绝此用户将永久将其从账户中移除。此操作无法撤销。",
    rejectButton: "拒绝",
    userRejectedNotify: "'{name}' 已拒绝",
    userRejectedDesc: "用户已成功拒绝并移除。",
    rejectingUser: "正在拒绝用户...",
    deleteUserTitle: "删除 '{name}'？",
    deleteUserDesc: "删除此用户将移除其设备并取消仪表板访问权限。此操作无法撤销。",
    blockUserTitle: "阻止 '{name}'？",
    blockUserDesc: "此操作将立即撤销用户的访问权限并断开其所有活动节点的连接。",
    blockButton: "阻止",
    userBlockedNotify: "用户已阻止",
    userUnblockedNotify: "用户已取消阻止",
    blockedSuccess: "{name} 已成功阻止。",
    unblockedSuccess: "{name} 已成功取消阻止。",
    blockingUser: "正在阻止用户...",
    unblockingUser: "正在取消阻止用户...",
    // UserGroupCell
    groupsSaved: "用户的组已成功保存",
    updatingGroups: "正在更新组...",
    // UserResendInviteButton
    resendInviteNotify: "重新发送邀请",
    resendingInviteTo: "正在向 {email} 发送邀请",
    sendingInvitation: "正在发送邀请...",
    sending: "发送中...",
    resendButton: "重新发送",
    // PendingApprovalFilter
    pendingApproval: "待审批",
    // HorizontalUsersStack
    allUsers: "所有用户",
    userCount: "{count, plural, other {# 个用户}}",
    system: "系统",
    // UserRoleSelector
    transferOwnership: "转让所有权？",
    transferOwnershipPrefix: "此操作将把",
    transferOwnershipTo: "角色转让给",
    transferOwnershipThisUser: "此用户",
    transferOwnershipSuffix1: "并将您的角色变更为",
    transferOwnershipSuffix2:
      "。此操作只有在新所有者将角色转让回给您时才能撤销。",
    // ChangePasswordModal
    changePasswordTitle: "修改密码",
    updateAccountPassword: "更新您的账户密码。",
    enterCurrentPasswordHelp: "输入当前密码以验证您的身份。",
    enterCurrentPasswordPlaceholder: "输入当前密码",
    enterNewPasswordHelp: "输入新密码。至少需要 8 个字符。",
    enterNewPasswordPlaceholder: "输入新密码",
    reenterNewPasswordHelp: "再次输入新密码以确认。",
    confirmNewPasswordPlaceholder: "确认新密码",
    passwordMinLength: "密码至少需要 8 个字符",
    passwordsDoNotMatch: "两次输入的密码不一致",
    passwordChanged: "您的密码已成功修改。",
    changingPassword: "正在修改密码...",
    changePasswordButton: "修改密码",
    // UserPeersSection
    noRegisteredPeers: "此用户没有已注册的节点",
    noRegisteredPeersDesc: "安装 NetBird 并以此用户身份登录以注册节点。",
    // UserInvitesTable
    invites: "邀请",
    searchByNameOrEmail: "按名称或邮箱搜索...",
    noPendingInvites: "没有待处理的邀请",
    noPendingInvitesDesc: "没有待处理的邀请。创建邀请以将用户添加到您的网络。",
    showUsers: "显示用户",
    valid: "有效",
    expired: "已过期",
    regenerateInvite: "重新生成邀请",
    regeneratingInviteFor: "正在为 {name} 重新生成邀请链接...",
    regenerating: "重新生成中...",
    inviteDeletedNotify: "'{name}' 已删除",
    inviteDeletedDesc: "邀请已成功删除。",
    deletingInvite: "正在删除邀请...",
    deleteInviteTitle: "删除 '{name}' 的邀请？",
    deleteInviteDesc: "删除此邀请将撤销邀请链接。用户将无法再使用此邀请加入。",
    inviteLinkRegenerated: "邀请链接已重新生成！",
    inviteLinkRegenShareInfo: "将此链接分享给用户。用户可以通过此链接设置自己的密码。",
    inviteActions: "邀请操作",
    regenerateButton: "重新生成",
    expires: "过期时间",
    // Add
    namePlaceholder: "例如：张三",
    emailPlaceholder: "例如：hello@netbird.io",
    userActions: "用户操作",
  },
  userDropdown: {
    profileSettings: "个人资料设置",
    plansAndBilling: "套餐与账单",
  },
  theme: {
    light: "浅色",
    dark: "深色",
    system: "跟随系统",
  },
  serviceUsers: {
    title: "服务用户",
    role: "角色",
    status: "状态",
    learnMoreAbout: "了解更多关于",
    name: "名称",
    userId: "用户 ID",
    createdAt: "创建时间",
    actions: "操作",
    create: "创建服务用户",
    edit: "编辑服务用户",
    delete: "删除服务用户",
    noServiceUsers: "暂无服务用户",
    searchPlaceholder: "搜索服务用户...",
    confirmDelete: "确定要删除此服务用户吗？",
    serviceUserName: "服务用户名称",
    serviceUserNamePlaceholder: "例如：CI/CD 流水线",
    serviceUserNameHelp: "为此服务用户设置一个描述性名称",
    copyUserId: "复制用户 ID",
    autoGroups: "自动分配组",
    autoGroupsDescription: "自动将这些组分配给使用此服务用户的节点",
    copySuccess: "已复制到剪贴板",
    userCreated: "服务用户 '{name}' 创建成功",
    userUpdated: "服务用户 '{name}' 更新成功",
    userDeleted: "服务用户 '{name}' 已删除",
    createLoading: "正在创建服务用户...",
    updateLoading: "正在更新服务用户...",
    deleteLoading: "正在删除服务用户...",
    serviceUsersDescription: "使用服务用户创建 API 令牌，避免丢失自动化访问。",
    serviceUsersEmptyDescription:
      "看起来您还没有任何服务用户。开始使用，创建一个服务用户。",
    blocked: "已阻止",
    accessTokens: "访问令牌",
    accessTokensDescription: "访问令牌提供对 NetBird API 的访问权限。",
    tokenName: "名称",
    tokenNameHelp: "为令牌设置一个易于识别的名称",
    tokenExpiresIn: "过期时间",
    userCreatedNotify: "服务用户已创建",
    userCreatedDesc: "{name} 创建成功。",
    creatingServiceUserNotify: "正在创建服务用户...",
    createServiceUserTitle: "创建服务用户",
    serviceUserCreateDesc: "服务用户是不与任何特定人员关联的非登录用户。",
  },
  settings: {
    title: "设置",
    general: "常规",
    account: "账户",
    security: "安全",
    notifications: "通知",
    appearance: "外观",
    language: "语言",
    theme: "主题",
    darkMode: "深色模式",
    lightMode: "浅色模式",
    systemDefault: "跟随系统",
    save: "保存设置",
    cancel: "取消",
    reset: "重置为默认",
    saved: "设置已保存",
    saving: "正在保存设置...",
    profile: "个人资料",
    changePassword: "修改密码",
    currentPassword: "当前密码",
    newPassword: "新密码",
    confirmPassword: "确认密码",
    twoFactor: "两步验证",
    enable2FA: "启用两步验证",
    disable2FA: "禁用两步验证",
    authentication: "身份验证",
    setupKeys: "安装密钥",
    identityProviders: "身份提供者",
    groupsTab: "组",
    permissions: "权限",
    networksTab: "网络",
    clients: "客户端",
    dangerZone: "危险区域",
    languageDescription: "选择仪表板的显示语言。",
    currentLanguage: "当前语言",
    delete: "删除",
    deleteAccountTitle: "删除 NetBird 账户",
    deleteAccountConfirm: "确定要删除您的 NetBird 账户吗？此操作无法撤销。",
    deleteAccountSuccess: "NetBird 账户已成功删除。",
    deleteAccountLoading: "正在删除账户...",
    deleteAccountCardTitle: "删除 NetBird 账户",
    deleteAccountWarning:
      "在继续删除 NetBird 账户之前，请注意此操作不可撤销。一旦您的账户被删除，您将永久失去对所有关联数据的访问权限，包括您的节点、用户、组、策略和路由。",
    deleteAccountButton: "删除账户",
    endpointUrls: "端点 URL",
    endpointUrlsHelp: "将这些添加到您的身份提供者配置中",
    redirectCallback: "重定向 / 回调",
    logoutLabel: "登出",
    notAllProvidersLogout: "并非所有身份提供者都支持登出。",
    learnMore: "了解更多",
    learnMoreAbout: "了解更多关于",
    saveChanges: "保存更改",
    days: "天",
    hours: "小时",
    beta: "Beta",
    selectInterval: "选择间隔...",
    userApprovalRequired: "需要用户审批",
    userApprovalHelp:
      "对通过域名匹配加入的新用户要求手动审批。用户在被审批前将被阻止。",
    enableLocalMFA: "启用本地多因素认证",
    localMfaHelp: "对使用本地凭据认证的用户要求多因素认证。",
    peerSessionExpiration: "节点会话过期",
    peerSessionExpirationHelp: "对通过 SSO 注册的节点请求定期重新认证。",
    sessionExpiration: "会话过期",
    sessionExpirationHelp:
      "使用 SSO 登录添加的每个节点在此时间后需要重新认证。",
    requireLoginAfterDisconnect: "断开连接后要求重新登录",
    requireLoginHelp:
      "启用后，用户从管理界面断开连接 10 分钟后将需要重新认证。",
    automaticUpdates: "自动更新",
    automaticUpdatesHelp:
      "配置 NetBird 客户端如何接收更新通知。启用后，用户将被提示安装所选版本。这至少需要 NetBird v0.61.0。",
    versionCustomPrefix: "版本",
    versionCustomPlaceholder: "例如：0.52.2",
    forceAutomaticUpdates: "强制自动更新",
    forceAutomaticUpdatesHelp: "启用后，更新将在后台自动安装，无需用户交互。",
    automaticUpdatesWarning:
      "启用自动更新将在更新过程中重启 NetBird 客户端，可能暂时中断活动连接。在生产环境中请谨慎使用。",
    exposeServicesFromCli: "通过 CLI 暴露服务",
    exposeServicesFromCliHelp:
      "允许节点通过 NetBird 反向代理使用 CLI 暴露本地服务。这至少需要 NetBird v0.66.0。",
    enablePeerExpose: "启用节点暴露",
    enablePeerExposeHelp: "启用后，节点可以通过公共 URL 暴露本地 HTTP 服务。",
    allowedPeerGroups: "允许的节点组",
    allowedPeerGroupsHelp: "选择允许暴露服务的节点组。至少需要一个组。",
    selectPeerGroups: "选择节点组...",
    experimental: "实验性",
    experimentalHelp:
      "惰性连接是一个实验性功能。功能和行为可能会发展。NetBird 不再维护始终在线的连接，而是根据活动或信令按需激活它们。",
    enableLazyConnections: "启用惰性连接",
    enableLazyConnectionsHelp:
      "惰性连接根据活动或信令按需激活，而不是维护始终在线的连接。",
    enableGroupPropagation: "启用用户组传播",
    groupPropagationHelp: "允许从用户的自动组向节点传播组，共享成员资格信息。",
    enableJwtGroupSync: "启用 JWT 组同步",
    jwtGroupSyncHelp:
      "从 JWT 声明中提取并同步组与用户的自动组，根据令牌自动创建组。",
    jwtClaim: "JWT 声明",
    jwtClaimHelp:
      "指定用于提取组名称的 JWT 声明，例如 roles 或 groups，以添加到账户组（此声明应包含组名称列表）。",
    jwtClaimPlaceholder: "例如：roles",
    jwtAllowGroups: "JWT 允许的组",
    jwtAllowGroupsHelp:
      "限制指定组名称对 NetBird 的访问，例如 NetBird 用户。要使用这些组，您需要先在您的 IdP 中配置它们。",
    addGroupPlaceholder: "添加组并按 Enter",
    jwtGroupAccessWarning: "为防止失去访问权限，请确保您是该组的成员。",
    dnsDomain: "DNS 域名",
    dnsDomainHelp:
      "为您的网络指定自定义节点 DNS 域名。此域名不应指向已在其他地方使用的域名，以避免覆盖 DNS 结果。",
    dnsDomainHostedPlaceholder: "netbird.cloud",
    dnsDomainSelfhostedPlaceholder: "netbird.selfhosted",
    networkRange: "网络范围",
    networkRangeHelp:
      "以 CIDR 格式为您的网络指定自定义 IPv4 范围。更改后将重新分配所有节点 IP。",
    networkRangePlaceholder: "例如 100.64.0.0/16",
    ipv6NetworkRange: "IPv6 网络范围",
    ipv6NetworkRangeHelp:
      "以 CIDR 格式为您的网络指定自定义 IPv6 范围。更改后将重新分配所有节点 IPv6 地址。",
    ipv6NetworkRangePlaceholder: "例如 fd00:1234:5678::/64",
    ipv6EnabledGroups: "IPv6 启用组",
    ipv6EnabledGroupsHelp:
      "所选组中的节点将接收 IPv6 覆盖地址（双栈）。删除所有组以禁用 IPv6。更改将在保存时应用并重启受影响的客户端。",
    selectIpv6Groups: "选择启用 IPv6 的组...",
    ipv6PrefixLengthError: "前缀长度必须介于 /48 和 /112 之间",
    ipv6FormatError: "请输入有效的 IPv6 CIDR 范围，例如 fd00:1234::/64",
    enableDnsWildcardRouting: "启用 DNS 通配符路由",
    dnsWildcardRoutingHelp:
      "允许使用 DNS 通配符进行路由。这需要 NetBird 客户端 v0.35 或更高版本。更改仅在重启客户端后生效。",
    configureIdpDescription: "为您的网络配置用于用户身份验证的身份提供者。",
    setupKeysDescription:
      "安装密钥是预身份验证密钥，允许在您的网络中注册新机器。",
    restrictDashboard: "限制普通用户访问仪表板",
    restrictDashboardHelp:
      "对仪表板的访问将受到限制，普通用户将无法查看任何节点。",
    name: "名称",
    type: "类型",
    idpProviderType: "提供商类型",
    idpProviderTypeHelp: "选择身份提供商的类型",
    idpName: "名称",
    idpNameHelp: "为此提供商设置一个友好的名称",
    idpClientId: "客户端 ID",
    idpClientSecret: "客户端密钥",
    idpIssuerUrl: "Issuer URL",
    idpIssuerUrlHelp: "此提供商的 OIDC issuer URL",
  },
  reverseProxy: {
    title: "反向代理",
    description: "配置反向代理服务和域名",
    services: "服务",
    customDomains: "自定义域名",
    clusters: "集群",
    accessLogs: "访问日志",
    createService: "创建服务",
    editService: "编辑服务",
    deleteService: "删除服务",
    confirmDeleteService: "确定要删除此服务吗？",
    serviceName: "服务名称",
    serviceNamePlaceholder: "例如：我的 Web 应用",
    source: "源节点",
    destination: "目标",
    port: "端口",
    protocol: "协议",
    enabled: "已启用",
    noServices: "暂无服务",
    searchServices: "搜索服务...",
    domain: "域名",
    path: "路径",
    target: "目标",
    selectSourcePeer: "选择源节点...",
    selectTargetPeer: "选择目标节点...",
    selectPort: "选择端口...",
    customDomainsDescription: "为您的服务配置自定义域名",
    noCustomDomains: "暂无自定义域名",
    createDomain: "创建自定义域名",
    editDomain: "编辑自定义域名",
    domainName: "域名",
    domainNamePlaceholder: "example.com",
    clustersDescription: "为高可用性配置集群",
    noClusters: "暂无集群",
    createCluster: "创建集群",
    editCluster: "编辑集群",
    clusterName: "集群名称",
    clusterNamePlaceholder: "例如：生产集群",
    clusterDescription: "描述",
    accessLogsDescription: "查看反向代理服务的访问日志",
    noAccessLogs: "暂无访问日志",
    servicesDescription: "通过 NetBird 的反向代理安全地暴露服务。",
    betaNoticeCloud:
      "NetBird 的反向代理目前处于测试阶段，在此期间免费使用。功能、特性和定价可能在上线时发生变化。",
    betaNoticeSelfHosted:
      "NetBird 的反向代理目前处于测试阶段。功能、特性和定价可能在上线时发生变化。",
    saveChanges: "保存更改",
    addServiceBtn: "添加服务",
    editServiceBtn: "编辑服务",
    cancel: "取消",
    back: "返回",
    continue: "继续",
    service: "服务",
    authentication: "身份验证",
    accessControl: "访问控制",
    advancedSettings: "高级设置",
    netBirdOnlyAccess: "仅 NetBird 访问",
    netBirdOnlyAccessDescription: "仅所选 NetBird 组内的已连接节点可访问。",
    netBirdOnlyAccessTooltip:
      "仅 NetBird 访问需要至少一个已连接嵌入式代理（netbird proxy）的代理集群。所选集群没有嵌入式代理。请连接一个嵌入式代理以启用此选项。",
    sso: "SSO（单点登录）",
    ssoDescription: "要求用户通过 SSO 身份验证才能访问此服务。",
    password: "密码",
    passwordDescription: "要求输入密码才能访问此服务。",
    pinCode: "PIN 码",
    pinCodeDescription: "要求输入数字 PIN 码才能访问此服务。",
    httpHeaders: "HTTP 请求头",
    httpHeadersDescription: "要求特定 HTTP 请求头才能访问此服务。",
    netBirdOnlyServiceNotice:
      "此服务仅可通过 NetBird 访问。默认会应用允许 NetBird 网络范围的规则。您在此处添加的规则会叠加在默认规则之上。",
    preserveClientSourceIp: "保留客户端源 IP",
    preserveClientSourceIpHelp:
      "使用 PROXY Protocol v2 将流量转发到后端时，保留客户端源 IP 地址。",
    sessionIdleTimeout: "会话空闲超时",
    sessionIdleTimeoutHelp: "空闲超过此时间后关闭 UDP 会话。留空表示无超时。",
    connectionTimeout: "连接超时",
    connectionTimeoutHelp: "建立后端连接的超时时间。留空表示无超时。",
    timeoutPlaceholder: "例如：10s、30s、1m",
    passHostHeader: "传递 Host 请求头",
    passHostHeaderHelp: "将原始 Host 请求头转发到后端，而不是改写为目标地址。",
    rewriteRedirects: "重写重定向",
    rewriteRedirectsHelp:
      "重写后端响应中的 Location 请求头，使用公共域名而不是内部后端地址。",
    directUpstream: "直连上游",
    directUpstreamHelp:
      "从代理主机直接拨号上游目标，而不是通过 WireGuard 隧道。当上游在无 WireGuard 连接的情况下可达时打开。",
    directUpstreamHelpCluster:
      "对代理集群目标必需且锁定开启：集群没有可回退的 WireGuard 端点。",
    directUpstreamTooltip:
      "直连上游仅在至少一个已连接嵌入式代理（netbird proxy）的集群上可配置。所选集群没有嵌入式代理。",
    learnMoreServices: "服务",
    learnMoreAuthentication: "身份验证",
    learnMoreAccessControl: "访问控制",
    learnMoreSettings: "设置",
    noProtectionTitle: "未配置保护",
    noProtectionDescription:
      "此服务未配置身份验证或访问控制规则。它将对互联网上的所有人公开可访问。确定要继续吗？",
    httpsService: "HTTPS 服务",
    tlsPassthrough: "TLS 直通",
    tcpService: "TCP 服务",
    udpService: "UDP 服务",
    forwardTrafficDesc: "将流量直接转发到您的后端服务。",
    exposeServicesDesc: "通过 NetBird 的反向代理安全地暴露服务。",
    terminatedService: "此服务已被 NetBird 团队终止，因为它违反了服务条款。如有问题，请联系",
    terminated: "已终止",
  },
  dns: {
    title: "DNS",
    description: "管理网络的 DNS 名称服务器和区域",
    nameservers: "名称服务器",
    zones: "区域",
    settings: "DNS 设置",
    createNameserver: "创建名称服务器",
    editNameserver: "编辑名称服务器",
    deleteNameserver: "删除名称服务器",
    confirmDeleteNameserver: "确定要删除此名称服务器吗？",
    nameserverName: "名称服务器名称",
    nameserverNamePlaceholder: "例如：内部 DNS",
    nameserverDescription: "描述",
    nameserverDomains: "域名",
    noNameservers: "暂无名称服务器",
    searchNameservers: "搜索名称服务器...",
    createZone: "创建区域",
    editZone: "编辑区域",
    deleteZone: "删除区域",
    confirmDeleteZone: "确定要删除此区域吗？",
    zoneName: "区域名称",
    zoneNamePlaceholder: "例如：example.com",
    zoneDomains: "域名",
    noZones: "暂无区域",
    searchZones: "搜索区域...",
    dnsSettings: "DNS 设置",
    dnsSettingsDescription: "管理您账户的 DNS 设置。",
    disabledManagementGroup: "对这些组禁用 DNS 管理",
    disabledManagementGroupHelp: "这些组中的节点将需要进行手动域名解析",
    settingsSaved: "设置已成功保存。",
    settingsSaving: "正在保存设置...",
    saveChanges: "保存更改",
    nameserversDescription: "在 NetBird 网络中为域名解析添加名称服务器。",
    zonesDescription: "为您的网络配置 DNS 区域。",
    tabNameserver: "名称服务器",
    tabDomains: "域名",
    tabNameDescription: "名称与描述",
    addDomain: "添加域名",
    distributionGroups: "分配组",
    matchDomains: "匹配域名",
    enableNameserver: "启用名称服务器",
    enableSearchDomainsNS: "将匹配域名标记为搜索域名",
    nameserverModalDescription: "使用名称服务器解析网络中的域名。",
    DNSName: "DNS 名称",
    enterNameserverName: "为此名称服务器输入名称。",
    nameserverNameInputPlaceholder: "例如：公共 DNS",
    descriptionOptional: "描述（可选）",
    writeDescription: "写一个简短的描述为此名称服务器添加更多上下文。",
    descriptionPlaceholder: "例如：柏林办公室远程开发人员的解析器",
    advertiseToGroups: "将此名称服务器广播给属于以下组的节点。",
    enableDisableNameserver: "使用此开关启用或禁用名称服务器。",
    addDomainHelp: "如果要让特定域名由此名称服务器解析，请添加域。",
    searchDomainHelp: "例如，'peer.example.com' 将可通过'peer'访问",
    updateZoneDescription: "使用区域控制网络的域名解析。",
    domainLabel: "域名",
    domainHelp: "为此区域输入域名（例如 company.internal, intra.example.com）",
    domainPlaceholder: "例如：company.internal",
    distributionGroupsLabel: "分配组",
    zoneGroupsHelp: "将此区域及其记录广播给属于以下组的节点。",
    enableSearchDomains: "启用搜索域名",
    searchDomainHelpZone:
      "例如，'server.company.internal' 将可通过'server'访问",
    enableDNSZone: "启用 DNS 区域",
    enableDisableDNSZone: "使用此开关启用或禁用 DNS 区域。",
    addDNSZone: "添加 DNS 区域",
    updateDNSZone: "更新 DNS 区域",
    addDNSRecord: "添加 DNS 记录",
    updateDNSRecord: "更新 DNS 记录",
    recordType: "记录类型",
    recordTypeHelp: "选择要添加的记录类型",
    selectType: "选择类型...",
    selectTTL: "选择 TTL...",
    hostname: "主机名",
    hostnameHelp: "输入子域名、通配符或留空以使用主域名。",
    hostnamePlaceholder: "例如：dev, * 或留空使用主域名",
    ipv4Address: "IPv4 地址",
    ipv6Address: "IPv6 地址",
    targetDomain: "目标域名",
    ttl: "TTL（生存时间）",
    sec: "秒",
    min: "分钟",
    hour: "小时",
    day: "天",
    learnMoreAbout: "了解更多关于",
    dnsRecords: "DNS 记录",
    dnsZones: "DNS 区域",
    dns: "DNS",
    recordTypeAAAA: "AAAA",
    recordTypeCNAME: "CNAME",
    // Nameserver templates
    customDNS: "自定义 DNS",
    customDNSDescription:
      "使用自定义名称服务器解析网络中的域名。您可以使用公共 DNS 或自己的名称服务器。",
    // NameserverModal - notifications
    updateNameserverNotify: "更新名称服务器",
    nameserverUpdatedSuccess: "名称服务器更新成功。",
    updatingNameserver: "正在更新名称服务器...",
    nameserverCreatedSuccess: "名称服务器创建成功。",
    creatingNameserver: "正在创建名称服务器...",
    // NameserverModal - validation
    nameLengthError: "名称不能超过 40 个字符",
    validIPError: "请输入有效的 IP 地址，例如 192.168.1.0",
    ipPlaceholder: "例如：172.16.0.0",
    // NameserverActionCell
    nameserverToggleSuccess: "名称服务器已成功{status}。",
    nameserverToggleLoading: "正在更新名称服务器...",
    nameserverDeletedSuccess: "名称服务器已成功移除。",
    deletingNameserver: "正在删除名称服务器...",
    confirmDeleteNameserverTitle: "删除 '{name}'？",
    confirmDeleteZoneTitle: "删除区域 '{name}'？",
    nameserverActionsAria: "名称服务器操作",
    enable: "启用",
    disable: "禁用",
    port: "端口",
    // NameserverGroupTable
    searchNameserverPlaceholder: "按名称、域名或名称服务器搜索...",
    noNameserversGroupTitle: "此组尚未在任何名称服务器中使用",
    noNameserversGroupDesc: "将此组分配为名称服务器中的分发组，即可在此处查看。",
    noNameserversGetStartedDesc: "看起来您还没有任何名称服务器。添加一个到您的网络即可开始使用。选择预定义的或添加自定义名称服务器。",
    // NameserverNameserversCell
    serverCount: "{count} 个服务器",
    // DNSZonesProvider - Zone notifications
    notifyZoneAddedTitle: "DNS 区域 '{name}'",
    notifyZoneAddedDesc: "DNS 区域添加成功。",
    notifyZoneAddedLoading: "正在添加 DNS 区域...",
    notifyZoneUpdatedTitle: "DNS 区域 '{name}'",
    notifyZoneUpdatedDesc: "DNS 区域更新成功。",
    notifyZoneUpdatedLoading: "正在更新 DNS 区域...",
    notifyZoneDeletedTitle: "DNS 区域 '{name}'",
    notifyZoneDeletedDesc: "DNS 区域删除成功。",
    notifyZoneDeletedLoading: "正在删除 DNS 区域...",
    // DNSZonesProvider - Record notifications
    notifyRecordAddedTitle: "{type} 记录 '{name}'",
    notifyRecordAddedDesc: "DNS 记录添加成功。",
    notifyRecordAddedLoading: "正在添加 DNS 记录...",
    notifyRecordUpdatedTitle: "{type} 记录 '{name}'",
    notifyRecordUpdatedDesc: "DNS 记录更新成功。",
    notifyRecordUpdatedLoading: "正在更新 DNS 记录...",
    notifyRecordDeletedTitle: "{type} 记录 '{name}'",
    notifyRecordDeletedDesc: "DNS 记录删除成功。",
    notifyRecordDeletedLoading: "正在删除 DNS 记录...",
    // DNSZonesProvider - Confirm/Ask dialogs
    confirmDeleteZoneDesc: "确定要删除此区域吗？此操作无法撤销。",
    confirmDeleteRecordTitle: "删除记录 '{name}'？",
    confirmDeleteRecordDesc: "确定要删除此记录吗？此操作无法撤销。",
    askForRecordTitle: "向 '{name}' 添加新记录？",
    askForRecordDesc: "添加 A、AAAA 或 CNAME 记录以控制网络的域名解析。",
    askForRecordCancel: "稍后",
    // DNSZoneModal
    validDomainErrorZone: "请输入有效域名，例如 internal, company.internal 或 intra.example.com",
    // DNSRecordModal
    validIPv4Error: "请输入有效的 IPv4 地址，例如 192.168.1.1",
    validIPv6Error: "请输入有效的 IPv6 地址，例如 2001:0db8:85a3::8a2e:0370:7334",
    validCnameError: "请输入有效域名，例如 example.com 或 server.example.com",
    updateRecordDesc: "更新 '{zone}' 区域的记录",
    addRecordDesc: "向 '{zone}' 区域添加新记录",
    ipv4Placeholder: "192.168.1.1",
    ipv6Placeholder: "2001:0db8:85a3::8a2e:0370:7334",
    cnamePlaceholder: "例如：example.com 或 intra.example.com",
    // TTL plural units
    hours: "小时",
    days: "天",
    // DNSZonesTable
    zoneColumn: "区域",
    recordsColumn: "记录",
    searchDomainColumn: "搜索域名",
    searchZonePlaceholder: "按域名、IP、内容或组搜索...",
    noZonesGroupTitle: "此组尚未在任何区域中使用",
    noZonesGroupDesc: "将此组分配为区域中的分发组，即可在此处查看。",
    noZonesGetStartedDesc: "看起来您还没有任何区域。添加一个区域来控制网络的域名解析。",
    addZone: "添加区域",
    // DNSZonesActionCell
    zoneActionsAria: "区域操作",
    // DNSZonesRecordsCell
    addRecordBtn: "添加",
    // DNSRecordsTable
    contentColumn: "内容",
  },
  networks: {
    title: "网络",
    description: "管理组织的网络和路由",
    pageDescription:
      "无需在每台机器上安装 NetBird，即可访问 LAN 和 VPC 中的内部资源。",
    networkName: "网络名称",
    networkNamePlaceholder: "例如：工程网络",
    createNetwork: "创建网络",
    editNetwork: "编辑网络",
    deleteNetwork: "删除网络",
    confirmDeleteNetwork: "确定要删除此网络吗？",
    noNetworks: "暂无网络",
    searchNetworks: "搜索网络...",
    searchByNameOrDescription: "按网络名称或描述搜索...",
    resources: "资源",
    policies: "策略",
    routingPeers: "路由节点",
    activePoliciesCount: "{count, plural, other {# 个活跃策略}}",
    noActivePolicies: "无活跃策略",
    goToPolicies: "前往策略",
    createResource: "创建资源",
    editResource: "编辑资源",
    deleteResource: "删除资源",
    confirmDeleteResource: "确定要删除此资源吗？",
    resourceName: "资源名称",
    resourceAddress: "地址",
    resourceDescription: "描述",
    noResources: "暂无资源",
    addRoutingPeer: "添加路由节点",
    removeRoutingPeer: "移除路由节点",
    networkRoutes: "网络路由",
    routesDescription:
      "访问其他网络，如局域网和 VPC，无需在每个资源上安装 NetBird。",
    learnMoreAbout: "了解更多关于",
    newNetworksRecommendation:
      "我们建议使用新的网络概念来更轻松地可视化和管理对资源的访问。",
    goToNetworks: "前往网络",
    active: "活跃",
    network: "网络",
    createRoute: "创建路由",
    editRoute: "编辑路由",
    deleteRoute: "删除路由",
    confirmDeleteRoute: "确定要删除此路由吗？",
    routeName: "路由名称",
    routeDescription: "描述",
    routeNetwork: "网络",
    noRoutes: "暂无路由",
    saveChanges: "保存更改",
    addNetwork: "添加网络",
    updateNetwork: "更新网络",
    networkNameLabel: "网络名称",
    networkNameHelp: "为网络提供唯一名称。",
    networkNameModalPlaceholder: "例如：办公室网络",
    networkDescriptionLabel: "描述（可选）",
    networkDescriptionHelp: "写一个简短的描述为此网络添加更多上下文。",
    networkDescriptionPlaceholder: "例如：柏林，Münzstraße 12",
    addResource: "添加资源",
    editResourceBtn: "编辑资源",
    resourceNameLabel: "名称",
    resourceNameHelp: "为资源设置一个易于识别的名称",
    resourceNamePlaceholder: "例如：Postgres 数据库",
    resourceDescriptionLabel: "描述",
    resourceDescriptionHelp: "写一个简短的描述为此资源添加更多上下文。",
    resourceDescriptionPlaceholder: "例如：生产环境、开发环境",
    resourceGroupsLabel: "资源组",
    resourceGroupsHelp:
      "将此资源添加到组（例如数据库、Web 服务器）中，并在访问策略中引用该组以简化管理。",
    resourceGroupsPlaceholder: "添加或选择资源组...",
    accessControl: "访问控制",
    resourceTab: "资源",
    optionalSettings: "可选设置",
    accessControlPolicies: "访问控制策略",
    accessControlPoliciesHelp:
      "定义允许访问此资源的源组。您还可以限制对特定协议和端口的访问。如果没有策略，将无法访问此资源。",
    routeType: "路由类型",
    routeTypeHelp: "选择路由类型以添加网络范围或域名列表。",
    routeTypeNetworkRange: "网络范围",
    routeTypeDomains: "域名",
    networkRange: "网络范围",
    networkRangeHelp: "添加私有 IPv4 或 IPv6 地址或范围",
    networkRangePlaceholder:
      "例如：172.16.0.1, 172.16.0.0/16, 2001:db8::1 或 2001:db8::/64",
    domains: "域名",
    distributionGroups: "分发组",
    networkIdentifier: "网络标识符",
    metric: "度量值",
    metricHelp: "设置度量值以优先选择路由。数值越低的优先级越高。",
    metricPlaceholder: "输入度量值 (1-9999)",
    additionalSettings: "其他设置",
    accessControlGroups: "访问控制组",
    autoApply: "自动应用",

    // NetworkProvider.tsx
    confirmDeleteNetworkTitle: "删除网络「{name}」？",
    confirmDeleteNetworkDesc:
      "所有资源和路由节点都将从该网络中移除。此操作无法撤销。",
    networkDeleted: "网络已成功删除。",
    networkDeleting: "正在删除网络...",
    confirmDeleteResourceTitle: "删除资源「{name}」？",
    confirmDeleteResourceDesc:
      "确定要删除此资源吗？此操作无法撤销。",
    resourceDeleted: "资源已成功删除。",
    resourceDeleting: "正在删除资源...",
    confirmRemoveRouterTitle: "移除此路由节点？",
    confirmRemoveRouterDesc:
      "确定要移除此路由节点吗？",
    removeRouter: "移除 {name}",
    routerRemoved: "路由节点已成功删除。",
    routerRemoving: "正在删除路由节点...",
    confirmAddRoutingPeerTitle: "为「{name}」添加路由节点？",
    confirmAddRoutingPeerDesc:
      "如果没有路由节点，此网络内的资源将无法被任何节点访问。",
    later: "稍后",
    confirmAddResourceTitle: "为「{name}」添加资源？",
    confirmAddResourceDesc:
      "添加资源后，节点即可访问您的网络资源。",
    multiResourceTitle:
      "此策略被多个资源使用",
    multiResourceDesc:
      "此策略将一个或多个资源组作为目标。{action}此策略也将影响以下资源：",
    deletePolicyDesc:
      "确定要删除此策略吗？此操作无法撤销。",
    remainingMore: "+ 其余 {count} 个",

    // NetworkRangeCell.tsx
    exitNode: "出口节点",

    // NetworkActionCell.tsx + network/page.tsx
    viewDetails: "查看详情",
    renameNetwork: "重命名",

    // PolicyCell.tsx
    accessPolicies: "个访问策略",

    // NetworkRoutingPeerCell.tsx + network/page.tsx
    highAvailabilityInactiveText:
      "此网络的高可用性当前{status}。",
    highAvailabilityActiveText:
      "此网络的高可用性{status}。",
    highAvailabilityHelpActive:
      "您可以添加更多路由节点来提高此网络的可用性。",
    highAvailabilityHelpInactive:
      "请添加更多路由节点或包含路由节点的组，以启用此网络的高可用性。",
    highAvailability: "高可用性",
    peerCount: "{count} 个节点",

    // ResourcesTable.tsx
    address: "地址",
    searchResources: "按名称、地址或组搜索...",
    exposed: "已暴露",
    notExposed: "未暴露",
    noAssignedResources: "此组没有已分配的资源",
    noAssignedResourcesDesc:
      "将此组分配给网络中的资源，即可在此处查看。",
    noNetworkResources: "此网络没有资源",
    noNetworkResourcesDesc:
      "向此网络添加资源以控制节点可访问的内容。资源可以是单个 IP、子网或域名。",

    // ResourcesTabContent.tsx
    resourcesTabDescription:
      "向此网络添加资源以控制节点可访问的内容。<link>了解更多</link>",

    // ResourceActionCell.tsx
    resourceEdit: "编辑",
    resourceEnable: "启用",
    resourceDisable: "禁用",
    resourceDelete: "删除",

    // ResourceAddressCell.tsx
    addressCopied: "{address} 已复制到剪贴板",

    // ResourceEnabledCell.tsx
    updateResource: "更新资源",
    resourceNowEnabled: "「{name}」已启用",
    resourceNowDisabled: "「{name}」已禁用",
    updatingResource: "正在更新资源...",

    // ResourceExposeServiceCell.tsx
    expose: "暴露",

    // ResourceSingleAddressInput.tsx
    addressLabel: "地址",
    addressDescription: "输入单个 IP 地址、CIDR 块或域名",
    addressPlaceholder: "地址（IP、CIDR 或域名）",
    domainError:
      "请输入有效域名，例如 service.internal、example.com 或 *.example.com",
    ipCidrError:
      "请输入有效的 IP 或 CIDR，例如 10.0.0.21、192.168.1.0/24、2001:db8::1 或 2001:db8::/64",
    ipAddressTooltip:
      "单个主机地址，例如 10.0.0.1 或 192.168.1.5。用于授予对特定机器或服务的访问权限。",
    cidrBlockTooltip:
      "若要授予对整个子网的访问权限，请使用 CIDR 块。例如 10.0.0.0/24 或 192.168.1.0/24。",
    domainNameTooltip:
      "DNS 域名，例如 service.internal、example.com 或 *.example.com（匹配所有子域名）。",

    // ResourceTypeCell.tsx
    singleIP: "单个 IP",
    ipRange: "IP 范围",

    // NetworkRoutingPeersTabContent.tsx
    routingPeersTabDescription:
      "向此网络添加路由节点以访问此网络内的资源。<link>了解更多</link>",

    // NetworkRoutingPeersTable.tsx
    peer: "节点",
    searchRoutingPeers: "按节点名称或组名称搜索...",
    noRoutingPeers: "此网络没有路由节点",
    noRoutingPeersDesc:
      "向此网络添加路由节点以访问此网络内的资源。",

    // RoutingPeersActionCell.tsx
    routerEdit: "编辑",
    routerEnable: "启用",
    routerDisable: "禁用",
    remove: "移除",
    networkRoutingPeer: "网络路由节点",

    // RoutingPeerMasqueradeSwitch.tsx
    masquerade: "Masquerade",
    masqueradeHelp:
      "允许访问您的私有网络，无需在本地路由器或其他设备上配置路由。",
    masqueradeTooltip:
      "非 Linux 路由节点需要启用 Masquerade。",
    masqueradeEnabled: "Masquerade 已启用",
    masqueradeDisabled: "Masquerade 已禁用",
    updatingMasquerade: "正在更新 Masquerade...",
    masqueradeNonLinuxWarning:
      "组 <important>{groupName}</important> 包含至少一个非 Linux 节点。禁用的 Masquerade 对非 Linux 路由节点无效。",

    // NetworkRoutesDeprecationInfo.tsx
    routesDeprecationInfo:
      "网络路由将被弃用，并由网络功能替代。",

    // NetworkModal.tsx
    modalAccessDescription:
      "通过添加网络来访问局域网和 VPC 中的内部资源。",
    networkCreated: "网络创建成功。",
    networkCreating: "正在创建网络...",
    networkUpdated: "网络更新成功。",
    networkUpdating: "正在更新网络...",

    // NetworkResourceModal.tsx
    resourceCreated: "资源已创建",
    resourceCreatedDesc:
      "资源「{name}」已成功创建。",
    resourceCreating: "正在创建资源...",
    resourceUpdated: "资源已更新",
    resourceUpdatedDesc:
      "资源「{name}」已成功更新。",
    resourceUpdating: "正在更新资源...",
    nameAlreadyExists:
      "此名称的资源已存在，请使用其他名称。",
    noPoliciesConfirmTitle:
      "未配置访问控制策略",
    noPoliciesConfirmDesc:
      "如果没有访问控制策略，此资源将无法被任何节点访问。您也可以稍后创建策略。确定要继续吗？",
    resourceAddNewDesc: '向"{networkName}"添加新资源',
    resourceGroupsLearnMore:
      "了解关于<link>资源</link>的更多信息",

    // NetworkResourceAccessControl.tsx
    editPolicy: "编辑策略",
    deletePolicy: "删除策略",

    // ResourceGroupModal.tsx
    resourceGroupsModalTitle: "资源组",
    resourceGroupsModalDesc:
      "将此资源添加到组（例如数据库、Web 服务器）中，并在访问策略中引用该组以简化管理。",
    saveGroups: "保存组",
    groupUpdated: "「{name}」的组已更新",
    updatingGroups: "正在更新资源组...",

    // ResourcesTable column headers
    resourceColumn: "资源",
    policiesColumn: "策略",
  },
  postureChecks: {
    title: "姿态检查",
    description: "定义姿态检查以确保节点满足安全要求",
    descriptionOptional: "描述（可选）",
    createPostureCheck: "创建姿态检查",
    editPostureCheck: "编辑姿态检查",
    deletePostureCheck: "删除姿态检查",
    confirmDelete: "确定要删除此姿态检查吗？",
    name: "名称",
    namePlaceholder: "例如：操作系统检查",
    checkDescription: "描述",
    checks: "检查项",
    addCheck: "添加检查",
    removeCheck: "删除检查",
    noPostureChecks: "暂无姿态检查",
    searchPlaceholder: "搜索姿态检查...",
    searchByNameAndDescription: "按名称和描述搜索...",
    operatingSystem: "操作系统",
    geoLocation: "地理位置",
    peerNetworkRange: "节点网络范围",
    osVersion: "操作系统版本",
    minVersion: "最低版本",
    maxVersion: "最高版本",
    country: "国家",
    selectCountry: "选择国家...",
    networkRange: "网络范围",
    pageDescription: "定义姿态检查以确保节点满足安全要求。",
    saveChanges: "保存更改",
    updatePostureCheck: "更新姿态检查",
    nameAndDescription: "名称与描述",
    postureCheckName: "姿态检查名称",
    postureCheckNameHelp: "为姿态检查设置一个易于识别的名称。",
    postureCheckNamePlaceholder: "例如：NetBird 版本 > 0.25.0",
    postureCheckDescriptionHelp: "写一个简短的描述为此策略添加更多上下文。",
    postureCheckDescriptionPlaceholder:
      "例如：检查 NetBird 版本是否大于 0.25.0",
    netBirdClientVersion: "NetBird 客户端版本",
    netBirdClientVersionHelp: "根据特定的 NetBird 客户端版本限制对节点的访问。",
    netBirdClientVersionCheck: "客户端版本检查",
    minimumRequiredVersion: "最低所需版本",
    minimumRequiredVersionHelp:
      "仅具有指定最低 NetBird 客户端版本的对等节点才能访问网络。",
    minimumRequiredVersionPlaceholder: "例如：0.25.0",
    minimumRequiredVersionError:
      "请输入有效版本，例如：0.2, 0.2.0, 0.2.0-alpha.1",
    countryAndRegion: "国家与地区",
    countryAndRegionHelp: "根据国家或地区限制网络中的访问。",
    countryAndRegionCheck: "国家与地区检查",
    geoLite2License: "此检查包含由 MaxMind 创建的 GeoLite2 数据，来源于",
    allowOrBlockLocation: "允许或阻止位置",
    chooseAllowOrBlock: "选择您希望允许或阻止来自特定国家或地区的访问",
    addLocation: "添加位置",
    learnMoreAbout: "了解更多关于",
    operatingSystemHelp: "根据操作系统限制网络中的访问。",
    operatingSystemCheck: "操作系统检查",
    allVersions: "所有版本",
    equalOrGreaterThan: "等于或大于",
    allowOrBlock: "允许或阻止",
    allowOrBlockOSHelp: "选择您希望允许或阻止的操作系统。",
    selectVersion: "选择版本...",
    versionPlaceholder: "例如：6.0.0",
    useCustomVersion: "使用自定义版本号",
    useCustomVersionHelp: "如果需要更多控制，请使用自定义版本号。",
    kernelVersion: "内核版本",
    process: "进程",
    processHelp: "根据对等节点上正在运行的进程限制网络中的访问。",
    processCheck: "进程检查",
    processes: "进程",
    processesHelp:
      "添加进程的可执行文件路径。您可以为 Linux、macOS 和 Windows 定义路径。仅当进程在系统上运行时，对等节点才允许连接。",
    addProcess: "添加进程",
    linuxPathPlaceholder: "/usr/local/bin/netbird",
    macPathPlaceholder: "/Applications/NetBird.app/Contents/MacOS/netbird",
    windowsPathPlaceholder: "C:\\ProgramData\\NetBird\\netbird.exe",
    validMacPath: "请输入有效的 macOS 文件路径",
    validUnixPath: "请输入有效的 Unix 文件路径",
    validWindowsPath: "请输入有效的 Windows 文件路径",
    peerNetworkRangeHelp: "通过允许或阻止对等节点网络范围来限制访问。",
    peerNetworkRangeCheck: "对等节点网络范围检查",
    allowOrBlockRanges: "允许或阻止范围",
    allowOrBlockRangesHelp: "选择您希望允许或阻止特定对等节点网络范围",
    addNetworkRange: "添加网络范围",
    validCidr: "请输入有效的 CIDR，例如：192.168.1.0/24",
    cidrPlaceholder: "例如：172.16.0.0/16",
    noChecks: "您还没有添加任何态势检查",
    noChecksDescription:
      "添加各种态势检查以进一步限制网络中的访问。例如，仅允许具有特定 NetBird 客户端版本、操作系统或位置的客户端连接。",
    browseChecks: "浏览检查",
    newPostureCheck: "新建态势检查",
    postureCheck: "态势检查",
    addPostureChecks: "添加态势检查（{count, number}）",
    usePostureChecks:
      "使用态势检查进一步限制网络中的访问。",
    removePostureCheck: "移除态势检查",
    confirmDeleteTitle: "删除「{name}」？",
    confirmDeleteDescription:
      "确定要删除此态势检查吗？此操作无法撤销。",
    assignedToPolicyCannotDelete:
      "此态势检查已分配给策略，无法删除。请先从所有策略中移除该态势检查后再删除。",
    postureCheckDeleted: "态势检查已成功删除",
    deletingPostureCheck: "正在删除态势检查...",
    disableThisCheck: "禁用此检查？",
    disableCheckConfirm:
      "确定要禁用此检查吗？该检查的所有设置都将丢失。",
    on: "开启",
    off: "关闭",
  },
  setupKeys: {
    title: "安装密钥",
    description: "管理安装密钥以自动加入节点",
    createSetupKey: "创建安装密钥",
    editSetupKey: "编辑安装密钥",
    deleteSetupKey: "删除安装密钥",
    confirmDelete: "确定要删除此安装密钥吗？",
    name: "名称",
    namePlaceholder: "例如：生产密钥",
    expires: "过期时间",
    usageLimit: "使用次数限制",
    usageCount: "已使用次数",
    unlimited: "无限制",
    never: "永不过期",
    ephemeral: "临时",
    pinnedOwner: "绑定所有者",
    autoAssignGroups: "自动分配组",
    lastUsed: "上次使用",
    nameAndKey: "名称与密钥",
    revoked: "已撤销",
    active: "活跃",
    expired: "已过期",
    copyKey: "复制密钥",
    keyCopied: "安装密钥已复制到剪贴板",
    key: "密钥",
    copyWarning: "这是密钥唯一会显示的时间。请立即复制并妥善保管。",
    created: "安装密钥 '{name}' 创建成功",
    updated: "安装密钥 '{name}' 更新成功",
    deleted: "安装密钥 '{name}' 已删除",
    noSetupKeys: "暂无安装密钥",
    searchPlaceholder: "搜索安装密钥...",
    createTitle: "创建新的安装密钥",
    createDescription: "使用此密钥在网络中注册新设备",
    nameHelp: "为密钥设置一个易于识别的名称",
    usageLimitHelp: "例如，设置为 30 表示允许注册 30 台设备",
    usageLimitSuffix: "台设备",
    expiresIn: "过期时间",
    expiresInHelp: "密钥过期前的天数。",
    expiresInHelpEmpty: "留空表示永不过期。",
    expiresInSuffix: "天",
    all: "全部",
    oneOff: "一次性",
    reusable: "可重复使用",
    status: "状态",
    groupNotUsedTitle: "此组尚未在任何安装密钥中使用",
    groupNotUsedDescription:
      "在创建新的安装密钥时分配此组，以便在此处查看它们。",
    getStartedDescription:
      "添加安装密钥以在您的网络中注册新设备。该密钥在初始设置期间将设备链接到您的账户。",
    learnMore: "了解更多关于",
    groups: "组",
    usage: "使用情况",
    lastUsedOn: "上次使用于",
    // SetupKeyActionCell
    revoke: "撤销",
    openActionsMenu: "打开操作菜单",
    revokeConfirmTitle: "撤销安装密钥「{name}」？",
    revokeConfirmDescription:
      "确定要撤销此安装密钥吗？此操作无法撤销。",
    revokeSuccessDescription: "安装密钥已成功撤销",
    revokeLoading: "正在撤销安装密钥...",
    deleteConfirmTitle: "删除安装密钥「{name}」？",
    deleteConfirmDescription:
      "确定要删除此安装密钥吗？此操作无法撤销。",
    deleteSuccessDescription: "安装密钥已成功删除",
    deleteLoading: "正在删除安装密钥...",
    // SetupKeyGroupsCell
    autoAssignedGroups: "自动分配的组",
    autoAssignedGroupsDescription:
      "使用此密钥注册的节点将自动分配这些组",
    groupsSavedDescription: "安装密钥的组已成功保存",
    groupsSaving: "正在保存安装密钥的组...",
  },
  activity: {
    title: "活动",
    description: "查看审计事件和活动日志",
    auditEvents: "审计事件",
    auditEventsDescription:
      "审计整个网络中的配置变更、访问策略更新以及节点注册和登录事件。",
    noEvents: "暂无事件",
    searchPlaceholder: "搜索事件...",
    searchByAuditNameUserPeerMeta: "按审计名称、用户、节点、元数据搜索...",
    actor: "操作者",
    action: "操作",
    target: "目标",
    timestamp: "时间戳",
    ipAddress: "IP 地址",
    details: "详情",
    code: "代码",

    // UI strings used across activity components
    allEventTypes: "所有事件类型",
    allUsers: "所有用户",
    includeAllUsers: "包含所有用户",
    searchEvent: "搜索事件...",
    searchUser: "搜索用户...",
    noUsersAvailable: "没有可选择的用户。",
    noUsersMatching: "没有符合条件的用户。",
    system: "系统",
    external: "外部",
    serviceUser: "服务用户",
    typeCount: "{count} 种类型",
    eventCount: "{count} 个事件",
    activityCode: "活动代码",
    meta: "元数据",
    from: "来自",
    unknown: "未知",

    // Activity event descriptions (used by ActivityDescription.tsx)

    // Setup Key
    desc_setupkey_revoke:
      "安装密钥 <Value>{name}</Value>（密钥：<Value>{key}</Value>）已被撤销",
    desc_setupkey_delete:
      "安装密钥 <Value>{name}</Value>（密钥：<Value>{key}</Value>）已被删除",
    desc_setupkey_add:
      "安装密钥 <Value>{name}</Value>（密钥：<Value>{key}</Value>）已创建",
    desc_peer_setupkey_add:
      "节点 <Value>{name}</Value><peerConnectionInfo></peerConnectionInfo>已通过 NetBird IP <Value>{ip}</Value> 添加，使用安装密钥 <Value>{setup_key_name}</Value>",
    desc_setupkey_group_delete:
      "组 <Value>{group}</Value> 已从安装密钥 <Value>{setupkey}</Value> 中移除",
    desc_setupkey_group_add:
      "组 <Value>{group}</Value> 已添加到安装密钥 <Value>{setupkey}</Value>",

    // Dashboard
    desc_dashboard_login:
      "<Value>{username}</Value> 登录到仪表板",

    // Policy
    desc_policy_update: "策略 <Value>{name}</Value> 已更新",
    desc_policy_delete: "策略 <Value>{name}</Value> 已被删除",
    desc_policy_add: "策略 <Value>{name}</Value> 已创建",

    // Route
    desc_route_delete_domains:
      "路由 <Value>{name}</Value>（域名：<Value>{domains}</Value>）已被删除",
    desc_route_delete_range:
      "路由 <Value>{name}</Value>（范围：<Value>{network_range}</Value>）已被删除",
    desc_route_update_domains:
      "路由 <Value>{name}</Value>（域名：<Value>{domains}</Value>）已更新",
    desc_route_update_range:
      "路由 <Value>{name}</Value>（范围：<Value>{network_range}</Value>）已更新",
    desc_route_add_domains:
      "路由 <Value>{name}</Value>（域名：<Value>{domains}</Value>）已创建",
    desc_route_add_range:
      "路由 <Value>{name}</Value>（范围：<Value>{network_range}</Value>）已创建",

    // User / Peer
    desc_user_peer_delete:
      "节点 <Value>{name}</Value><peerConnectionInfo></peerConnectionInfo>（NetBird IP：<Value>{ip}</Value>）已被删除",
    desc_user_peer_add:
      "节点 <Value>{name}</Value><peerConnectionInfo></peerConnectionInfo>已通过 NetBird IP <Value>{ip}</Value> 添加",
    desc_user_peer_update:
      "节点 <Value>{name}</Value><peerConnectionInfo></peerConnectionInfo>（NetBird IP：<Value>{ip}</Value>）已更新",
    desc_user_join: "用户 <Value>{username}</Value> 加入了 NetBird",
    desc_user_invite:
      "<Value>{username}</Value> <Value>{email}</Value> 已被邀请。",
    desc_user_create:
      "<Value>{username}</Value> <Value>{email}</Value> 已由 <Value>{initiator}</Value> 创建",
    desc_user_group_add:
      "组 <Value>{group}</Value> 已添加到用户 <Value>{username}</Value>",
    desc_user_block:
      "用户 <Value>{username}</Value> <Value>{email}</Value> 已被阻止",
    desc_user_unblock:
      "用户 <Value>{username}</Value> <Value>{email}</Value> 已解除阻止",
    desc_user_delete:
      "用户 <Value>{username}</Value> <Value>{email}</Value> 已被删除",
    desc_user_group_delete:
      "组 <Value>{group}</Value> 已从用户 <Value>{username}</Value> <Value>{email}</Value> 中移除",
    desc_user_role_update:
      "用户 <Value>{username}</Value> <Value>{email}</Value> 的角色已更新为 <Value>{role}</Value>",
    desc_user_approve:
      "用户 <Value>{username}</Value> <Value>{email}</Value> 已获批准",
    desc_user_reject:
      "用户 <Value>{username}</Value> <Value>{email}</Value> 已被拒绝",
    desc_user_password_change:
      "用户 <Value>{username}</Value> <Value>{email}</Value> 的密码已更改",

    // Invite Link
    desc_user_invite_link_create:
      "已为 <Value>{username}</Value> <Value>{email}</Value> 创建邀请链接",
    desc_user_invite_link_accept:
      "邀请链接已被 <Value>{username}</Value> <Value>{email}</Value> 接受",
    desc_user_invite_link_regenerate:
      "已为 <Value>{username}</Value> <Value>{email}</Value> 重新生成邀请链接",
    desc_user_invite_link_delete:
      "已删除 <Value>{username}</Value> <Value>{email}</Value> 的邀请链接",

    // Service User
    desc_service_user_create: "服务用户 <Value>{name}</Value> 已创建",
    desc_service_user_delete: "服务用户 <Value>{name}</Value> 已被删除",

    // Peer
    desc_peer_group_delete:
      "组 <Value>{group}</Value> 已从 NetBird IP 为 <Value>{peer_ip}</Value> 的节点中移除",
    desc_peer_group_add:
      "组 <Value>{group}</Value> 已添加到 NetBird IP 为 <Value>{peer_ip}</Value> 的节点",
    desc_peer_login_expire:
      "节点 <Value>{name}</Value> 的登录已过期",
    desc_peer_ssh_disable:
      "节点 <Value>{name}</Value> 的 SSH 服务器已禁用",
    desc_peer_ssh_enable:
      "节点 <Value>{name}</Value> 的 SSH 服务器已启用",
    desc_peer_login_expiration_disable:
      "节点 <Value>{name}</Value> 的登录过期已禁用",
    desc_peer_login_expiration_enable:
      "节点 <Value>{name}</Value> 的登录过期已启用",
    desc_peer_rename:
      "NetBird IP 为 <Value>{ip}</Value> 的节点已重命名为 <Value>{name}</Value>",
    desc_peer_approve:
      "NetBird IP 为 <Value>{ip}</Value> 的节点已获批准",
    desc_peer_ip_update:
      "节点 <Value>{name}</Value> 的 IP 地址已从 <Value>{old_ip}</Value> 更新为 <Value>{ip}</Value>",
    desc_peer_user_add:
      "节点 <Value>{name}</Value><peerConnectionInfo></peerConnectionInfo>已通过 NetBird IP <Value>{ip}</Value> 添加",

    // Group
    desc_group_add: "组 <Value>{name}</Value> 已创建",
    desc_group_delete: "组 <Value>{name}</Value> 已被删除",
    desc_group_update:
      "组 <Value>{old_name}</Value> 已重命名为 <Value>{new_name}</Value>",

    // Account
    desc_account_create: "<Value>{initiator}</Value> 创建了账户",
    desc_account_setting_peer_login_expiration_update:
      "全局登录过期已更新",
    desc_account_setting_peer_login_expiration_enable:
      "全局登录过期已启用",
    desc_account_setting_peer_login_expiration_disable:
      "全局登录过期已禁用",
    desc_account_network_range_update:
      "账户网络范围已从 <Value>{old_network_range}</Value> 更新为 <Value>{new_network_range}</Value>",

    // Nameserver
    desc_nameserver_group_add: "名称服务器 <Value>{name}</Value> 已添加",
    desc_nameserver_group_delete: "名称服务器 <Value>{name}</Value> 已被删除",
    desc_nameserver_group_update: "名称服务器 <Value>{name}</Value> 已更新",

    // Personal Access Token
    desc_personal_access_token_create:
      "用户 <Value>{username}</Value> 的访问令牌 <Value>{name}</Value> 已创建",
    desc_personal_access_token_delete:
      "用户 <Value>{username}</Value> 的访问令牌 <Value>{name}</Value> 已被删除",

    // Integration
    desc_integration_create_platform:
      "<Value>{platform}</Value> 集成已创建",
    desc_integration_create: "集成已创建",
    desc_integration_delete_platform:
      "<Value>{platform}</Value> 集成已被删除",
    desc_integration_delete: "集成已被删除",
    desc_integration_update_platform:
      "<Value>{platform}</Value> 集成已更新",
    desc_integration_update: "集成已更新",

    // DNS
    desc_dns_setting_disabled_management_group_add:
      "组 <Value>{group}</Value> 已添加到禁用的 DNS 组设置",
    desc_dns_setting_disabled_management_group_delete:
      "组 <Value>{group}</Value> 已从禁用的 DNS 组设置中移除",

    // Posture Checks
    desc_posture_check_updated:
      "姿态检查 <Value>{name}</Value> 已更新",
    desc_posture_check_created:
      "姿态检查 <Value>{name}</Value> 已创建",
    desc_posture_check_deleted:
      "姿态检查 <Value>{name}</Value> 已被删除",
    desc_transferred_owner_role: "所有者角色已转让",

    // EDR / Integrated Validator
    desc_integrated_validator_api_created:
      "<Value>{platform}</Value> 集成已创建",
    desc_integrated_validator_api_updated:
      "<Value>{platform}</Value> 集成已更新",
    desc_integrated_validator_api_deleted:
      "<Value>{platform}</Value> 集成已被删除",
    desc_integrated_validator_host_check_approved:
      "节点已通过 <Value>{platform}</Value> 集成批准",
    desc_integrated_validator_host_check_denied:
      "节点已被 <Value>{platform}</Value> 集成拒绝",
    desc_integrated_validator_peer_compliance_bypassed:
      "NetBird IP 为 <Value>{ip}</Value> 的节点 <Value>{name}</Value> 已绕过 <Value>{platform}</Value> 的合规检查{original_reason}",
    desc_integrated_validator_peer_compliance_bypass_revoked:
      "NetBird IP 为 <Value>{ip}</Value> 的节点 <Value>{name}</Value> 的合规绕过已对 <Value>{platform}</Value> 撤销",
    desc_compliance_original_reason:
      "（原始不合规原因：<Value>{reason}</Value>）",

    // Resource
    desc_resource_group_add:
      "组 <Value>{resource_name}</Value> 已添加到资源 <Value>{name}</Value>",
    desc_resource_group_delete:
      "组 <Value>{resource_name}</Value> 已从资源 <Value>{name}</Value> 中移除",

    // Reverse Proxy (peer expose)
    desc_service_peer_expose:
      "节点 <Value>{peer_name}</Value> 暴露了服务 <Value>{domain}</Value>，认证状态：<Value>{auth}</Value>",
    desc_service_peer_unexpose:
      "节点 <Value>{peer_name}</Value> 取消了服务 <Value>{domain}</Value> 的暴露",
    desc_service_peer_expose_expire:
      "节点 <Value>{peer_name}</Value> 暴露的服务 <Value>{domain}</Value> 因续期过期已被移除",

    // Networks
    desc_network_resource_create:
      "资源 <Value>{name}</Value> 已为网络 <Value>{network_name}</Value> 创建",
    desc_network_resource_update:
      "资源 <Value>{name}</Value> 已为网络 <Value>{network_name}</Value> 更新",
    desc_network_resource_delete:
      "资源 <Value>{name}</Value> 已从网络 <Value>{network_name}</Value> 中删除",
    desc_network_router_create:
      "已为网络 <Value>{network_name}</Value> 创建路由节点",
    desc_network_router_delete:
      "已从网络 <Value>{network_name}</Value> 中删除路由节点",
    desc_network_router_update:
      "已更新网络 <Value>{network_name}</Value> 的路由节点",
    desc_network_create:
      "名为 <Value>{name}</Value> 的网络已创建",
    desc_network_delete:
      "名为 <Value>{name}</Value> 的网络已被删除",
    desc_network_update:
      "名为 <Value>{name}</Value> 的网络已更新",

    // Jobs
    desc_peer_job_create:
      "已为节点 <Value>{for_peer_name}</Value> 创建远程任务 <Value>{job_type}</Value>",

    // Flow Settings
    desc_account_settings_extra_flow_group_remove:
      "流量事件限制组 <Value>{group_name}</Value> 已移除",
    desc_account_settings_extra_flow_group_add:
      "流量事件限制组 <Value>{group_name}</Value> 已添加",

    // Identity Provider
    desc_identityprovider_create:
      "身份提供者 <Value>{name}</Value> 已创建",
    desc_identityprovider_update:
      "身份提供者 <Value>{name}</Value> 已更新",
    desc_identityprovider_delete:
      "身份提供者 <Value>{name}</Value> 已被删除",

    // Service (proxy cluster)
    desc_service_create:
      "集群 <Value>{proxy_cluster}</Value> 中的服务 <Value>{domain}</Value> 已创建，认证方式：<Value>{auth}</Value>",
    desc_service_update:
      "集群 <Value>{proxy_cluster}</Value> 中的服务 <Value>{domain}</Value> 已更新，认证方式：<Value>{auth}</Value>",
    desc_service_delete:
      "集群 <Value>{proxy_cluster}</Value> 中的服务 <Value>{domain}</Value> 已被删除",

    // Reseller / Distributor
    desc_reseller_msp_created:
      "客户 <Value>{msp_name}</Value>（域名：<Value>{msp_domain}</Value>）已创建",
    desc_reseller_activated: "分销商账户已激活",
    desc_reseller_msp_deleted:
      "客户 <Value>{msp_name}</Value>（域名：<Value>{msp_domain}</Value>）已被删除",
    desc_reseller_msp_unlinked:
      "客户 <Value>{msp_name}</Value>（域名：<Value>{msp_domain}</Value>）已取消关联",
    desc_reseller_msp_invite_requested:
      "已为客户 <Value>{msp_name}</Value>（域名：<Value>{msp_domain}</Value>）请求邀请",
    desc_reseller_msp_invite_accepted:
      "客户 <Value>{msp_name}</Value>（域名：<Value>{msp_domain}</Value>）已接受邀请",
    desc_reseller_msp_invite_declined:
      "客户 <Value>{msp_name}</Value>（域名：<Value>{msp_domain}</Value>）已拒绝邀请",
    desc_reseller_msp_updated:
      "客户 <Value>{msp_name}</Value>（域名：<Value>{msp_domain}</Value>）已更新",
  },
  controlCenter: {
    title: "控制中心",
    description: "网络概览",
    totalPeers: "节点总数",
    activePeers: "活跃节点",
    totalPolicies: "策略总数",
    totalGroups: "组总数",
    totalUsers: "用户总数",
    totalNetworks: "网络总数",
    networkOverview: "网络概览",
  },
  notifications: {
    title: "通知",
    description: "选择在您的账户中发生重要事件时的通知方式。",
    learnMore: "了解更多关于",
    notificationChannels: "通知渠道",
    inOurDocumentation: "在我们的文档中。",
    beta: "测试版",
    email: "电子邮件",
    slack: "Slack",
    webhook: "Webhook",
    emailNotifications: "电子邮件通知",
    slackNotifications: "Slack 通知",
    webhookNotifications: "Webhook 通知",
    addedSuccessfully: "已成功添加",
    removedSuccessfully: "已成功移除",
    adding: "正在添加",
    removing: "正在移除",
    enableEmailChannel: "启用电子邮件渠道",
    enableEmailChannelHelp: "启用或禁用您账户的所有电子邮件通知",
    emailAddresses: "电子邮件地址",
    emailAddressesHelp: "添加一个或多个应接收通知的电子邮件地址",
    emailPlaceholder: "例如 hello@company.com",
    add: "添加",
    connectNetBirdWithSlack: "将 NetBird 与 Slack 连接",
    slackDescription: "通过传入 Webhook 直接在您的 Slack 频道中接收 NetBird 通知事件。",
    createSlackApp: "创建 Slack 应用",
    open: "打开",
    slackAppManagement: "Slack 应用管理",
    click: "点击",
    createAnApp: "创建应用",
    andChoose: "并选择",
    fromScratch: "从头开始",
    setAppNameTo: "将应用名称设置为",
    netBirdNotifications: "NetBird 通知",
    andSelectWorkspace: "并选择您的工作区。之后点击",
    createApp: "创建应用",
    configureIncomingWebhook: "配置传入 Webhook",
    inAppSettings: "在应用设置中，转到",
    incomingWebhooks: "传入 Webhook",
    andToggle: "并切换",
    activateIncomingWebhooks: "激活传入 Webhook",
    to: "到",
    on: "开启",
    addNewWebhook: "添加新 Webhook",
    andSelectChannel: "并选择您要接收通知的频道，然后确认",
    allow: "允许",
    copyGenerated: "复制生成的",
    webhookUrl: "Webhook URL",
    andPasteBelow: "并粘贴到下方。",
    slackPlaceholder: "https://hooks.slack.com/services/T000/B000/XXXX",
    webhookConfiguration: "Webhook 配置",
    connectWebhook: "连接 Webhook",
    webhookUpdateDescription: "更新您的 Webhook 端点和身份验证设置。",
    webhookConnectDescription: "配置 Webhook 端点以接收通知事件。",
    general: "常规",
    headers: "标头",
    webhookUrlHelp: "通知事件将通过 POST 请求发送到的完整 HTTP(S) URL。",
    saveChanges: "保存更改",
    continue: "继续",
    back: "返回",
    connect: "连接",
    connected: "已连接",
    updated: "已更新",
    disconnected: "已断开连接",
    deleted: "已删除",
    connecting: "正在连接",
    updating: "正在更新",
    disconnecting: "正在断开连接",
    deleting: "正在删除",
    disconnectSlack: "断开 Slack 连接",
    disconnectSlackConfirm: "您确定要断开 Slack 连接吗？您将不再在 Slack 频道中接收通知。",
    deleteWebhookConnection: "删除 Webhook 连接",
    deleteWebhookConfirm: "您确定要删除此 Webhook 连接吗？此操作无法撤消。",
    notConnected: "未连接",
    edit: "编辑",
    delete: "删除",
    disabled: "已禁用",
    enabled: "已启用",
    allNotifications: "所有通知",
    notificationsCount: "{active} 项，共 {total} 项通知",
    recipient: "收件人",
    recipients: "收件人",
    peerNotifications: "节点通知",
    userNotifications: "用户通知",
    integrationNotifications: "集成通知",
    pendingApproval: "待审批",
    peerPendingApprovalHelp: "当节点等待批准加入网络时通知",
    peerAdded: "节点已添加",
    peerAddedHelp: "当新节点添加到网络时通知",
    routingPeerDisconnected: "路由节点已断开连接",
    routingPeerDisconnectedHelp: "当路由节点失去连接时通知",
    routingPeerDeleted: "路由节点已删除",
    routingPeerDeletedHelp: "当路由节点从网络中删除时通知",
    userPendingApproval: "用户待审批",
    userPendingApprovalHelp: "当用户等待批准加入网络时通知",
    userJoined: "用户已加入",
    userJoinedHelp: "当新用户加入账户时通知",
    serviceUserCreated: "服务用户已创建",
    serviceUserCreatedHelp: "当新服务用户创建时通知",
    idpSyncTokenExpired: "IdP 同步令牌已过期",
    idpSyncTokenExpiredHelp: "当 IdP 同步令牌过期且需要续期时通知",
    edrSyncTokenExpired: "EDR 同步令牌已过期",
    edrSyncTokenExpiredHelp: "当 EDR 同步令牌过期且需要续期时通知",
  },
  invoices: {
    title: "发票",
    description: "查看并导出所有可用发票",
    date: "日期",
    type: "类型",
    searchPlaceholder: "按发票编号或日期搜索...",
    noInvoicesTitle: "您没有任何发票",
    noInvoicesDescription: "发票在每个计费周期结束时创建。一旦可用，您将在此处看到它们。",
    downloadPDF: "下载为 PDF",
    downloadCSV: "下载为 CSV",
    downloadInvoicePDF: "下载发票 (PDF)",
    downloadInvoiceCSV: "下载发票 (CSV)",
    redirectingToStripe: "正在重定向到 Stripe 以下载发票...",
    gettingInvoice: "正在获取此计费周期的发票...",
    account: "账户",
    customers: "客户",
    tenants: "租户",
  },
  webhooks: {
    endpointUrl: "端点 URL",
    enterEndpointUrl: "输入您的端点 URL",
    authentication: "身份验证",
    authHelpText: "选择您首选的端点身份验证方法。",
    urlPlaceholder: "https://api.example.com/webhook",
    urlError: "请输入有效的 URL，例如 https://api.example.com/webhook",
    httpHeaders: "HTTP 请求头（可选）",
    httpHeadersHelp: "如果您的端点需要额外的请求头，您可以在此处添加。",
    addHeader: "添加请求头",
    headerName: "名称",
    headerValue: "值",
    headerNamePlaceholder: "例如：Authorization",
    headerValuePlaceholder: "例如：Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InVURWw0SmJieUU4S00zY3NwcmdUSSJ9",
    headerKeyRequired: "提供值时，请求头键是必需的",
    headerNameRequired: "提供值时，请求头名称是必需的",
    authHeaderConflict: "警告：您已添加 'Authorization' 请求头。这将覆盖上一步中的 {authType} 身份验证。请移除 'Authorization' 请求头。",
    basicAuth: "基本身份验证",
    bearerToken: "Bearer 令牌",
    noAuthentication: "无身份验证",
    customAuthentication: "自定义身份验证",
    username: "用户名",
    password: "密码",
    httpHeaderNameValue: "HTTP 请求头名称和值",
    customAuthHelp: "指定自定义身份验证的请求头名称和值",
    customAuthNamePlaceholder: "例如：X-API-Key",
    customAuthValuePlaceholder: "例如：AIiaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe",
  },
  survey: {
    loveToHear: "我们期待您的反馈",
    improveHelp: "通过分享您如何发现 NetBird 来帮助我们改进。您的反馈对我们至关重要。",
    howDidYouHear: "您是如何了解到 NetBird 的？",
    selectOption: "请选择一个选项...",
    submitContinue: "提交并继续",
  },
  awsMarketplace: {
    thanksRegistering: "感谢您通过 AWS Marketplace 注册！",
    activeStripePlan: "您似乎已经有一个活跃的订阅。要使用 AWS 作为账单提供商，请联系我们的支持团队。",
    flexiblePricing: "通过我们的灵活定价，您只需为 AWS 账户中的活跃用户和活动节点付费。请选择适合您需求的计划。",
    changePlanLater: "您随时可以更改计划。",
    getSupport: "获取支持",
    continueDashboard: "继续到仪表板",
    logout: "退出登录",
    subscribeTo: "订阅",
    downgradeTo: "降级到",
  },
  routes: {
    // Table columns
    colName: "名称",
    colMetric: "度量值",
    colDistributionGroups: "分发组",
    colAccessControlGroups: "访问控制组",
    colAutoApply: "自动应用",
    tableTitle: "网络路由",

    // Create route modal - header
    setupExitNode: "设置出口节点",
    addExitNode: "添加出口节点",
    createNewRoute: "创建新路由",
    routeAllThroughPeer: "通过节点 '{name}' 路由所有流量",
    routeAllInternet: "通过一个节点路由所有互联网流量",
    createDescription: "添加网络路由以访问局域网和 VPC。",

    // Create route modal - create policy prompt
    createPolicyConfirm:
      "是否要为路由 '{name}' 创建新的访问控制策略？",
    createPolicyDescription:
      "您已为此路由添加了一个或多个访问控制组。这些组允许您通过在访问策略中使用它们来限制对此路由的访问。",
    createPolicyConfirmText: "创建策略",
    createPolicyCancelText: "稍后",

    // Tabs
    tabRoute: "路由",
    tabGroups: "组",
    tabNameDescription: "名称与描述",
    tabSettings: "设置",

    // Domains section
    addDomainsHelp:
      "添加动态解析为一个或多个 IPv4 地址的域名。最多可添加 32 个域名。",
    addDomain: "添加域名",
    keepRoutesTooltip:
      "负载均衡系统的 DNS 记录经常变化。保留已解析的地址可确保与活跃资源的持续连接不受中断。",
    keepRoutes: "保留路由",
    keepRoutesHelp:
      "在 IP 地址更新后保留之前已解析的路由，以维持稳定的连接。",

    // Routing peer section
    assignSinglePeer:
      "指定单个节点作为{type}的路由节点",
    assignPeerGroup:
      "指定一个节点组作为{type}",
    exitNode: "出口节点",
    exitNodes: "出口节点",
    networkRoute: "网络路由",
    routingPeers: "路由节点",

    // Distribution groups help
    routeAllTrafficPeer:
      "通过此节点为以下组路由所有互联网流量",
    routeAllTrafficPeers:
      "通过节点为以下组路由所有互联网流量",
    advertiseRouteToGroups:
      "将此路由广播给属于以下组的节点",

    // Access control groups
    accessControlGroupsOptional: "访问控制组（可选）",
    accessControlGroupsHelpCreate:
      "这些组允许您限制对此路由的访问。在创建访问策略时，只需将这些组用作目标即可。",
    accessControlGroupsHelpUpdate:
      "这些组可对网络中的内部服务进行更精细的控制。它们可在访问控制策略中用于限制和控制对此路由的访问。",

    // General / Name & Description
    networkIdentifierHelp:
      "添加将分配给每个设备的唯一网络标识符。",
    networkIdentifierPlaceholder: "例如：aws-eu-central-1-vpc",
    descriptionHelp:
      "写一个简短的描述为此路由添加更多上下文。",
    descriptionPlaceholder:
      "例如：用于访问 AWS VPC 中所有设备（位于法兰克福）的路由。",

    // Settings
    enableRoute: "启用路由",
    enableRouteHelp:
      "使用此开关启用或禁用路由。",
    autoApplyRoute: "自动应用路由",
    autoApplyRouteHelp:
      "自动将出口节点应用于您的分发组。这需要 NetBird 客户端 v0.55.0 或更高版本。",
    metricHelp: "较低的度量值表示更高优先级的路由。",

    // Footer links
    learnMore: "了解更多关于",
    continueBtn: "继续",
    addRouteBtn: "添加路由",
    addExitNodeBtn: "添加出口节点",

    // Update modal
    updateTitle: "更新 {name}",
    updateTabDescription: "描述",
    metricError: "度量值必须在 1 到 9999 之间",
    networkIdentifierLengthError: "网络标识符必须少于 40 个字符",
    saveChanges: "保存更改",

    // Action cell
    deleteRouteNotify: "删除路由 {network_id}",
    routeRemoved: "路由已成功移除",
    deletingRoute: "正在删除路由...",
    deleteDialogTitle: "删除 '{name}'？",
    deleteDialogDescription:
      "确定要删除此路由吗？此操作无法撤销。",
    deleteDialogConfirm: "删除",
    routeEnabledSuccess: "网络路由已成功启用",
    routeDisabledSuccess: "网络路由已成功禁用",
    routeActionsLabel: "路由操作",
    actionEdit: "编辑",
    actionDisable: "禁用",
    actionEnable: "启用",
    actionDelete: "删除",

    // Auto apply cell
    autoApplyEnabled: "路由已启用自动应用",
    autoApplyDisabled: "路由已禁用自动应用",

    // Add routing peer modal
    addRoutingPeerDescription:
      "添加多个路由节点后，NetBird 可实现此网络的高可用性。",
    routeSelectorHelp:
      "您要添加路由的网络名称和 CIDR。",
    assignSinglePeerRoute:
      "指定单个节点作为网络路由的路由节点。",
    peerAddedToRoute: "节点已成功添加到路由",

    // NetworkRoutesTable column headers
    colNetwork: "网络",
    colType: "类型",
    colHighAvailability: "高可用性",
    filterStatus: "状态",
    searchRoutes: "按网络、范围、名称或组搜索...",
    groupNoRoutesTitle:
      "此组尚未在任何网络路由中使用",
    groupNoRoutesDescription:
      "创建新路由时分配此组，即可在此处看到它们。",
    getStartedDescription:
      "看起来您还没有任何路由。添加网络路由以访问局域网和 VPC。",

    // High availability cell
    haDisabled: "此路由的高可用性当前已禁用。",
    haEnabled: "此路由的高可用性已启用。",
    haAddMorePeersTooltip:
      "添加更多路由节点以启用此网络路由的高可用性。",
    haIncreasePeersTooltip:
      "您可以添加更多节点以提高此网络路由的可用性。",
    haAddToGroupTooltip:
      "要配置，您必须在此路由的组中添加更多节点。可以在节点菜单中操作。",
    haAddFromPeersTooltip:
      "您可以通过前往节点页面，在此路由的组中添加更多节点。",
    haPeerCount: "{count} 个节点",
    haDisabledBadge: "已禁用",
    goToPeers: "前往节点",
    addPeer: "添加节点",

    // GroupedRouteActionCell
    deleteNetworkNotify: "删除网络 {network_id}",
    networkRemoved: "网络已成功移除",
    deletingNetwork: "正在删除网络...",
    deleteNetworkConfirmTitle: "删除网络 '{name}'？",
    deleteNetworkConfirmDescription:
      "确定要删除此网络吗？此网络中的所有路由都将被删除。此操作无法撤销。",

    // Badge labels
    exitNodeLabel: "出口节点",
    routingPeersBadge: "路由节点",
  },
  onboarding: {
    title: "开始使用 NetBird",
    addResource: "添加您的第一个资源",
    description:
      "NetBird 同时提供点对点覆盖网络和远程网络访问解决方案。选择适合您需求的方案，您也可以随时结合两者。",
    p2pTitle: "点对点网络",
    p2pDescription_business:
      "在两台或更多设备上安装 NetBird，以创建安全的 WireGuard 直连，例如笔记本到服务器或服务器到数据库。请至少添加两台机器以开始。",
    p2pDescription_personal:
      "在您的 homelab 中的两台或更多设备上安装 NetBird，例如笔记本、NAS 或树莓派，以创建安全的 WireGuard 直连。",
    remoteAccessTitle: "远程网络访问",
    remoteAccessDescription_business:
      "让员工无需在每台机器上安装 NetBird，即可远程访问 VM、Kubernetes 集群以及云端或本地资源。",
    remoteAccessDescription_personal:
      "随时随地安全远程访问您的 homelab，无需在每台设备上安装 NetBird。",
    recommended: "推荐",
    recommendedTooltip:
      "根据您之前的选择，我们建议您从 {title} 开始。您稍后也可以随时结合两种方案。",
    congratulationsName: "恭喜您，{name}！",
    congratulations: "恭喜您！",
    completedOnboarding: "您已完成 onboarding。",
    whatsNext:
      "接下来做什么？查看这些指南以充分利用 NetBird。想了解更多，请浏览仪表板、访问我们的文档或查看我们的 YouTube 频道。",
    goToDashboard: "进入仪表板",
    videoAccessControlTitle: "5 分钟了解访问控制",
    videoAccessControlDescription:
      "了解如何有效管理网络资源的访问权限。无论是想限制特定机器的访问，还是允许特定用户连接。",
    videoIdPTitle: "从您的 IdP 同步用户与组",
    videoIdPDescription:
      "了解如何从 Okta、Azure AD 或 Google Workspace 等身份提供者同步用户和组，以在 NetBird 中管理访问控制并自动化入职和离职流程。",
    videoHowNetBirdWorksTitle: "NetBird 工作原理",
    videoHowNetBirdWorksDescription:
      "了解更多关于 NetBird 的工作原理、架构以及它如何帮助您构建安全网络。",

    // OnboardingDemoCall.tsx experiment variants
    demoCall: {
      duration: "通话通常持续约 {duration, number} 分钟",
      v1: {
        title: "预约技术概览（非销售电话）",
        desc: "您将与解决方案工程师会面，了解 NetBird 的工作原理，解答您的实施问题——无幻灯片，无硬性推销。",
        feature1: "实时演练设置与架构",
        feature2: "根据您的技术栈实现用例",
        feature3: "最佳实践与总体概览",
        cta: "立即预约",
        cancel: "不用了",
      },
      v2: {
        title: "与我们的解决方案工程师交流",
        desc: "获取 30 分钟技术概览。我们将针对您的具体用例进行介绍，并解答任何技术问题。<br/>我们为您提供技术上线支持。<br/>这不是销售电话。",
        cta: "立即预约",
        cancel: "不用了",
      },
      v3: {
        title: "预约技术概览（非销售电话）",
        desc: "获取 30 分钟技术概览。我们将针对您的具体用例进行介绍，并解答任何技术问题。<br/>我们为您提供技术上线支持。<br/>这不是销售电话。",
        cta: "立即预约",
        cancel: "不用了",
      },
      v4: {
        title: "预约技术概览",
        desc: "您将与解决方案工程师会面，了解 NetBird 的工作原理，解答您的实施问题——无幻灯片，无硬性推销。",
        feature1: "实时演练设置与架构",
        feature2: "根据您的技术栈实现用例",
        feature3: "最佳实践与总体概览",
        cta: "立即预约",
        cancel: "不用了",
      },
      v5: {
        title: "与我们的解决方案工程师交流",
        desc: "获取 30 分钟技术概览。我们将针对您的具体用例进行介绍，并解答任何技术问题。<br/>我们为您提供技术上线支持。",
        cta: "立即预约",
        cancel: "不用了",
      },
      v6: {
        title: "预约技术概览",
        desc: "获取 30 分钟技术概览。我们将针对您的具体用例进行介绍，并解答任何技术问题。<br/>我们为您提供技术上线支持。",
        cta: "立即预约",
        cancel: "不用了",
      },
    },
  },
  setupModal: {
    generateSetupKey: "生成安装密钥",
    setupKeyHelpTooltip:
      "安装密钥是一次性的预认证令牌，用于注册无人值守的机器到 NetBird。将其传递给 <code>netbird up</code> 的 <code>--setup-key</code> 参数，节点将无需交互式登录即可注册。",
    learnMore: "了解更多",
    defaultUserName: "您好",
    helloMessage: "{name}，您好！👋",
    timeToAddFirstDevice: "是时候添加您的第一台设备了。",
    installNetBirdWithSetupKey: "使用安装密钥安装 NetBird",
    installNetBird: "安装 NetBird",
    getStartedWithSetupKey:
      "首先，安装并使用安装密钥作为参数运行 NetBird。",
    getStartedWithEmail:
      "首先，安装 NetBird 并使用您的电子邮件账户登录。",
    footerDescription:
      "之后您应该已连接。向您的网络添加更多设备或在管理面板中管理现有设备。如有其他问题，请查看我们的",
    installationGuide: "安装指南",
    setupKeyOnceMessage:
      "此安装密钥只能在接下来的 24 小时内使用一次。",
    setupKeyExpiredMessage: "过期后，同一密钥将无法再次使用。",
    setupKeyCreated: "安装密钥已创建",
    setupKeyCreatedDescription: "已为此安装生成一次性安装密钥。",
    generatingSetupKey: "正在生成安装密钥...",
    setupKeyCopied: "安装密钥已复制",
    setupKeyCopiedDescription: "已成功复制到剪贴板。",
    generateKey: "生成密钥",
    setupKey: "安装密钥",
    setupKeyExpiryMessage: "此安装密钥只能使用一次，且将在 24 小时后过期。",
    downloadNetBird: "下载 NetBird",
    runNetBird: "运行 NetBird",
    andLogInBrowser: "并在浏览器中登录",
    installWithCli: "通过命令行安装",
    installManuallyOnUbuntu: "在 Ubuntu 上手动安装",
    addRepository: "添加我们的软件源",
    installOnMacos: "在 macOS 上安装",
    downloadMacInstaller: "下载并运行 macOS 安装程序",
    managementUrlInstruction:
      "点击系统托盘中 NetBird 图标的\"设置\"然后\"高级设置\"，并输入以下\"管理 URL\"",
    openTerminalAndRun: "打开终端并运行 NetBird",
    clickConnectTray: "点击系统托盘中 NetBird 图标的\"连接\"",
    signUpWithEmail: "使用您的电子邮件地址注册",
    installWithTerminal: "通过终端手动安装",
    installWithHomebrew: "通过 HomeBrew 手动安装",
    downloadHomebrew: "下载并安装 HomeBrew",
    homebrewGuide: "HomeBrew 安装指南",
    startDaemon: "启动 NetBird 守护进程",
    installOnWindows: "在 Windows 上安装",
    downloadWindowsInstaller: "下载并运行 Windows 安装程序",
    selectArchitecture: "选择架构",
    openCmdAndRun: "打开命令行并运行 NetBird",
    installOnUbuntuDocker: "在 Ubuntu 上安装",
    installDocker: "安装 Docker",
    dockerGuide: "Docker 官方安装指南",
    runNetBirdContainer: "运行 NetBird 容器",
    readDocumentation: "阅读我们的文档",
    runningInDocker: "在 Docker 中运行 NetBird",
    installOnAndroid: "在 Android 上安装",
    downloadFromGooglePlay: "从 Google Play 商店下载并安装应用：",
    googlePlayAlt: "从 Google Play 下载 NetBird",
    changeServer: "点击\"更改服务器\"并输入以下\"服务器\"",
    clickConnectButton: "点击屏幕中央的\"连接\"按钮",
    installOnIos: "在 iOS 上安装",
    downloadFromAppStore: "从 App Store 下载并安装应用：",
    appStoreAlt: "从 App Store 下载 NetBird",
  },
  untranslated: {
    // app
    customers_1: "Customers -",
    customers_2: "Customers",
    integrations_3: "Integrations -",
    processing_your_invitation_4: "Processing your invitation...",
    successfully_joined_as_an_managed_service_provider_5: "Successfully joined as an Managed Service Provider",
    plans_6: "Plans -",
    tenants_7: "Tenants -",
    tenants_8: "Tenants",
    activity_events_9: "Activity Events -",
    access_control_10: "Access Control -",
    control_center_11: "Control Center -",
    nameservers___dns_12: "Nameservers - DNS -",
    settings___dns_13: "Settings - DNS -",
    zones___dns_14: "Zones - DNS -",
    audit_events___activity_15: "Audit Events - Activity -",
    traffic_events___activity_16: "Traffic Events - Activity -",
    activity_17: "Activity",
    traffic_events_18: "Traffic Events",
    group_19: "Group -",
    groups_20: "Groups -",
    network_routes_21: "Network Routes -",
    network___networks_22: "Network - Networks -",
    networks_23: "Networks -",
    peer___peers_24: "Peer - Peers -",
    peers_25: "Peers -",
    servers_26: "Servers -",
    user_devices_27: "User Devices -",
    posture_checks_28: "Posture Checks -",
    clusters___reverse_proxy_29: "Clusters - Reverse Proxy -",
    custom_domains___reverse_proxy_30: "Custom Domains - Reverse Proxy -",
    access_logs___reverse_proxy_31: "Access Logs - Reverse Proxy -",
    services___reverse_proxy_32: "Services - Reverse Proxy -",
    settings_33: "Settings -",
    setup_keys_34: "Setup Keys -",
    service_users___team_35: "Service Users - Team -",
    user___team_36: "User - Team -",
    auto_assigned_groups_37: "Auto-assigned groups",
    users___team_38: "Users - Team -",
    connecting_to_39: "Connecting to @...",
    installation_40: "Installation -",
    accept_invite_41: "Accept Invite -",
    at_least_8_characters_42: "At least 8 characters",
    confirm_password_43: "Confirm Password",
    one_lowercase_letter_44: "One lowercase letter",
    one_number_45: "One number",
    one_uppercase_letter_46: "One uppercase letter",
    password_47: "Password",
    instance_setup_48: "Instance Setup -",
    // cloud
    add__customer_1: "Add  customer",
    cancel_2: "Cancel",
    company_3: "Company",
    customer_id__optional_4: "Customer ID (optional)",
    domain_5: "Domain",
    update_6: "Update",
    select_the_plan_that_best_fits_your_customer_s_nee_7: "Select the plan that best fits your customer's needs.",
    are_you_sure_you_want_to_grant_access__this_action_8: "Are you sure you want to grant access? This action cannot be undone.",
    grant_access_to_distributor_9: "Grant access to distributor?",
    request_account_access_10: "Request Account Access",
    successfully_unlinked_11: "Successfully unlinked  ()",
    unlink_12: "Unlink ''?",
    unlinking_13: "Unlinking",
    unlinking_14: "Unlinking ...",
    subscribing_to_15: "Subscribing to ...",
    subscription_plan_16: "Subscription Plan",
    successfully_subscribed_to_the__plan_17: "Successfully subscribed to the  plan.",
    customer_18: "Customer",
    customer_id_19: "Customer ID",
    customer_id_copied_to_clipboard_20: "Customer ID copied to clipboard",
    plan_21: "Plan",
    tenants_22: "Tenants",
    downloading__csv_23: "Downloading .csv...",
    mfa_is_now__for_your_account_24: "MFA is now  for your account",
    reset_multi_factor_authentication_25: "Reset Multi-factor Authentication?",
    txt_record_26: "TXT record",
    add__account_27: "Add  account",
    enter_the_primary_domain_of_the_tenant_28: "Enter the primary domain of the tenant.",
    name_29: "Name",
    primary_domain_of_the_tenant_30: "Primary domain of the tenant.",
    update__account_31: "Update  account",
    update_tenant_32: "Update Tenant",
    permissions__required_33: "Permissions (required)",
    peers_34: "Peers",
    permission_groups_35: "Permission Groups",
    tenant_36: "Tenant",
    users_37: "Users",
    granting_access_to_38: "Granting access to",
    granting_access_to_39: "Granting access to ?",
    new_owner_40: "New Owner",
    delete_41: "Delete ''?",
    deleting_42: "Deleting",
    deleting_43: "Deleting ...",
    subscription_for_44: "Subscription for",
    successfully_deleted_45: "Successfully deleted  ()",
    verification_of_46: "Verification of",
    verifying_ownership_of_47: "Verifying ownership of",
    slack_48: "Slack",
    slack_49: "Slack .",
    activate_incoming_webhooks_50: "Activate Incoming Webhooks",
    add_new_webhook_51: "Add New Webhook",
    allow_52: "Allow",
    create_app_53: "Create App",
    create_an_app_54: "Create an app",
    incoming_webhooks_55: "Incoming Webhooks",
    webhook_url_56: "Webhook URL",
    webhook_57: "Webhook .",
    enable_traffic_reporting__kernel_58: "Enable Traffic Reporting (Kernel)",
    limit_to_specific_groups_59: "Limit To Specific Groups",
    traffic_events_successfully_60: "Traffic events successfully .",
    traffic_reporting_successfully_61: "Traffic reporting successfully .",
    connection_62: "Connection",
    destination_63: "Destination",
    event_64: "Event",
    router_65: "Router",
    source_66: "Source",
    time_67: "Time",
    traffic_68: "Traffic",
    access_control_policy_xyz_passed_69: "Access Control Policy XYZ passed",
    peer_2_accepted_the_connection_request_70: "Peer 2 accepted the connection request",
    posture_check_xyz_passed_71: "Posture Check XYZ passed",
    unknown_72: "Unknown",
    bearer_73: "Bearer",
    // components
    select_an_existing_network_1: "Select an existing network...",
    code_2: "Code :",
    networks_3: "Networks",
    peers_4: "Peers",
    select_ports_5: "Select ports...",
    management_6: "Management",
    update_available_7: "Update available",
    close_8: "Close",
    dialog_9: "Dialog",
    n__plural_10: "N {plural}",
    next_locale_11: "NEXT_LOCALE",
    // contexts
    subscription__to_1: "Subscription  to  ()",
    successfully_subscribed_to_the__plan_2: "Successfully subscribed to the  plan",
    request_failed_with_status_code_3: "Request failed with status code",
    add_user_to_group_4: "Add User to Group",
    add_users_to_group_5: "Add Users to Group",
    delete_6: "Delete ''?",
    peers_were_successfully_added_to_7: "Peers were successfully added to .",
    rename_group_8: "Rename Group",
    user____was_successfully_added_to_group_9: "User '' was successfully added to group ''.",
    users_were_successfully_added_to_group_10: "Users were successfully added to group ''.",
    delete_target_11: "Delete target?",
    reverse_proxy_12: "Reverse proxy",
    target_13: "Target",
    // hooks
    error_reading_localstorage_key_1: "Error reading localStorage key “”:",
    error_setting_localstorage_key_2: "Error setting localStorage key “”:",
    tried_setting_localstorage_key____even_though_envi_3: "Tried setting localStorage key “” even though environment is not a client",
    invalid_time_unit_4: "Invalid time unit:",
    // modules
    delete_1: "Delete ''?",
    trial_ends_in__days_2: "Trial ends in  days",
    select_currency_3: "Select currency...",
    upgrade_your__plan_to_access_this_feature_4: "Upgrade your  plan to access this feature.",
    free_trial_5: "Free Trial",
    what_s_next_6: "What's next?",
    smart_firewall_translates_natural_language_prompts_7: "Smart Firewall translates natural language prompts into network\n            policies. You can describe your access needs in plain language, and\n            AI will handle the rest. If you're interested in early access,\n            please fill out the form below.",
    thank_you_for_signing_up_8: "Thank you for signing up!",
    hello___i_m_here_to_help_you_configure_your_access_9: "Hello , I'm here to help you configure your access control rules securely and efficiently. How can I assist you today?",
    we_will_notify_you_by_email_as_soon_as_it_s_availa_10: "We will notify you by email as soon as it's available for your account.",
    policy__was_successfully_created_11: "Policy  was successfully created.",
    posture_check_failed_to_create_12: "Posture Check failed to create.",
    it_s_configured_to_allow_connections_13: "It's configured to allow connections",
    it_s_configured_to_allow_connections_through_14: "It's configured to allow connections through",
    address_15: "Address",
    name_16: "Name",
    role_17: "Role",
    status_18: "Status",
    groups_19: "Groups",
    policies_20: "Policies",
    resource_21: "Resource",
    view_details_of_group_22: "View details of group",
    email_23: "Email",
    enter_a_strong_password_24: "Enter a strong password",
    password_25: "Password",
    your_name_26: "Your name",
    crowdstrike_is_a_cloud_native_platform_for_protect_27: "CrowdStrike is a cloud-native platform for protecting endpoints, cloud workloads, identities and data.",
    crowdstrike_was_successfully_28: "CrowdStrike was successfully",
    disable_crowdstrike_29: "Disable CrowdStrike?",
    crowdstrike_integration_was_successfully_deleted_30: "CrowdStrike Integration was successfully deleted",
    crowdstrike_integration_was_successfully_updated_31: "CrowdStrike Integration was successfully updated",
    delete_integration_32: "Delete integration?",
    client_id_33: "Client ID",
    create_34: "Create",
    create_api_client_35: "Create API client",
    hosts__read_36: "Hosts (Read)",
    secret_37: "Secret",
    zero_trust_assessment__read_38: "Zero Trust Assessment (Read)",
    score_threshold_39: "Score Threshold",
    are_you_sure_you_want_to_disable_the_fleetdm_integ_40: "Are you sure you want to disable the FleetDM integration?",
    disable_fleetdm_41: "Disable FleetDM?",
    fleetdm_was_successfully_42: "FleetDM was successfully",
    open_source_device_management_platform_for_macos_43: "Open-source device management platform for macOS, Windows, and Linux with osquery-based compliance policies.",
    fleetdm_was_successfully_deleted_44: "FleetDM was successfully deleted",
    fleetdm_was_successfully_updated_45: "FleetDM was successfully updated",
    navigate_to_your_fleetdm_management_console_46: "Navigate to your FleetDM Management Console.",
    are_you_sure_you_want_to_disable_the_huntress_inte_47: "Are you sure you want to disable the Huntress integration?",
    disable_huntress_48: "Disable Huntress?",
    huntress_was_successfully_49: "Huntress was successfully",
    huntress_was_successfully_deleted_50: "Huntress was successfully deleted",
    huntress_was_successfully_updated_51: "Huntress was successfully updated",
    api_credentials_52: "API Credentials",
    api_key_53: "API Key",
    api_secret_54: "API Secret",
    enter_your_api_credentials_55: "Enter your API Credentials",
    disable_intune_56: "Disable Intune?",
    intune_was_successfully_57: "Intune was successfully",
    microsoft_intune_is_a_cloud_based_unified_endpoint_58: "Microsoft Intune is a cloud-based unified endpoint management for your organization.",
    intune_was_successfully_deleted_59: "Intune was successfully deleted",
    intune_was_successfully_updated_60: "Intune was successfully updated",
    api_permissions_61: "API permissions",
    add_a_permission_62: "Add a permission",
    add_permissions_63: "Add permissions",
    app_registrations_64: "App Registrations",
    application__client__id_65: "Application (client) ID",
    application_permissions_66: "Application permissions",
    devicemanagementmanageddevices_read_all_67: "DeviceManagementManagedDevices.Read.All",
    directory__tenant__id_68: "Directory (tenant) ID",
    microsoft_graph_69: "Microsoft Graph",
    register_70: "Register",
    select_permissions_71: "Select permissions",
    value_72: "Value",
    ai_powered_endpoint_protection_platform_for_real_t_73: "AI-powered endpoint protection platform for real-time threat detection and automated response.",
    are_you_sure_you_want_to_disable_the_sentinelone_i_74: "Are you sure you want to disable the SentinelOne integration?",
    disable_sentinelone_75: "Disable SentinelOne?",
    sentinelone_was_successfully_76: "SentinelOne was successfully",
    sentinelone_was_successfully_deleted_77: "SentinelOne was successfully deleted",
    sentinelone_was_successfully_updated_78: "SentinelOne was successfully updated",
    create_service_user_79: "Create Service User",
    create_user_80: "Create User",
    navigate_to_your_sentinelone_management_console_81: "Navigate to your SentinelOne Management Console.",
    next_82: "Next",
    viewer_83: "Viewer",
    event_streaming_84: "Event Streaming",
    amazon_data_firehose_was_successfully_disconnected_85: "Amazon Data Firehose was successfully disconnected",
    disconnect_amazon_data_firehose_86: "Disconnect Amazon Data Firehose?",
    create_firehose_stream_87: "Create Firehose stream",
    create_access_key_88: "Create access key",
    destination_89: "Destination",
    direct_put_90: "Direct PUT",
    enter_your_access_key_91: "Enter your Access-Key",
    enter_your_firehose_stream_name_92: "Enter your Firehose stream name",
    enter_your_secret_key_93: "Enter your Secret-Key",
    security_credentials_94: "Security Credentials",
    source_95: "Source",
    you_can_transform_and_convert_the_event_messages_t_96: "You can transform and convert the event messages to fit your needs.",
    amazon_s3_is_a_scalable_storage_in_the_cloud_97: "Amazon S3 is a scalable storage in the cloud.",
    disconnect_s3_98: "Disconnect S3?",
    create_bucket_99: "Create bucket",
    enter_your_s3_bucket_name_100: "Enter your S3 Bucket name",
    datadog_is_a_monitoring_service_for_cloud_scale_ap_101: "Datadog is a monitoring service for cloud-scale applications.",
    datadog_was_successfully_disconnected_102: "Datadog was successfully disconnected",
    disconnect_datadog_103: "Disconnect Datadog?",
    create_key_104: "Create Key",
    enter_your_api_key_105: "Enter your API-Key",
    navigate_to_datadogs_api_keys_page_106: "Navigate to Datadogs API Keys page",
    when_creating_a_new_datadog_api_key__it_could_take_107: "When creating a new Datadog API key, it could take up to 5 minutes for the key to be available for use.",
    generic_http_integration_108: "Generic HTTP Integration",
    http_integration_was_successfully_109: "HTTP Integration was successfully .",
    cancel_110: "Cancel",
    delete_generic_http_integration_111: "Delete Generic HTTP Integration?",
    generic_http_was_successfully_deleted_112: "Generic HTTP was successfully deleted",
    identity_provider_113: "Identity Provider",
    select_your_identity_provider_114: "Select your identity provider...",
    settings___identity_providers_115: "Settings › Identity Providers",
    all_groups_116: "All Groups",
    all_users_117: "All Users",
    identity_provider_sync_118: "Identity Provider Sync",
    entra_id__api__was_successfully_119: "Entra ID (API) was successfully",
    entra_id__api__was_successfully_synced_120: "Entra ID (API) was successfully synced",
    microsoft_entra_id_is_a_cloud_based_identity_and_a_121: "Microsoft Entra ID is a cloud-based identity and access management solution.",
    entra_id__api__was_successfully_deleted_122: "Entra ID (API) was successfully deleted",
    entra_id__api__was_successfully_updated_123: "Entra ID (API) was successfully updated",
    sync_interval_124: "Sync Interval",
    group_read_all_125: "Group.Read.All",
    user_read_all_126: "User.Read.All",
    assign_127: "Assign",
    attribute_mapping_128: "Attribute mapping",
    connect_your_application_129: "Connect your application",
    continue_with_entra_id_130: "Continue with Entra ID",
    delete_131: "Delete",
    edit_132: "Edit",
    enterprise_applications_133: "Enterprise applications",
    finish_setup_134: "Finish Setup",
    get_started_135: "Get started",
    provision_microsoft_entra_id_groups_136: "Provision Microsoft Entra ID Groups",
    provision_microsoft_entra_id_users_137: "Provision Microsoft Entra ID Users",
    provision_user_accounts_138: "Provision User Accounts",
    save_139: "Save",
    source_attribute_140: "Source attribute",
    start_provisioning_141: "Start provisioning",
    test_connection_142: "Test Connection",
    users_and_groups_143: "Users and groups",
    auth_token_was_successfully_regenerated_144: "Auth token was successfully regenerated",
    regenerate_auth_token_145: "Regenerate Auth Token?",
    a_flexible__innovative_solution_for_people_and_org_146: "A flexible, innovative solution for people and organizations to achieve more.",
    google_workspace_was_successfully_147: "Google Workspace was successfully",
    google_workspace_was_successfully_synced_148: "Google Workspace was successfully synced",
    google_workspace_was_successfully_deleted_149: "Google Workspace was successfully deleted",
    google_workspace_was_successfully_updated_150: "Google Workspace was successfully updated",
    assign_role_151: "ASSIGN ROLE",
    account_152: "Account",
    add_key_153: "Add key",
    assign_service_accounts_154: "Assign service accounts",
    create_credentials_155: "CREATE CREDENTIALS",
    create_role_156: "CREATE ROLE",
    create_new_key_157: "Create new key",
    create_new_role_158: "Create new role",
    customer_id_159: "Customer ID",
    done_160: "DONE",
    e_mail_161: "E-Mail",
    json_162: "JSON",
    keys_163: "Keys",
    service_account_164: "Service account",
    jumpcloud_is_a_unified_identity__device__and_acces_165: "Jumpcloud is a unified identity, device, and access management platform.",
    jumpcloud_was_successfully_166: "Jumpcloud was successfully",
    auth_token_for_jumpcloud_was_successfully_regenera_167: "Auth token for Jumpcloud was successfully regenerated",
    jumpcloud_was_successfully_deleted_168: "Jumpcloud was successfully deleted",
    jumpcloud_was_successfully_updated_169: "Jumpcloud was successfully updated",
    activate_170: "Activate",
    credentials_details_171: "Credentials Details",
    identity_management_172: "Identity Management",
    jumpcloud_was_successfully_set_up_173: "Jumpcloud was successfully set up",
    okta_is_a_platform_to_provision_and_manage_user_ac_174: "Okta is a platform to provision and manage user accounts in cloud-based applications.",
    okta_was_successfully_175: "Okta was successfully",
    auth_token_for_okta_was_successfully_regenerated_176: "Auth token for Okta was successfully regenerated",
    okta_was_successfully_deleted_177: "Okta was successfully deleted",
    okta_was_successfully_updated_178: "Okta was successfully updated",
    api_token_179: "API Token",
    application_username_format_180: "Application username format",
    assign_to_groups_181: "Assign to Groups",
    assign_to_people_182: "Assign to People",
    assignments_183: "Assignments",
    client_secret_184: "Client secret",
    configure_api_integration_185: "Configure API Integration",
    create_users_186: "Create Users",
    deactivate_users_187: "Deactivate Users",
    done_188: "Done",
    enable_api_integration_189: "Enable API integration",
    find_groups_by_name_190: "Find groups by name",
    integration_191: "Integration",
    okta_account_domain_192: "Okta account domain",
    primary_email_domain_193: "Primary email domain",
    provisioning_194: "Provisioning",
    push_groups_195: "Push Groups",
    save_and_go_back_196: "Save and Go Back",
    test_api_credentials_197: "Test API Credentials",
    update_user_attributes_198: "Update User Attributes",
    txt_record_199: "TXT record",
    verification_for__has_started_200: "Verification for  has started",
    verify_later_201: "Verify Later",
    single_sign_on_202: "Single Sign-On",
    client_secret_203: "Client Secret",
    openid_connect_discovery_204: "OpenID Connect Discovery",
    primary_e_mail_domain_205: "Primary E-Mail Domain",
    use__as_a_single_sign_on_provider_to_authenticate_206: "Use  as a Single Sign-On provider to authenticate users. Follow the steps below to get started.",
    domain_207: "Domain",
    last_check_208: "Last Check",
    delete_integration_209: "Delete Integration?",
    debug_bundle_210: "Debug Bundle",
    generate_a_debug_bundle_on_this_peer_with_logs_and_211: "Generate a debug bundle on this peer with logs and diagnostics. Useful for troubleshooting without CLI access.",
    completed_212: "Completed",
    completed_at_213: "Completed at",
    created_214: "Created",
    created_at_215: "Created at",
    output_216: "Output",
    parameters_217: "Parameters",
    type_218: "Type",
    create_a_setup_key_219: "Create a Setup Key?",
    metric_220: "Metric",
    route_traffic_to_221: "Route traffic to ''",
    routing_peer_222: "Routing Peer ()",
    save_changes_223: "Save Changes",
    onboarding_224: "Onboarding",
    network_225: "Network",
    congratulations_226: "Congratulations, !",
    skipped_onboarding_____step_227: "Skipped Onboarding -  (Step )",
    troubleshooting_228: "Troubleshooting -",
    allows_access_to_this________issubnet_229: "Allows access to this ${\n				isSubnet ?",
    users_to_230: "Users to",
    set_the_rules__you_re_in_control_231: "Set the rules. You're in control",
    let_s_put_that_connection_to_the_test_232: "Let's put that connection to the test",
    nice_work_connecting_your_client_device__now__let_233: "Nice work connecting your client device! Now, let’s have a little fun and test if it can reach your resource.",
    let_s_get_your_first_device_online_234: "Let's get your first device online",
    share_link_235: "Share Link",
    time_to_bring_in_your_second_device_236: "Time to bring in your second device",
    allow_ssh_237: "Allow SSH",
    settings_238: "Settings",
    are_you_sure_you_want_to_delete_these_peers__this_239: "Are you sure you want to delete these peers? This action cannot be undone.",
    are_you_sure_you_want_to_overwrite_the_existing_gr_240: "Are you sure you want to overwrite the existing groups of your  selected peer(s)? This action cannot be undone.",
    delete_241: "Delete '' ?",
    delete_all_242: "Delete All",
    overwrite_existing_groups_243: "Overwrite existing groups?",
    block_244: "Block",
    min__client_version_245: "Min. Client Version",
    allow_only_246: "Allow only",
    checks_247: "Checks",
    disable_this_check_248: "Disable this check?",
    posture_check_249: "Posture Check",
    posture_check_was__successfully_250: "Posture Check was  successfully.",
    certificate_details_251: "Certificate Details",
    connect_to__via_rdp_252: "Connect to  via RDP",
    port_253: "Port",
    this_peer_is_offline_and_cannot_be_accessed_via_rd_254: "This peer is offline and cannot be accessed via RDP.",
    connection_failed____wsa_255: "Connection failed:  (WSA )",
    connection_failed__http_256: "Connection failed: HTTP",
    ironrdp_connection_failed_257: "IronRDP connection failed:",
    accept_258: "Accept",
    certificate_for__has_changed_259: "Certificate for  has changed!",
    do_you_trust_this_certificate_260: "Do you trust this certificate?",
    issuer_261: "Issuer:",
    new_certificate_for____requesting_user_acceptance_262: "New certificate for  - requesting user acceptance",
    rdp_certificate_verification_263: "RDP Certificate Verification",
    reject_264: "Reject",
    sha_256_265: "SHA-256:",
    serial_266: "Serial:",
    subject_267: "Subject:",
    the_server_268: "The server",
    rdcleanpath_websocket_handler_not_available_for_pr_269: "RDCleanPath WebSocket handler not available for proxy",
    connect_to__via_ssh_270: "Connect to  via SSH",
    connecting_via_ssh_is_only_available_when_the_peer_271: "Connecting via SSH is only available when the peer is online.",
    crowdsec_ip_reputation_272: "CrowdSec IP Reputation",
    enforce_273: "Enforce",
    observe_274: "Observe",
    https_targets_275: "HTTPS Targets",
    select_type_276: "Select type...",
    service_type_277: "Service Type",
    bearer_278: "Bearer",
    http_headers_279: "HTTP Headers",
    header_280: "Header",
    header_281: "Header  -",
    require_specific_http_headers_to_access_this_servi_282: "Require specific HTTP headers to access this service.",
    username_283: "Username",
    enter_password_284: "Enter password...",
    require_a_password_to_access_this_service_285: "Require a password to access this service.",
    pin_code_286: "PIN Code",
    require_a_numeric_pin_code_to_access_this_service_287: "Require a numeric PIN code to access this service.",
    require_users_to_authenticate_via_sso_to_access_th_288: "Require users to authenticate via SSO to access this service.",
    sso__single_sign_on_289: "SSO (Single Sign-On)",
    account_cluster_290: "Account cluster.",
    shared_cluster_291: "Shared cluster.",
    proxy_cluster_292: "Proxy Cluster",
    cname_293: "CNAME",
    configure_dns_294: "Configure DNS",
    content_295: "Content",
    docker_296: "Docker",
    cluster_297: "Cluster",
    connected_proxies_298: "Connected Proxies",
    features_299: "Features",
    target_proxy_cluster_300: "Target Proxy Cluster",
    add_custom_domain_301: "Add Custom Domain",
    custom_302: "Custom",
    select_domain_303: "Select domain...",
    shared_304: "Shared",
    cname_record_305: "CNAME record",
    auth_306: "Auth:",
    download_307: "Download:",
    upload_308: "Upload:",
    reason_309: "Reason:",
    cluster_310: "Cluster:",
    target_s_311: "Target(s)",
    enter_an_ip_address_within_312: "Enter an IP address within",
    header__e_g___authorization_313: "Header, e.g., Authorization",
    value__e_g___bearer_eyjhbgci_314: "Value, e.g., Bearer eyJhbGci...",
    configure_the_target_for_your_reverse_proxy_315: "Configure the target for your reverse proxy.",
    location__optional_316: "Location (Optional)",
    request_timeout_317: "Request Timeout",
    session_idle_timeout_318: "Session Idle Timeout",
    networks_319: "Networks",
    location_320: "Location",
    service_321: "Service",
    close_322: "Close",
    navigate_323: "Navigate",
    networks_324: "Networks ()",
    open_325: "Open",
    resources_326: "Resources ()",
    authentication_327: "Authentication",
    select_interval_328: "Select interval...",
    client_settings_successfully_updated_329: "Client settings successfully updated.",
    lazy_connections_successfully_330: "Lazy Connections successfully .",
    access_control___groups_331: "Access Control › Groups",
    select_provider_type_332: "Select provider type...",
    dns_wildcard_routing_successfully_333: "DNS Wildcard Routing successfully .",
    network_settings_successfully_updated_334: "Network settings successfully updated.",
    auto_assigned_groups_335: "Auto-assigned groups",
    unlimited_336: "Unlimited",
  },
};
