diff --git a/build/build-messages.sh b/build/build-messages.sh index b658e33..18617d3 100755 --- a/build/build-messages.sh +++ b/build/build-messages.sh @@ -1,3 +1,4 @@ #!/usr/bin/env bash -go run ../cmd/langs/main.go generate \ No newline at end of file +ROOT=$(dirname "$0") +/usr/local/bin/go run "${ROOT}"/../cmd/langs/main.go generate \ No newline at end of file diff --git a/build/rpc.json b/build/rpc.json index 86758da..745c49d 100644 --- a/build/rpc.json +++ b/build/rpc.json @@ -14947,7 +14947,7 @@ }, { "name": "CreateLogRequest", - "code": "message CreateLogRequest {\n\tstring level = 1;\n\tstring description = 2;\n\tstring action = 3;\n\tstring ip = 4;\n}", + "code": "message CreateLogRequest {\n\tstring level = 1; // 级别:info, warn, error\n\tstring description = 2; // 描述\n\tstring action = 3; // 可选项,发生操作所在的页面URL\n\tstring ip = 4; // 可选项,操作用户IP\n\tstring langMessageCode = 5; // 多语言消息\n\tbytes langMessagesArgsJSON = 6; // 多语言消息中的参数项,格式:[arg1, arg2, ...]\n}", "doc": "创建日志" }, { diff --git a/cmd/langs/main.go b/cmd/langs/main.go index e1569ca..0d878ca 100644 --- a/cmd/langs/main.go +++ b/cmd/langs/main.go @@ -3,6 +3,7 @@ package main import ( + "bytes" "encoding/json" "fmt" "github.com/TeaOSLab/EdgeCommon/pkg/langs" @@ -24,10 +25,14 @@ func main() { if len(args) >= 2 { switch args[1] { case "generate": + // generate go codes from json files runGenerate() + case "search": + // search hans from dir path + runSearch() } } else { - fmt.Println("Usage: langs [generate]") + fmt.Println("Usage: langs [generate|search]") } } @@ -49,7 +54,7 @@ func runGenerate() { } var dirRegexp = regexp.MustCompile(`^[a-z]+-[a-z]+$`) - var jsonFileNameRegexp = regexp.MustCompile(`^([a-zA-Z0-9]+)(_([a-zA-Z0-9]+))+\.json$`) + var jsonFileNameRegexp = regexp.MustCompile(`^([a-zA-Z0-9]+)(_([a-zA-Z0-9]+))*\.json$`) var messageCodeRegexp = regexp.MustCompile(`^[a-zA-Z0-9_]+$`) var jsonCommentRegexp = regexp.MustCompile(`//.+`) @@ -57,6 +62,8 @@ func runGenerate() { var langMaps = map[string]*langs.Lang{} // lang => *langs.Lang var defaultLang = langs.DefaultManager().DefaultLang() + const maxMessageCodeLen = 128 + for _, file := range files { var dirName = file.Name() @@ -103,7 +110,13 @@ func runGenerate() { return false } - var fullCode = module + "_" + code + var fullCode = module + "@" + code + + if len(fullCode) > maxMessageCodeLen { + fmt.Println("[ERROR]message code '" + fullCode + "' too long, max length: " + types.String(maxMessageCodeLen)) + return false + } + if isBaseLang { messageCodes = append(messageCodes, fullCode) } @@ -116,7 +129,11 @@ func runGenerate() { langMaps[langCode] = finalLang } for code, value := range newM { - finalLang.Set(code, value) + if finalLang.Has(langs.MessageCode(code)) { + fmt.Println("[ERROR]message code '" + code + "' duplicated") + return false + } + finalLang.Set(langs.MessageCode(code), value) } } @@ -138,7 +155,7 @@ func runGenerate() { // check message codes fmt.Println("checking message codes ...") - var defaultMessageMap = map[string]string{} + var defaultMessageMap = map[langs.MessageCode]string{} for langCode, messageLang := range langMaps { if langCode == defaultLang { // only check lang not equal to 'en-us' defaultMessageMap = messageLang.GetAll() @@ -146,8 +163,8 @@ func runGenerate() { } for messageCode := range messageLang.GetAll() { - if !lists.ContainsString(messageCodes, messageCode) { - fmt.Println("[ERROR]message code '" + messageCode + "' in lang '" + langCode + "' not exist in default lang file ('" + defaultLang + "')") + if !lists.ContainsString(messageCodes, messageCode.String()) { + fmt.Println("[ERROR]message code '" + messageCode.String() + "' in lang '" + langCode + "' not exist in default lang file ('" + defaultLang + "')") return } } @@ -170,7 +187,7 @@ const ( for index, messageCode := range messageCodes { // add comment to message code - comment, _, _ := strings.Cut(defaultMessageMap[messageCode], "\n") + comment, _, _ := strings.Cut(defaultMessageMap[langs.MessageCode(messageCode)], "\n") codesSource += upperWords(messageCode) + " langs.MessageCode = " + strconv.Quote(messageCode) + " // " + comment @@ -212,11 +229,11 @@ import( ) func init() { - langs.Load("` + langCode + `", map[string]string{ + langs.Load("` + langCode + `", map[langs.MessageCode]string{ ` for code, value := range messageLang.GetAll() { - source += strconv.Quote(code) + ": " + strconv.Quote(value) + ",\n" + source += strconv.Quote(code.String()) + ": " + strconv.Quote(value) + ",\n" } source += ` @@ -249,7 +266,6 @@ func init() { var targetDir = filepath.Dir(targetFile) dirStat, _ := os.Stat(targetDir) if dirStat != nil { - var prefix = "" switch component { case "EdgeAdmin": @@ -261,9 +277,9 @@ func init() { continue } - var filteredMessages = map[string]string{} + var filteredMessages = map[langs.MessageCode]string{} for code, value := range messageLang.GetAll() { - if strings.HasPrefix(code, prefix) { + if strings.HasPrefix(code.String(), prefix) && strings.Contains(code.String(), "@ui_") /** must contains 'ui' **/ { filteredMessages[code] = value } } @@ -287,11 +303,15 @@ window.LANG_MESSAGES = `+string(messageMapJSON)+";\n"), 0666) } func upperWords(s string) string { - var words = strings.Split(s, "_") - for index, word := range words { - words[index] = upperWord(word) + var pieces = strings.Split(s, "@") + for pieceIndex, piece := range pieces { + var words = strings.Split(piece, "_") + for index, word := range words { + words[index] = upperWord(word) + } + pieces[pieceIndex] = strings.Join(words, "") } - return strings.Join(words, "") + return strings.Join(pieces, "_") } func upperWord(word string) string { @@ -306,9 +326,10 @@ func upperWord(word string) string { // special words switch word { - case "api", "http", "https", "tcp", "tls", "udp", "ip", "dns", "ns", + case "api", "http", "https", "tcp", "tls", "ssl", "udp", "ip", "dns", "ns", "waf", "acme", "ssh", "toa", "http2", "http3", "uam", "cc", - "db", "isp", "sni", "ui", "soa", "ocsp", "en", "zh": + "db", "isp", "sni", "ui", "soa", "ocsp", "en", "zh", "ad", "tsig", + "rpc", "dao": return strings.ToUpper(word) case "ipv6": return "IPv6" @@ -322,3 +343,111 @@ func upperWord(word string) string { return strings.ToUpper(word[:1]) + word[1:] } + +func runSearch() { + if len(os.Args) < 3 { + fmt.Println("Usage: langs search DIR") + return + } + var dir = os.Args[2] + stat, err := os.Stat(dir) + if err != nil { + fmt.Println("[ERROR]could not find dir '" + dir + "': " + err.Error()) + return + } + if !stat.IsDir() { + fmt.Println("[ERROR]could not find dir '" + dir + "'") + return + } + + fmt.Println("searching '" + dir + "' ...") + + var ext = ".go" + + var resultFiles = []string{} + for _, pattern := range []string{ + "*" + ext, + strings.Repeat("*/", 1) + "*" + ext, + strings.Repeat("*/", 2) + "*" + ext, + strings.Repeat("*/", 3) + "*" + ext, + strings.Repeat("*/", 4) + "*" + ext, + strings.Repeat("*/", 5) + "*" + ext, + strings.Repeat("*/", 6) + "*" + ext, + strings.Repeat("*/", 7) + "*" + ext, + strings.Repeat("*/", 8) + "*" + ext, + strings.Repeat("*/", 9) + "*" + ext, + strings.Repeat("*/", 10) + "*" + ext, + } { + goFiles, err := filepath.Glob(dir + "/" + pattern) + if err != nil { + fmt.Println("[ERROR]search error: " + err.Error()) + return + } + resultFiles = append(resultFiles, goFiles...) + } + + if len(resultFiles) == 0 { + fmt.Println("no files found in the dir") + return + } + + if err != nil { + fmt.Println("[ERROR]search dir '" + dir + "' failed: " + err.Error()) + return + } + var hansRegexp = regexp.MustCompile(`\p{Han}+`) + var countMatches = 0 + for _, goFile := range resultFiles { + if strings.HasSuffix(goFile, "_test.go") || + strings.HasSuffix(goFile, "_plus_test.go") || + strings.Contains(goFile, "/messages/messages_") { + continue + } + + data, err := os.ReadFile(goFile) + if err != nil { + fmt.Println("[ERROR]read file '" + goFile + "' failed: " + err.Error()) + return + } + var matches = hansRegexp.FindAllSubmatchIndex(data, -1) + if len(matches) > 0 { + for _, match := range matches { + // ignore comment + switch ext { + case ".go": + if checkIsInGoComment(data, match[0]) { + continue + } + } + + countMatches++ + + fmt.Printf("%s %s\n", goFile+":"+types.String(bytes.Count(data[:match[0]], []byte{'\n'})+1), string(data[match[0]:match[1]])) + } + } + } + fmt.Println(countMatches, "matches") +} + +func checkIsInGoComment(data []byte, start int) bool { + if start <= 1 { + return false + } + + for { + start-- + if start <= 1 || data[start] == '\n' { + return false + } + + // 'SPACE //' + if data[start] == '/' && data[start-1] == '/' { + return true + } + + // '/** SOMETHING **/' + if data[start] == '*' && data[start-1] == '/' { + return true + } + } +} diff --git a/pkg/configutils/variable.go b/pkg/configutils/variable.go index 0baea26..22e4622 100644 --- a/pkg/configutils/variable.go +++ b/pkg/configutils/variable.go @@ -12,7 +12,7 @@ type VariableHolders = []interface{} var variableMapping = map[string][]interface{}{} // source => [holder1, ...] var variableLocker = sync.RWMutex{} -var regexpNamedVariable = regexp.MustCompile(`\${[\w.-]+}`) +var regexpNamedVariable = regexp.MustCompile(`\${[@\w.-]+}`) var stringBuilderPool = sync.Pool{ New: func() interface{} { diff --git a/pkg/langs/codes/codes.go b/pkg/langs/codes/codes.go index bd0466c..7f55153 100644 --- a/pkg/langs/codes/codes.go +++ b/pkg/langs/codes/codes.go @@ -7,228 +7,667 @@ import ( ) const ( - AdminCertMenuApply langs.MessageCode = "admin_cert_menu_apply" // 申请证书 - AdminCertMenuCerts langs.MessageCode = "admin_cert_menu_certs" // 证书 - AdminCertMenuOCSP langs.MessageCode = "admin_cert_menu_ocsp" // OCSP日志 - AdminClusterMenuSettingBasic langs.MessageCode = "admin_cluster_menu_setting_basic" // 基础设置 - AdminClusterMenuSettingCachePolicy langs.MessageCode = "admin_cluster_menu_setting_cache_policy" // 缓存策略 - AdminClusterMenuSettingCC langs.MessageCode = "admin_cluster_menu_setting_cc" // CC防护 - AdminClusterMenuSettingDDoSProtection langs.MessageCode = "admin_cluster_menu_setting_ddos_protection" // DDoS防护 - AdminClusterMenuSettingDNS langs.MessageCode = "admin_cluster_menu_setting_dns" // DNS设置 - AdminClusterMenuSettingHealthCheck langs.MessageCode = "admin_cluster_menu_setting_health_check" // 健康检查 - AdminClusterMenuSettingHTTP3 langs.MessageCode = "admin_cluster_menu_setting_http3" // HTTP/3 - AdminClusterMenuSettingMetrics langs.MessageCode = "admin_cluster_menu_setting_metrics" // 统计指标 - AdminClusterMenuSettingNotification langs.MessageCode = "admin_cluster_menu_setting_notification" // 消息通知 - AdminClusterMenuSettingPages langs.MessageCode = "admin_cluster_menu_setting_pages" // 自定义页面 - AdminClusterMenuSettingSchedule langs.MessageCode = "admin_cluster_menu_setting_schedule" // 智能调度 - AdminClusterMenuSettingServiceGlobal langs.MessageCode = "admin_cluster_menu_setting_service_global" // 网站设置 - AdminClusterMenuSettingSystemService langs.MessageCode = "admin_cluster_menu_setting_system_service" // 系统服务 - AdminClusterMenuSettingThresholds langs.MessageCode = "admin_cluster_menu_setting_thresholds" // 阈值设置 - AdminClusterMenuSettingTOA langs.MessageCode = "admin_cluster_menu_setting_toa" // TOA设置 - AdminClusterMenuSettingUAM langs.MessageCode = "admin_cluster_menu_setting_uam" // 5秒盾 - AdminClusterMenuSettingWAFActions langs.MessageCode = "admin_cluster_menu_setting_waf_actions" // WAF动作 - AdminClusterMenuSettingWAFPolicy langs.MessageCode = "admin_cluster_menu_setting_waf_policy" // WAF策略 - AdminClusterMenuSettingWebP langs.MessageCode = "admin_cluster_menu_setting_webp" // WebP - AdminClusterMenuTabClusterDashboard langs.MessageCode = "admin_cluster_menu_tab_cluster_dashboard" // 集群看板 - AdminClusterMenuTabClusterDelete langs.MessageCode = "admin_cluster_menu_tab_cluster_delete" // 删除集群 - AdminClusterMenuTabClusterNodes langs.MessageCode = "admin_cluster_menu_tab_cluster_nodes" // 节点列表 - AdminClusterMenuTabClusterSettings langs.MessageCode = "admin_cluster_menu_tab_cluster_settings" // 集群设置 - AdminCommonCanceled langs.MessageCode = "admin_common_canceled" // 已取消 - AdminCommonMenuSettingBasic langs.MessageCode = "admin_common_menu_setting_basic" // 基础设置 - AdminCommonMenuSettingCache langs.MessageCode = "admin_common_menu_setting_cache" // 缓存设置 - AdminCommonMenuSettingCachePolicy langs.MessageCode = "admin_common_menu_setting_cache_policy" // 缓存策略 - AdminCommonMenuSettingDDoSProtection langs.MessageCode = "admin_common_menu_setting_ddos_protection" // DDoS防护 - AdminCommonMenuSettingDNS langs.MessageCode = "admin_common_menu_setting_dns" // DNS设置 - AdminCommonMenuSettingHealthCheck langs.MessageCode = "admin_common_menu_setting_health_check" // 健康检查 - AdminCommonMenuSettingMetrics langs.MessageCode = "admin_common_menu_setting_metrics" // 统计指标 - AdminCommonMenuSettingWAFPolicy langs.MessageCode = "admin_common_menu_setting_waf_policy" // WAF策略 - AdminCommonMenuSettingWebP langs.MessageCode = "admin_common_menu_setting_webp" // WebP - AdminCommonSystem langs.MessageCode = "admin_common_system" // 系统 - AdminDashboardDNS langs.MessageCode = "admin_dashboard_dns" // DNS - AdminDashboardEvents langs.MessageCode = "admin_dashboard_events" // 事件 - AdminDashboardOverview langs.MessageCode = "admin_dashboard_overview" // 概况 - AdminDashboardUser langs.MessageCode = "admin_dashboard_user" // 用户 - AdminDashboardWAF langs.MessageCode = "admin_dashboard_waf" // WAF - AdminDBNodeTabNodes langs.MessageCode = "admin_db_node_tab_nodes" // 数据库节点 - AdminLevelError langs.MessageCode = "admin_level_error" // 错误 - AdminLevelInfo langs.MessageCode = "admin_level_info" // 信息 - AdminLevelWarn langs.MessageCode = "admin_level_warn" // 警告 - AdminLogTagAccessLog langs.MessageCode = "admin_log_tag_access_log" // 访问日志 - AdminLogTagListener langs.MessageCode = "admin_log_tag_listener" // 端口监听 - AdminLogTagScript langs.MessageCode = "admin_log_tag_script" // 脚本 - AdminLogTagWAF langs.MessageCode = "admin_log_tag_waf" // WAF - AdminMenuAdminRecipients langs.MessageCode = "admin_menu_admin_recipients" // 通知媒介 - AdminMenuAdmins langs.MessageCode = "admin_menu_admins" // 系统用户 - AdminMenuDashboard langs.MessageCode = "admin_menu_dashboard" // 数据看板 - AdminMenuDNS langs.MessageCode = "admin_menu_dns" // 域名解析 - AdminMenuDNSClusters langs.MessageCode = "admin_menu_dns_clusters" // 集群列表 - AdminMenuDNSIssues langs.MessageCode = "admin_menu_dns_issues" // 问题修复 - AdminMenuDNSProviders langs.MessageCode = "admin_menu_dns_providers" // DNS服务商 - AdminMenuFinance langs.MessageCode = "admin_menu_finance" // 财务管理 - AdminMenuFinanceAccounts langs.MessageCode = "admin_menu_finance_accounts" // 用户账户 - AdminMenuFinanceBills langs.MessageCode = "admin_menu_finance_bills" // 费用账单 - AdminMenuFinanceFee langs.MessageCode = "admin_menu_finance_fee" // 计费设置 - AdminMenuFinanceIncome langs.MessageCode = "admin_menu_finance_income" // 统计报表 - AdminMenuFinanceLogs langs.MessageCode = "admin_menu_finance_logs" // 收支明细 - AdminMenuFinanceOrders langs.MessageCode = "admin_menu_finance_orders" // 订单管理 - AdminMenuFinancePackages langs.MessageCode = "admin_menu_finance_packages" // 流量包 - AdminMenuLogs langs.MessageCode = "admin_menu_logs" // 日志审计 - AdminMenuNodeAntiDDoSProducts langs.MessageCode = "admin_menu_node_anti_ddos_products" // 高防IP - AdminMenuNodeClusters langs.MessageCode = "admin_menu_node_clusters" // 集群列表 - AdminMenuNodeDistributedMonitors langs.MessageCode = "admin_menu_node_distributed_monitors" // 区域监控 - AdminMenuNodeIPList langs.MessageCode = "admin_menu_node_ip_list" // 节点IP - AdminMenuNodeLogs langs.MessageCode = "admin_menu_node_logs" // 节点日志 - AdminMenuNodeRegions langs.MessageCode = "admin_menu_node_regions" // 区域设置 - AdminMenuNodeSSHGrants langs.MessageCode = "admin_menu_node_ssh_grants" // 节点SSH - AdminMenuNodes langs.MessageCode = "admin_menu_nodes" // 边缘节点 - AdminMenuNS langs.MessageCode = "admin_menu_ns" // 智能DNS - AdminMenuNSAccessLogs langs.MessageCode = "admin_menu_ns_access_logs" // 访问日志 - AdminMenuNSClusters langs.MessageCode = "admin_menu_ns_clusters" // 集群管理 - AdminMenuNSDomainBatchOperations langs.MessageCode = "admin_menu_ns_domain_batch_operations" // 批量操作 - AdminMenuNSDomainGroups langs.MessageCode = "admin_menu_ns_domain_groups" // 域名分组 - AdminMenuNSDomains langs.MessageCode = "admin_menu_ns_domains" // 域名管理 - AdminMenuNSNodeLogs langs.MessageCode = "admin_menu_ns_node_logs" // 运行日志 - AdminMenuNSPlans langs.MessageCode = "admin_menu_ns_plans" // 套餐设置 - AdminMenuNSResolveTest langs.MessageCode = "admin_menu_ns_resolve_test" // 解析测试 - AdminMenuNSRoutes langs.MessageCode = "admin_menu_ns_routes" // 线路管理 - AdminMenuNSSettings langs.MessageCode = "admin_menu_ns_settings" // 全局配置 - AdminMenuNSUserPlans langs.MessageCode = "admin_menu_ns_user_plans" // 用户套餐 - AdminMenuPlanUserPlans langs.MessageCode = "admin_menu_plan_user_plans" // 已购套餐 - AdminMenuPlans langs.MessageCode = "admin_menu_plans" // 套餐管理 - AdminMenuServerAccessLogPolicies langs.MessageCode = "admin_menu_server_access_log_policies" // 日志策略 - AdminMenuServerAccessLogs langs.MessageCode = "admin_menu_server_access_logs" // 访问日志 - AdminMenuServerCachePolicies langs.MessageCode = "admin_menu_server_cache_policies" // 缓存策略 - AdminMenuServerCerts langs.MessageCode = "admin_menu_server_certs" // 证书管理 - AdminMenuServerGlobalSettings langs.MessageCode = "admin_menu_server_global_settings" // 通用设置 - AdminMenuServerGroups langs.MessageCode = "admin_menu_server_groups" // 网站分组 - AdminMenuServerIPLists langs.MessageCode = "admin_menu_server_ip_lists" // IP名单 - AdminMenuServerMetrics langs.MessageCode = "admin_menu_server_metrics" // 统计指标 - AdminMenuServerPurgeFetchCaches langs.MessageCode = "admin_menu_server_purge_fetch_caches" // 刷新预热 - AdminMenuServerScripts langs.MessageCode = "admin_menu_server_scripts" // 脚本库 - AdminMenuServerTrafficStats langs.MessageCode = "admin_menu_server_traffic_stats" // 用量统计 - AdminMenuServerWAFPolicies langs.MessageCode = "admin_menu_server_waf_policies" // WAF策略 - AdminMenuServers langs.MessageCode = "admin_menu_servers" // 网站列表 - AdminMenuSettingAdvancedSettings langs.MessageCode = "admin_menu_setting_advanced_settings" // 高级设置 - AdminMenuSettingAuthority langs.MessageCode = "admin_menu_setting_authority" // 商业版本 - AdminMenuSettingBasicSettings langs.MessageCode = "admin_menu_setting_basic_settings" // 基础设置 - AdminMenuSettings langs.MessageCode = "admin_menu_settings" // 系统设置 - AdminMenuTicketCategory langs.MessageCode = "admin_menu_ticket_category" // 分类 - AdminMenuTickets langs.MessageCode = "admin_menu_tickets" // 工单系统 - AdminMenuUserSettings langs.MessageCode = "admin_menu_user_settings" // 用户设置 - AdminMenuUsers langs.MessageCode = "admin_menu_users" // 平台用户 - AdminNodeGrantMethodPrivateKey langs.MessageCode = "admin_node_grant_method_private_key" // 私钥 - AdminNodeGrantMethodUserPassword langs.MessageCode = "admin_node_grant_method_user_password" // 用户名+密码 - AdminNodeMenuCreateMultipleNodes langs.MessageCode = "admin_node_menu_create_multiple_nodes" // 批量创建 - AdminNodeMenuCreateSingleNode langs.MessageCode = "admin_node_menu_create_single_node" // 单个创建 - AdminNodeMenuInstallAutoRegister langs.MessageCode = "admin_node_menu_install_auto_register" // 自动注册 - AdminNodeMenuInstallManually langs.MessageCode = "admin_node_menu_install_manually" // 手动安装 - AdminNodeMenuInstallRemote langs.MessageCode = "admin_node_menu_install_remote" // 远程安装(%d) - AdminNodeMenuInstallRemoteUpgrade langs.MessageCode = "admin_node_menu_install_remote_upgrade" // 远程升级(%d) - AdminNodeMenuSettingBasic langs.MessageCode = "admin_node_menu_setting_basic" // 基础设置 - AdminNodeMenuSettingCache langs.MessageCode = "admin_node_menu_setting_cache" // 缓存设置 - AdminNodeMenuSettingDDoSProtection langs.MessageCode = "admin_node_menu_setting_ddos_protection" // DDoS防护 - AdminNodeMenuSettingDNS langs.MessageCode = "admin_node_menu_setting_dns" // DNS设置 - AdminNodeMenuSettingSchedule langs.MessageCode = "admin_node_menu_setting_schedule" // 智能调度 - AdminNodeMenuSettingSSH langs.MessageCode = "admin_node_menu_setting_ssh" // SSH设置 - AdminNodeMenuSettingSystem langs.MessageCode = "admin_node_menu_setting_system" // 系统设置 - AdminNodeMenuSettingThresholds langs.MessageCode = "admin_node_menu_setting_thresholds" // 阈值设置 - AdminNodeUngroupedLabel langs.MessageCode = "admin_node_ungrouped_label" // 未分组 - AdminNSClusterMenuAccessLogs langs.MessageCode = "admin_ns_cluster_menu_access_logs" // 访问日志 - AdminNSClusterMenuAnswerSetting langs.MessageCode = "admin_ns_cluster_menu_answer_setting" // 应答模式 - AdminNSClusterMenuBasic langs.MessageCode = "admin_ns_cluster_menu_basic" // 基础设置 - AdminNSClusterMenuDDoSProtection langs.MessageCode = "admin_ns_cluster_menu_ddos_protection" // DDoS防护 - AdminNSClusterMenuDNSRecursion langs.MessageCode = "admin_ns_cluster_menu_dns_recursion" // 递归DNS - AdminNSClusterMenuDoH langs.MessageCode = "admin_ns_cluster_menu_doh" // DoH - AdminNSClusterMenuSOA langs.MessageCode = "admin_ns_cluster_menu_soa" // SOA - AdminNSClusterMenuTCP langs.MessageCode = "admin_ns_cluster_menu_tcp" // TCP - AdminNSClusterMenuTLS langs.MessageCode = "admin_ns_cluster_menu_tls" // TLS - AdminNSClusterMenuUDP langs.MessageCode = "admin_ns_cluster_menu_udp" // UDP - AdminNSClusterTabDelete langs.MessageCode = "admin_ns_cluster_tab_delete" // 删除集群 - AdminNSClusterTabNodes langs.MessageCode = "admin_ns_cluster_tab_nodes" // 节点列表 - AdminNSClusterTabSetting langs.MessageCode = "admin_ns_cluster_tab_setting" // 集群设置 - AdminNSSettingAccessLogs langs.MessageCode = "admin_ns_setting_access_logs" // 访问日志设置 - AdminNSSettingUser langs.MessageCode = "admin_ns_setting_user" // 用户设置 - AdminServerCopySettingCurrentCluster langs.MessageCode = "admin_server_copy_setting_current_cluster" // 当前集群:%s - AdminServerCopySettingCurrentGroup langs.MessageCode = "admin_server_copy_setting_current_group" // 当前分组:%s - AdminServerCopySettingCurrentUser langs.MessageCode = "admin_server_copy_setting_current_user" // 当前用户:%s - AdminServerCopySettingSelectCluster langs.MessageCode = "admin_server_copy_setting_select_cluster" // 选择集群 - AdminServerCopySettingSelectGroup langs.MessageCode = "admin_server_copy_setting_select_group" // 选择分组 - AdminServerCopySettingSelectServer langs.MessageCode = "admin_server_copy_setting_select_server" // 选择网站 - AdminServerCopySettingSelectUser langs.MessageCode = "admin_server_copy_setting_select_user" // 选择用户 - AdminServerMenuAccesslogHistory langs.MessageCode = "admin_server_menu_accesslog_history" // 历史 - AdminServerMenuAccesslogRealtime langs.MessageCode = "admin_server_menu_accesslog_realtime" // 实时 - AdminServerMenuAccesslogToday langs.MessageCode = "admin_server_menu_accesslog_today" // 今天 - AdminServerMenuDashboard langs.MessageCode = "admin_server_menu_dashboard" // 看板 - AdminServerMenuSettingAccessLog langs.MessageCode = "admin_server_menu_setting_access_log" // 访问日志 - AdminServerMenuSettingAuth langs.MessageCode = "admin_server_menu_setting_auth" // 访问鉴权 - AdminServerMenuSettingBasic langs.MessageCode = "admin_server_menu_setting_basic" // 基本信息 - AdminServerMenuSettingCache langs.MessageCode = "admin_server_menu_setting_cache" // 缓存 - AdminServerMenuSettingCC langs.MessageCode = "admin_server_menu_setting_cc" // CC防护 - AdminServerMenuSettingCharset langs.MessageCode = "admin_server_menu_setting_charset" // 字符编码 - AdminServerMenuSettingClientIP langs.MessageCode = "admin_server_menu_setting_client_ip" // 访客IP地址 - AdminServerMenuSettingCompress langs.MessageCode = "admin_server_menu_setting_compress" // 内容压缩 - AdminServerMenuSettingDelete langs.MessageCode = "admin_server_menu_setting_delete" // 删除 - AdminServerMenuSettingDNS langs.MessageCode = "admin_server_menu_setting_dns" // DNS - AdminServerMenuSettingDomains langs.MessageCode = "admin_server_menu_setting_domains" // 域名 - AdminServerMenuSettingFastcgi langs.MessageCode = "admin_server_menu_setting_fastcgi" // Fastcgi - AdminServerMenuSettingHTTP langs.MessageCode = "admin_server_menu_setting_http" // HTTP - AdminServerMenuSettingHTTPHeaders langs.MessageCode = "admin_server_menu_setting_http_headers" // HTTP Header - AdminServerMenuSettingHTTPProxy langs.MessageCode = "admin_server_menu_setting_http_proxy" // HTTP代理 - AdminServerMenuSettingHTTPS langs.MessageCode = "admin_server_menu_setting_https" // HTTPS - AdminServerMenuSettingLocations langs.MessageCode = "admin_server_menu_setting_locations" // 路由规则 - AdminServerMenuSettingOrigins langs.MessageCode = "admin_server_menu_setting_origins" // 源站 - AdminServerMenuSettingOthers langs.MessageCode = "admin_server_menu_setting_others" // 其他设置 - AdminServerMenuSettingPages langs.MessageCode = "admin_server_menu_setting_pages" // 自定义页面 - AdminServerMenuSettingRedirects langs.MessageCode = "admin_server_menu_setting_redirects" // URL跳转 - AdminServerMenuSettingReferers langs.MessageCode = "admin_server_menu_setting_referers" // 防盗链 - AdminServerMenuSettingRequestLimit langs.MessageCode = "admin_server_menu_setting_request_limit" // 请求限制 - AdminServerMenuSettingRewriteRules langs.MessageCode = "admin_server_menu_setting_rewrite_rules" // 重写规则 - AdminServerMenuSettingRoot langs.MessageCode = "admin_server_menu_setting_root" // 静态分发 - AdminServerMenuSettingScripts langs.MessageCode = "admin_server_menu_setting_scripts" // 边缘脚本 - AdminServerMenuSettingStat langs.MessageCode = "admin_server_menu_setting_stat" // 统计 - AdminServerMenuSettingTCP langs.MessageCode = "admin_server_menu_setting_tcp" // TCP - AdminServerMenuSettingTCPProxy langs.MessageCode = "admin_server_menu_setting_tcp_proxy" // TCP代理 - AdminServerMenuSettingTLS langs.MessageCode = "admin_server_menu_setting_tls" // TLS - AdminServerMenuSettingTrafficLimit langs.MessageCode = "admin_server_menu_setting_traffic_limit" // 流量限制 - AdminServerMenuSettingUAM langs.MessageCode = "admin_server_menu_setting_uam" // 5秒盾 - AdminServerMenuSettingUDP langs.MessageCode = "admin_server_menu_setting_udp" // UDP - AdminServerMenuSettingUDPProxy langs.MessageCode = "admin_server_menu_setting_udp_proxy" // UDP代理 - AdminServerMenuSettingUnix langs.MessageCode = "admin_server_menu_setting_unix" // Unix - AdminServerMenuSettingUserAgents langs.MessageCode = "admin_server_menu_setting_user_agents" // UA名单 - AdminServerMenuSettingWAF langs.MessageCode = "admin_server_menu_setting_waf" // WAF - AdminServerMenuSettingWebP langs.MessageCode = "admin_server_menu_setting_webp" // WebP - AdminServerMenuSettingWebsocket langs.MessageCode = "admin_server_menu_setting_websocket" // Websocket - AdminServerMenuStatClients langs.MessageCode = "admin_server_menu_stat_clients" // 终端 - AdminServerMenuStatProviders langs.MessageCode = "admin_server_menu_stat_providers" // 运营商 - AdminServerMenuStatRegions langs.MessageCode = "admin_server_menu_stat_regions" // 地域分布 - AdminServerMenuStatTraffic langs.MessageCode = "admin_server_menu_stat_traffic" // 流量统计 - AdminServerMenuStatWAF langs.MessageCode = "admin_server_menu_stat_waf" // WAF - AdminServerTabAccessLogs langs.MessageCode = "admin_server_tab_access_logs" // 日志 - AdminServerTabDashboard langs.MessageCode = "admin_server_tab_dashboard" // 看板 - AdminServerTabDelete langs.MessageCode = "admin_server_tab_delete" // 删除 - AdminServerTabSettings langs.MessageCode = "admin_server_tab_settings" // 设置 - AdminServerTabStat langs.MessageCode = "admin_server_tab_stat" // 统计 - AdminServerTrafficStatAllServers langs.MessageCode = "admin_server_traffic_stat_all_servers" // 全部网站(%d) - AdminSettingsTabAccessLogDatabases langs.MessageCode = "admin_settings_tab_access_log_databases" // 日志数据库 - AdminSettingsTabAdminSecuritySettings langs.MessageCode = "admin_settings_tab_admin_security_settings" // 安全设置 - AdminSettingsTabAdminServer langs.MessageCode = "admin_settings_tab_admin_server" // Web服务 - AdminSettingsTabAdminUI langs.MessageCode = "admin_settings_tab_admin_ui" // 管理界面设置 - AdminSettingsTabAPINodes langs.MessageCode = "admin_settings_tab_api_nodes" // API节点 - AdminSettingsTabAuthority langs.MessageCode = "admin_settings_tab_authority" // 商业版认证 - AdminSettingsTabBackup langs.MessageCode = "admin_settings_tab_backup" // 备份 - AdminSettingsTabClientBrowsers langs.MessageCode = "admin_settings_tab_client_browsers" // 浏览器库 - AdminSettingsTabClientOperationSystems langs.MessageCode = "admin_settings_tab_client_operation_systems" // 操作系统库 - AdminSettingsTabDatabase langs.MessageCode = "admin_settings_tab_database" // 数据库 - AdminSettingsTabIPLibrary langs.MessageCode = "admin_settings_tab_ip_library" // IP库 - AdminSettingsTabLogin langs.MessageCode = "admin_settings_tab_login" // 登录设置 - AdminSettingsTabMonitorNodes langs.MessageCode = "admin_settings_tab_monitor_nodes" // 监控节点 - AdminSettingsTabProfile langs.MessageCode = "admin_settings_tab_profile" // 个人资料 - AdminSettingsTabTransfer langs.MessageCode = "admin_settings_tab_transfer" // 迁移 - AdminSettingsTabUpdates langs.MessageCode = "admin_settings_tab_updates" // 检查更新 - AdminSettingsTabUserNodes langs.MessageCode = "admin_settings_tab_user_nodes" // 用户节点 - AdminSettingsTabUserUI langs.MessageCode = "admin_settings_tab_user_ui" // 用户界面设置 - AdminWAFConnectorAnd langs.MessageCode = "admin_waf_connector_and" // 和(AND) - AdminWAFConnectorAndDescription langs.MessageCode = "admin_waf_connector_and_description" // 所有规则都满足才视为匹配 - AdminWAFConnectorOr langs.MessageCode = "admin_waf_connector_or" // 或(OR) - AdminWAFConnectorOrDescription langs.MessageCode = "admin_waf_connector_or_description" // 任一规则满足了就视为匹配 + ACMEProviderAccount_LogCreateACMEProviderAccount langs.MessageCode = "acme_provider_account@log_create_acme_provider_account" // 创建ACME服务商账号 %d + ACMEProviderAccount_LogDeleteACMEProviderAccount langs.MessageCode = "acme_provider_account@log_delete_acme_provider_account" // 删除ACME服务商账号 %d + ACMEProviderAccount_LogUpdateACMEProviderAccount langs.MessageCode = "acme_provider_account@log_update_acme_provider_account" // 修改ACME服务商账号 %d + ACMETask_LogCreateACMETask langs.MessageCode = "acme_task@log_create_acme_task" // 创建证书申请任务 %d + ACMETask_LogDeleteACMETask langs.MessageCode = "acme_task@log_delete_acme_task" // 删除证书申请任务 %d + ACMETask_LogRunACMETask langs.MessageCode = "acme_task@log_run_acme_task" // 执行ACME任务 %d + ACMETask_LogUpdateACMETask langs.MessageCode = "acme_task@log_update_acme_task" // 修改证书申请任务 %d + ACMEUser_LogCreateACMEUser langs.MessageCode = "acme_user@log_create_acme_user" // 创建ACME用户 %d + ACMEUser_LogDeleteACMEUser langs.MessageCode = "acme_user@log_delete_acme_user" // 删除ACME用户 %d + ACMEUser_LogUpdateACMEUser langs.MessageCode = "acme_user@log_update_acme_user" // 修改ACME用户 %d + ADNetwork_LogCreateADNetwork langs.MessageCode = "ad_network@log_create_ad_network" // 创建高防IP线路 %d + ADNetwork_LogDeleteADNetwork langs.MessageCode = "ad_network@log_delete_ad_network" // 删除高防IP线路 + ADNetwork_LogUpdateADNetwork langs.MessageCode = "ad_network@log_update_ad_network" // 修改高防IP线路 %d + ADPackage_LogCreateADPackage langs.MessageCode = "ad_package@log_create_ad_package" // 创建高防产品 %d + ADPackage_LogDeleteADPackage langs.MessageCode = "ad_package@log_delete_ad_package" // 删除高防产品 %d + ADPackage_LogUpdateADPackage langs.MessageCode = "ad_package@log_update_ad_package" // 修改高防产品 %d + ADPackageInstance_LogCreateADPackageInstance langs.MessageCode = "ad_package_instance@log_create_ad_package_instance" // 创建高防实例 %d + ADPackageInstance_LogDeleteADPackageInstance langs.MessageCode = "ad_package_instance@log_delete_ad_package_instance" // 删除高防实例 %d + ADPackageInstance_LogUpdateADPackageInstance langs.MessageCode = "ad_package_instance@log_update_ad_package_instance" // 修改高防实例 %d + ADPackagePeriod_LogCreateADPackagePeriod langs.MessageCode = "ad_package_period@log_create_ad_package_period" // 创建高防IP实例有效期 %d + ADPackagePeriod_LogDeleteADPackagePeriod langs.MessageCode = "ad_package_period@log_delete_ad_package_period" // 删除高防IP实例有效期选项 %d + ADPackagePeriod_LogUpdateADPackagePeriod langs.MessageCode = "ad_package_period@log_update_ad_package_period" // 修改高防IP实例有效期选项 %d + ADPackagePrice_LogCreateADPackagePrice langs.MessageCode = "ad_package_price@log_create_ad_package_price" // 为用户 %d 创建高防实例:%d,有效期:%d,数量:%d + ADPackagePrice_LogUpdateADPackagePrice langs.MessageCode = "ad_package_price@log_update_ad_package_price" // 修改高防产品 %d 有效期 %d 的价格 + Admin_LogCreateAdmin langs.MessageCode = "admin@log_create_admin" // 创建系统用户 %d + Admin_LogDeleteAdmin langs.MessageCode = "admin@log_delete_admin" // 删除系统用户 %d + Admin_LogUpdateAdmin langs.MessageCode = "admin@log_update_admin" // 修改系统用户 %d + AdminCommon_Canceled langs.MessageCode = "admin_common@canceled" // 已取消 + AdminCommon_LogSystemError langs.MessageCode = "admin_common@log_system_error" // 系统发生错误:%s + AdminCommon_MenuSettingBasic langs.MessageCode = "admin_common@menu_setting_basic" // 基础设置 + AdminCommon_MenuSettingCache langs.MessageCode = "admin_common@menu_setting_cache" // 缓存设置 + AdminCommon_MenuSettingCachePolicy langs.MessageCode = "admin_common@menu_setting_cache_policy" // 缓存策略 + AdminCommon_MenuSettingDDoSProtection langs.MessageCode = "admin_common@menu_setting_ddos_protection" // DDoS防护 + AdminCommon_MenuSettingDNS langs.MessageCode = "admin_common@menu_setting_dns" // DNS设置 + AdminCommon_MenuSettingHealthCheck langs.MessageCode = "admin_common@menu_setting_health_check" // 健康检查 + AdminCommon_MenuSettingMetrics langs.MessageCode = "admin_common@menu_setting_metrics" // 统计指标 + AdminCommon_MenuSettingWAFPolicy langs.MessageCode = "admin_common@menu_setting_waf_policy" // WAF策略 + AdminCommon_MenuSettingWebP langs.MessageCode = "admin_common@menu_setting_webp" // WebP + AdminCommon_ServerError langs.MessageCode = "admin_common@server_error" // 服务器出了点小问题,请联系技术人员处理。 + AdminCommon_System langs.MessageCode = "admin_common@system" // 系统 + AdminDashboard_UIDNS langs.MessageCode = "admin_dashboard@ui_dns" // DNS + AdminDashboard_UIEvents langs.MessageCode = "admin_dashboard@ui_events" // 事件 + AdminDashboard_UIOverview langs.MessageCode = "admin_dashboard@ui_overview" // 概况 + AdminDashboard_UIUser langs.MessageCode = "admin_dashboard@ui_user" // 用户 + AdminDashboard_UIWAF langs.MessageCode = "admin_dashboard@ui_waf" // WAF + AdminLogin_LogFailed langs.MessageCode = "admin_login@log_failed" // 登录失败,用户名:%s + AdminLogin_LogOtpVerifiedSuccess langs.MessageCode = "admin_login@log_otp_verified_success" // 成功通过OTP验证登录系统 + AdminLogin_LogSuccess langs.MessageCode = "admin_login@log_success" // 成功登录系统,用户名:%s + AdminLogin_LogSystemError langs.MessageCode = "admin_login@log_system_error" // 登录时发生系统错误:%s + AdminLogin_LogUpdateLogin langs.MessageCode = "admin_login@log_update_login" // 修改登录设置 + AdminMenu_AdminRecipients langs.MessageCode = "admin_menu@admin_recipients" // 通知媒介 + AdminMenu_Admins langs.MessageCode = "admin_menu@admins" // 系统用户 + AdminMenu_Dashboard langs.MessageCode = "admin_menu@dashboard" // 数据看板 + AdminMenu_DNS langs.MessageCode = "admin_menu@dns" // 域名解析 + AdminMenu_DNSClusters langs.MessageCode = "admin_menu@dns_clusters" // 集群列表 + AdminMenu_DNSIssues langs.MessageCode = "admin_menu@dns_issues" // 问题修复 + AdminMenu_DNSProviders langs.MessageCode = "admin_menu@dns_providers" // DNS服务商 + AdminMenu_Finance langs.MessageCode = "admin_menu@finance" // 财务管理 + AdminMenu_FinanceAccounts langs.MessageCode = "admin_menu@finance_accounts" // 用户账户 + AdminMenu_FinanceBills langs.MessageCode = "admin_menu@finance_bills" // 费用账单 + AdminMenu_FinanceFee langs.MessageCode = "admin_menu@finance_fee" // 计费设置 + AdminMenu_FinanceIncome langs.MessageCode = "admin_menu@finance_income" // 统计报表 + AdminMenu_FinanceLogs langs.MessageCode = "admin_menu@finance_logs" // 收支明细 + AdminMenu_FinanceOrders langs.MessageCode = "admin_menu@finance_orders" // 订单管理 + AdminMenu_FinancePackages langs.MessageCode = "admin_menu@finance_packages" // 流量包 + AdminMenu_Logs langs.MessageCode = "admin_menu@logs" // 日志审计 + AdminMenu_NodeAntiDDoSProducts langs.MessageCode = "admin_menu@node_anti_ddos_products" // 高防IP + AdminMenu_NodeClusters langs.MessageCode = "admin_menu@node_clusters" // 集群列表 + AdminMenu_NodeDistributedMonitors langs.MessageCode = "admin_menu@node_distributed_monitors" // 区域监控 + AdminMenu_NodeIPList langs.MessageCode = "admin_menu@node_ip_list" // 节点IP + AdminMenu_NodeLogs langs.MessageCode = "admin_menu@node_logs" // 节点日志 + AdminMenu_NodeRegions langs.MessageCode = "admin_menu@node_regions" // 区域设置 + AdminMenu_NodeSSHGrants langs.MessageCode = "admin_menu@node_ssh_grants" // 节点SSH + AdminMenu_Nodes langs.MessageCode = "admin_menu@nodes" // 边缘节点 + AdminMenu_NS langs.MessageCode = "admin_menu@ns" // 智能DNS + AdminMenu_NSAccessLogs langs.MessageCode = "admin_menu@ns_access_logs" // 访问日志 + AdminMenu_NSClusters langs.MessageCode = "admin_menu@ns_clusters" // 集群管理 + AdminMenu_NSDomainBatchOperations langs.MessageCode = "admin_menu@ns_domain_batch_operations" // 批量操作 + AdminMenu_NSDomainGroups langs.MessageCode = "admin_menu@ns_domain_groups" // 域名分组 + AdminMenu_NSDomains langs.MessageCode = "admin_menu@ns_domains" // 域名管理 + AdminMenu_NSNodeLogs langs.MessageCode = "admin_menu@ns_node_logs" // 运行日志 + AdminMenu_NSPlans langs.MessageCode = "admin_menu@ns_plans" // 套餐设置 + AdminMenu_NSResolveTest langs.MessageCode = "admin_menu@ns_resolve_test" // 解析测试 + AdminMenu_NSRoutes langs.MessageCode = "admin_menu@ns_routes" // 线路管理 + AdminMenu_NSSettings langs.MessageCode = "admin_menu@ns_settings" // 全局配置 + AdminMenu_NSUserPlans langs.MessageCode = "admin_menu@ns_user_plans" // 用户套餐 + AdminMenu_PlanUserPlans langs.MessageCode = "admin_menu@plan_user_plans" // 已购套餐 + AdminMenu_Plans langs.MessageCode = "admin_menu@plans" // 套餐管理 + AdminMenu_ServerAccessLogPolicies langs.MessageCode = "admin_menu@server_access_log_policies" // 日志策略 + AdminMenu_ServerAccessLogs langs.MessageCode = "admin_menu@server_access_logs" // 访问日志 + AdminMenu_ServerCachePolicies langs.MessageCode = "admin_menu@server_cache_policies" // 缓存策略 + AdminMenu_ServerCerts langs.MessageCode = "admin_menu@server_certs" // 证书管理 + AdminMenu_ServerGlobalSettings langs.MessageCode = "admin_menu@server_global_settings" // 通用设置 + AdminMenu_ServerGroups langs.MessageCode = "admin_menu@server_groups" // 网站分组 + AdminMenu_ServerIPLists langs.MessageCode = "admin_menu@server_ip_lists" // IP名单 + AdminMenu_ServerMetrics langs.MessageCode = "admin_menu@server_metrics" // 统计指标 + AdminMenu_ServerPurgeFetchCaches langs.MessageCode = "admin_menu@server_purge_fetch_caches" // 刷新预热 + AdminMenu_ServerScripts langs.MessageCode = "admin_menu@server_scripts" // 脚本库 + AdminMenu_ServerTrafficStats langs.MessageCode = "admin_menu@server_traffic_stats" // 用量统计 + AdminMenu_ServerWAFPolicies langs.MessageCode = "admin_menu@server_waf_policies" // WAF策略 + AdminMenu_Servers langs.MessageCode = "admin_menu@servers" // 网站列表 + AdminMenu_SettingAdvancedSettings langs.MessageCode = "admin_menu@setting_advanced_settings" // 高级设置 + AdminMenu_SettingAuthority langs.MessageCode = "admin_menu@setting_authority" // 商业版本 + AdminMenu_SettingBasicSettings langs.MessageCode = "admin_menu@setting_basic_settings" // 基础设置 + AdminMenu_Settings langs.MessageCode = "admin_menu@settings" // 系统设置 + AdminMenu_TicketCategory langs.MessageCode = "admin_menu@ticket_category" // 分类 + AdminMenu_Tickets langs.MessageCode = "admin_menu@tickets" // 工单系统 + AdminMenu_UserSettings langs.MessageCode = "admin_menu@user_settings" // 用户设置 + AdminMenu_Users langs.MessageCode = "admin_menu@users" // 平台用户 + AdminProfile_LogUpdateProfile langs.MessageCode = "admin_profile@log_update_profile" // 修改个人资料 + AdminSecurity_LogUpdateSecuritySettings langs.MessageCode = "admin_security@log_update_security_settings" // 修改管理界面安全设置 + AdminServer_LogUpdateServerHTTPSettings langs.MessageCode = "admin_server@log_update_server_http_settings" // 修改管理界面的HTTP设置 + AdminServer_LogUpdateServerHTTPSSettings langs.MessageCode = "admin_server@log_update_server_https_settings" // 修改管理界面的HTTPS设置 + AdminSetting_TabAccessLogDatabases langs.MessageCode = "admin_setting@tab_access_log_databases" // 日志数据库 + AdminSetting_TabAdminSecuritySettings langs.MessageCode = "admin_setting@tab_admin_security_settings" // 安全设置 + AdminSetting_TabAdminServer langs.MessageCode = "admin_setting@tab_admin_server" // Web服务 + AdminSetting_TabAdminUI langs.MessageCode = "admin_setting@tab_admin_ui" // 管理界面设置 + AdminSetting_TabAPINodes langs.MessageCode = "admin_setting@tab_api_nodes" // API节点 + AdminSetting_TabAuthority langs.MessageCode = "admin_setting@tab_authority" // 商业版认证 + AdminSetting_TabBackup langs.MessageCode = "admin_setting@tab_backup" // 备份 + AdminSetting_TabClientBrowsers langs.MessageCode = "admin_setting@tab_client_browsers" // 浏览器库 + AdminSetting_TabClientOperationSystems langs.MessageCode = "admin_setting@tab_client_operation_systems" // 操作系统库 + AdminSetting_TabDatabase langs.MessageCode = "admin_setting@tab_database" // 数据库 + AdminSetting_TabIPLibrary langs.MessageCode = "admin_setting@tab_ip_library" // IP库 + AdminSetting_TabLogin langs.MessageCode = "admin_setting@tab_login" // 登录设置 + AdminSetting_TabMonitorNodes langs.MessageCode = "admin_setting@tab_monitor_nodes" // 监控节点 + AdminSetting_TabProfile langs.MessageCode = "admin_setting@tab_profile" // 个人资料 + AdminSetting_TabTransfer langs.MessageCode = "admin_setting@tab_transfer" // 迁移 + AdminSetting_TabUpdates langs.MessageCode = "admin_setting@tab_updates" // 检查更新 + AdminSetting_TabUserNodes langs.MessageCode = "admin_setting@tab_user_nodes" // 用户节点 + AdminSetting_TabUserUI langs.MessageCode = "admin_setting@tab_user_ui" // 用户界面设置 + AdminUI_DefaultProductName langs.MessageCode = "admin_ui@default_product_name" // GoEdge + AdminUI_DefaultSystemName langs.MessageCode = "admin_ui@default_system_name" // GoEdge管理员系统 + AdminUI_LogUpdateUISettings langs.MessageCode = "admin_ui@log_update_ui_settings" // 修改管理界面设置 + AdminUpdate_LogIgnoreVersion langs.MessageCode = "admin_update@log_ignore_version" // 忽略升级版本 %s + AdminUpdate_LogResetIgnoreVersion langs.MessageCode = "admin_update@log_reset_ignore_version" // 重置忽略升级版本 + AdminUpdate_LogUpdateCheckSettings langs.MessageCode = "admin_update@log_update_check_settings" // 修改检查更新设置 + APINode_LogCreateAPINode langs.MessageCode = "api_node@log_create_api_node" // 创建API节点 %d + APINode_LogDeleteAPINode langs.MessageCode = "api_node@log_delete_api_node" // 删除API节点 %d + APINode_LogUpdateAPINode langs.MessageCode = "api_node@log_update_api_node" // 修改API节点 %d + ClientBrowser_LogCreateBrowser langs.MessageCode = "client_browser@log_create_browser" // 创建浏览器信息 %s + ClientBrowser_LogUpdateClientBrowser langs.MessageCode = "client_browser@log_update_client_browser" // 修改浏览器信息 %d + ClientSystem_LogCreateSystem langs.MessageCode = "client_system@log_create_system" // 创建操作系统信息 %s + ClientSystem_LogUpdateClientSystem langs.MessageCode = "client_system@log_update_client_system" // 修改操作系统信息 %d + Database_LogDeleteTable langs.MessageCode = "database@log_delete_table" // 删除数据表 %s + Database_LogTruncateTable langs.MessageCode = "database@log_truncate_table" // 清空数据表 %s 数据 + Database_LogUpdateAPINodeDatabaseConfig langs.MessageCode = "database@log_update_api_node_database_config" // 修改API节点数据库设置 + Database_LogUpdateCleanDays langs.MessageCode = "database@log_update_clean_days" // 修改数据库自动清理设置 + DBNode_LogCreateDBNode langs.MessageCode = "db_node@log_create_db_node" // 创建数据库节点 %d + DBNode_LogDeleteDBNode langs.MessageCode = "db_node@log_delete_db_node" // 删除数据库节点 %d + DBNode_LogDeleteTable langs.MessageCode = "db_node@log_delete_table" // 删除数据库节点 %d 数据表 %s + DBNode_LogTruncateTable langs.MessageCode = "db_node@log_truncate_table" // 清空数据库节点 %d 数据表 %s 数据 + DBNode_LogUpdateDBNode langs.MessageCode = "db_node@log_update_db_node" // 修改数据库节点 %d + DBNode_TabNodes langs.MessageCode = "db_node@tab_nodes" // 数据库节点 + DDoSProtection_LogUpdateClusterDDoSProtection langs.MessageCode = "ddos_protection@log_update_cluster_ddos_protection" // 修改集群 %d 的DDOS防护设置 + DDoSProtection_LogUpdateNodeDDoSProtection langs.MessageCode = "ddos_protection@log_update_node_ddos_protection" // 修改节点 %d 的DDOS防护设置 + DNS_LogCreateDomain langs.MessageCode = "dns@log_create_domain" // 添加管理域名到DNS服务商 %d + DNS_LogDeleteDomain langs.MessageCode = "dns@log_delete_domain" // 从DNS服务商中删除域名 %d + DNS_LogRecoverDomain langs.MessageCode = "dns@log_recover_domain" // 从DNS服务商中恢复域名 %d + DNS_LogSyncCluster langs.MessageCode = "dns@log_sync_cluster" // 同步集群 %d 的DNS设置 + DNS_LogSyncDomain langs.MessageCode = "dns@log_sync_domain" // 同步DNS域名数据 %d + DNS_LogUpdateClusterDNS langs.MessageCode = "dns@log_update_cluster_dns" // 修改集群 %d DNS设置 + DNS_LogUpdateDomain langs.MessageCode = "dns@log_update_domain" // 修改DNS服务商域名 %d + DNS_LogUpdateNodeDNS langs.MessageCode = "dns@log_update_node_dns" // 修改节点 %d 的DNS设置 + DNSProvider_LogCreateDNSProvider langs.MessageCode = "dns_provider@log_create_dns_provider" // 创建DNS服务商 %d + DNSProvider_LogDeleteDNSProvider langs.MessageCode = "dns_provider@log_delete_dns_provider" // 删除DNS服务商 %d + DNSProvider_LogUpdateDNSProvider langs.MessageCode = "dns_provider@log_update_dns_provider" // 修改DNS服务商 %d + DNSTask_LogDeleteDNSTask langs.MessageCode = "dns_task@log_delete_dns_task" // 删除DNS同步任务 %d + Finance_LogBillGenerateManually langs.MessageCode = "finance@log_bill_generate_manually" // 手动生成上个月 %s 账单 + Finance_LogUpdateUserOrderConfig langs.MessageCode = "finance@log_update_user_order_config" // 修改订单设置 + FinanceFee_LogUpdateFeeSetting langs.MessageCode = "finance_fee@log_update_fee_setting" // 修改默认计费方式 + HTTPAccessLogPolicy_LogCreateHTTPAccessLogPolicy langs.MessageCode = "http_access_log_policy@log_create_http_access_log_policy" // 创建访问日志策略 %d + HTTPAccessLogPolicy_LogDeleteHTTPAccessLogPolicy langs.MessageCode = "http_access_log_policy@log_delete_http_access_log_policy" // 删除访问日志策略 %d + HTTPAccessLogPolicy_LogTestHTTPAccessLogPolicy langs.MessageCode = "http_access_log_policy@log_test_http_access_log_policy" // 测试向访问日志策略 %d 写入数据 + HTTPAccessLogPolicy_LogUpdateHTTPAccessLogPolicy langs.MessageCode = "http_access_log_policy@log_update_http_access_log_policy" // 修改访问日志策略 %d + HTTPAuthPolicy_LogCreateHTTPAuthPolicy langs.MessageCode = "http_auth_policy@log_create_http_auth_policy" // 创建HTTP鉴权 %d + HTTPAuthPolicy_LogUpdateHTTPAuthPolicy langs.MessageCode = "http_auth_policy@log_update_http_auth_policy" // 修改HTTP鉴权 %d + HTTPCacheTask_LogCreateHTTPCacheTaskFetch langs.MessageCode = "http_cache_task@log_create_http_cache_task_fetch" // 批量预热缓存Key + HTTPCacheTask_LogCreateHTTPCacheTaskPurge langs.MessageCode = "http_cache_task@log_create_http_cache_task_purge" // 批量刷新缓存Key + HTTPCacheTask_LogDeleteHTTPCacheTask langs.MessageCode = "http_cache_task@log_delete_http_cache_task" // 删除缓存任务 %d + HTTPCacheTask_LogResetHTTPCacheTask langs.MessageCode = "http_cache_task@log_reset_http_cache_task" // 重置缓存任务 %d 状态 + HTTPFastcgi_LogCreateHTTPFastcgi langs.MessageCode = "http_fastcgi@log_create_http_fastcgi" // 创建Fastcgi %d + HTTPFastcgi_LogUpdateHTTPFastcgi langs.MessageCode = "http_fastcgi@log_update_http_fastcgi" // 修改Fastcgi %d + HTTPLocation_LogCreateHTTPLocation langs.MessageCode = "http_location@log_create_http_location" // 创建路由规则:%s + HTTPLocation_LogUpdateHTTPLocation langs.MessageCode = "http_location@log_update_http_location" // 修改路由规则 %d 设置 + HTTPRewriteRule_LogCreateRewriteRule langs.MessageCode = "http_rewrite_rule@log_create_rewrite_rule" // 在Web %d 中创建重写规则 %d + HTTPRewriteRule_LogDeleteRewriteRule langs.MessageCode = "http_rewrite_rule@log_delete_rewrite_rule" // 从Web %d 中删除重写规则 %d + HTTPRewriteRule_LogSortRewriteRules langs.MessageCode = "http_rewrite_rule@log_sort_rewrite_rules" // 对Web %d 中的重写规则进行排序 + HTTPRewriteRule_LogUpdateRewriteRule langs.MessageCode = "http_rewrite_rule@log_update_rewrite_rule" // 修改Web %d 中的重写规则 %d + IPItem_LogCreateIPItem langs.MessageCode = "ip_item@log_create_ip_item" // 在名单 %d 中创建IP %d + IPItem_LogDeleteIPItem langs.MessageCode = "ip_item@log_delete_ip_item" // 从IP名单 %d 中删除IP %d + IPItem_LogReadAllIPItems langs.MessageCode = "ip_item@log_read_all_ip_items" // 将所有IP名单置为已读 + IPItem_LogUpdateIPItem langs.MessageCode = "ip_item@log_update_ip_item" // 修改IP名单中的IP %d + IPLibrary_LogFinishIPLibrary langs.MessageCode = "ip_library@log_finish_ip_library" // 完成IP库%d 制作 + IPLibraryArtifact_LogCancelIPLibraryArtifact langs.MessageCode = "ip_library_artifact@log_cancel_ip_library_artifact" // 取消使用IP库 %d + IPLibraryArtifact_LogDeleteIPLibraryArtifact langs.MessageCode = "ip_library_artifact@log_delete_ip_library_artifact" // 删除IP库 %d + IPLibraryArtifact_LogUseIPLibraryArtifact langs.MessageCode = "ip_library_artifact@log_use_ip_library_artifact" // 使用IP库 %d + IPLibraryFile_LogDeleteIPLibraryFile langs.MessageCode = "ip_library_file@log_delete_ip_library_file" // 删除IP库文件 %d + IPLibraryFile_LogGenerateIPLibraryFile langs.MessageCode = "ip_library_file@log_generate_ip_library_file" // 重新生成IP库 %d 文件 + IPLibraryFile_LogUploadIPLibraryFile langs.MessageCode = "ip_library_file@log_upload_ip_library_file" // 上传IP库 %d + IPList_LogBindIPListWAFPolicy langs.MessageCode = "ip_list@log_bind_ip_list_waf_policy" // 绑定IP名单 %d 到WAF策略 %d + IPList_LogCreateIPItemsBatch langs.MessageCode = "ip_list@log_create_ip_items_batch" // 在IP名单 %d 中批量添加IP + IPList_LogCreateIPList langs.MessageCode = "ip_list@log_create_ip_list" // 创建IP名单 %d + IPList_LogDeleteIPBatch langs.MessageCode = "ip_list@log_delete_ip_batch" // 批量删除IP名单中的IP:%s + IPList_LogDeleteIPList langs.MessageCode = "ip_list@log_delete_ip_list" // 删除IP名单 %d + IPList_LogExportIPList langs.MessageCode = "ip_list@log_export_ip_list" // 导出IP名单 %d + IPList_LogImportIPList langs.MessageCode = "ip_list@log_import_ip_list" // 导入IP名单 %d + IPList_LogUnbindIPListWAFPolicy langs.MessageCode = "ip_list@log_unbind_ip_list_waf_policy" // 解除绑定IP名单 %d WAF策略 %d + IPList_LogUpdateIPList langs.MessageCode = "ip_list@log_update_ip_list" // 修改IP名单 %d + Level_Error langs.MessageCode = "level@error" // 错误 + Level_Info langs.MessageCode = "level@info" // 信息 + Level_Warn langs.MessageCode = "level@warn" // 警告 + Log_LogCleanAllLogs langs.MessageCode = "log@log_clean_all_logs" // 清除全部日志 + Log_LogCleanLogsDaysBefore langs.MessageCode = "log@log_clean_logs_days_before" // 清除 %d 以前的日志 + Log_LogDeleteLog langs.MessageCode = "log@log_delete_log" // 删除单个操作日志 %d + Log_LogUpdateSettings langs.MessageCode = "log@log_update_settings" // 修改日志相关配置 + Log_TagAccessLog langs.MessageCode = "log@tag_access_log" // 访问日志 + Log_TagListener langs.MessageCode = "log@tag_listener" // 端口监听 + Log_TagScript langs.MessageCode = "log@tag_script" // 脚本 + Log_TagWAF langs.MessageCode = "log@tag_waf" // WAF + Message_LogReadAll langs.MessageCode = "message@log_read_all" // 将所有消息置为已读 + Message_LogReadMessages langs.MessageCode = "message@log_read_messages" // 将一组消息置为已读 + MessageMediaInstance_LogCreateMessageMediaInstance langs.MessageCode = "message_media_instance@log_create_message_media_instance" // 创建消息媒介 %d + MessageMediaInstance_LogDeleteMessageMediaInstance langs.MessageCode = "message_media_instance@log_delete_message_media_instance" // 删除消息媒介 %d + MessageMediaInstance_LogUpdateMessageMediaInstance langs.MessageCode = "message_media_instance@log_update_message_media_instance" // 修改消息媒介 %d + MessageReciever_LogUpdateClusterMessageReceivers langs.MessageCode = "message_reciever@log_update_cluster_message_receivers" // 修改集群 %d 消息接收人 + MessageRecipient_LogCreateMessageRecipient langs.MessageCode = "message_recipient@log_create_message_recipient" // 创建媒介接收人 %d + MessageRecipient_LogDeleteMessageRecipient langs.MessageCode = "message_recipient@log_delete_message_recipient" // 删除媒介接收人 %d + MessageRecipient_LogUpdateMessageRecipient langs.MessageCode = "message_recipient@log_update_message_recipient" // 修改媒介接收人 %d + MessageTask_LogCreateTestingMessageTask langs.MessageCode = "message_task@log_create_testing_message_task" // 创建媒介测试任务 %d + MessageTask_LogDeleteMessageTask langs.MessageCode = "message_task@log_delete_message_task" // 删除消息发送任务 %d + MetricChart_LogCreateMetricChart langs.MessageCode = "metric_chart@log_create_metric_chart" // 创建指标图表 %d + MetricChart_LogDeleteMetricChart langs.MessageCode = "metric_chart@log_delete_metric_chart" // 删除指标图表 %d + MetricChart_LogUpdateMetricChart langs.MessageCode = "metric_chart@log_update_metric_chart" // 修改指标图表 %d + MetricItem_LogAddMetricItemToCluster langs.MessageCode = "metric_item@log_add_metric_item_to_cluster" // 添加指标 %d 到集群 %d + MetricItem_LogCreateMetricItem langs.MessageCode = "metric_item@log_create_metric_item" // 创建统计指标 %d + MetricItem_LogDeleteMetricItem langs.MessageCode = "metric_item@log_delete_metric_item" // 删除统计指标 + MetricItem_LogDeleteMetricItemFromCluster langs.MessageCode = "metric_item@log_delete_metric_item_from_cluster" // 从集群 %d 中移除指标 %d + MetricItem_LogUpdateMetricItem langs.MessageCode = "metric_item@log_update_metric_item" // 修改统计指标 %d + MonitorNode_LogCreateMonitorNode langs.MessageCode = "monitor_node@log_create_monitor_node" // 创建监控节点 %d + MonitorNode_LogDeleteMonitorNode langs.MessageCode = "monitor_node@log_delete_monitor_node" // 删除监控节点 %d + MonitorNode_LogUpdateMonitorNode langs.MessageCode = "monitor_node@log_update_monitor_node" // 修改监控节点 %d + Node_LogCreateNode langs.MessageCode = "node@log_create_node" // 创建节点 %d + Node_LogCreateNodeBatch langs.MessageCode = "node@log_create_node_batch" // 批量创建节点 + Node_LogDeleteNodeFromCluster langs.MessageCode = "node@log_delete_node_from_cluster" // 从集群 %d 中删除节点 %d + Node_LogInstallNode langs.MessageCode = "node@log_install_node" // 安装节点 %d + Node_LogInstallNodeRemotely langs.MessageCode = "node@log_install_node_remotely" // 远程安装节点 %d + Node_LogStartNodeRemotely langs.MessageCode = "node@log_start_node_remotely" // 远程启动节点 %d + Node_LogStopNodeRemotely langs.MessageCode = "node@log_stop_node_remotely" // 远程停止节点 %d + Node_LogUpNode langs.MessageCode = "node@log_up_node" // 手动上线节点 %d + Node_LogUpdateNode langs.MessageCode = "node@log_update_node" // 修改节点 %d 基本信息 + Node_LogUpdateNodeInstallationStatus langs.MessageCode = "node@log_update_node_installation_status" // 修改节点安装状态 %d + Node_LogUpgradeNodeRemotely langs.MessageCode = "node@log_upgrade_node_remotely" // 远程升级节点 %d + Node_UngroupedLabel langs.MessageCode = "node@ungrouped_label" // 未分组 + NodeAction_LogCopyNodeActionsToCluster langs.MessageCode = "node_action@log_copy_node_actions_to_cluster" // 复制节点 %d 调度动作到集群 + NodeAction_LogCopyNodeActionsToGroup langs.MessageCode = "node_action@log_copy_node_actions_to_group" // 复制节点 %d 调度动作到分组 + NodeAction_LogCreateNodeAction langs.MessageCode = "node_action@log_create_node_action" // 创建动作 %d + NodeAction_LogDeleteNodeAction langs.MessageCode = "node_action@log_delete_node_action" // 删除节点动作 %d + NodeAction_LogSortNodeActions langs.MessageCode = "node_action@log_sort_node_actions" // 修改节点 %d 动作排序 + NodeAction_LogUpdateNodeAction langs.MessageCode = "node_action@log_update_node_action" // 修改节点动作 %d + NodeCache_LogUpdateNodeCacheSettings langs.MessageCode = "node_cache@log_update_node_cache_settings" // 修改节点 %d 缓存设置 + NodeCluster_LogCreateCluster langs.MessageCode = "node_cluster@log_create_cluster" // 创建节点集群:%d + NodeCluster_LogDeleteCluster langs.MessageCode = "node_cluster@log_delete_cluster" // 删除集群 %d + NodeCluster_LogPinCluster langs.MessageCode = "node_cluster@log_pin_cluster" // 置顶集群 %d + NodeCluster_LogRunClusterHealthCheck langs.MessageCode = "node_cluster@log_run_cluster_health_check" // 执行集群健康检查设置 %d + NodeCluster_LogUnpinCluster langs.MessageCode = "node_cluster@log_unpin_cluster" // 取消置顶集群 %d + NodeCluster_LogUpdateClusterBasicSettings langs.MessageCode = "node_cluster@log_update_cluster_basic_settings" // 修改集群基础设置 %d + NodeCluster_LogUpdateClusterHealthCheck langs.MessageCode = "node_cluster@log_update_cluster_health_check" // 修改集群健康检查设置 %d + NodeClusterMenu_SettingBasic langs.MessageCode = "node_cluster_menu@setting_basic" // 基础设置 + NodeClusterMenu_SettingCachePolicy langs.MessageCode = "node_cluster_menu@setting_cache_policy" // 缓存策略 + NodeClusterMenu_SettingCC langs.MessageCode = "node_cluster_menu@setting_cc" // CC防护 + NodeClusterMenu_SettingDDoSProtection langs.MessageCode = "node_cluster_menu@setting_ddos_protection" // DDoS防护 + NodeClusterMenu_SettingDNS langs.MessageCode = "node_cluster_menu@setting_dns" // DNS设置 + NodeClusterMenu_SettingHealthCheck langs.MessageCode = "node_cluster_menu@setting_health_check" // 健康检查 + NodeClusterMenu_SettingHTTP3 langs.MessageCode = "node_cluster_menu@setting_http3" // HTTP/3 + NodeClusterMenu_SettingMetrics langs.MessageCode = "node_cluster_menu@setting_metrics" // 统计指标 + NodeClusterMenu_SettingNotification langs.MessageCode = "node_cluster_menu@setting_notification" // 消息通知 + NodeClusterMenu_SettingPages langs.MessageCode = "node_cluster_menu@setting_pages" // 自定义页面 + NodeClusterMenu_SettingSchedule langs.MessageCode = "node_cluster_menu@setting_schedule" // 智能调度 + NodeClusterMenu_SettingServiceGlobal langs.MessageCode = "node_cluster_menu@setting_service_global" // 网站设置 + NodeClusterMenu_SettingSystemService langs.MessageCode = "node_cluster_menu@setting_system_service" // 系统服务 + NodeClusterMenu_SettingThresholds langs.MessageCode = "node_cluster_menu@setting_thresholds" // 阈值设置 + NodeClusterMenu_SettingTOA langs.MessageCode = "node_cluster_menu@setting_toa" // TOA设置 + NodeClusterMenu_SettingUAM langs.MessageCode = "node_cluster_menu@setting_uam" // 5秒盾 + NodeClusterMenu_SettingWAFActions langs.MessageCode = "node_cluster_menu@setting_waf_actions" // WAF动作 + NodeClusterMenu_SettingWAFPolicy langs.MessageCode = "node_cluster_menu@setting_waf_policy" // WAF策略 + NodeClusterMenu_SettingWebP langs.MessageCode = "node_cluster_menu@setting_webp" // WebP + NodeClusterMenu_TabClusterDashboard langs.MessageCode = "node_cluster_menu@tab_cluster_dashboard" // 集群看板 + NodeClusterMenu_TabClusterDelete langs.MessageCode = "node_cluster_menu@tab_cluster_delete" // 删除集群 + NodeClusterMenu_TabClusterNodes langs.MessageCode = "node_cluster_menu@tab_cluster_nodes" // 节点列表 + NodeClusterMenu_TabClusterSettings langs.MessageCode = "node_cluster_menu@tab_cluster_settings" // 集群设置 + NodeDNS_LogUpdateNodeDNS langs.MessageCode = "node_dns@log_update_node_dns" // 修改节点 %d DNS设置 + NodeGrant_LogCreateSSHGrant langs.MessageCode = "node_grant@log_create_ssh_grant" // 创建SSH认证 %d + NodeGrant_LogDeleteSSHGrant langs.MessageCode = "node_grant@log_delete_ssh_grant" // 删除SSH认证 %d + NodeGrant_LogUpdateSSHGrant langs.MessageCode = "node_grant@log_update_ssh_grant" // 修改SSH认证 %d + NodeGrant_MethodPrivateKey langs.MessageCode = "node_grant@method_private_key" // 私钥 + NodeGrant_MethodUserPassword langs.MessageCode = "node_grant@method_user_password" // 用户名+密码 + NodeGroup_LogCreateNodeGroup langs.MessageCode = "node_group@log_create_node_group" // 创建节点分组 %d + NodeGroup_LogDeleteNodeGroup langs.MessageCode = "node_group@log_delete_node_group" // 删除节点分组 %d + NodeGroup_LogSortNodeGroups langs.MessageCode = "node_group@log_sort_node_groups" // 修改节点分组排序 + NodeGroup_LogUpdateNodeGroup langs.MessageCode = "node_group@log_update_node_group" // 修改节点分组 %d + NodeIPAddress_LogDeleteNodeIPAddress langs.MessageCode = "node_ip_address@log_delete_node_ip_address" // 删除IP地址 %d + NodeIPAddress_LogDownNodeIPAddress langs.MessageCode = "node_ip_address@log_down_node_ip_address" // 手动设置IP地址 %d 下线 + NodeIPAddress_LogRestoreNodeIPAddress langs.MessageCode = "node_ip_address@log_restore_node_ip_address" // 取消IP地址 %d 的备用IP + NodeIPAddress_LogUpNodeIPAddress langs.MessageCode = "node_ip_address@log_up_node_ip_address" // 手动设置IP地址 %d 上线 + NodeLog_LogDeleteNodeLogsBatch langs.MessageCode = "node_log@log_delete_node_logs_batch" // 批量删除节点运行日志 + NodeLog_LogFixAllLogs langs.MessageCode = "node_log@log_fix_all_logs" // 设置所有日志为已修复 + NodeLog_LogFixNodeLogs langs.MessageCode = "node_log@log_fix_node_logs" // 设置日志 %s 为已修复 + NodeMenu_CreateMultipleNodes langs.MessageCode = "node_menu@create_multiple_nodes" // 批量创建 + NodeMenu_CreateSingleNode langs.MessageCode = "node_menu@create_single_node" // 单个创建 + NodeMenu_InstallAutoRegister langs.MessageCode = "node_menu@install_auto_register" // 自动注册 + NodeMenu_InstallManually langs.MessageCode = "node_menu@install_manually" // 手动安装 + NodeMenu_InstallRemote langs.MessageCode = "node_menu@install_remote" // 远程安装(%d) + NodeMenu_InstallRemoteUpgrade langs.MessageCode = "node_menu@install_remote_upgrade" // 远程升级(%d) + NodeMenu_SettingBasic langs.MessageCode = "node_menu@setting_basic" // 基础设置 + NodeMenu_SettingCache langs.MessageCode = "node_menu@setting_cache" // 缓存设置 + NodeMenu_SettingDDoSProtection langs.MessageCode = "node_menu@setting_ddos_protection" // DDoS防护 + NodeMenu_SettingDNS langs.MessageCode = "node_menu@setting_dns" // DNS设置 + NodeMenu_SettingSchedule langs.MessageCode = "node_menu@setting_schedule" // 智能调度 + NodeMenu_SettingSSH langs.MessageCode = "node_menu@setting_ssh" // SSH设置 + NodeMenu_SettingSystem langs.MessageCode = "node_menu@setting_system" // 系统设置 + NodeMenu_SettingThresholds langs.MessageCode = "node_menu@setting_thresholds" // 阈值设置 + NodePriceItem_LogCreateNodePriceItemBandwidth langs.MessageCode = "node_price_item@log_create_node_price_item_bandwidth" // 创建带宽价格项目 %d + NodePriceItem_LogCreateNodePriceItemTraffic langs.MessageCode = "node_price_item@log_create_node_price_item_traffic" // 创建流量价格项目 %d + NodePriceItem_LogDeleteNodePriceItem langs.MessageCode = "node_price_item@log_delete_node_price_item" // 删除流量价格项目 %d + NodePriceItem_LogUpdateNodePriceItemBandwidth langs.MessageCode = "node_price_item@log_update_node_price_item_bandwidth" // 修改带宽价格项目 %d + NodePriceItem_LogUpdateNodePriceItemTraffic langs.MessageCode = "node_price_item@log_update_node_price_item_traffic" // 修改流量价格项目 %d + NodeRegion_LogCreateNodeRegion langs.MessageCode = "node_region@log_create_node_region" // 创建节点区域 %d + NodeRegion_LogDeleteNodeRegion langs.MessageCode = "node_region@log_delete_node_region" // 删除节点区域 %d + NodeRegion_LogMoveNodeBetweenRegions langs.MessageCode = "node_region@log_move_node_between_regions" // 修改节点 %d 区域到 %d + NodeRegion_LogSortNodeRegions langs.MessageCode = "node_region@log_sort_node_regions" // 修改节点区域排序 + NodeRegion_LogUpdateNodeRegion langs.MessageCode = "node_region@log_update_node_region" // 修改节点区域 %d + NodeRegionPrice_LogUpdateNodeRegionPrice langs.MessageCode = "node_region_price@log_update_node_region_price" // 修改区域 %d - 价格项 %d 的价格 + NodeSchedule_LogResetNodeActionStatus langs.MessageCode = "node_schedule@log_reset_node_action_status" // 重置节点 %d 动作状态 + NodeSchedule_LogUpdateNodeScheduleBasic langs.MessageCode = "node_schedule@log_update_node_schedule_basic" // 修改节点调度基本信息 + NodeSSH_LogUpdateNodeSSH langs.MessageCode = "node_ssh@log_update_node_ssh" // 修改节点 %d SSH配置 + NodeSystem_LogUpdateNodeSystemSettings langs.MessageCode = "node_system@log_update_node_system_settings" // 修改节点 %d 系统信息 + NodeSystemd_LogUpdateClusterSystemdSettings langs.MessageCode = "node_systemd@log_update_cluster_systemd_settings" // 修改集群 %d 的系统服务设置 + NodeTask_LogDeleteNodeTask langs.MessageCode = "node_task@log_delete_node_task" // 删除同步任务 %d + NodeTask_LogDeleteNodeTasksBatch langs.MessageCode = "node_task@log_delete_node_tasks_batch" // 批量删除节点同步任务 + NodeThreshold_LogCreateNodeThreshold langs.MessageCode = "node_threshold@log_create_node_threshold" // 创建节点阈值 %d + NodeThreshold_LogDeleteNodeThreshold langs.MessageCode = "node_threshold@log_delete_node_threshold" // 删除阈值 %d + NodeThreshold_LogUpdateNodeThreshold langs.MessageCode = "node_threshold@log_update_node_threshold" // 修改节点阈值 %d + NodeTOA_LogUpdateClusterTOA langs.MessageCode = "node_toa@log_update_cluster_toa" // 修改集群 %d 的TOA设置 + NS_LogCreateNSDomainsBatch langs.MessageCode = "ns@log_create_ns_domains_batch" // 批量添加域名 + NS_LogCreateNSRecordsBatch langs.MessageCode = "ns@log_create_ns_records_batch" // 批量添加解析 + NS_LogDeleteNSDomainsBatch langs.MessageCode = "ns@log_delete_ns_domains_batch" // 批量删除NS域名,用户 %d + NS_LogDeleteNSRecordsBatch langs.MessageCode = "ns@log_delete_ns_records_batch" // 批量删除NS域名记录 + NS_LogDisableNSRecordsBatch langs.MessageCode = "ns@log_disable_ns_records_batch" // 批量停用NS域名记录 + NS_LogEnableNSRecordsBatch langs.MessageCode = "ns@log_enable_ns_records_batch" // 批量启用NS域名记录 + NS_LogImportRecordsBatch langs.MessageCode = "ns@log_import_records_batch" // 批量导入记录 + NS_LogUpdateNSRecordsBatch langs.MessageCode = "ns@log_update_ns_records_batch" // 批量修改NS域名记录 + NS_LogUpdateNSUserConfig langs.MessageCode = "ns@log_update_ns_user_config" // 修改NS全局设置--用户相关设置 + NS_SettingAccessLogs langs.MessageCode = "ns@setting_access_logs" // 访问日志设置 + NS_SettingUser langs.MessageCode = "ns@setting_user" // 用户设置 + NSCluster_LogCreateNSCluster langs.MessageCode = "ns_cluster@log_create_ns_cluster" // 创建域名服务集群 %d + NSCluster_LogDeleteNSCluster langs.MessageCode = "ns_cluster@log_delete_ns_cluster" // 删除域名服务集群 %d + NSCluster_LogUpdateNSClusterSettingsAccessLog langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_access_log" // 修改域名服务集群 %d 访问日志配置 + NSCluster_LogUpdateNSClusterSettingsAnswer langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_answer" // 修改NS集群 %d 应答模式设置 + NSCluster_LogUpdateNSClusterSettingsBasic langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_basic" // 修改域名服务集群基本信息 %d + NSCluster_LogUpdateNSClusterSettingsDDoSProtection langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_ddos_protection" // 修改NS集群 %d 的DDOS防护设置 + NSCluster_LogUpdateNSClusterSettingsDoH langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_doh" // 修改NS集群 %d DoH设置 + NSCluster_LogUpdateNSClusterSettingsRecursion langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_recursion" // 修改DNS集群 %d 的递归DNS设置 + NSCluster_LogUpdateNSClusterSettingsSOA langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_soa" // 修改NS集群 %d SOA配置 + NSCluster_LogUpdateNSClusterSettingsTCP langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_tcp" // 修理NS集群 %d TCP设置 + NSCluster_LogUpdateNSClusterSettingsTLS langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_tls" // 修改NS集群 %d TLS设置 + NSCluster_LogUpdateNSClusterSettingsUDP langs.MessageCode = "ns_cluster@log_update_ns_cluster_settings_udp" // 修改NS集群 %d UDP设置 + NSCluster_MenuAccessLogs langs.MessageCode = "ns_cluster@menu_access_logs" // 访问日志 + NSCluster_MenuAnswerSetting langs.MessageCode = "ns_cluster@menu_answer_setting" // 应答模式 + NSCluster_MenuBasic langs.MessageCode = "ns_cluster@menu_basic" // 基础设置 + NSCluster_MenuDDoSProtection langs.MessageCode = "ns_cluster@menu_ddos_protection" // DDoS防护 + NSCluster_MenuDNSRecursion langs.MessageCode = "ns_cluster@menu_dns_recursion" // 递归DNS + NSCluster_MenuDoH langs.MessageCode = "ns_cluster@menu_doh" // DoH + NSCluster_MenuSOA langs.MessageCode = "ns_cluster@menu_soa" // SOA + NSCluster_MenuTCP langs.MessageCode = "ns_cluster@menu_tcp" // TCP + NSCluster_MenuTLS langs.MessageCode = "ns_cluster@menu_tls" // TLS + NSCluster_MenuUDP langs.MessageCode = "ns_cluster@menu_udp" // UDP + NSCluster_TabDelete langs.MessageCode = "ns_cluster@tab_delete" // 删除集群 + NSCluster_TabNodes langs.MessageCode = "ns_cluster@tab_nodes" // 节点列表 + NSCluster_TabSetting langs.MessageCode = "ns_cluster@tab_setting" // 集群设置 + NSDomain_LogCreateNSDomain langs.MessageCode = "ns_domain@log_create_ns_domain" // 创建域名 %d + NSDomain_LogCreateNSDomainsBatch langs.MessageCode = "ns_domain@log_create_ns_domains_batch" // 批量添加域名 + NSDomain_LogDeleteNSDomain langs.MessageCode = "ns_domain@log_delete_ns_domain" // 删除域名 %d + NSDomain_LogUpdateNSDomain langs.MessageCode = "ns_domain@log_update_ns_domain" // 修改域名 %d + NSDomain_LogUpdateNSDomainHealthCheck langs.MessageCode = "ns_domain@log_update_ns_domain_health_check" // 修改域名 %d 健康检查设置 + NSDomain_LogUpdateNSDomainStatus langs.MessageCode = "ns_domain@log_update_ns_domain_status" // 修改域名 %d 状态为 %s + NSDomain_LogUpdateNSDomainTSIG langs.MessageCode = "ns_domain@log_update_ns_domain_tsig" // 修改域名 %d 的TSIG配置 + NSDomainGroup_LogCreateNSDomainGroup langs.MessageCode = "ns_domain_group@log_create_ns_domain_group" // 创建NS域名分组 %d + NSDomainGroup_LogDeleteNSDomainGroup langs.MessageCode = "ns_domain_group@log_delete_ns_domain_group" // 删除NS域名分组 %d + NSDomainGroup_LogUpdateNSDomainGroup langs.MessageCode = "ns_domain_group@log_update_ns_domain_group" // 修改NS域名分组 %d + NSKey_LogCreateNSKey langs.MessageCode = "ns_key@log_create_ns_key" // 创建DNS密钥 %d + NSKey_LogDeleteNSKey langs.MessageCode = "ns_key@log_delete_ns_key" // 删除DNS密钥 %d + NSKey_LogUpdateNSKey langs.MessageCode = "ns_key@log_update_ns_key" // 修改DNS密钥 %d + NSNode_LogCreateNSNode langs.MessageCode = "ns_node@log_create_ns_node" // 创建域名服务节点 %d + NSNode_LogDeleteNSNode langs.MessageCode = "ns_node@log_delete_ns_node" // 删除域名服务节点 %d + NSNode_LogInstallNSNodeRemotely langs.MessageCode = "ns_node@log_install_ns_node_remotely" // 安装节点 %d + NSNode_LogStartNSNodeRemotely langs.MessageCode = "ns_node@log_start_ns_node_remotely" // 远程启动节点 %d + NSNode_LogStopNSNodeRemotely langs.MessageCode = "ns_node@log_stop_ns_node_remotely" // 远程停止节点 %d + NSNode_LogUpdateNSNode langs.MessageCode = "ns_node@log_update_ns_node" // 修改节点 %d + NSNode_LogUpdateNSNodeInstallationStatus langs.MessageCode = "ns_node@log_update_ns_node_installation_status" // 修改节点安装状态 %d + NSNodeSSH_LogUpdateNSNodeSSH langs.MessageCode = "ns_node_ssh@log_update_ns_node_ssh" // 修改节点 %d SSH配置 + NSPlan_LogCreateNSPlan langs.MessageCode = "ns_plan@log_create_ns_plan" // 创建套餐 %d + NSPlan_LogDeleteNSPlan langs.MessageCode = "ns_plan@log_delete_ns_plan" // 删除套餐 %d + NSPlan_LogSortNSPlans langs.MessageCode = "ns_plan@log_sort_ns_plans" // 套餐排序 + NSPlan_LogUpdateNSPlan langs.MessageCode = "ns_plan@log_update_ns_plan" // 修改套餐 %d + NSRecord_LogCreateNSRecord langs.MessageCode = "ns_record@log_create_ns_record" // 创建NS域名记录 %d + NSRecord_LogCreateNSRecordsBatch langs.MessageCode = "ns_record@log_create_ns_records_batch" // 批量创建NS域名记录 + NSRecord_LogDeleteNSRecord langs.MessageCode = "ns_record@log_delete_ns_record" // 删除域名记录 %d + NSRecord_LogUpNSRecord langs.MessageCode = "ns_record@log_up_ns_record" // 手动设置DNS记录 %d 为上线状态 + NSRecord_LogUpdateNSRecord langs.MessageCode = "ns_record@log_update_ns_record" // 修改域名记录 %d + NSRecord_LogUpdateNSRecordHealthCheck langs.MessageCode = "ns_record@log_update_ns_record_health_check" // 修改记录 %d 的健康检查 + NSRoute_LogCreateNSRoute langs.MessageCode = "ns_route@log_create_ns_route" // 创建域名服务线路 %d + NSRoute_LogDeleteNSRoute langs.MessageCode = "ns_route@log_delete_ns_route" // 删除域名服务线路 %d + NSRoute_LogSortNSRoutes langs.MessageCode = "ns_route@log_sort_ns_routes" // 对线路进行排序 + NSRoute_LogUpdateNSRoute langs.MessageCode = "ns_route@log_update_ns_route" // 修改域名线路 %d + NSRouteCategory_LogCreateNSRouteCategory langs.MessageCode = "ns_route_category@log_create_ns_route_category" // 创建NS线路分类 %d + NSRouteCategory_LogDeleteNSRouteCategory langs.MessageCode = "ns_route_category@log_delete_ns_route_category" // 删除NS线路分类 %d + NSRouteCategory_LogSortNSRouteCategories langs.MessageCode = "ns_route_category@log_sort_ns_route_categories" // 对NS线路分类进行排序 + NSRouteCategory_LogUpdateNSRouteCategory langs.MessageCode = "ns_route_category@log_update_ns_route_category" // 修改NS线路分类 %d + NSUserPlan_LogCreateNSUserPlan langs.MessageCode = "ns_user_plan@log_create_ns_user_plan" // 为用户 %d 创建DNS套餐 %d + NSUserPlan_LogDeleteNSUserPlan langs.MessageCode = "ns_user_plan@log_delete_ns_user_plan" // 删除用户套餐 %d + NSUserPlan_LogUpdateNSUserPlan langs.MessageCode = "ns_user_plan@log_update_ns_user_plan" // 修改用户DNS套餐 %d + OrderMethod_LogCreateOrderMethod langs.MessageCode = "order_method@log_create_order_method" // 创建支付方式 %d + OrderMethod_LogDeleteOrderMethod langs.MessageCode = "order_method@log_delete_order_method" // 删除支付方式 %d + OrderMethod_LogUpdateOrderMethod langs.MessageCode = "order_method@log_update_order_method" // 修改支付方式 %d + Plan_LogCreatePlan langs.MessageCode = "plan@log_create_plan" // 创建套餐 %d + Plan_LogDeletePlan langs.MessageCode = "plan@log_delete_plan" // 删除套餐 %d + Plan_LogSortPlans langs.MessageCode = "plan@log_sort_plans" // 对套餐进行排序 + Plan_LogUpdatePlan langs.MessageCode = "plan@log_update_plan" // 修改套餐 %d + RegionCity_LogAddRegionCityCode langs.MessageCode = "region_city@log_add_region_city_code" // 添加城市/市 %d 别名 %s + RegionCity_LogUpdateRegionCityCustom langs.MessageCode = "region_city@log_update_region_city_custom" // 定制城市 %d 信息 + RegionCountry_LogAddRegionCountryCode langs.MessageCode = "region_country@log_add_region_country_code" // 添加国家/地区 %d 别名 %s + RegionCountry_LogUpdateRegionCountryCustom langs.MessageCode = "region_country@log_update_region_country_custom" // 定制国家/地区 %d 信息 + RegionProvider_LogAddRegionProviderCode langs.MessageCode = "region_provider@log_add_region_provider_code" // 添加ISP服务商 %d 别名 %s + RegionProvider_LogUpdateRegionProviderCustom langs.MessageCode = "region_provider@log_update_region_provider_custom" // 定制ISP %d 信息 + RegionProvince_LogAddRegionProvinceCode langs.MessageCode = "region_province@log_add_region_province_code" // 添加省份/州 %d 别名 %s + RegionProvince_LogUpdateRegionProvinceCustom langs.MessageCode = "region_province@log_update_region_province_custom" // 定制省份 %d 信息 + RegionTown_LogAddRegionTownCode langs.MessageCode = "region_town@log_add_region_town_code" // 添加区/县 %d 别名 %s + RegionTown_LogUpdateRegionTownCustom langs.MessageCode = "region_town@log_update_region_town_custom" // 定制县级 %d 信息 + ReportNode_LogCreateReportNode langs.MessageCode = "report_node@log_create_report_node" // 创建监控终端 %d + ReportNode_LogDeleteReportNode langs.MessageCode = "report_node@log_delete_report_node" // 删除监控终端 %d + ReportNode_LogUpdateReportNode langs.MessageCode = "report_node@log_update_report_node" // 修改监控终端 %d + ReportNodeGroup_LogCreateReportNodeGroup langs.MessageCode = "report_node_group@log_create_report_node_group" // 创建监控节点分组 %d + ReportNodeGroup_LogDeleteReportNodeGroup langs.MessageCode = "report_node_group@log_delete_report_node_group" // 删除监控节点分组 %d + ReportNodeGroup_LogUpdateReportNodeGroup langs.MessageCode = "report_node_group@log_update_report_node_group" // 修改监控节点分组 %d + ReverseProxy_LogUpdateReverseProxyScheduling langs.MessageCode = "reverse_proxy@log_update_reverse_proxy_scheduling" // 修改反向代理 %d 负载均衡算法 + Script_LogCreateScript langs.MessageCode = "script@log_create_script" // 创建脚本 %d + Script_LogDeleteScript langs.MessageCode = "script@log_delete_script" // 删除脚本 %d + Script_LogPublishScripts langs.MessageCode = "script@log_publish_scripts" // 发布脚本库到边缘节点 + Script_LogUpdateScript langs.MessageCode = "script@log_update_script" // 修改脚本 %d + Server_CopySettingCurrentCluster langs.MessageCode = "server@copy_setting_current_cluster" // 当前集群:%s + Server_CopySettingCurrentGroup langs.MessageCode = "server@copy_setting_current_group" // 当前分组:%s + Server_CopySettingCurrentUser langs.MessageCode = "server@copy_setting_current_user" // 当前用户:%s + Server_CopySettingSelectCluster langs.MessageCode = "server@copy_setting_select_cluster" // 选择集群 + Server_CopySettingSelectGroup langs.MessageCode = "server@copy_setting_select_group" // 选择分组 + Server_CopySettingSelectServer langs.MessageCode = "server@copy_setting_select_server" // 选择网站 + Server_CopySettingSelectUser langs.MessageCode = "server@copy_setting_select_user" // 选择用户 + Server_LogCopyServerConfigs langs.MessageCode = "server@log_copy_server_configs" // 从服务 %d 中同步配置 %s + Server_LogCreateServer langs.MessageCode = "server@log_create_server" // 创建网站 %d + Server_LogDeleteServer langs.MessageCode = "server@log_delete_server" // 删除网站 %d + Server_LogSubmitAuditingServer langs.MessageCode = "server@log_submit_auditing_server" // 提交服务 %d 域名审核 + Server_LogUpdateGlobalSettings langs.MessageCode = "server@log_update_global_settings" // 保存网站全局配置 + Server_LogUpdateServerBasic langs.MessageCode = "server@log_update_server_basic" // 修改网站 %d 基本信息 + Server_MenuAccesslogHistory langs.MessageCode = "server@menu_accesslog_history" // 历史 + Server_MenuAccesslogRealtime langs.MessageCode = "server@menu_accesslog_realtime" // 实时 + Server_MenuAccesslogToday langs.MessageCode = "server@menu_accesslog_today" // 今天 + Server_MenuDashboard langs.MessageCode = "server@menu_dashboard" // 看板 + Server_MenuSettingAccessLog langs.MessageCode = "server@menu_setting_access_log" // 访问日志 + Server_MenuSettingAuth langs.MessageCode = "server@menu_setting_auth" // 访问鉴权 + Server_MenuSettingBasic langs.MessageCode = "server@menu_setting_basic" // 基本信息 + Server_MenuSettingCache langs.MessageCode = "server@menu_setting_cache" // 缓存 + Server_MenuSettingCC langs.MessageCode = "server@menu_setting_cc" // CC防护 + Server_MenuSettingCharset langs.MessageCode = "server@menu_setting_charset" // 字符编码 + Server_MenuSettingClientIP langs.MessageCode = "server@menu_setting_client_ip" // 访客IP地址 + Server_MenuSettingCompress langs.MessageCode = "server@menu_setting_compress" // 内容压缩 + Server_MenuSettingDelete langs.MessageCode = "server@menu_setting_delete" // 删除 + Server_MenuSettingDNS langs.MessageCode = "server@menu_setting_dns" // DNS + Server_MenuSettingDomains langs.MessageCode = "server@menu_setting_domains" // 域名 + Server_MenuSettingFastcgi langs.MessageCode = "server@menu_setting_fastcgi" // Fastcgi + Server_MenuSettingHTTP langs.MessageCode = "server@menu_setting_http" // HTTP + Server_MenuSettingHTTPHeaders langs.MessageCode = "server@menu_setting_http_headers" // HTTP Header + Server_MenuSettingHTTPProxy langs.MessageCode = "server@menu_setting_http_proxy" // HTTP代理 + Server_MenuSettingHTTPS langs.MessageCode = "server@menu_setting_https" // HTTPS + Server_MenuSettingLocations langs.MessageCode = "server@menu_setting_locations" // 路由规则 + Server_MenuSettingOrigins langs.MessageCode = "server@menu_setting_origins" // 源站 + Server_MenuSettingOthers langs.MessageCode = "server@menu_setting_others" // 其他设置 + Server_MenuSettingPages langs.MessageCode = "server@menu_setting_pages" // 自定义页面 + Server_MenuSettingRedirects langs.MessageCode = "server@menu_setting_redirects" // URL跳转 + Server_MenuSettingReferers langs.MessageCode = "server@menu_setting_referers" // 防盗链 + Server_MenuSettingRequestLimit langs.MessageCode = "server@menu_setting_request_limit" // 请求限制 + Server_MenuSettingRewriteRules langs.MessageCode = "server@menu_setting_rewrite_rules" // 重写规则 + Server_MenuSettingRoot langs.MessageCode = "server@menu_setting_root" // 静态分发 + Server_MenuSettingScripts langs.MessageCode = "server@menu_setting_scripts" // 边缘脚本 + Server_MenuSettingStat langs.MessageCode = "server@menu_setting_stat" // 统计 + Server_MenuSettingTCP langs.MessageCode = "server@menu_setting_tcp" // TCP + Server_MenuSettingTCPProxy langs.MessageCode = "server@menu_setting_tcp_proxy" // TCP代理 + Server_MenuSettingTLS langs.MessageCode = "server@menu_setting_tls" // TLS + Server_MenuSettingTrafficLimit langs.MessageCode = "server@menu_setting_traffic_limit" // 流量限制 + Server_MenuSettingUAM langs.MessageCode = "server@menu_setting_uam" // 5秒盾 + Server_MenuSettingUDP langs.MessageCode = "server@menu_setting_udp" // UDP + Server_MenuSettingUDPProxy langs.MessageCode = "server@menu_setting_udp_proxy" // UDP代理 + Server_MenuSettingUnix langs.MessageCode = "server@menu_setting_unix" // Unix + Server_MenuSettingUserAgents langs.MessageCode = "server@menu_setting_user_agents" // UA名单 + Server_MenuSettingWAF langs.MessageCode = "server@menu_setting_waf" // WAF + Server_MenuSettingWebP langs.MessageCode = "server@menu_setting_webp" // WebP + Server_MenuSettingWebsocket langs.MessageCode = "server@menu_setting_websocket" // Websocket + Server_MenuStatClients langs.MessageCode = "server@menu_stat_clients" // 终端 + Server_MenuStatProviders langs.MessageCode = "server@menu_stat_providers" // 运营商 + Server_MenuStatRegions langs.MessageCode = "server@menu_stat_regions" // 地域分布 + Server_MenuStatTraffic langs.MessageCode = "server@menu_stat_traffic" // 流量统计 + Server_MenuStatWAF langs.MessageCode = "server@menu_stat_waf" // WAF + Server_ServerNamesLogUpdateServerNames langs.MessageCode = "server@server_names_log_update_server_names" // 修改网站 %d 域名 + Server_TabAccessLogs langs.MessageCode = "server@tab_access_logs" // 日志 + Server_TabDashboard langs.MessageCode = "server@tab_dashboard" // 看板 + Server_TabDelete langs.MessageCode = "server@tab_delete" // 删除 + Server_TabSettings langs.MessageCode = "server@tab_settings" // 设置 + Server_TabStat langs.MessageCode = "server@tab_stat" // 统计 + ServerAccessLog_LogUpdateAccessLogSetting langs.MessageCode = "server_access_log@log_update_access_log_setting" // 修改Web %d 的访问日志设置 + ServerAuth_LogUpdateHTTPAuthSettings langs.MessageCode = "server_auth@log_update_http_auth_settings" // 修改Web %d 的鉴权设置 + ServerCache_LogFetchCaches langs.MessageCode = "server_cache@log_fetch_caches" // 预热网站 %d 缓存 + ServerCache_LogPurgeCaches langs.MessageCode = "server_cache@log_purge_caches" // 删除网站 %d 缓存 + ServerCache_LogUpdateCacheSettings langs.MessageCode = "server_cache@log_update_cache_settings" // 修改Web %d 的缓存设置 + ServerCache_LogUpdateClusterCachePolicy langs.MessageCode = "server_cache@log_update_cluster_cache_policy" // 设置集群 %d 的缓存策略为 %d + ServerCachePolicy_LogCleanAll langs.MessageCode = "server_cache_policy@log_clean_all" // 清除缓存,缓存策略:%d + ServerCachePolicy_LogCreateCachePolicy langs.MessageCode = "server_cache_policy@log_create_cache_policy" // 创建缓存策略:%d + ServerCachePolicy_LogDeleteCachePolicy langs.MessageCode = "server_cache_policy@log_delete_cache_policy" // 删除缓存策略:%d + ServerCachePolicy_LogFetchCaches langs.MessageCode = "server_cache_policy@log_fetch_caches" // 预热缓存,缓存策略:%d + ServerCachePolicy_LogPurgeCaches langs.MessageCode = "server_cache_policy@log_purge_caches" // 删除缓存,缓存策略:%d + ServerCachePolicy_LogStatCaches langs.MessageCode = "server_cache_policy@log_stat_caches" // 统计缓存,缓存策略:%d + ServerCachePolicy_LogTestReading langs.MessageCode = "server_cache_policy@log_test_reading" // 测试读取,缓存策略:%d + ServerCachePolicy_LogTestWriting langs.MessageCode = "server_cache_policy@log_test_writing" // 测试写入,缓存策略:%d + ServerCachePolicy_LogUpdateCachePolicy langs.MessageCode = "server_cache_policy@log_update_cache_policy" // 修改缓存策略:%d + ServerCC_LogUpdateCCSettings langs.MessageCode = "server_cc@log_update_cc_settings" // 修改Web %d CC防护配置 + ServerCC_LogUpdateClusterHTTPCCPolicy langs.MessageCode = "server_cc@log_update_cluster_http_cc_policy" // 修改集群 %d 的HTTP CC策略设置 + ServerCharset_LogUpdateCharsetSetting langs.MessageCode = "server_charset@log_update_charset_setting" // 修改Web %d 的字符集设置 + ServerCommon_LogUpdateCommonSettings langs.MessageCode = "server_common@log_update_common_settings" // 修改服务Web %d 设置的其他设置 + ServerCompression_LogUpdateCompressionSettings langs.MessageCode = "server_compression@log_update_compression_settings" // 修改Web %d 的压缩设置 + ServerDNS_LogRegenerateDNSName langs.MessageCode = "server_dns@log_regenerate_dns_name" // 重新生成服务 %d 的CNAME + ServerDNS_LogUpdateDNSName langs.MessageCode = "server_dns@log_update_dns_name" // 修改服务 %d CNAME为 %s + ServerDNS_LogUpdateDNSSettings langs.MessageCode = "server_dns@log_update_dns_settings" // 修改服务 %d 的DNS设置 + ServerFastcgi_LogUpdateHTTPFastcgi langs.MessageCode = "server_fastcgi@log_update_http_fastcgi" // 修改Web %d 的Fastcgi设置 + ServerGlobalSetting_LogUpdateClusterGlobalServerConfig langs.MessageCode = "server_global_setting@log_update_cluster_global_server_config" // 修改集群 %d 全局配置 + ServerGroup_LogCreateServerGroup langs.MessageCode = "server_group@log_create_server_group" // 创建网站分组 %d + ServerGroup_LogDeleteServerGroup langs.MessageCode = "server_group@log_delete_server_group" // 删除网站分组 %d + ServerGroup_LogSortServerGroups langs.MessageCode = "server_group@log_sort_server_groups" // 修改网站分组排序 + ServerGroup_LogUpdateServerGroup langs.MessageCode = "server_group@log_update_server_group" // 修改网站分组 %d + ServerHTTP3_LogUpdateClusterHTTP3Policy langs.MessageCode = "server_http3@log_update_cluster_http3_policy" // 修改集群 %d 的HTTP3策略设置 + ServerHTTP_LogUpdateHTTPSettings langs.MessageCode = "server_http@log_update_http_settings" // 修改网站 %d 的HTTP设置 + ServerHTTPHeader_LogCreateDeletingHeader langs.MessageCode = "server_http_header@log_create_deleting_header" // 添加删除的Header HeaderPolicyId: %d, Name: %s + ServerHTTPHeader_LogCreateNonStandardHeader langs.MessageCode = "server_http_header@log_create_non_standard_header" // 添加非标的Header HeaderPolicyId: %d, Name: %s + ServerHTTPHeader_LogCreateSettingHeader langs.MessageCode = "server_http_header@log_create_setting_header" // 设置请求Header,HeaderPolicyId:%d, Name:%s, Value:%s + ServerHTTPHeader_LogDeleteDeletingHeader langs.MessageCode = "server_http_header@log_delete_deleting_header" // 删除需要删除的Header,HeaderPolicyId:%d, HeaderName:%s + ServerHTTPHeader_LogDeleteHeader langs.MessageCode = "server_http_header@log_delete_header" // 删除请求Header,HeaderPolicyId:%d, HeaderId:%d + ServerHTTPHeader_LogDeleteNonStandardHeader langs.MessageCode = "server_http_header@log_delete_non_standard_header" // 删除需要非标的Header,HeaderPolicyId:%d, HeaderName:%s + ServerHTTPHeader_LogUpdateHTTPHeaders langs.MessageCode = "server_http_header@log_update_http_headers" // 修改Web %d 的Header设置 + ServerHTTPHeader_LogUpdateSettingHeader langs.MessageCode = "server_http_header@log_update_setting_header" // 修改设置请求Header,HeaderPolicyId:%d, Name:%s, Value:%s + ServerHTTPS_LogUpdateHTTPSSettings langs.MessageCode = "server_https@log_update_https_settings" // 修改网站 %d 的HTTPS设置 + ServerOrigin_LogCreateOrigin langs.MessageCode = "server_origin@log_create_origin" // 创建源站 %d + ServerOrigin_LogDeleteOrigin langs.MessageCode = "server_origin@log_delete_origin" // 删除源站 %d + ServerOrigin_LogUpdateOrigin langs.MessageCode = "server_origin@log_update_origin" // 修改源站 %d + ServerPage_LogCreatePage langs.MessageCode = "server_page@log_create_page" // 创建自定义页面 %d + ServerPage_LogUpdateClusterPages langs.MessageCode = "server_page@log_update_cluster_pages" // 修改集群 %d 自定义页面策略 + ServerPage_LogUpdatePage langs.MessageCode = "server_page@log_update_page" // 修改自定义页面 %d + ServerPage_LogUpdatePages langs.MessageCode = "server_page@log_update_pages" // 修改Web %d 的自定义页面设置 + ServerRedirect_LogUpdateRedirects langs.MessageCode = "server_redirect@log_update_redirects" // 修改Web %d 的跳转设置 + ServerReferer_LogUpdateReferers langs.MessageCode = "server_referer@log_update_referers" // 修改Web %d 防盗链设置 + ServerRequestLimit_LogUpdateRequestLimitSettings langs.MessageCode = "server_request_limit@log_update_request_limit_settings" // 修改Web %d 请求限制 + ServerReverseProxy_LogUpdateLocationReverseProxySettings langs.MessageCode = "server_reverse_proxy@log_update_location_reverse_proxy_settings" // 修改路由规则 %d 的反向代理设置 + ServerReverseProxy_LogUpdateServerGroupReverseProxySettings langs.MessageCode = "server_reverse_proxy@log_update_server_group_reverse_proxy_settings" // 修改分组 %d 的反向代理设置 + ServerReverseProxy_LogUpdateServerReverseProxySettings langs.MessageCode = "server_reverse_proxy@log_update_server_reverse_proxy_settings" // 修改代理服务 %d 的反向代理设置 + ServerRoot_LogUpdateRoot langs.MessageCode = "server_root@log_update_root" // 修改Web %d 静态分发设置 + ServerScript_LogUpdateScripts langs.MessageCode = "server_script@log_update_scripts" // 修改Web %d 边缘脚本 + ServerStat_LogUpdateStatSettings langs.MessageCode = "server_stat@log_update_stat_settings" // 修改Web %d 的统计设置 + ServerTCP_LogUpdateTCPSettings langs.MessageCode = "server_tcp@log_update_tcp_settings" // 修改网站 %d TCP设置 + ServerTLS_LogUpdateTLSSettings langs.MessageCode = "server_tls@log_update_tls_settings" // 修改代理服务 %d TLS设置 + ServerTrafficLimit_LogUpdateTrafficLimitSettings langs.MessageCode = "server_traffic_limit@log_update_traffic_limit_settings" // 修改网站 %d 流量限制 + ServerTrafficStat_AllServers langs.MessageCode = "server_traffic_stat@all_servers" // 全部网站(%d) + ServerUAM_LogUpdateClusterUAMPolicy langs.MessageCode = "server_uam@log_update_cluster_uam_policy" // 修改集群 %d 的UAM设置 + ServerUAM_LogUpdateServerUAMSettings langs.MessageCode = "server_uam@log_update_server_uam_settings" // 修改网站 %d 全站防护模式 + ServerUAM_LogUpdateUAMSettings langs.MessageCode = "server_uam@log_update_uam_settings" // 修改Web %d 全站防护模式 + ServerUDP_LogUpdateUDPSettings langs.MessageCode = "server_udp@log_update_udp_settings" // 修改网站 %d UDP设置 + ServerUserAgent_LogUpdateUserAgents langs.MessageCode = "server_user_agent@log_update_user_agents" // 修改Web %d User-Agent设置 + ServerWAF_LogUpdateWAFSettings langs.MessageCode = "server_waf@log_update_waf_settings" // 修改Web %d 的WAF设置 + ServerWebP_LogUpdateClusterWebPPolicy langs.MessageCode = "server_webp@log_update_cluster_webp_policy" // 修改集群 %d 的WebP设置 + ServerWebsocket_LogUpdateWebsocketSettings langs.MessageCode = "server_websocket@log_update_websocket_settings" // 修改Web %d 的Websocket设置 + SSLCert_LogDeleteSSLCert langs.MessageCode = "ssl_cert@log_delete_ssl_cert" // 删除SSL证书 %d + SSLCert_LogDownloadSSLCert langs.MessageCode = "ssl_cert@log_download_ssl_cert" // 下载SSL证书 %d + SSLCert_LogDownloadSSLCertKey langs.MessageCode = "ssl_cert@log_download_ssl_cert_key" // 下载SSL密钥 %d + SSLCert_LogDownloadSSLCertZip langs.MessageCode = "ssl_cert@log_download_ssl_cert_zip" // 下载SSL证书压缩包 %d + SSLCert_LogOCSPIgnoreOCSPStatus langs.MessageCode = "ssl_cert@log_ocsp_ignore_ocsp_status" // 忽略一组证书的OCSP状态 + SSLCert_LogOCSPResetAllOCSPStatus langs.MessageCode = "ssl_cert@log_ocsp_reset_all_ocsp_status" // 忽略所有证书的OCSP状态 + SSLCert_LogOCSPResetOCSPStatus langs.MessageCode = "ssl_cert@log_ocsp_reset_ocsp_status" // 重置一组证书的OCSP状态 + SSLCert_LogUpdateSSLCert langs.MessageCode = "ssl_cert@log_update_ssl_cert" // 修改SSL证书 %d + SSLCert_LogUploadSSLCert langs.MessageCode = "ssl_cert@log_upload_ssl_cert" // 上传SSL证书 %d + SSLCert_LogUploadSSLCertBatch langs.MessageCode = "ssl_cert@log_upload_ssl_cert_batch" // 批量上传证书 + SSLCert_MenuApply langs.MessageCode = "ssl_cert@menu_apply" // 申请证书 + SSLCert_MenuCerts langs.MessageCode = "ssl_cert@menu_certs" // 证书 + SSLCert_MenuOCSP langs.MessageCode = "ssl_cert@menu_ocsp" // OCSP日志 + TicketCategory_LogCreateTicketCategory langs.MessageCode = "ticket_category@log_create_ticket_category" // 添加工单分类 %d + TicketCategory_LogDeleteTicketCategory langs.MessageCode = "ticket_category@log_delete_ticket_category" // 删除工单分类 %d + TicketCategory_LogUpdateTicketCategory langs.MessageCode = "ticket_category@log_update_ticket_category" // 修改分类 %d + TrafficPackage_LogCreateTrafficPackage langs.MessageCode = "traffic_package@log_create_traffic_package" // 创建流量包 %d + TrafficPackage_LogDeleteTrafficPackage langs.MessageCode = "traffic_package@log_delete_traffic_package" // 删除流量包 %d + TrafficPackage_LogUpdateTrafficPackage langs.MessageCode = "traffic_package@log_update_traffic_package" // 修改流量包 %d + TrafficPackagePeriod_LogCreateTrafficPackagePeriod langs.MessageCode = "traffic_package_period@log_create_traffic_package_period" // 创建流量包有效期 %d + TrafficPackagePeriod_LogDeleteTrafficPackagePeriod langs.MessageCode = "traffic_package_period@log_delete_traffic_package_period" // 删除流量包有效期选项 %d + TrafficPackagePeriod_LogUpdateTrafficPackagePeriod langs.MessageCode = "traffic_package_period@log_update_traffic_package_period" // 修改流量包有效期选项 %d + TrafficPackagePrice_LogUpdateTrafficPackagePrice langs.MessageCode = "traffic_package_price@log_update_traffic_package_price" // 修改流量包 %d 区域 %d x 有效期 %d 的价格 + User_LogCreateUser langs.MessageCode = "user@log_create_user" // 创建用户 %d + User_LogDeleteUser langs.MessageCode = "user@log_delete_user" // 删除用户 %d + User_LogUpdateUser langs.MessageCode = "user@log_update_user" // 修改用户 %d + User_LogUpdateUserEmailSettings langs.MessageCode = "user@log_update_user_email_settings" // 修改用户邮件设置 + User_LogUpdateUserFeatures langs.MessageCode = "user@log_update_user_features" // 设置用户 %d 的功能列表 + User_LogUpdateUserGlobalSettings langs.MessageCode = "user@log_update_user_global_settings" // 修改用户设置 + User_LogVerifyUser langs.MessageCode = "user@log_verify_user" // 审核用户:%d 结果:%s + UserAccessKey_LogCreateUserAccessKey langs.MessageCode = "user_access_key@log_create_user_access_key" // 创建AccessKey %d + UserAccessKey_LogDeleteUserAccessKey langs.MessageCode = "user_access_key@log_delete_user_access_key" // 删除AccessKey %d + UserAccessKey_LogUpdateUserAccessKeyIsOn langs.MessageCode = "user_access_key@log_update_user_access_key_is_on" // 设置AccessKey %d 启用状态 + UserAccount_LogUpdateUserAccount langs.MessageCode = "user_account@log_update_user_account" // 操作用户账户 %d: %s + UserADInstance_LogDeleteUserADInstance langs.MessageCode = "user_ad_instance@log_delete_user_ad_instance" // 删除用户高防实例 %d + UserADInstance_LogRenewUserADInstance langs.MessageCode = "user_ad_instance@log_renew_user_ad_instance" // 为用户高防实例 %d 续期 + UserADInstance_LogUpdateUserADInstanceObjects langs.MessageCode = "user_ad_instance@log_update_user_ad_instance_objects" // 修改用户高防实例 %d 防护对象 + UserBill_LogPayUserBill langs.MessageCode = "user_bill@log_pay_user_bill" // 支付账单 %d + UserIdentity_LogRejectUserIdentity langs.MessageCode = "user_identity@log_reject_user_identity" // 驳回用户 %d 的实名认证 + UserIdentity_LogResetUserIdentity langs.MessageCode = "user_identity@log_reset_user_identity" // 重置用户 %d 的实名认证 + UserIdentity_LogVerifyUserIdentity langs.MessageCode = "user_identity@log_verify_user_identity" // 通过用户 %d 的实名认证 + UserNode_LogCreateUserNode langs.MessageCode = "user_node@log_create_user_node" // 创建用户节点 %d + UserNode_LogDeleteUserNode langs.MessageCode = "user_node@log_delete_user_node" // 删除用户节点 %d + UserNode_LogUpdateUserNode langs.MessageCode = "user_node@log_update_user_node" // 修改用户节点 %d + UserOrder_LogFinishUserOrder langs.MessageCode = "user_order@log_finish_user_order" // 设置订单 %s 为完成支付 + UserPlan_LogBuyUserPlan langs.MessageCode = "user_plan@log_buy_user_plan" // 为用户 %d 购买套餐 %d + UserPlan_LogDeleteUserPlan langs.MessageCode = "user_plan@log_delete_user_plan" // 删除用户已购套餐 %d + UserPlan_LogRenewUserPlan langs.MessageCode = "user_plan@log_renew_user_plan" // 续费已购套餐 %d + UserTicketLog_LogReplyTicket langs.MessageCode = "user_ticket_log@log_reply_ticket" // 回复工单 %d + UserTrafficPackage_LogCreateUserTrafficPackage langs.MessageCode = "user_traffic_package@log_create_user_traffic_package" // 为用户 %d 创建流量包:%d,区域:%d,有效期:%d,数量:%d + UserTrafficPackage_LogDeleteUserTrafficPackage langs.MessageCode = "user_traffic_package@log_delete_user_traffic_package" // 删除用户流量包 %d + WAF_ConnectorAnd langs.MessageCode = "waf@connector_and" // 和(AND) + WAF_ConnectorAndDescription langs.MessageCode = "waf@connector_and_description" // 所有规则都满足才视为匹配 + WAF_ConnectorOr langs.MessageCode = "waf@connector_or" // 或(OR) + WAF_ConnectorOrDescription langs.MessageCode = "waf@connector_or_description" // 任一规则满足了就视为匹配 + WAF_LogDeleteIPFromWAFPolicy langs.MessageCode = "waf@log_delete_ip_from_waf_policy" // 从WAF策略 %d 名单中删除IP %d + WAF_LogUpdateForbiddenCountries langs.MessageCode = "waf@log_update_forbidden_countries" // WAF策略 %d 设置禁止访问的国家和地区 + WAF_LogUpdateForbiddenProvinces langs.MessageCode = "waf@log_update_forbidden_provinces" // WAF策略 %d 设置禁止访问的省份 + WAF_LogUpdateIPFromWAFPolicy langs.MessageCode = "waf@log_update_ip_from_waf_policy" // 修改WAF策略 %d 名单中的IP %d + WAFAction_LogCreateWAFAction langs.MessageCode = "waf_action@log_create_waf_action" // 创建集群 %d 的WAF动作 + WAFAction_LogDeleteWAFAction langs.MessageCode = "waf_action@log_delete_waf_action" // 删除WAF动作 %d + WAFAction_LogUpdateWAFAction langs.MessageCode = "waf_action@log_update_waf_action" // 修改WAF动作 %d + WAFPolicy_LogCreateWAFPolicy langs.MessageCode = "waf_policy@log_create_waf_policy" // 创建WAF策略 %d + WAFPolicy_LogDeleteWAFPolicy langs.MessageCode = "waf_policy@log_delete_waf_policy" // 删除WAF策略 %d + WAFPolicy_LogExportWAFPolicy langs.MessageCode = "waf_policy@log_export_waf_policy" // 导出WAF策略 %d + WAFPolicy_LogImportWAFPolicy langs.MessageCode = "waf_policy@log_import_waf_policy" // 从文件中导入规则到WAF策略 %d + WAFPolicy_LogUpdateClusterWAFPolicy langs.MessageCode = "waf_policy@log_update_cluster_waf_policy" // 设置集群 %d 的WAF策略为 %d + WAFPolicy_LogUpdateWAFPolicy langs.MessageCode = "waf_policy@log_update_waf_policy" // 修改WAF策略 %d 基本信息 + WAFPolicy_LogUpgradeWAFPolicy langs.MessageCode = "waf_policy@log_upgrade_waf_policy" // 升级WAF %d 内置规则 + WAFRuleGroup_LogCreateRuleGroup langs.MessageCode = "waf_rule_group@log_create_rule_group" // 创建规则分组 %d,名称:%s + WAFRuleGroup_LogDeleteRuleGroup langs.MessageCode = "waf_rule_group@log_delete_rule_group" // 删除WAF策略 %d 的规则分组 %d + WAFRuleGroup_LogSortRuleGroups langs.MessageCode = "waf_rule_group@log_sort_rule_groups" // 修改WAF策略 %d 中的规则分组中的排序 + WAFRuleGroup_LogUpdateRuleGroup langs.MessageCode = "waf_rule_group@log_update_rule_group" // 修改WAF规则分组 %d 基本信息 + WAFRuleGroup_LogUpdateRuleGroupIsOn langs.MessageCode = "waf_rule_group@log_update_rule_group_is_on" // 设置WAF规则分组 %d 开启状态 + WAFRuleSet_LogDeleteRuleSet langs.MessageCode = "waf_rule_set@log_delete_rule_set" // 删除WAF规则分组 %d 中的规则集 %d + WAFRuleSet_LogSortRuleSets langs.MessageCode = "waf_rule_set@log_sort_rule_sets" // 修改WAF规则分组 %d 中的规则集排序 + WAFRuleSet_LogUpdateRuleSet langs.MessageCode = "waf_rule_set@log_update_rule_set" // 修改WAF规则集 %d 基本信息 + WAFRuleSet_LogUpdateRuleSetIsOn langs.MessageCode = "waf_rule_set@log_update_rule_set_is_on" // 修改WAF规则集 %d 开启状态 ) diff --git a/pkg/langs/lang.go b/pkg/langs/lang.go index b73fc5c..cbb1b13 100644 --- a/pkg/langs/lang.go +++ b/pkg/langs/lang.go @@ -15,29 +15,34 @@ type LangCode = string type Lang struct { code string - messageMap map[string]string // message code => message text + messageMap map[MessageCode]string // message code => message text } func NewLang(code string) *Lang { return &Lang{ code: code, - messageMap: map[string]string{}, + messageMap: map[MessageCode]string{}, } } -func (this *Lang) Set(messageCode string, messageText string) { +func (this *Lang) Set(messageCode MessageCode, messageText string) { this.messageMap[messageCode] = messageText } +func (this *Lang) Has(messageCode MessageCode) bool { + _, ok := this.messageMap[messageCode] + return ok +} + // Get 读取单条消息 // get single message with message code -func (this *Lang) Get(messageCode string) string { +func (this *Lang) Get(messageCode MessageCode) string { return this.messageMap[messageCode] } // GetAll 读取所有消息 // get all messages -func (this *Lang) GetAll() map[string]string { +func (this *Lang) GetAll() map[MessageCode]string { return this.messageMap } @@ -46,14 +51,14 @@ func (this *Lang) Compile() error { for code, oldMessage := range this.messageMap { message, err := this.get(code, 0) if err != nil { - return errors.New("compile '" + code + "': '" + oldMessage + "' failed: " + err.Error()) + return errors.New("compile '" + string(code) + "': '" + oldMessage + "' failed: " + err.Error()) } this.messageMap[code] = message } return nil } -func (this *Lang) get(messageCode string, loopIndex int) (string, error) { +func (this *Lang) get(messageCode MessageCode, loopIndex int) (string, error) { if loopIndex >= 8 /** max recurse **/ { return "", errors.New("too many recurse") } @@ -63,7 +68,7 @@ func (this *Lang) get(messageCode string, loopIndex int) (string, error) { if len(message) == 0 { if !ok && loopIndex > 1 { // recover as variable - return "${" + varPrefix + messageCode + "}", errors.New("can not find message for code '" + messageCode + "'") + return "${" + varPrefix + string(messageCode) + "}", errors.New("can not find message for code '" + string(messageCode) + "'") } return "", nil } @@ -73,6 +78,6 @@ func (this *Lang) get(messageCode string, loopIndex int) (string, error) { return "${" + varName + "}", nil } - return this.get(varName[len(varPrefix):], loopIndex) + return this.get(MessageCode(varName[len(varPrefix):]), loopIndex) }) } diff --git a/pkg/langs/manager.go b/pkg/langs/manager.go index 56f8ac8..71922ee 100644 --- a/pkg/langs/manager.go +++ b/pkg/langs/manager.go @@ -75,7 +75,7 @@ func (this *Manager) DefaultLang() string { // GetMessage // message: name: %s, age: %d, salary: %.2f -func (this *Manager) GetMessage(langCode string, messageCode string, args ...any) string { +func (this *Manager) GetMessage(langCode string, messageCode MessageCode, args ...any) string { var lang = this.langMap[langCode] if lang == nil && len(this.defaultLangCode) > 0 { lang = this.langMap[this.defaultLangCode] diff --git a/pkg/langs/message.go b/pkg/langs/message.go index b464188..f191e89 100644 --- a/pkg/langs/message.go +++ b/pkg/langs/message.go @@ -2,4 +2,12 @@ package langs -type MessageCode = string +type MessageCode string + +func (this MessageCode) For(langCode LangCode, args ...any) string { + return Message(langCode, this, args...) +} + +func (this MessageCode) String() string { + return string(this) +} diff --git a/pkg/langs/message_test.go b/pkg/langs/message_test.go new file mode 100644 index 0000000..79c9d2f --- /dev/null +++ b/pkg/langs/message_test.go @@ -0,0 +1,14 @@ +// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn . + +package langs + +import "testing" + +func TestMessageCode_For(t *testing.T) { + defaultManager.AddLang("en-us"). + Set("name", "Lily") + + var messageCode MessageCode = "name" + t.Log(messageCode.String(), string(messageCode)) + t.Log(messageCode.For("en-us")) +} diff --git a/pkg/langs/messages/messages_zh_cn.go b/pkg/langs/messages/messages_zh_cn.go index 33c01e7..c36feec 100644 --- a/pkg/langs/messages/messages_zh_cn.go +++ b/pkg/langs/messages/messages_zh_cn.go @@ -7,230 +7,669 @@ import ( ) func init() { - langs.Load("zh-cn", map[string]string{ - "admin_menu_ns_routes": "线路管理", - "admin_menu_finance_accounts": "用户账户", - "admin_node_menu_setting_system": "系统设置", - "admin_settings_tab_admin_security_settings": "安全设置", - "admin_cluster_menu_setting_service_global": "网站设置", - "admin_settings_tab_database": "数据库", - "admin_cert_menu_ocsp": "OCSP日志", - "admin_common_menu_setting_dns": "DNS设置", - "admin_menu_finance_bills": "费用账单", - "admin_server_tab_delete": "删除", - "admin_server_copy_setting_select_user": "选择用户", - "admin_server_menu_setting_unix": "Unix", - "admin_log_tag_access_log": "访问日志", - "admin_server_menu_setting_tcp": "TCP", - "admin_settings_tab_transfer": "迁移", - "admin_node_grant_method_user_password": "用户名+密码", - "admin_ns_cluster_menu_answer_setting": "应答模式", - "admin_server_menu_setting_http": "HTTP", - "admin_server_copy_setting_select_cluster": "选择集群", - "admin_level_info": "信息", - "admin_menu_node_distributed_monitors": "区域监控", - "admin_node_menu_setting_cache": "缓存设置", - "admin_ns_cluster_menu_doh": "DoH", - "admin_settings_tab_monitor_nodes": "监控节点", - "admin_common_menu_setting_cache_policy": "缓存策略", - "admin_menu_setting_advanced_settings": "高级设置", - "admin_node_menu_setting_schedule": "智能调度", - "admin_server_menu_setting_locations": "路由规则", - "admin_settings_tab_api_nodes": "API节点", - "admin_server_menu_setting_referers": "防盗链", - "admin_menu_finance_fee": "计费设置", - "admin_menu_admin_recipients": "通知媒介", - "admin_menu_users": "平台用户", - "admin_node_menu_setting_basic": "基础设置", - "admin_server_menu_setting_compress": "内容压缩", - "admin_node_menu_setting_thresholds": "阈值设置", - "admin_cluster_menu_setting_ddos_protection": "DDoS防护", - "admin_menu_logs": "日志审计", - "admin_menu_server_access_logs": "访问日志", - "admin_ns_cluster_tab_nodes": "节点列表", - "admin_server_menu_setting_scripts": "边缘脚本", - "admin_server_menu_setting_websocket": "Websocket", - "admin_server_menu_setting_request_limit": "请求限制", - "admin_cluster_menu_setting_metrics": "统计指标", - "admin_common_menu_setting_webp": "WebP", - "admin_menu_server_groups": "网站分组", - "admin_menu_plan_user_plans": "已购套餐", - "admin_menu_ns_settings": "全局配置", - "admin_cluster_menu_setting_waf_policy": "WAF策略", - "admin_common_menu_setting_waf_policy": "WAF策略", - "admin_dashboard_events": "事件", - "admin_node_menu_setting_ssh": "SSH设置", - "admin_server_menu_setting_access_log": "访问日志", - "admin_cert_menu_certs": "证书", - "admin_menu_finance_logs": "收支明细", - "admin_server_menu_stat_providers": "运营商", - "admin_server_menu_setting_root": "静态分发", - "admin_node_ungrouped_label": "未分组", - "admin_settings_tab_profile": "个人资料", - "admin_server_menu_setting_auth": "访问鉴权", - "admin_cluster_menu_tab_cluster_settings": "集群设置", - "admin_menu_setting_authority": "商业版本", - "admin_menu_ns_user_plans": "用户套餐", - "admin_menu_server_access_log_policies": "日志策略", - "admin_ns_cluster_menu_tls": "TLS", - "admin_server_menu_stat_regions": "地域分布", - "admin_server_tab_access_logs": "日志", - "admin_server_menu_accesslog_today": "今天", - "admin_cluster_menu_tab_cluster_delete": "删除集群", - "admin_menu_plans": "套餐管理", - "admin_menu_nodes": "边缘节点", - "admin_server_menu_stat_traffic": "流量统计", - "admin_server_menu_setting_waf": "WAF", - "admin_server_menu_setting_tls": "TLS", - "admin_server_menu_setting_webp": "WebP", - "admin_server_menu_setting_others": "其他设置", - "admin_ns_cluster_tab_setting": "集群设置", - "admin_server_menu_stat_clients": "终端", - "admin_menu_ns_domain_groups": "域名分组", - "admin_menu_admins": "系统用户", - "admin_ns_cluster_menu_ddos_protection": "DDoS防护", - "admin_cluster_menu_tab_cluster_dashboard": "集群看板", - "admin_menu_node_logs": "节点日志", - "admin_common_canceled": "已取消", - "admin_server_menu_setting_user_agents": "UA名单", - "admin_settings_tab_backup": "备份", - "admin_common_menu_setting_ddos_protection": "DDoS防护", - "admin_settings_tab_user_ui": "用户界面设置", - "admin_menu_server_ip_lists": "IP名单", - "admin_server_menu_setting_basic": "基本信息", - "admin_server_menu_setting_tcp_proxy": "TCP代理", - "admin_server_menu_setting_uam": "5秒盾", - "admin_waf_connector_and": "和(AND)", - "admin_dashboard_overview": "概况", - "admin_log_tag_script": "脚本", - "admin_server_menu_setting_client_ip": "访客IP地址", - "admin_menu_node_ip_list": "节点IP", - "admin_menu_dns_providers": "DNS服务商", - "admin_node_menu_install_manually": "手动安装", - "admin_server_menu_setting_udp": "UDP", - "admin_server_menu_accesslog_realtime": "实时", - "admin_menu_server_global_settings": "通用设置", - "admin_node_menu_install_remote_upgrade": "远程升级(%d)", - "admin_ns_cluster_menu_access_logs": "访问日志", - "admin_common_menu_setting_cache": "缓存设置", - "admin_server_menu_setting_redirects": "URL跳转", - "admin_common_menu_setting_health_check": "健康检查", - "admin_dashboard_user": "用户", - "admin_menu_servers": "网站列表", - "admin_menu_node_clusters": "集群列表", - "admin_node_menu_install_remote": "远程安装(%d)", - "admin_node_menu_setting_ddos_protection": "DDoS防护", - "admin_ns_setting_user": "用户设置", - "admin_waf_connector_and_description": "所有规则都满足才视为匹配", - "admin_cluster_menu_setting_waf_actions": "WAF动作", - "admin_cluster_menu_setting_basic": "基础设置", - "admin_common_system": "系统", - "admin_menu_finance_income": "统计报表", - "admin_menu_tickets": "工单系统", - "admin_cert_menu_apply": "申请证书", - "admin_menu_server_certs": "证书管理", - "admin_node_menu_setting_dns": "DNS设置", - "admin_server_copy_setting_select_group": "选择分组", - "admin_server_menu_stat_waf": "WAF", - "admin_menu_ns_clusters": "集群管理", - "admin_cluster_menu_setting_thresholds": "阈值设置", - "admin_menu_finance_orders": "订单管理", - "admin_waf_connector_or": "或(OR)", - "admin_cluster_menu_setting_uam": "5秒盾", - "admin_log_tag_waf": "WAF", - "admin_menu_ns": "智能DNS", - "admin_ns_cluster_menu_soa": "SOA", - "admin_server_menu_setting_delete": "删除", - "admin_cluster_menu_setting_health_check": "健康检查", - "admin_node_menu_create_single_node": "单个创建", - "admin_cluster_menu_setting_http3": "HTTP/3", - "admin_menu_ns_node_logs": "运行日志", - "admin_menu_server_waf_policies": "WAF策略", - "admin_settings_tab_authority": "商业版认证", - "admin_server_menu_dashboard": "看板", - "admin_level_error": "错误", - "admin_menu_setting_basic_settings": "基础设置", - "admin_menu_dns_issues": "问题修复", - "admin_menu_finance_packages": "流量包", - "admin_ns_cluster_menu_udp": "UDP", - "admin_cluster_menu_setting_system_service": "系统服务", - "admin_dashboard_dns": "DNS", - "admin_server_copy_setting_select_server": "选择网站", - "admin_settings_tab_access_log_databases": "日志数据库", - "admin_menu_settings": "系统设置", - "admin_menu_node_ssh_grants": "节点SSH", - "admin_node_grant_method_private_key": "私钥", - "admin_server_traffic_stat_all_servers": "全部网站(%d)", - "admin_cluster_menu_setting_notification": "消息通知", - "admin_menu_ticket_category": "分类", - "admin_server_menu_setting_rewrite_rules": "重写规则", - "admin_server_copy_setting_current_cluster": "当前集群:%s", - "admin_menu_ns_domains": "域名管理", - "admin_menu_node_regions": "区域设置", - "admin_ns_cluster_tab_delete": "删除集群", - "admin_settings_tab_updates": "检查更新", - "admin_waf_connector_or_description": "任一规则满足了就视为匹配", - "admin_server_menu_setting_stat": "统计", - "admin_cluster_menu_setting_dns": "DNS设置", - "admin_menu_dns": "域名解析", - "admin_node_menu_install_auto_register": "自动注册", - "admin_server_menu_setting_traffic_limit": "流量限制", - "admin_server_tab_settings": "设置", - "admin_menu_node_anti_ddos_products": "高防IP", - "admin_server_menu_setting_fastcgi": "Fastcgi", - "admin_settings_tab_client_operation_systems": "操作系统库", - "admin_server_menu_setting_pages": "自定义页面", - "admin_settings_tab_user_nodes": "用户节点", - "admin_cluster_menu_setting_pages": "自定义页面", - "admin_server_copy_setting_current_group": "当前分组:%s", - "admin_dashboard_waf": "WAF", - "admin_menu_ns_access_logs": "访问日志", - "admin_server_menu_setting_http_headers": "HTTP Header", - "admin_settings_tab_login": "登录设置", - "admin_cluster_menu_tab_cluster_nodes": "节点列表", - "admin_common_menu_setting_metrics": "统计指标", - "admin_menu_dns_clusters": "集群列表", - "admin_server_tab_stat": "统计", - "admin_cluster_menu_setting_cc": "CC防护", - "admin_menu_ns_resolve_test": "解析测试", - "admin_ns_cluster_menu_dns_recursion": "递归DNS", - "admin_server_menu_setting_https": "HTTPS", - "admin_server_menu_setting_origins": "源站", - "admin_cluster_menu_setting_toa": "TOA设置", - "admin_cluster_menu_setting_schedule": "智能调度", - "admin_menu_server_traffic_stats": "用量统计", - "admin_menu_server_cache_policies": "缓存策略", - "admin_ns_cluster_menu_basic": "基础设置", - "admin_level_warn": "警告", - "admin_server_menu_setting_dns": "DNS", - "admin_server_menu_setting_cc": "CC防护", - "admin_server_menu_setting_charset": "字符编码", - "admin_settings_tab_ip_library": "IP库", - "admin_log_tag_listener": "端口监听", - "admin_server_menu_setting_udp_proxy": "UDP代理", - "admin_server_menu_setting_domains": "域名", - "admin_server_menu_setting_http_proxy": "HTTP代理", - "admin_settings_tab_client_browsers": "浏览器库", - "admin_menu_user_settings": "用户设置", - "admin_settings_tab_admin_server": "Web服务", - "admin_settings_tab_admin_ui": "管理界面设置", - "admin_cluster_menu_setting_webp": "WebP", - "admin_menu_ns_domain_batch_operations": "批量操作", - "admin_menu_ns_plans": "套餐设置", - "admin_node_menu_create_multiple_nodes": "批量创建", - "admin_server_copy_setting_current_user": "当前用户:%s", - "admin_common_menu_setting_basic": "基础设置", - "admin_db_node_tab_nodes": "数据库节点", - "admin_server_tab_dashboard": "看板", - "admin_server_menu_accesslog_history": "历史", - "admin_menu_dashboard": "数据看板", - "admin_menu_finance": "财务管理", - "admin_ns_setting_access_logs": "访问日志设置", - "admin_menu_server_scripts": "脚本库", - "admin_menu_server_metrics": "统计指标", - "admin_ns_cluster_menu_tcp": "TCP", - "admin_cluster_menu_setting_cache_policy": "缓存策略", - "admin_menu_server_purge_fetch_caches": "刷新预热", - "admin_server_menu_setting_cache": "缓存", + langs.Load("zh-cn", map[langs.MessageCode]string{ + "admin_menu@ns_domain_batch_operations": "批量操作", + "ns@log_update_ns_records_batch": "批量修改NS域名记录", + "ns_domain@log_update_ns_domain_health_check": "修改域名 %d 健康检查设置", + "server_webp@log_update_cluster_webp_policy": "修改集群 %d 的WebP设置", + "ns_route_category@log_create_ns_route_category": "创建NS线路分类 %d", + "server_uam@log_update_cluster_uam_policy": "修改集群 %d 的UAM设置", + "user_ad_instance@log_renew_user_ad_instance": "为用户高防实例 %d 续期", + "waf_policy@log_upgrade_waf_policy": "升级WAF %d 内置规则", + "admin_menu@dns_providers": "DNS服务商", + "dns_task@log_delete_dns_task": "删除DNS同步任务 %d", + "node_cluster_menu@tab_cluster_settings": "集群设置", + "node_cluster_menu@setting_notification": "消息通知", + "ns_domain_group@log_delete_ns_domain_group": "删除NS域名分组 %d", + "server@menu_setting_tcp": "TCP", + "server_cache_policy@log_update_cache_policy": "修改缓存策略:%d", + "acme_provider_account@log_delete_acme_provider_account": "删除ACME服务商账号 %d", + "acme_provider_account@log_update_acme_provider_account": "修改ACME服务商账号 %d", + "message_media_instance@log_create_message_media_instance": "创建消息媒介 %d", + "node_cluster_menu@tab_cluster_nodes": "节点列表", + "admin_menu@dns_issues": "问题修复", + "db_node@tab_nodes": "数据库节点", + "user@log_update_user_features": "设置用户 %d 的功能列表", + "node@log_delete_node_from_cluster": "从集群 %d 中删除节点 %d", + "node_ip_address@log_down_node_ip_address": "手动设置IP地址 %d 下线", + "plan@log_update_plan": "修改套餐 %d", + "server@menu_setting_cc": "CC防护", + "admin_menu@dashboard": "数据看板", + "finance@log_update_user_order_config": "修改订单设置", + "http_cache_task@log_delete_http_cache_task": "删除缓存任务 %d", + "ip_list@log_import_ip_list": "导入IP名单 %d", + "server@copy_setting_current_user": "当前用户:%s", + "server_cc@log_update_cluster_http_cc_policy": "修改集群 %d 的HTTP CC策略设置", + "database@log_truncate_table": "清空数据表 %s 数据", + "server@menu_stat_providers": "运营商", + "waf_action@log_delete_waf_action": "删除WAF动作 %d", + "node_cluster_menu@setting_cc": "CC防护", + "node_region@log_sort_node_regions": "修改节点区域排序", + "ns_domain@log_create_ns_domains_batch": "批量添加域名", + "ns_record@log_up_ns_record": "手动设置DNS记录 %d 为上线状态", + "ad_package_price@log_create_ad_package_price": "为用户 %d 创建高防实例:%d,有效期:%d,数量:%d", + "client_browser@log_update_client_browser": "修改浏览器信息 %d", + "dns@log_update_cluster_dns": "修改集群 %d DNS设置", + "ip_list@log_delete_ip_list": "删除IP名单 %d", + "server@copy_setting_current_cluster": "当前集群:%s", + "server@menu_accesslog_today": "今天", + "traffic_package@log_delete_traffic_package": "删除流量包 %d", + "admin_menu@server_purge_fetch_caches": "刷新预热", + "node_grant@log_create_ssh_grant": "创建SSH认证 %d", + "server_http_header@log_delete_header": "删除请求Header,HeaderPolicyId:%d, HeaderId:%d", + "ns_cluster@log_update_ns_cluster_settings_soa": "修改NS集群 %d SOA配置", + "server@menu_setting_origins": "源站", + "server_http_header@log_update_setting_header": "修改设置请求Header,HeaderPolicyId:%d, Name:%s, Value:%s", + "waf_rule_set@log_update_rule_set": "修改WAF规则集 %d 基本信息", + "ad_package_period@log_delete_ad_package_period": "删除高防IP实例有效期选项 %d", + "message_recipient@log_update_message_recipient": "修改媒介接收人 %d", + "node@log_up_node": "手动上线节点 %d", + "ns@log_delete_ns_domains_batch": "批量删除NS域名,用户 %d", + "ns@log_disable_ns_records_batch": "批量停用NS域名记录", + "admin_dashboard@ui_user": "用户", + "node_cluster_menu@tab_cluster_delete": "删除集群", + "node_menu@setting_thresholds": "阈值设置", + "ns@log_create_ns_domains_batch": "批量添加域名", + "http_access_log_policy@log_create_http_access_log_policy": "创建访问日志策略 %d", + "node_threshold@log_update_node_threshold": "修改节点阈值 %d", + "ns_cluster@menu_ddos_protection": "DDoS防护", + "ns_route@log_sort_ns_routes": "对线路进行排序", + "ad_network@log_update_ad_network": "修改高防IP线路 %d", + "admin_menu@ns_node_logs": "运行日志", + "admin_setting@tab_database": "数据库", + "db_node@log_delete_table": "删除数据库节点 %d 数据表 %s", + "server@menu_setting_access_log": "访问日志", + "server_cc@log_update_cc_settings": "修改Web %d CC防护配置", + "traffic_package@log_update_traffic_package": "修改流量包 %d", + "waf@log_update_ip_from_waf_policy": "修改WAF策略 %d 名单中的IP %d", + "log@log_update_settings": "修改日志相关配置", + "metric_chart@log_update_metric_chart": "修改指标图表 %d", + "node_price_item@log_delete_node_price_item": "删除流量价格项目 %d", + "admin_setting@tab_admin_security_settings": "安全设置", + "ip_item@log_create_ip_item": "在名单 %d 中创建IP %d", + "node@log_stop_node_remotely": "远程停止节点 %d", + "server@menu_stat_regions": "地域分布", + "ns_domain@log_delete_ns_domain": "删除域名 %d", + "ns_route@log_create_ns_route": "创建域名服务线路 %d", + "region_country@log_add_region_country_code": "添加国家/地区 %d 别名 %s", + "server@menu_setting_client_ip": "访客IP地址", + "admin_common@menu_setting_health_check": "健康检查", + "admin_menu@ns_domain_groups": "域名分组", + "admin_setting@tab_access_log_databases": "日志数据库", + "node@log_update_node_installation_status": "修改节点安装状态 %d", + "server_cache_policy@log_fetch_caches": "预热缓存,缓存策略:%d", + "user@log_update_user": "修改用户 %d", + "region_city@log_add_region_city_code": "添加城市/市 %d 别名 %s", + "server_cache_policy@log_purge_caches": "删除缓存,缓存策略:%d", + "admin_menu@ns": "智能DNS", + "admin_ui@default_system_name": "GoEdge管理员系统", + "log@log_delete_log": "删除单个操作日志 %d", + "node_menu@setting_ssh": "SSH设置", + "node_price_item@log_create_node_price_item_traffic": "创建流量价格项目 %d", + "admin_login@log_success": "成功登录系统,用户名:%s", + "dns@log_create_domain": "添加管理域名到DNS服务商 %d", + "node@log_update_node": "修改节点 %d 基本信息", + "node_cluster_menu@setting_uam": "5秒盾", + "admin_profile@log_update_profile": "修改个人资料", + "server@menu_setting_tcp_proxy": "TCP代理", + "server_origin@log_delete_origin": "删除源站 %d", + "admin@log_create_admin": "创建系统用户 %d", + "node_cluster_menu@setting_toa": "TOA设置", + "node_group@log_create_node_group": "创建节点分组 %d", + "node_schedule@log_update_node_schedule_basic": "修改节点调度基本信息", + "node_toa@log_update_cluster_toa": "修改集群 %d 的TOA设置", + "ticket_category@log_create_ticket_category": "添加工单分类 %d", + "node_menu@setting_cache": "缓存设置", + "node_systemd@log_update_cluster_systemd_settings": "修改集群 %d 的系统服务设置", + "ssl_cert@log_download_ssl_cert": "下载SSL证书 %d", + "admin_setting@tab_monitor_nodes": "监控节点", + "http_cache_task@log_create_http_cache_task_purge": "批量刷新缓存Key", + "node@ungrouped_label": "未分组", + "node_menu@setting_dns": "DNS设置", + "report_node@log_delete_report_node": "删除监控终端 %d", + "admin_common@menu_setting_waf_policy": "WAF策略", + "http_rewrite_rule@log_create_rewrite_rule": "在Web %d 中创建重写规则 %d", + "ip_library_file@log_delete_ip_library_file": "删除IP库文件 %d", + "message_reciever@log_update_cluster_message_receivers": "修改集群 %d 消息接收人", + "ad_package@log_update_ad_package": "修改高防产品 %d", + "traffic_package_price@log_update_traffic_package_price": "修改流量包 %d 区域 %d x 有效期 %d 的价格", + "acme_task@log_run_acme_task": "执行ACME任务 %d", + "admin_menu@node_logs": "节点日志", + "admin_menu@ns_routes": "线路管理", + "node_menu@setting_ddos_protection": "DDoS防护", + "node_grant@method_private_key": "私钥", + "order_method@log_update_order_method": "修改支付方式 %d", + "acme_provider_account@log_create_acme_provider_account": "创建ACME服务商账号 %d", + "ip_library_artifact@log_delete_ip_library_artifact": "删除IP库 %d", + "server@menu_setting_charset": "字符编码", + "node_system@log_update_node_system_settings": "修改节点 %d 系统信息", + "script@log_publish_scripts": "发布脚本库到边缘节点", + "admin_menu@server_waf_policies": "WAF策略", + "admin_menu@setting_authority": "商业版本", + "node@log_create_node": "创建节点 %d", + "node_cluster@log_update_cluster_health_check": "修改集群健康检查设置 %d", + "user_identity@log_reset_user_identity": "重置用户 %d 的实名认证", + "finance@log_bill_generate_manually": "手动生成上个月 %s 账单", + "metric_item@log_create_metric_item": "创建统计指标 %d", + "ns_domain_group@log_update_ns_domain_group": "修改NS域名分组 %d", + "user_ad_instance@log_update_user_ad_instance_objects": "修改用户高防实例 %d 防护对象", + "admin_common@menu_setting_metrics": "统计指标", + "http_rewrite_rule@log_sort_rewrite_rules": "对Web %d 中的重写规则进行排序", + "server@menu_setting_delete": "删除", + "server_page@log_create_page": "创建自定义页面 %d", + "ns_cluster@log_update_ns_cluster_settings_tcp": "修理NS集群 %d TCP设置", + "ns_node@log_install_ns_node_remotely": "安装节点 %d", + "server_reverse_proxy@log_update_server_reverse_proxy_settings": "修改代理服务 %d 的反向代理设置", + "waf_policy@log_import_waf_policy": "从文件中导入规则到WAF策略 %d", + "admin_menu@finance_logs": "收支明细", + "admin_menu@finance_accounts": "用户账户", + "node_ip_address@log_restore_node_ip_address": "取消IP地址 %d 的备用IP", + "node_price_item@log_create_node_price_item_bandwidth": "创建带宽价格项目 %d", + "node_log@log_delete_node_logs_batch": "批量删除节点运行日志", + "server@menu_setting_udp": "UDP", + "admin_menu@server_certs": "证书管理", + "admin_setting@tab_backup": "备份", + "admin_setting@tab_authority": "商业版认证", + "node_group@log_sort_node_groups": "修改节点分组排序", + "user@log_update_user_email_settings": "修改用户邮件设置", + "ad_package_period@log_create_ad_package_period": "创建高防IP实例有效期 %d", + "metric_item@log_add_metric_item_to_cluster": "添加指标 %d 到集群 %d", + "node@log_install_node": "安装节点 %d", + "ns_node@log_stop_ns_node_remotely": "远程停止节点 %d", + "http_location@log_create_http_location": "创建路由规则:%s", + "server_traffic_limit@log_update_traffic_limit_settings": "修改网站 %d 流量限制", + "admin_menu@server_scripts": "脚本库", + "ns_cluster@log_update_ns_cluster_settings_udp": "修改NS集群 %d UDP设置", + "ns_plan@log_create_ns_plan": "创建套餐 %d", + "admin@log_delete_admin": "删除系统用户 %d", + "message_media_instance@log_delete_message_media_instance": "删除消息媒介 %d", + "server_auth@log_update_http_auth_settings": "修改Web %d 的鉴权设置", + "server@log_create_server": "创建网站 %d", + "admin_menu@admins": "系统用户", + "metric_chart@log_delete_metric_chart": "删除指标图表 %d", + "metric_item@log_update_metric_item": "修改统计指标 %d", + "ns_route@log_update_ns_route": "修改域名线路 %d", + "plan@log_delete_plan": "删除套餐 %d", + "server_http_header@log_delete_non_standard_header": "删除需要非标的Header,HeaderPolicyId:%d, HeaderName:%s", + "admin_menu@node_regions": "区域设置", + "db_node@log_create_db_node": "创建数据库节点 %d", + "ddos_protection@log_update_cluster_ddos_protection": "修改集群 %d 的DDOS防护设置", + "ns_node_ssh@log_update_ns_node_ssh": "修改节点 %d SSH配置", + "waf_action@log_create_waf_action": "创建集群 %d 的WAF动作", + "admin_menu@server_cache_policies": "缓存策略", + "ip_list@log_export_ip_list": "导出IP名单 %d", + "server@menu_setting_waf": "WAF", + "server_cache_policy@log_create_cache_policy": "创建缓存策略:%d", + "waf@connector_and": "和(AND)", + "admin_menu@settings": "系统设置", + "node_menu@setting_system": "系统设置", + "ns@setting_user": "用户设置", + "server_charset@log_update_charset_setting": "修改Web %d 的字符集设置", + "ns_plan@log_update_ns_plan": "修改套餐 %d", + "server_websocket@log_update_websocket_settings": "修改Web %d 的Websocket设置", + "ad_package@log_delete_ad_package": "删除高防产品 %d", + "ad_package_instance@log_update_ad_package_instance": "修改高防实例 %d", + "admin_menu@node_ssh_grants": "节点SSH", + "http_fastcgi@log_update_http_fastcgi": "修改Fastcgi %d", + "waf@log_update_forbidden_provinces": "WAF策略 %d 设置禁止访问的省份", + "admin_menu@plans": "套餐管理", + "db_node@log_delete_db_node": "删除数据库节点 %d", + "log@tag_script": "脚本", + "server_group@log_sort_server_groups": "修改网站分组排序", + "admin_menu@ticket_category": "分类", + "ns_cluster@menu_access_logs": "访问日志", + "waf_policy@log_update_cluster_waf_policy": "设置集群 %d 的WAF策略为 %d", + "node@log_create_node_batch": "批量创建节点", + "node_task@log_delete_node_task": "删除同步任务 %d", + "ns_route_category@log_sort_ns_route_categories": "对NS线路分类进行排序", + "server_group@log_update_server_group": "修改网站分组 %d", + "admin_setting@tab_updates": "检查更新", + "dns_provider@log_update_dns_provider": "修改DNS服务商 %d", + "log@log_clean_all_logs": "清除全部日志", + "message_task@log_delete_message_task": "删除消息发送任务 %d", + "server_page@log_update_cluster_pages": "修改集群 %d 自定义页面策略", + "server_traffic_stat@all_servers": "全部网站(%d)", + "client_system@log_update_client_system": "修改操作系统信息 %d", + "ip_library_artifact@log_use_ip_library_artifact": "使用IP库 %d", + "server@menu_setting_dns": "DNS", + "server@tab_access_logs": "日志", + "ad_package_instance@log_create_ad_package_instance": "创建高防实例 %d", + "log@tag_listener": "端口监听", + "server_script@log_update_scripts": "修改Web %d 边缘脚本", + "waf_rule_set@log_sort_rule_sets": "修改WAF规则分组 %d 中的规则集排序", + "server_waf@log_update_waf_settings": "修改Web %d 的WAF设置", + "waf@connector_and_description": "所有规则都满足才视为匹配", + "admin_update@log_update_check_settings": "修改检查更新设置", + "message@log_read_messages": "将一组消息置为已读", + "ns@log_import_records_batch": "批量导入记录", + "ns_record@log_create_ns_record": "创建NS域名记录 %d", + "ssl_cert@log_upload_ssl_cert": "上传SSL证书 %d", + "admin_menu@plan_user_plans": "已购套餐", + "dns@log_sync_domain": "同步DNS域名数据 %d", + "ip_library_artifact@log_cancel_ip_library_artifact": "取消使用IP库 %d", + "plan@log_create_plan": "创建套餐 %d", + "server_tls@log_update_tls_settings": "修改代理服务 %d TLS设置", + "admin_menu@setting_basic_settings": "基础设置", + "node_cluster_menu@setting_http3": "HTTP/3", + "ns_cluster@menu_udp": "UDP", + "server_dns@log_update_dns_name": "修改服务 %d CNAME为 %s", + "ssl_cert@log_download_ssl_cert_zip": "下载SSL证书压缩包 %d", + "waf_policy@log_update_waf_policy": "修改WAF策略 %d 基本信息", + "admin@log_update_admin": "修改系统用户 %d", + "level@error": "错误", + "server@copy_setting_select_cluster": "选择集群", + "server_http_header@log_create_non_standard_header": "添加非标的Header HeaderPolicyId: %d, Name: %s", + "node_cluster_menu@setting_service_global": "网站设置", + "server_cache_policy@log_stat_caches": "统计缓存,缓存策略:%d", + "waf_rule_group@log_update_rule_group": "修改WAF规则分组 %d 基本信息", + "server@menu_accesslog_history": "历史", + "server@tab_dashboard": "看板", + "user@log_update_user_global_settings": "修改用户设置", + "user_identity@log_reject_user_identity": "驳回用户 %d 的实名认证", + "admin_menu@finance_orders": "订单管理", + "level@warn": "警告", + "node_price_item@log_update_node_price_item_traffic": "修改流量价格项目 %d", + "ns_record@log_update_ns_record_health_check": "修改记录 %d 的健康检查", + "admin_common@menu_setting_webp": "WebP", + "admin_setting@tab_transfer": "迁移", + "ns_cluster@menu_soa": "SOA", + "user_plan@log_buy_user_plan": "为用户 %d 购买套餐 %d", + "user_traffic_package@log_create_user_traffic_package": "为用户 %d 创建流量包:%d,区域:%d,有效期:%d,数量:%d", + "api_node@log_delete_api_node": "删除API节点 %d", + "ddos_protection@log_update_node_ddos_protection": "修改节点 %d 的DDOS防护设置", + "ns_key@log_delete_ns_key": "删除DNS密钥 %d", + "server_cache@log_update_cache_settings": "修改Web %d 的缓存设置", + "server@menu_setting_tls": "TLS", + "user_bill@log_pay_user_bill": "支付账单 %d", + "admin_menu@servers": "网站列表", + "http_rewrite_rule@log_update_rewrite_rule": "修改Web %d 中的重写规则 %d", + "node_cluster_menu@setting_metrics": "统计指标", + "server@menu_setting_https": "HTTPS", + "ns_plan@log_sort_ns_plans": "套餐排序", + "server_cache_policy@log_test_reading": "测试读取,缓存策略:%d", + "server_common@log_update_common_settings": "修改服务Web %d 设置的其他设置", + "admin_menu@ns_plans": "套餐设置", + "admin_menu@finance": "财务管理", + "admin_ui@default_product_name": "GoEdge", + "node_cache@log_update_node_cache_settings": "修改节点 %d 缓存设置", + "node_region@log_create_node_region": "创建节点区域 %d", + "server@menu_setting_fastcgi": "Fastcgi", + "server_dns@log_regenerate_dns_name": "重新生成服务 %d 的CNAME", + "server_redirect@log_update_redirects": "修改Web %d 的跳转设置", + "admin_common@menu_setting_cache": "缓存设置", + "node_menu@install_remote": "远程安装(%d)", + "server_uam@log_update_server_uam_settings": "修改网站 %d 全站防护模式", + "ssl_cert@log_ocsp_reset_all_ocsp_status": "忽略所有证书的OCSP状态", + "admin_menu@node_anti_ddos_products": "高防IP", + "node_menu@setting_schedule": "智能调度", + "ns_cluster@log_update_ns_cluster_settings_answer": "修改NS集群 %d 应答模式设置", + "server_cache@log_update_cluster_cache_policy": "设置集群 %d 的缓存策略为 %d", + "admin_menu@tickets": "工单系统", + "admin_setting@tab_user_nodes": "用户节点", + "ns_node@log_create_ns_node": "创建域名服务节点 %d", + "waf_rule_group@log_create_rule_group": "创建规则分组 %d,名称:%s", + "server_reverse_proxy@log_update_server_group_reverse_proxy_settings": "修改分组 %d 的反向代理设置", + "admin_login@log_system_error": "登录时发生系统错误:%s", + "admin_menu@server_global_settings": "通用设置", + "admin_setting@tab_ip_library": "IP库", + "server@menu_setting_user_agents": "UA名单", + "ns@log_enable_ns_records_batch": "批量启用NS域名记录", + "region_country@log_update_region_country_custom": "定制国家/地区 %d 信息", + "user_order@log_finish_user_order": "设置订单 %s 为完成支付", + "admin_menu@users": "平台用户", + "api_node@log_create_api_node": "创建API节点 %d", + "ip_item@log_delete_ip_item": "从IP名单 %d 中删除IP %d", + "node_cluster@log_delete_cluster": "删除集群 %d", + "server@log_copy_server_configs": "从服务 %d 中同步配置 %s", + "ssl_cert@log_delete_ssl_cert": "删除SSL证书 %d", + "admin_common@log_system_error": "系统发生错误:%s", + "admin_menu@admin_recipients": "通知媒介", + "ip_item@log_read_all_ip_items": "将所有IP名单置为已读", + "server@menu_setting_compress": "内容压缩", + "database@log_update_clean_days": "修改数据库自动清理设置", + "server_group@log_delete_server_group": "删除网站分组 %d", + "server_user_agent@log_update_user_agents": "修改Web %d User-Agent设置", + "user_access_key@log_delete_user_access_key": "删除AccessKey %d", + "ns_cluster@log_update_ns_cluster_settings_doh": "修改NS集群 %d DoH设置", + "ssl_cert@menu_certs": "证书", + "user_ad_instance@log_delete_user_ad_instance": "删除用户高防实例 %d", + "client_browser@log_create_browser": "创建浏览器信息 %s", + "dns@log_update_node_dns": "修改节点 %d 的DNS设置", + "node_cluster_menu@setting_waf_policy": "WAF策略", + "ns_cluster@log_update_ns_cluster_settings_recursion": "修改DNS集群 %d 的递归DNS设置", + "node_cluster@log_pin_cluster": "置顶集群 %d", + "node_group@log_delete_node_group": "删除节点分组 %d", + "waf_rule_group@log_sort_rule_groups": "修改WAF策略 %d 中的规则分组中的排序", + "ad_package_period@log_update_ad_package_period": "修改高防IP实例有效期选项 %d", + "admin_menu@ns_user_plans": "用户套餐", + "admin_security@log_update_security_settings": "修改管理界面安全设置", + "http_rewrite_rule@log_delete_rewrite_rule": "从Web %d 中删除重写规则 %d", + "traffic_package@log_create_traffic_package": "创建流量包 %d", + "admin_menu@node_ip_list": "节点IP", + "admin_menu@ns_settings": "全局配置", + "client_system@log_create_system": "创建操作系统信息 %s", + "server@menu_setting_traffic_limit": "流量限制", + "server@menu_setting_scripts": "边缘脚本", + "server_cache_policy@log_test_writing": "测试写入,缓存策略:%d", + "waf_policy@log_delete_waf_policy": "删除WAF策略 %d", + "http_auth_policy@log_update_http_auth_policy": "修改HTTP鉴权 %d", + "message@log_read_all": "将所有消息置为已读", + "node_threshold@log_create_node_threshold": "创建节点阈值 %d", + "server@menu_stat_traffic": "流量统计", + "node_region@log_update_node_region": "修改节点区域 %d", + "node_threshold@log_delete_node_threshold": "删除阈值 %d", + "ns_cluster@log_update_ns_cluster_settings_access_log": "修改域名服务集群 %d 访问日志配置", + "server@menu_setting_redirects": "URL跳转", + "user@log_create_user": "创建用户 %d", + "acme_task@log_update_acme_task": "修改证书申请任务 %d", + "admin_menu@dns": "域名解析", + "metric_chart@log_create_metric_chart": "创建指标图表 %d", + "node_grant@method_user_password": "用户名+密码", + "admin_menu@user_settings": "用户设置", + "http_auth_policy@log_create_http_auth_policy": "创建HTTP鉴权 %d", + "node_menu@create_single_node": "单个创建", + "server@menu_setting_stat": "统计", + "server_global_setting@log_update_cluster_global_server_config": "修改集群 %d 全局配置", + "ssl_cert@log_ocsp_reset_ocsp_status": "重置一组证书的OCSP状态", + "admin_dashboard@ui_overview": "概况", + "node_menu@create_multiple_nodes": "批量创建", + "server@menu_setting_rewrite_rules": "重写规则", + "server_http_header@log_delete_deleting_header": "删除需要删除的Header,HeaderPolicyId:%d, HeaderName:%s", + "node_action@log_update_node_action": "修改节点动作 %d", + "node_ip_address@log_up_node_ip_address": "手动设置IP地址 %d 上线", + "ns_cluster@tab_delete": "删除集群", + "server_cache_policy@log_clean_all": "清除缓存,缓存策略:%d", + "ns_record@log_update_ns_record": "修改域名记录 %d", + "ns_record@log_create_ns_records_batch": "批量创建NS域名记录", + "server@menu_stat_waf": "WAF", + "server_http_header@log_create_setting_header": "设置请求Header,HeaderPolicyId:%d, Name:%s, Value:%s", + "admin_menu@finance_bills": "费用账单", + "message_media_instance@log_update_message_media_instance": "修改消息媒介 %d", + "node_schedule@log_reset_node_action_status": "重置节点 %d 动作状态", + "ns_cluster@tab_nodes": "节点列表", + "http_access_log_policy@log_test_http_access_log_policy": "测试向访问日志策略 %d 写入数据", + "node_price_item@log_update_node_price_item_bandwidth": "修改带宽价格项目 %d", + "order_method@log_create_order_method": "创建支付方式 %d", + "user_plan@log_delete_user_plan": "删除用户已购套餐 %d", + "admin_dashboard@ui_dns": "DNS", + "admin_menu@ns_clusters": "集群管理", + "admin_menu@finance_fee": "计费设置", + "admin_setting@tab_profile": "个人资料", + "ad_network@log_create_ad_network": "创建高防IP线路 %d", + "user_node@log_update_user_node": "修改用户节点 %d", + "waf_action@log_update_waf_action": "修改WAF动作 %d", + "node_action@log_copy_node_actions_to_cluster": "复制节点 %d 调度动作到集群", + "node_cluster@log_run_cluster_health_check": "执行集群健康检查设置 %d", + "ns@log_delete_ns_records_batch": "批量删除NS域名记录", + "user_access_key@log_update_user_access_key_is_on": "设置AccessKey %d 启用状态", + "http_location@log_update_http_location": "修改路由规则 %d 设置", + "ip_list@log_bind_ip_list_waf_policy": "绑定IP名单 %d 到WAF策略 %d", + "node_cluster_menu@setting_ddos_protection": "DDoS防护", + "ns@log_create_ns_records_batch": "批量添加解析", + "acme_user@log_update_acme_user": "修改ACME用户 %d", + "admin_menu@finance_packages": "流量包", + "admin_ui@log_update_ui_settings": "修改管理界面设置", + "database@log_delete_table": "删除数据表 %s", + "ns_user_plan@log_create_ns_user_plan": "为用户 %d 创建DNS套餐 %d", + "region_province@log_add_region_province_code": "添加省份/州 %d 别名 %s", + "traffic_package_period@log_update_traffic_package_period": "修改流量包有效期选项 %d", + "region_provider@log_add_region_provider_code": "添加ISP服务商 %d 别名 %s", + "server_cache@log_fetch_caches": "预热网站 %d 缓存", + "admin_common@canceled": "已取消", + "admin_dashboard@ui_waf": "WAF", + "node_region@log_delete_node_region": "删除节点区域 %d", + "ns_cluster@menu_doh": "DoH", + "server@menu_setting_referers": "防盗链", + "server_stat@log_update_stat_settings": "修改Web %d 的统计设置", + "ssl_cert@log_ocsp_ignore_ocsp_status": "忽略一组证书的OCSP状态", + "admin_menu@setting_advanced_settings": "高级设置", + "admin_menu@logs": "日志审计", + "database@log_update_api_node_database_config": "修改API节点数据库设置", + "ns_cluster@log_update_ns_cluster_settings_tls": "修改NS集群 %d TLS设置", + "admin_common@server_error": "服务器出了点小问题,请联系技术人员处理。", + "admin_login@log_otp_verified_success": "成功通过OTP验证登录系统", + "admin_setting@tab_api_nodes": "API节点", + "ns_node@log_update_ns_node_installation_status": "修改节点安装状态 %d", + "server_root@log_update_root": "修改Web %d 静态分发设置", + "message_task@log_create_testing_message_task": "创建媒介测试任务 %d", + "node@log_upgrade_node_remotely": "远程升级节点 %d", + "node_region@log_move_node_between_regions": "修改节点 %d 区域到 %d", + "ns_node@log_start_ns_node_remotely": "远程启动节点 %d", + "node_cluster_menu@setting_dns": "DNS设置", + "node_menu@install_manually": "手动安装", + "server@menu_setting_http_proxy": "HTTP代理", + "admin_common@menu_setting_basic": "基础设置", + "admin_menu@server_groups": "网站分组", + "api_node@log_update_api_node": "修改API节点 %d", + "metric_item@log_delete_metric_item": "删除统计指标", + "waf_policy@log_create_waf_policy": "创建WAF策略 %d", + "dns@log_sync_cluster": "同步集群 %d 的DNS设置", + "ip_list@log_unbind_ip_list_waf_policy": "解除绑定IP名单 %d WAF策略 %d", + "node_cluster_menu@setting_system_service": "系统服务", + "server_uam@log_update_uam_settings": "修改Web %d 全站防护模式", + "admin_server@log_update_server_https_settings": "修改管理界面的HTTPS设置", + "metric_item@log_delete_metric_item_from_cluster": "从集群 %d 中移除指标 %d", + "report_node@log_create_report_node": "创建监控终端 %d", + "monitor_node@log_create_monitor_node": "创建监控节点 %d", + "monitor_node@log_delete_monitor_node": "删除监控节点 %d", + "ns_key@log_update_ns_key": "修改DNS密钥 %d", + "region_province@log_update_region_province_custom": "定制省份 %d 信息", + "reverse_proxy@log_update_reverse_proxy_scheduling": "修改反向代理 %d 负载均衡算法", + "waf_rule_group@log_delete_rule_group": "删除WAF策略 %d 的规则分组 %d", + "waf_rule_set@log_delete_rule_set": "删除WAF规则分组 %d 中的规则集 %d", + "server_http_header@log_create_deleting_header": "添加删除的Header HeaderPolicyId: %d, Name: %s", + "server_origin@log_update_origin": "修改源站 %d", + "admin_setting@tab_login": "登录设置", + "ip_library_file@log_upload_ip_library_file": "上传IP库 %d", + "ns_cluster@menu_tls": "TLS", + "server@menu_setting_domains": "域名", + "node_cluster_menu@setting_cache_policy": "缓存策略", + "node_ssh@log_update_node_ssh": "修改节点 %d SSH配置", + "ns_node@log_delete_ns_node": "删除域名服务节点 %d", + "ns_domain@log_update_ns_domain_tsig": "修改域名 %d 的TSIG配置", + "ssl_cert@menu_ocsp": "OCSP日志", + "admin_dashboard@ui_events": "事件", + "admin_server@log_update_server_http_settings": "修改管理界面的HTTP设置", + "http_access_log_policy@log_update_http_access_log_policy": "修改访问日志策略 %d", + "node_log@log_fix_all_logs": "设置所有日志为已修复", + "node_cluster_menu@setting_basic": "基础设置", + "ns_cluster@menu_basic": "基础设置", + "server@copy_setting_select_server": "选择网站", + "node_cluster_menu@tab_cluster_dashboard": "集群看板", + "ns_cluster@log_delete_ns_cluster": "删除域名服务集群 %d", + "server_cache@log_purge_caches": "删除网站 %d 缓存", + "waf@log_delete_ip_from_waf_policy": "从WAF策略 %d 名单中删除IP %d", + "acme_user@log_create_acme_user": "创建ACME用户 %d", + "admin_menu@finance_income": "统计报表", + "admin_menu@dns_clusters": "集群列表", + "http_fastcgi@log_create_http_fastcgi": "创建Fastcgi %d", + "waf_policy@log_export_waf_policy": "导出WAF策略 %d", + "server@copy_setting_select_user": "选择用户", + "server@menu_setting_webp": "WebP", + "admin_menu@server_access_logs": "访问日志", + "ip_library_file@log_generate_ip_library_file": "重新生成IP库 %d 文件", + "ip_list@log_delete_ip_batch": "批量删除IP名单中的IP:%s", + "node_cluster_menu@setting_waf_actions": "WAF动作", + "server@log_update_global_settings": "保存网站全局配置", + "server_udp@log_update_udp_settings": "修改网站 %d UDP设置", + "ssl_cert@log_update_ssl_cert": "修改SSL证书 %d", + "user_traffic_package@log_delete_user_traffic_package": "删除用户流量包 %d", + "node_cluster_menu@setting_health_check": "健康检查", + "ns_route_category@log_update_ns_route_category": "修改NS线路分类 %d", + "script@log_update_script": "修改脚本 %d", + "script@log_create_script": "创建脚本 %d", + "server_tcp@log_update_tcp_settings": "修改网站 %d TCP设置", + "waf_rule_group@log_update_rule_group_is_on": "设置WAF规则分组 %d 开启状态", + "admin_common@menu_setting_dns": "DNS设置", + "monitor_node@log_update_monitor_node": "修改监控节点 %d", + "node_menu@install_remote_upgrade": "远程升级(%d)", + "ns@log_update_ns_user_config": "修改NS全局设置--用户相关设置", + "server@tab_delete": "删除", + "server@menu_setting_http_headers": "HTTP Header", + "admin_common@menu_setting_cache_policy": "缓存策略", + "message_recipient@log_create_message_recipient": "创建媒介接收人 %d", + "ns_domain@log_create_ns_domain": "创建域名 %d", + "report_node_group@log_delete_report_node_group": "删除监控节点分组 %d", + "node_menu@install_auto_register": "自动注册", + "ns_route_category@log_delete_ns_route_category": "删除NS线路分类 %d", + "report_node@log_update_report_node": "修改监控终端 %d", + "script@log_delete_script": "删除脚本 %d", + "acme_user@log_delete_acme_user": "删除ACME用户 %d", + "admin_menu@server_traffic_stats": "用量统计", + "admin_menu@server_metrics": "统计指标", + "node_group@log_update_node_group": "修改节点分组 %d", + "user_identity@log_verify_user_identity": "通过用户 %d 的实名认证", + "ad_network@log_delete_ad_network": "删除高防IP线路", + "dns@log_update_domain": "修改DNS服务商域名 %d", + "dns_provider@log_create_dns_provider": "创建DNS服务商 %d", + "server@menu_setting_websocket": "Websocket", + "server_dns@log_update_dns_settings": "修改服务 %d 的DNS设置", + "server_http@log_update_http_settings": "修改网站 %d 的HTTP设置", + "waf@connector_or_description": "任一规则满足了就视为匹配", + "waf@log_update_forbidden_countries": "WAF策略 %d 设置禁止访问的国家和地区", + "ad_package_price@log_update_ad_package_price": "修改高防产品 %d 有效期 %d 的价格", + "admin_setting@tab_client_browsers": "浏览器库", + "node_action@log_sort_node_actions": "修改节点 %d 动作排序", + "node_ip_address@log_delete_node_ip_address": "删除IP地址 %d", + "server@copy_setting_select_group": "选择分组", + "server_compression@log_update_compression_settings": "修改Web %d 的压缩设置", + "admin_menu@server_access_log_policies": "日志策略", + "node_action@log_delete_node_action": "删除节点动作 %d", + "region_city@log_update_region_city_custom": "定制城市 %d 信息", + "server@server_names_log_update_server_names": "修改网站 %d 域名", + "dns@log_recover_domain": "从DNS服务商中恢复域名 %d", + "plan@log_sort_plans": "对套餐进行排序", + "server_http_header@log_update_http_headers": "修改Web %d 的Header设置", + "dns_provider@log_delete_dns_provider": "删除DNS服务商 %d", + "message_recipient@log_delete_message_recipient": "删除媒介接收人 %d", + "ns_route@log_delete_ns_route": "删除域名服务线路 %d", + "waf@connector_or": "或(OR)", + "acme_task@log_create_acme_task": "创建证书申请任务 %d", + "admin_update@log_ignore_version": "忽略升级版本 %s", + "level@info": "信息", + "user_access_key@log_create_user_access_key": "创建AccessKey %d", + "admin_menu@node_clusters": "集群列表", + "node_action@log_create_node_action": "创建动作 %d", + "report_node_group@log_update_report_node_group": "修改监控节点分组 %d", + "server@tab_settings": "设置", + "server@menu_setting_basic": "基本信息", + "user_node@log_delete_user_node": "删除用户节点 %d", + "admin_common@system": "系统", + "node@log_start_node_remotely": "远程启动节点 %d", + "node_region_price@log_update_node_region_price": "修改区域 %d - 价格项 %d 的价格", + "ns_domain_group@log_create_ns_domain_group": "创建NS域名分组 %d", + "server@menu_setting_auth": "访问鉴权", + "server_group@log_create_server_group": "创建网站分组 %d", + "ip_item@log_update_ip_item": "修改IP名单中的IP %d", + "region_town@log_update_region_town_custom": "定制县级 %d 信息", + "admin_update@log_reset_ignore_version": "重置忽略升级版本", + "server@menu_accesslog_realtime": "实时", + "user@log_delete_user": "删除用户 %d", + "waf_rule_set@log_update_rule_set_is_on": "修改WAF规则集 %d 开启状态", + "server@copy_setting_current_group": "当前分组:%s", + "server@menu_setting_udp_proxy": "UDP代理", + "server@menu_stat_clients": "终端", + "http_access_log_policy@log_delete_http_access_log_policy": "删除访问日志策略 %d", + "log@log_clean_logs_days_before": "清除 %d 以前的日志", + "ns_user_plan@log_delete_ns_user_plan": "删除用户套餐 %d", + "server@menu_setting_locations": "路由规则", + "server@log_update_server_basic": "修改网站 %d 基本信息", + "user_account@log_update_user_account": "操作用户账户 %d: %s", + "admin_menu@server_ip_lists": "IP名单", + "db_node@log_truncate_table": "清空数据库节点 %d 数据表 %s 数据", + "log@tag_access_log": "访问日志", + "server@menu_setting_unix": "Unix", + "admin_setting@tab_admin_server": "Web服务", + "server@menu_dashboard": "看板", + "region_town@log_add_region_town_code": "添加区/县 %d 别名 %s", + "server@log_submit_auditing_server": "提交服务 %d 域名审核", + "server@menu_setting_root": "静态分发", + "user@log_verify_user": "审核用户:%d 结果:%s", + "admin_setting@tab_client_operation_systems": "操作系统库", + "ns_domain@log_update_ns_domain_status": "修改域名 %d 状态为 %s", + "order_method@log_delete_order_method": "删除支付方式 %d", + "region_provider@log_update_region_provider_custom": "定制ISP %d 信息", + "ns_user_plan@log_update_ns_user_plan": "修改用户DNS套餐 %d", + "server_page@log_update_pages": "修改Web %d 的自定义页面设置", + "server_page@log_update_page": "修改自定义页面 %d", + "dns@log_delete_domain": "从DNS服务商中删除域名 %d", + "node_cluster_menu@setting_thresholds": "阈值设置", + "node_grant@log_update_ssh_grant": "修改SSH认证 %d", + "ns_cluster@menu_dns_recursion": "递归DNS", + "ns_domain@log_update_ns_domain": "修改域名 %d", + "user_node@log_create_user_node": "创建用户节点 %d", + "admin_menu@ns_access_logs": "访问日志", + "node_cluster@log_update_cluster_basic_settings": "修改集群基础设置 %d", + "node_cluster_menu@setting_pages": "自定义页面", + "ns_cluster@menu_tcp": "TCP", + "node_cluster_menu@setting_schedule": "智能调度", + "ticket_category@log_delete_ticket_category": "删除工单分类 %d", + "node_task@log_delete_node_tasks_batch": "批量删除节点同步任务", + "ns_cluster@log_update_ns_cluster_settings_basic": "修改域名服务集群基本信息 %d", + "server@menu_setting_others": "其他设置", + "acme_task@log_delete_acme_task": "删除证书申请任务 %d", + "admin_common@menu_setting_ddos_protection": "DDoS防护", + "admin_login@log_failed": "登录失败,用户名:%s", + "finance_fee@log_update_fee_setting": "修改默认计费方式", + "server@menu_setting_uam": "5秒盾", + "server@menu_setting_pages": "自定义页面", + "server_origin@log_create_origin": "创建源站 %d", + "server_referer@log_update_referers": "修改Web %d 防盗链设置", + "http_cache_task@log_reset_http_cache_task": "重置缓存任务 %d 状态", + "ip_list@log_update_ip_list": "修改IP名单 %d", + "ns_key@log_create_ns_key": "创建DNS密钥 %d", + "ns_plan@log_delete_ns_plan": "删除套餐 %d", + "ssl_cert@menu_apply": "申请证书", + "user_ticket_log@log_reply_ticket": "回复工单 %d", + "db_node@log_update_db_node": "修改数据库节点 %d", + "ip_list@log_create_ip_list": "创建IP名单 %d", + "node_action@log_copy_node_actions_to_group": "复制节点 %d 调度动作到分组", + "server_https@log_update_https_settings": "修改网站 %d 的HTTPS设置", + "node_grant@log_delete_ssh_grant": "删除SSH认证 %d", + "ad_package@log_create_ad_package": "创建高防产品 %d", + "ad_package_instance@log_delete_ad_package_instance": "删除高防实例 %d", + "log@tag_waf": "WAF", + "node_dns@log_update_node_dns": "修改节点 %d DNS设置", + "server@tab_stat": "统计", + "server_reverse_proxy@log_update_location_reverse_proxy_settings": "修改路由规则 %d 的反向代理设置", + "ssl_cert@log_download_ssl_cert_key": "下载SSL密钥 %d", + "ticket_category@log_update_ticket_category": "修改分类 %d", + "admin_menu@ns_resolve_test": "解析测试", + "ip_list@log_create_ip_items_batch": "在IP名单 %d 中批量添加IP", + "node@log_install_node_remotely": "远程安装节点 %d", + "ns@setting_access_logs": "访问日志设置", + "traffic_package_period@log_create_traffic_package_period": "创建流量包有效期 %d", + "ns_cluster@tab_setting": "集群设置", + "server@menu_setting_http": "HTTP", + "server@log_delete_server": "删除网站 %d", + "node_cluster@log_create_cluster": "创建节点集群:%d", + "ns_node@log_update_ns_node": "修改节点 %d", + "ns_record@log_delete_ns_record": "删除域名记录 %d", + "server_access_log@log_update_access_log_setting": "修改Web %d 的访问日志设置", + "admin_login@log_update_login": "修改登录设置", + "admin_menu@nodes": "边缘节点", + "admin_setting@tab_user_ui": "用户界面设置", + "node_cluster@log_unpin_cluster": "取消置顶集群 %d", + "traffic_package_period@log_delete_traffic_package_period": "删除流量包有效期选项 %d", + "ssl_cert@log_upload_ssl_cert_batch": "批量上传证书", + "user_plan@log_renew_user_plan": "续费已购套餐 %d", + "ns_cluster@log_update_ns_cluster_settings_ddos_protection": "修改NS集群 %d 的DDOS防护设置", + "server@menu_setting_request_limit": "请求限制", + "server_http3@log_update_cluster_http3_policy": "修改集群 %d 的HTTP3策略设置", + "server_request_limit@log_update_request_limit_settings": "修改Web %d 请求限制", + "http_cache_task@log_create_http_cache_task_fetch": "批量预热缓存Key", + "ip_library@log_finish_ip_library": "完成IP库%d 制作", + "node_cluster_menu@setting_webp": "WebP", + "server_fastcgi@log_update_http_fastcgi": "修改Web %d 的Fastcgi设置", + "admin_setting@tab_admin_ui": "管理界面设置", + "node_log@log_fix_node_logs": "设置日志 %s 为已修复", + "report_node_group@log_create_report_node_group": "创建监控节点分组 %d", + "server_cache_policy@log_delete_cache_policy": "删除缓存策略:%d", + "admin_menu@node_distributed_monitors": "区域监控", + "node_menu@setting_basic": "基础设置", + "ns_cluster@menu_answer_setting": "应答模式", + "server@menu_setting_cache": "缓存", + "admin_menu@ns_domains": "域名管理", + "ns_cluster@log_create_ns_cluster": "创建域名服务集群 %d", }) } diff --git a/pkg/langs/protos/zh-cn/acme_provider_account.json b/pkg/langs/protos/zh-cn/acme_provider_account.json new file mode 100644 index 0000000..f31f3c1 --- /dev/null +++ b/pkg/langs/protos/zh-cn/acme_provider_account.json @@ -0,0 +1,5 @@ +{ + "log_create_acme_provider_account": "创建ACME服务商账号 %d", + "log_delete_acme_provider_account": "删除ACME服务商账号 %d", + "log_update_acme_provider_account": "修改ACME服务商账号 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/acme_task.json b/pkg/langs/protos/zh-cn/acme_task.json new file mode 100644 index 0000000..af1edf0 --- /dev/null +++ b/pkg/langs/protos/zh-cn/acme_task.json @@ -0,0 +1,6 @@ +{ + "log_create_acme_task": "创建证书申请任务 %d", + "log_update_acme_task": "修改证书申请任务 %d", + "log_delete_acme_task": "删除证书申请任务 %d", + "log_run_acme_task": "执行ACME任务 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/acme_user.json b/pkg/langs/protos/zh-cn/acme_user.json new file mode 100644 index 0000000..b809538 --- /dev/null +++ b/pkg/langs/protos/zh-cn/acme_user.json @@ -0,0 +1,5 @@ +{ + "log_create_acme_user": "创建ACME用户 %d", + "log_delete_acme_user": "删除ACME用户 %d", + "log_update_acme_user": "修改ACME用户 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ad_network.json b/pkg/langs/protos/zh-cn/ad_network.json new file mode 100644 index 0000000..15e6f3c --- /dev/null +++ b/pkg/langs/protos/zh-cn/ad_network.json @@ -0,0 +1,5 @@ +{ + "log_delete_ad_network": "删除高防IP线路", + "log_update_ad_network": "修改高防IP线路 %d", + "log_create_ad_network": "创建高防IP线路 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ad_package.json b/pkg/langs/protos/zh-cn/ad_package.json new file mode 100644 index 0000000..62ec77a --- /dev/null +++ b/pkg/langs/protos/zh-cn/ad_package.json @@ -0,0 +1,5 @@ +{ + "log_create_ad_package": "创建高防产品 %d", + "log_delete_ad_package": "删除高防产品 %d", + "log_update_ad_package": "修改高防产品 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ad_package_instance.json b/pkg/langs/protos/zh-cn/ad_package_instance.json new file mode 100644 index 0000000..f25afea --- /dev/null +++ b/pkg/langs/protos/zh-cn/ad_package_instance.json @@ -0,0 +1,5 @@ +{ + "log_delete_ad_package_instance": "删除高防实例 %d", + "log_update_ad_package_instance": "修改高防实例 %d", + "log_create_ad_package_instance": "创建高防实例 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ad_package_period.json b/pkg/langs/protos/zh-cn/ad_package_period.json new file mode 100644 index 0000000..e84c389 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ad_package_period.json @@ -0,0 +1,5 @@ +{ + "log_create_ad_package_period": "创建高防IP实例有效期 %d", + "log_delete_ad_package_period": "删除高防IP实例有效期选项 %d", + "log_update_ad_package_period": "修改高防IP实例有效期选项 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ad_package_price.json b/pkg/langs/protos/zh-cn/ad_package_price.json new file mode 100644 index 0000000..b195563 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ad_package_price.json @@ -0,0 +1,4 @@ +{ + "log_create_ad_package_price": "为用户 %d 创建高防实例:%d,有效期:%d,数量:%d", + "log_update_ad_package_price": "修改高防产品 %d 有效期 %d 的价格" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin.json b/pkg/langs/protos/zh-cn/admin.json new file mode 100644 index 0000000..6919f9b --- /dev/null +++ b/pkg/langs/protos/zh-cn/admin.json @@ -0,0 +1,5 @@ +{ + "log_create_admin": "创建系统用户 %d", + "log_delete_admin": "删除系统用户 %d", + "log_update_admin": "修改系统用户 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_cert.json b/pkg/langs/protos/zh-cn/admin_cert.json deleted file mode 100644 index 1ff508d..0000000 --- a/pkg/langs/protos/zh-cn/admin_cert.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "menu_certs": "证书", - "menu_apply": "申请证书", - "menu_ocsp": "OCSP日志" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_common.json b/pkg/langs/protos/zh-cn/admin_common.json index 528e8c7..6e64c78 100644 --- a/pkg/langs/protos/zh-cn/admin_common.json +++ b/pkg/langs/protos/zh-cn/admin_common.json @@ -10,5 +10,8 @@ "menu_setting_cache": "缓存设置", "system": "系统", - "canceled": "已取消" + "canceled": "已取消", + + "server_error": "服务器出了点小问题,请联系技术人员处理。", + "log_system_error": "系统发生错误:%s" } \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_dashboard.json b/pkg/langs/protos/zh-cn/admin_dashboard.json index 728cccd..01f0c3c 100644 --- a/pkg/langs/protos/zh-cn/admin_dashboard.json +++ b/pkg/langs/protos/zh-cn/admin_dashboard.json @@ -1,7 +1,7 @@ { - "overview": "概况", - "waf": "WAF", - "dns": "DNS", - "user": "用户", - "events": "事件" + "ui_overview": "概况", + "ui_waf": "WAF", + "ui_dns": "DNS", + "ui_user": "用户", + "ui_events": "事件" } \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_db_node.json b/pkg/langs/protos/zh-cn/admin_db_node.json deleted file mode 100644 index 9b5527c..0000000 --- a/pkg/langs/protos/zh-cn/admin_db_node.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "tab_nodes": "数据库节点" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_log.json b/pkg/langs/protos/zh-cn/admin_log.json deleted file mode 100644 index 389fbf7..0000000 --- a/pkg/langs/protos/zh-cn/admin_log.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "tag_listener": "端口监听", - "tag_waf": "WAF", - "tag_access_log": "访问日志", - "tag_script": "脚本" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_login.json b/pkg/langs/protos/zh-cn/admin_login.json index 0e0dcd2..7731d98 100644 --- a/pkg/langs/protos/zh-cn/admin_login.json +++ b/pkg/langs/protos/zh-cn/admin_login.json @@ -1,3 +1,8 @@ { + "log_system_error": "登录时发生系统错误:%s", + "log_failed": "登录失败,用户名:%s", + "log_success": "成功登录系统,用户名:%s", + "log_otp_verified_success": "成功通过OTP验证登录系统", + "log_update_login": "修改登录设置" } \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_node.json b/pkg/langs/protos/zh-cn/admin_node.json deleted file mode 100644 index 833db3c..0000000 --- a/pkg/langs/protos/zh-cn/admin_node.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ungrouped_label": "未分组" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_node_grant.json b/pkg/langs/protos/zh-cn/admin_node_grant.json deleted file mode 100644 index 2543341..0000000 --- a/pkg/langs/protos/zh-cn/admin_node_grant.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method_user_password": "用户名+密码", - "method_private_key": "私钥" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_ns.json b/pkg/langs/protos/zh-cn/admin_ns.json deleted file mode 100644 index 0046184..0000000 --- a/pkg/langs/protos/zh-cn/admin_ns.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "setting_user": "用户设置", - "setting_access_logs": "访问日志设置" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_ns_cluster.json b/pkg/langs/protos/zh-cn/admin_ns_cluster.json deleted file mode 100644 index ea47792..0000000 --- a/pkg/langs/protos/zh-cn/admin_ns_cluster.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "tab_nodes": "节点列表", - "tab_setting": "集群设置", - "tab_delete": "删除集群", - - "menu_basic": "基础设置", - "menu_udp": "UDP", - "menu_tcp": "TCP", - "menu_tls": "TLS", - "menu_doh": "DoH", - "menu_access_logs": "访问日志", - "menu_answer_setting": "应答模式", - "menu_soa": "SOA", - "menu_dns_recursion": "递归DNS", - "menu_ddos_protection": "DDoS防护" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_profile.json b/pkg/langs/protos/zh-cn/admin_profile.json new file mode 100644 index 0000000..0318837 --- /dev/null +++ b/pkg/langs/protos/zh-cn/admin_profile.json @@ -0,0 +1,3 @@ +{ + "log_update_profile": "修改个人资料" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_security.json b/pkg/langs/protos/zh-cn/admin_security.json new file mode 100644 index 0000000..2ef3906 --- /dev/null +++ b/pkg/langs/protos/zh-cn/admin_security.json @@ -0,0 +1,3 @@ +{ + "log_update_security_settings": "修改管理界面安全设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_server.json b/pkg/langs/protos/zh-cn/admin_server.json index 21c0907..18be62a 100644 --- a/pkg/langs/protos/zh-cn/admin_server.json +++ b/pkg/langs/protos/zh-cn/admin_server.json @@ -1,68 +1,4 @@ { - "tab_dashboard": "看板", - "tab_stat": "统计", - "tab_access_logs": "日志", - "tab_settings": "设置", - "tab_delete": "删除", - - "menu_dashboard": "看板", - - "menu_accesslog_realtime": "实时", - "menu_accesslog_today": "今天", - "menu_accesslog_history": "历史", - - "menu_stat_traffic": "流量统计", - "menu_stat_regions": "地域分布", - "menu_stat_providers": "运营商", - "menu_stat_clients": "终端", - "menu_stat_waf": "WAF", - - "menu_setting_basic": "基本信息", - "menu_setting_dns": "DNS", - "menu_setting_domains": "域名", - "menu_setting_http": "HTTP", - "menu_setting_https": "HTTPS", - "menu_setting_origins": "源站", - "menu_setting_redirects": "URL跳转", - "menu_setting_locations": "路由规则", - "menu_setting_rewrite_rules": "重写规则", - "menu_setting_waf": "WAF", - "menu_setting_cache": "缓存", - "menu_setting_auth": "访问鉴权", - "menu_setting_referers": "防盗链", - "menu_setting_user_agents": "UA名单", - "menu_setting_charset": "字符编码", - "menu_setting_access_log": "访问日志", - "menu_setting_stat": "统计", - "menu_setting_compress": "内容压缩", - "menu_setting_pages": "自定义页面", - "menu_setting_http_headers": "HTTP Header", // TODO 中文应该改成"HTTP报头"? - "menu_setting_websocket": "Websocket", - "menu_setting_webp": "WebP", - "menu_setting_root": "静态分发", - "menu_setting_fastcgi": "Fastcgi", - "menu_setting_client_ip": "访客IP地址", - "menu_setting_request_limit": "请求限制", - "menu_setting_others": "其他设置", - "menu_setting_tcp": "TCP", - "menu_setting_tls": "TLS", - "menu_setting_unix": "Unix", - "menu_setting_udp": "UDP", - "menu_setting_delete": "删除", - "menu_setting_http_proxy": "HTTP代理", // 网站分组中使用 - "menu_setting_tcp_proxy": "TCP代理", // 网站分组中使用 - "menu_setting_udp_proxy": "UDP代理", // 网站分组中使用 - - "menu_setting_uam": "5秒盾", - "menu_setting_cc": "CC防护", - "menu_setting_traffic_limit": "流量限制", - "menu_setting_scripts": "边缘脚本", - - "copy_setting_current_group": "当前分组:%s", - "copy_setting_current_user": "当前用户:%s", - "copy_setting_current_cluster": "当前集群:%s", - "copy_setting_select_group": "选择分组", - "copy_setting_select_user": "选择用户", - "copy_setting_select_cluster": "选择集群", - "copy_setting_select_server": "选择网站" + "log_update_server_http_settings": "修改管理界面的HTTP设置", + "log_update_server_https_settings": "修改管理界面的HTTPS设置" } \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_settings.json b/pkg/langs/protos/zh-cn/admin_setting.json similarity index 100% rename from pkg/langs/protos/zh-cn/admin_settings.json rename to pkg/langs/protos/zh-cn/admin_setting.json diff --git a/pkg/langs/protos/zh-cn/admin_ui.json b/pkg/langs/protos/zh-cn/admin_ui.json new file mode 100644 index 0000000..3ec47b0 --- /dev/null +++ b/pkg/langs/protos/zh-cn/admin_ui.json @@ -0,0 +1,6 @@ +{ + "default_product_name": "GoEdge", + "default_system_name": "GoEdge管理员系统", + + "log_update_ui_settings": "修改管理界面设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_update.json b/pkg/langs/protos/zh-cn/admin_update.json new file mode 100644 index 0000000..22ae3a7 --- /dev/null +++ b/pkg/langs/protos/zh-cn/admin_update.json @@ -0,0 +1,5 @@ +{ + "log_ignore_version": "忽略升级版本 %s", + "log_reset_ignore_version": "重置忽略升级版本", + "log_update_check_settings": "修改检查更新设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_waf.json b/pkg/langs/protos/zh-cn/admin_waf.json deleted file mode 100644 index 08c483b..0000000 --- a/pkg/langs/protos/zh-cn/admin_waf.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "connector_and": "和(AND)", - "connector_and_description": "所有规则都满足才视为匹配", - "connector_or": "或(OR)", - "connector_or_description": "任一规则满足了就视为匹配" -} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/api_node.json b/pkg/langs/protos/zh-cn/api_node.json new file mode 100644 index 0000000..cf52027 --- /dev/null +++ b/pkg/langs/protos/zh-cn/api_node.json @@ -0,0 +1,5 @@ +{ + "log_create_api_node": "创建API节点 %d", + "log_update_api_node": "修改API节点 %d", + "log_delete_api_node": "删除API节点 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/client_browser.json b/pkg/langs/protos/zh-cn/client_browser.json new file mode 100644 index 0000000..4ac2865 --- /dev/null +++ b/pkg/langs/protos/zh-cn/client_browser.json @@ -0,0 +1,4 @@ +{ + "log_update_client_browser": "修改浏览器信息 %d", + "log_create_browser": "创建浏览器信息 %s" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/client_system.json b/pkg/langs/protos/zh-cn/client_system.json new file mode 100644 index 0000000..146a254 --- /dev/null +++ b/pkg/langs/protos/zh-cn/client_system.json @@ -0,0 +1,4 @@ +{ + "log_update_client_system": "修改操作系统信息 %d", + "log_create_system": "创建操作系统信息 %s" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/database.json b/pkg/langs/protos/zh-cn/database.json new file mode 100644 index 0000000..c61f2fe --- /dev/null +++ b/pkg/langs/protos/zh-cn/database.json @@ -0,0 +1,6 @@ +{ + "log_update_clean_days": "修改数据库自动清理设置", + "log_delete_table": "删除数据表 %s", + "log_truncate_table": "清空数据表 %s 数据", + "log_update_api_node_database_config": "修改API节点数据库设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/db_node.json b/pkg/langs/protos/zh-cn/db_node.json new file mode 100644 index 0000000..2391d45 --- /dev/null +++ b/pkg/langs/protos/zh-cn/db_node.json @@ -0,0 +1,9 @@ +{ + "tab_nodes": "数据库节点", + + "log_create_db_node": "创建数据库节点 %d", + "log_delete_db_node": "删除数据库节点 %d", + "log_update_db_node": "修改数据库节点 %d", + "log_delete_table": "删除数据库节点 %d 数据表 %s", + "log_truncate_table": "清空数据库节点 %d 数据表 %s 数据" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ddos_protection.json b/pkg/langs/protos/zh-cn/ddos_protection.json new file mode 100644 index 0000000..548b68c --- /dev/null +++ b/pkg/langs/protos/zh-cn/ddos_protection.json @@ -0,0 +1,4 @@ +{ + "log_update_cluster_ddos_protection": "修改集群 %d 的DDOS防护设置", + "log_update_node_ddos_protection": "修改节点 %d 的DDOS防护设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/dns.json b/pkg/langs/protos/zh-cn/dns.json new file mode 100644 index 0000000..85b5b92 --- /dev/null +++ b/pkg/langs/protos/zh-cn/dns.json @@ -0,0 +1,10 @@ +{ + "log_update_cluster_dns": "修改集群 %d DNS设置", + "log_sync_domain": "同步DNS域名数据 %d", + "log_sync_cluster": "同步集群 %d 的DNS设置", + "log_create_domain": "添加管理域名到DNS服务商 %d", + "log_delete_domain": "从DNS服务商中删除域名 %d", + "log_recover_domain": "从DNS服务商中恢复域名 %d", + "log_update_domain": "修改DNS服务商域名 %d", + "log_update_node_dns": "修改节点 %d 的DNS设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/dns_provider.json b/pkg/langs/protos/zh-cn/dns_provider.json new file mode 100644 index 0000000..b732844 --- /dev/null +++ b/pkg/langs/protos/zh-cn/dns_provider.json @@ -0,0 +1,5 @@ +{ + "log_create_dns_provider": "创建DNS服务商 %d", + "log_delete_dns_provider": "删除DNS服务商 %d", + "log_update_dns_provider": "修改DNS服务商 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/dns_task.json b/pkg/langs/protos/zh-cn/dns_task.json new file mode 100644 index 0000000..6c36027 --- /dev/null +++ b/pkg/langs/protos/zh-cn/dns_task.json @@ -0,0 +1,3 @@ +{ + "log_delete_dns_task": "删除DNS同步任务 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/finance.json b/pkg/langs/protos/zh-cn/finance.json new file mode 100644 index 0000000..62ee9cc --- /dev/null +++ b/pkg/langs/protos/zh-cn/finance.json @@ -0,0 +1,4 @@ +{ + "log_bill_generate_manually": "手动生成上个月 %s 账单", + "log_update_user_order_config": "修改订单设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/finance_fee.json b/pkg/langs/protos/zh-cn/finance_fee.json new file mode 100644 index 0000000..95b05f7 --- /dev/null +++ b/pkg/langs/protos/zh-cn/finance_fee.json @@ -0,0 +1,3 @@ +{ + "log_update_fee_setting": "修改默认计费方式" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/http_access_log_policy.json b/pkg/langs/protos/zh-cn/http_access_log_policy.json new file mode 100644 index 0000000..56d9da8 --- /dev/null +++ b/pkg/langs/protos/zh-cn/http_access_log_policy.json @@ -0,0 +1,6 @@ +{ + "log_create_http_access_log_policy": "创建访问日志策略 %d", + "log_delete_http_access_log_policy": "删除访问日志策略 %d", + "log_test_http_access_log_policy": "测试向访问日志策略 %d 写入数据", + "log_update_http_access_log_policy": "修改访问日志策略 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/http_auth_policy.json b/pkg/langs/protos/zh-cn/http_auth_policy.json new file mode 100644 index 0000000..fabb0cb --- /dev/null +++ b/pkg/langs/protos/zh-cn/http_auth_policy.json @@ -0,0 +1,4 @@ +{ + "log_create_http_auth_policy": "创建HTTP鉴权 %d", + "log_update_http_auth_policy": "修改HTTP鉴权 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/http_cache_task.json b/pkg/langs/protos/zh-cn/http_cache_task.json new file mode 100644 index 0000000..8f827c7 --- /dev/null +++ b/pkg/langs/protos/zh-cn/http_cache_task.json @@ -0,0 +1,6 @@ +{ + "log_delete_http_cache_task": "删除缓存任务 %d", + "log_create_http_cache_task_fetch": "批量预热缓存Key", + "log_create_http_cache_task_purge": "批量刷新缓存Key", + "log_reset_http_cache_task": "重置缓存任务 %d 状态" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/http_fastcgi.json b/pkg/langs/protos/zh-cn/http_fastcgi.json new file mode 100644 index 0000000..9bb57cc --- /dev/null +++ b/pkg/langs/protos/zh-cn/http_fastcgi.json @@ -0,0 +1,4 @@ +{ + "log_create_http_fastcgi": "创建Fastcgi %d", + "log_update_http_fastcgi": "修改Fastcgi %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/http_location.json b/pkg/langs/protos/zh-cn/http_location.json new file mode 100644 index 0000000..8779f1d --- /dev/null +++ b/pkg/langs/protos/zh-cn/http_location.json @@ -0,0 +1,4 @@ +{ + "log_create_http_location": "创建路由规则:%s", // 参数:pattern + "log_update_http_location": "修改路由规则 %d 设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/http_rewrite_rule.json b/pkg/langs/protos/zh-cn/http_rewrite_rule.json new file mode 100644 index 0000000..00f8da5 --- /dev/null +++ b/pkg/langs/protos/zh-cn/http_rewrite_rule.json @@ -0,0 +1,6 @@ +{ + "log_create_rewrite_rule": "在Web %d 中创建重写规则 %d", + "log_delete_rewrite_rule": "从Web %d 中删除重写规则 %d", + "log_sort_rewrite_rules": "对Web %d 中的重写规则进行排序", + "log_update_rewrite_rule": "修改Web %d 中的重写规则 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ip_item.json b/pkg/langs/protos/zh-cn/ip_item.json new file mode 100644 index 0000000..d6ea9f3 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ip_item.json @@ -0,0 +1,6 @@ +{ + "log_create_ip_item": "在名单 %d 中创建IP %d", + "log_delete_ip_item": "从IP名单 %d 中删除IP %d", + "log_read_all_ip_items": "将所有IP名单置为已读", + "log_update_ip_item": "修改IP名单中的IP %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ip_library.json b/pkg/langs/protos/zh-cn/ip_library.json new file mode 100644 index 0000000..85af5a6 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ip_library.json @@ -0,0 +1,3 @@ +{ + "log_finish_ip_library": "完成IP库%d 制作" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ip_library_artifact.json b/pkg/langs/protos/zh-cn/ip_library_artifact.json new file mode 100644 index 0000000..c343741 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ip_library_artifact.json @@ -0,0 +1,5 @@ +{ + "log_delete_ip_library_artifact": "删除IP库 %d", + "log_use_ip_library_artifact": "使用IP库 %d", + "log_cancel_ip_library_artifact": "取消使用IP库 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ip_library_file.json b/pkg/langs/protos/zh-cn/ip_library_file.json new file mode 100644 index 0000000..11254ab --- /dev/null +++ b/pkg/langs/protos/zh-cn/ip_library_file.json @@ -0,0 +1,5 @@ +{ + "log_generate_ip_library_file": "重新生成IP库 %d 文件", + "log_upload_ip_library_file": "上传IP库 %d", + "log_delete_ip_library_file": "删除IP库文件 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ip_list.json b/pkg/langs/protos/zh-cn/ip_list.json new file mode 100644 index 0000000..b82c60b --- /dev/null +++ b/pkg/langs/protos/zh-cn/ip_list.json @@ -0,0 +1,11 @@ +{ + "log_delete_ip_batch": "批量删除IP名单中的IP:%s", + "log_create_ip_items_batch": "在IP名单 %d 中批量添加IP", + "log_bind_ip_list_waf_policy": "绑定IP名单 %d 到WAF策略 %d", + "log_unbind_ip_list_waf_policy": "解除绑定IP名单 %d WAF策略 %d", + "log_create_ip_list": "创建IP名单 %d", + "log_delete_ip_list": "删除IP名单 %d", + "log_export_ip_list": "导出IP名单 %d", + "log_import_ip_list": "导入IP名单 %d", + "log_update_ip_list": "修改IP名单 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_level.json b/pkg/langs/protos/zh-cn/level.json similarity index 100% rename from pkg/langs/protos/zh-cn/admin_level.json rename to pkg/langs/protos/zh-cn/level.json diff --git a/pkg/langs/protos/zh-cn/log.json b/pkg/langs/protos/zh-cn/log.json new file mode 100644 index 0000000..2e36965 --- /dev/null +++ b/pkg/langs/protos/zh-cn/log.json @@ -0,0 +1,11 @@ +{ + "tag_listener": "端口监听", + "tag_waf": "WAF", + "tag_access_log": "访问日志", + "tag_script": "脚本", + + "log_clean_all_logs": "清除全部日志", + "log_clean_logs_days_before": "清除 %d 以前的日志", + "log_delete_log": "删除单个操作日志 %d", + "log_update_settings": "修改日志相关配置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/message.json b/pkg/langs/protos/zh-cn/message.json new file mode 100644 index 0000000..43a4153 --- /dev/null +++ b/pkg/langs/protos/zh-cn/message.json @@ -0,0 +1,4 @@ +{ + "log_read_all": "将所有消息置为已读", + "log_read_messages": "将一组消息置为已读" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/message_media_instance.json b/pkg/langs/protos/zh-cn/message_media_instance.json new file mode 100644 index 0000000..e1e62d7 --- /dev/null +++ b/pkg/langs/protos/zh-cn/message_media_instance.json @@ -0,0 +1,5 @@ +{ + "log_create_message_media_instance": "创建消息媒介 %d", + "log_delete_message_media_instance": "删除消息媒介 %d", + "log_update_message_media_instance": "修改消息媒介 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/message_reciever.json b/pkg/langs/protos/zh-cn/message_reciever.json new file mode 100644 index 0000000..1217b79 --- /dev/null +++ b/pkg/langs/protos/zh-cn/message_reciever.json @@ -0,0 +1,3 @@ +{ + "log_update_cluster_message_receivers": "修改集群 %d 消息接收人" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/message_recipient.json b/pkg/langs/protos/zh-cn/message_recipient.json new file mode 100644 index 0000000..14a13c0 --- /dev/null +++ b/pkg/langs/protos/zh-cn/message_recipient.json @@ -0,0 +1,5 @@ +{ + "log_create_message_recipient": "创建媒介接收人 %d", + "log_delete_message_recipient": "删除媒介接收人 %d", + "log_update_message_recipient": "修改媒介接收人 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/message_task.json b/pkg/langs/protos/zh-cn/message_task.json new file mode 100644 index 0000000..1f2a88c --- /dev/null +++ b/pkg/langs/protos/zh-cn/message_task.json @@ -0,0 +1,4 @@ +{ + "log_delete_message_task": "删除消息发送任务 %d", + "log_create_testing_message_task": "创建媒介测试任务 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/metric_chart.json b/pkg/langs/protos/zh-cn/metric_chart.json new file mode 100644 index 0000000..1364d32 --- /dev/null +++ b/pkg/langs/protos/zh-cn/metric_chart.json @@ -0,0 +1,5 @@ +{ + "log_create_metric_chart": "创建指标图表 %d", + "log_delete_metric_chart": "删除指标图表 %d", + "log_update_metric_chart": "修改指标图表 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/metric_item.json b/pkg/langs/protos/zh-cn/metric_item.json new file mode 100644 index 0000000..e5640c0 --- /dev/null +++ b/pkg/langs/protos/zh-cn/metric_item.json @@ -0,0 +1,7 @@ +{ + "log_add_metric_item_to_cluster": "添加指标 %d 到集群 %d", + "log_delete_metric_item_from_cluster": "从集群 %d 中移除指标 %d", + "log_create_metric_item": "创建统计指标 %d", + "log_delete_metric_item": "删除统计指标", + "log_update_metric_item": "修改统计指标 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/monitor_node.json b/pkg/langs/protos/zh-cn/monitor_node.json new file mode 100644 index 0000000..5d181b6 --- /dev/null +++ b/pkg/langs/protos/zh-cn/monitor_node.json @@ -0,0 +1,5 @@ +{ + "log_create_monitor_node": "创建监控节点 %d", + "log_update_monitor_node": "修改监控节点 %d", + "log_delete_monitor_node": "删除监控节点 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node.json b/pkg/langs/protos/zh-cn/node.json new file mode 100644 index 0000000..0b0c87d --- /dev/null +++ b/pkg/langs/protos/zh-cn/node.json @@ -0,0 +1,15 @@ +{ + "ungrouped_label": "未分组", + + "log_create_node": "创建节点 %d", + "log_create_node_batch": "批量创建节点", + "log_install_node": "安装节点 %d", + "log_install_node_remotely": "远程安装节点 %d", + "log_upgrade_node_remotely": "远程升级节点 %d", + "log_start_node_remotely": "远程启动节点 %d", + "log_stop_node_remotely": "远程停止节点 %d", + "log_update_node": "修改节点 %d 基本信息", + "log_update_node_installation_status": "修改节点安装状态 %d", + "log_up_node": "手动上线节点 %d", + "log_delete_node_from_cluster": "从集群 %d 中删除节点 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_action.json b/pkg/langs/protos/zh-cn/node_action.json new file mode 100644 index 0000000..b84ba31 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_action.json @@ -0,0 +1,8 @@ +{ + "log_copy_node_actions_to_cluster": "复制节点 %d 调度动作到集群", + "log_copy_node_actions_to_group": "复制节点 %d 调度动作到分组", + "log_create_node_action": "创建动作 %d", + "log_delete_node_action": "删除节点动作 %d", + "log_sort_node_actions": "修改节点 %d 动作排序", + "log_update_node_action": "修改节点动作 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_cache.json b/pkg/langs/protos/zh-cn/node_cache.json new file mode 100644 index 0000000..aab0fba --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_cache.json @@ -0,0 +1,3 @@ +{ + "log_update_node_cache_settings": "修改节点 %d 缓存设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_cluster.json b/pkg/langs/protos/zh-cn/node_cluster.json new file mode 100644 index 0000000..40f26e9 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_cluster.json @@ -0,0 +1,9 @@ +{ + "log_create_cluster": "创建节点集群:%d", + "log_delete_cluster": "删除集群 %d", + "log_update_cluster_health_check": "修改集群健康检查设置 %d", + "log_run_cluster_health_check": "执行集群健康检查设置 %d", + "log_update_cluster_basic_settings": "修改集群基础设置 %d", + "log_pin_cluster": "置顶集群 %d", + "log_unpin_cluster": "取消置顶集群 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_server_origin.json b/pkg/langs/protos/zh-cn/node_cluster_dns.json similarity index 100% rename from pkg/langs/protos/zh-cn/admin_server_origin.json rename to pkg/langs/protos/zh-cn/node_cluster_dns.json diff --git a/pkg/langs/protos/zh-cn/admin_cluster_menu.json b/pkg/langs/protos/zh-cn/node_cluster_menu.json similarity index 55% rename from pkg/langs/protos/zh-cn/admin_cluster_menu.json rename to pkg/langs/protos/zh-cn/node_cluster_menu.json index 12cc556..c83ccf2 100644 --- a/pkg/langs/protos/zh-cn/admin_cluster_menu.json +++ b/pkg/langs/protos/zh-cn/node_cluster_menu.json @@ -1,14 +1,14 @@ { - "setting_basic": "${lang.admin_common_menu_setting_basic}", - "setting_dns": "${lang.admin_common_menu_setting_dns}", - "setting_health_check": "${lang.admin_common_menu_setting_health_check}", + "setting_basic": "${lang.admin_common@menu_setting_basic}", + "setting_dns": "${lang.admin_common@menu_setting_dns}", + "setting_health_check": "${lang.admin_common@menu_setting_health_check}", "setting_service_global": "网站设置", - "setting_cache_policy": "${lang.admin_common_menu_setting_cache_policy}", - "setting_waf_policy": "${lang.admin_common_menu_setting_waf_policy}", + "setting_cache_policy": "${lang.admin_common@menu_setting_cache_policy}", + "setting_waf_policy": "${lang.admin_common@menu_setting_waf_policy}", "setting_waf_actions": "WAF动作", - "setting_webp": "${lang.admin_common_menu_setting_webp}", - "setting_metrics": "${lang.admin_common_menu_setting_metrics}", - "setting_ddos_protection": "${lang.admin_common_menu_setting_ddos_protection}", + "setting_webp": "${lang.admin_common@menu_setting_webp}", + "setting_metrics": "${lang.admin_common@menu_setting_metrics}", + "setting_ddos_protection": "${lang.admin_common@menu_setting_ddos_protection}", "setting_uam": "5秒盾", "setting_cc": "CC防护", "setting_pages": "自定义页面", diff --git a/pkg/langs/protos/zh-cn/node_dns.json b/pkg/langs/protos/zh-cn/node_dns.json new file mode 100644 index 0000000..e14c8b8 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_dns.json @@ -0,0 +1,3 @@ +{ + "log_update_node_dns": "修改节点 %d DNS设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_grant.json b/pkg/langs/protos/zh-cn/node_grant.json new file mode 100644 index 0000000..0fe340b --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_grant.json @@ -0,0 +1,8 @@ +{ + "method_user_password": "用户名+密码", + "method_private_key": "私钥", + + "log_create_ssh_grant": "创建SSH认证 %d", + "log_delete_ssh_grant": "删除SSH认证 %d", + "log_update_ssh_grant": "修改SSH认证 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_group.json b/pkg/langs/protos/zh-cn/node_group.json new file mode 100644 index 0000000..4d28899 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_group.json @@ -0,0 +1,6 @@ +{ + "log_create_node_group": "创建节点分组 %d", + "log_delete_node_group": "删除节点分组 %d", + "log_sort_node_groups": "修改节点分组排序", + "log_update_node_group": "修改节点分组 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_ip_address.json b/pkg/langs/protos/zh-cn/node_ip_address.json new file mode 100644 index 0000000..98552aa --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_ip_address.json @@ -0,0 +1,6 @@ +{ + "log_delete_node_ip_address": "删除IP地址 %d", + "log_restore_node_ip_address": "取消IP地址 %d 的备用IP", + "log_up_node_ip_address": "手动设置IP地址 %d 上线", + "log_down_node_ip_address": "手动设置IP地址 %d 下线" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_log.json b/pkg/langs/protos/zh-cn/node_log.json new file mode 100644 index 0000000..85ac2cf --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_log.json @@ -0,0 +1,5 @@ +{ + "log_delete_node_logs_batch": "批量删除节点运行日志", + "log_fix_node_logs": "设置日志 %s 为已修复", + "log_fix_all_logs": "设置所有日志为已修复" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_node_menu.json b/pkg/langs/protos/zh-cn/node_menu.json similarity index 65% rename from pkg/langs/protos/zh-cn/admin_node_menu.json rename to pkg/langs/protos/zh-cn/node_menu.json index 3d41693..e62ba4b 100644 --- a/pkg/langs/protos/zh-cn/admin_node_menu.json +++ b/pkg/langs/protos/zh-cn/node_menu.json @@ -6,10 +6,10 @@ "install_remote": "远程安装(%d)", // 参数:节点数量 "install_remote_upgrade": "远程升级(%d)", // 参数:节点数量, - "setting_basic": "${lang.admin_common_menu_setting_basic}", - "setting_dns": "${lang.admin_common_menu_setting_dns}", - "setting_cache": "${lang.admin_common_menu_setting_cache}", - "setting_ddos_protection": "${lang.admin_common_menu_setting_ddos_protection}", + "setting_basic": "${lang.admin_common@menu_setting_basic}", + "setting_dns": "${lang.admin_common@menu_setting_dns}", + "setting_cache": "${lang.admin_common@menu_setting_cache}", + "setting_ddos_protection": "${lang.admin_common@menu_setting_ddos_protection}", "setting_ssh": "SSH设置", "setting_system": "系统设置", diff --git a/pkg/langs/protos/zh-cn/node_price_item.json b/pkg/langs/protos/zh-cn/node_price_item.json new file mode 100644 index 0000000..e317de4 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_price_item.json @@ -0,0 +1,7 @@ +{ + "log_create_node_price_item_bandwidth": "创建带宽价格项目 %d", + "log_create_node_price_item_traffic": "创建流量价格项目 %d", + "log_delete_node_price_item": "删除流量价格项目 %d", + "log_update_node_price_item_bandwidth": "修改带宽价格项目 %d", + "log_update_node_price_item_traffic": "修改流量价格项目 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_region.json b/pkg/langs/protos/zh-cn/node_region.json new file mode 100644 index 0000000..5d1e8b8 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_region.json @@ -0,0 +1,7 @@ +{ + "log_create_node_region": "创建节点区域 %d", + "log_delete_node_region": "删除节点区域 %d", + "log_sort_node_regions": "修改节点区域排序", + "log_move_node_between_regions": "修改节点 %d 区域到 %d", + "log_update_node_region": "修改节点区域 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_region_price.json b/pkg/langs/protos/zh-cn/node_region_price.json new file mode 100644 index 0000000..bf13b7f --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_region_price.json @@ -0,0 +1,3 @@ +{ + "log_update_node_region_price": "修改区域 %d - 价格项 %d 的价格" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_schedule.json b/pkg/langs/protos/zh-cn/node_schedule.json new file mode 100644 index 0000000..a7cee49 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_schedule.json @@ -0,0 +1,4 @@ +{ + "log_update_node_schedule_basic": "修改节点调度基本信息", + "log_reset_node_action_status": "重置节点 %d 动作状态" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_ssh.json b/pkg/langs/protos/zh-cn/node_ssh.json new file mode 100644 index 0000000..2bd50b6 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_ssh.json @@ -0,0 +1,3 @@ +{ + "log_update_node_ssh": "修改节点 %d SSH配置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_system.json b/pkg/langs/protos/zh-cn/node_system.json new file mode 100644 index 0000000..0a7ae91 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_system.json @@ -0,0 +1,3 @@ +{ + "log_update_node_system_settings": "修改节点 %d 系统信息" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_systemd.json b/pkg/langs/protos/zh-cn/node_systemd.json new file mode 100644 index 0000000..738e18c --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_systemd.json @@ -0,0 +1,3 @@ +{ + "log_update_cluster_systemd_settings": "修改集群 %d 的系统服务设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_task.json b/pkg/langs/protos/zh-cn/node_task.json new file mode 100644 index 0000000..3e65e3f --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_task.json @@ -0,0 +1,4 @@ +{ + "log_delete_node_task": "删除同步任务 %d", + "log_delete_node_tasks_batch": "批量删除节点同步任务" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_threshold.json b/pkg/langs/protos/zh-cn/node_threshold.json new file mode 100644 index 0000000..0c368b1 --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_threshold.json @@ -0,0 +1,5 @@ +{ + "log_create_node_threshold": "创建节点阈值 %d", + "log_delete_node_threshold": "删除阈值 %d", + "log_update_node_threshold": "修改节点阈值 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/node_toa.json b/pkg/langs/protos/zh-cn/node_toa.json new file mode 100644 index 0000000..0633fdd --- /dev/null +++ b/pkg/langs/protos/zh-cn/node_toa.json @@ -0,0 +1,3 @@ +{ + "log_update_cluster_toa": "修改集群 %d 的TOA设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns.json b/pkg/langs/protos/zh-cn/ns.json new file mode 100644 index 0000000..de90f23 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns.json @@ -0,0 +1,15 @@ +{ + "setting_user": "用户设置", + "setting_access_logs": "访问日志设置", + + "log_create_ns_records_batch": "批量添加解析", + "log_delete_ns_domains_batch": "批量删除NS域名,用户 %d", + "log_delete_ns_records_batch": "批量删除NS域名记录", + "log_enable_ns_records_batch": "批量启用NS域名记录", + "log_disable_ns_records_batch": "批量停用NS域名记录", + "log_import_records_batch": "批量导入记录", + "log_create_ns_domains_batch": "批量添加域名", + "log_update_ns_records_batch": "批量修改NS域名记录", + + "log_update_ns_user_config": "修改NS全局设置--用户相关设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_cluster.json b/pkg/langs/protos/zh-cn/ns_cluster.json new file mode 100644 index 0000000..9b0f9a5 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_cluster.json @@ -0,0 +1,29 @@ +{ + "tab_nodes": "节点列表", + "tab_setting": "集群设置", + "tab_delete": "删除集群", + + "menu_basic": "基础设置", + "menu_udp": "UDP", + "menu_tcp": "TCP", + "menu_tls": "TLS", + "menu_doh": "DoH", + "menu_access_logs": "访问日志", + "menu_answer_setting": "应答模式", + "menu_soa": "SOA", + "menu_dns_recursion": "递归DNS", + "menu_ddos_protection": "DDoS防护", + + "log_delete_ns_cluster": "删除域名服务集群 %d", + "log_create_ns_cluster": "创建域名服务集群 %d", + "log_update_ns_cluster_settings_basic": "修改域名服务集群基本信息 %d", + "log_update_ns_cluster_settings_access_log": "修改域名服务集群 %d 访问日志配置", + "log_update_ns_cluster_settings_answer": "修改NS集群 %d 应答模式设置", + "log_update_ns_cluster_settings_ddos_protection": "修改NS集群 %d 的DDOS防护设置", + "log_update_ns_cluster_settings_doh": "修改NS集群 %d DoH设置", + "log_update_ns_cluster_settings_recursion": "修改DNS集群 %d 的递归DNS设置", + "log_update_ns_cluster_settings_soa": "修改NS集群 %d SOA配置", + "log_update_ns_cluster_settings_tcp": "修理NS集群 %d TCP设置", + "log_update_ns_cluster_settings_tls": "修改NS集群 %d TLS设置", + "log_update_ns_cluster_settings_udp": "修改NS集群 %d UDP设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_domain.json b/pkg/langs/protos/zh-cn/ns_domain.json new file mode 100644 index 0000000..9b1e33d --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_domain.json @@ -0,0 +1,10 @@ +{ + "log_update_ns_domain_status": "修改域名 %d 状态为 %s", + "log_create_ns_domains_batch": "批量添加域名", + "log_create_ns_domain": "创建域名 %d", + "log_delete_ns_domain": "删除域名 %d", + "log_update_ns_domain": "修改域名 %d", + + "log_update_ns_domain_health_check": "修改域名 %d 健康检查设置", + "log_update_ns_domain_tsig": "修改域名 %d 的TSIG配置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_domain_group.json b/pkg/langs/protos/zh-cn/ns_domain_group.json new file mode 100644 index 0000000..ebf8d80 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_domain_group.json @@ -0,0 +1,5 @@ +{ + "log_create_ns_domain_group": "创建NS域名分组 %d", + "log_delete_ns_domain_group": "删除NS域名分组 %d", + "log_update_ns_domain_group": "修改NS域名分组 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_key.json b/pkg/langs/protos/zh-cn/ns_key.json new file mode 100644 index 0000000..a3180f2 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_key.json @@ -0,0 +1,5 @@ +{ + "log_create_ns_key": "创建DNS密钥 %d", + "log_delete_ns_key": "删除DNS密钥 %d", + "log_update_ns_key": "修改DNS密钥 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_node.json b/pkg/langs/protos/zh-cn/ns_node.json new file mode 100644 index 0000000..0377a81 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_node.json @@ -0,0 +1,9 @@ +{ + "log_start_ns_node_remotely": "远程启动节点 %d", + "log_stop_ns_node_remotely": "远程停止节点 %d", + "log_update_ns_node": "修改节点 %d", + "log_update_ns_node_installation_status": "修改节点安装状态 %d", + "log_create_ns_node": "创建域名服务节点 %d", + "log_install_ns_node_remotely": "安装节点 %d", + "log_delete_ns_node": "删除域名服务节点 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_node_ssh.json b/pkg/langs/protos/zh-cn/ns_node_ssh.json new file mode 100644 index 0000000..b2d82a8 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_node_ssh.json @@ -0,0 +1,3 @@ +{ + "log_update_ns_node_ssh": "修改节点 %d SSH配置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_plan.json b/pkg/langs/protos/zh-cn/ns_plan.json new file mode 100644 index 0000000..988a5f0 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_plan.json @@ -0,0 +1,6 @@ +{ + "log_update_ns_plan": "修改套餐 %d", + "log_create_ns_plan": "创建套餐 %d", + "log_delete_ns_plan": "删除套餐 %d", + "log_sort_ns_plans": "套餐排序" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_record.json b/pkg/langs/protos/zh-cn/ns_record.json new file mode 100644 index 0000000..d5c6131 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_record.json @@ -0,0 +1,8 @@ +{ + "log_create_ns_records_batch": "批量创建NS域名记录", + "log_create_ns_record": "创建NS域名记录 %d", + "log_delete_ns_record": "删除域名记录 %d", + "log_update_ns_record_health_check": "修改记录 %d 的健康检查", + "log_update_ns_record": "修改域名记录 %d", + "log_up_ns_record": "手动设置DNS记录 %d 为上线状态" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_route.json b/pkg/langs/protos/zh-cn/ns_route.json new file mode 100644 index 0000000..beb5245 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_route.json @@ -0,0 +1,6 @@ +{ + "log_create_ns_route": "创建域名服务线路 %d", + "log_delete_ns_route": "删除域名服务线路 %d", + "log_sort_ns_routes": "对线路进行排序", + "log_update_ns_route": "修改域名线路 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_route_category.json b/pkg/langs/protos/zh-cn/ns_route_category.json new file mode 100644 index 0000000..b33dd16 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_route_category.json @@ -0,0 +1,6 @@ +{ + "log_delete_ns_route_category": "删除NS线路分类 %d", + "log_update_ns_route_category": "修改NS线路分类 %d", + "log_create_ns_route_category": "创建NS线路分类 %d", + "log_sort_ns_route_categories": "对NS线路分类进行排序" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ns_user_plan.json b/pkg/langs/protos/zh-cn/ns_user_plan.json new file mode 100644 index 0000000..c0ddf99 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ns_user_plan.json @@ -0,0 +1,5 @@ +{ + "log_delete_ns_user_plan": "删除用户套餐 %d", + "log_create_ns_user_plan": "为用户 %d 创建DNS套餐 %d", + "log_update_ns_user_plan": "修改用户DNS套餐 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/order_method.json b/pkg/langs/protos/zh-cn/order_method.json new file mode 100644 index 0000000..4f3da4c --- /dev/null +++ b/pkg/langs/protos/zh-cn/order_method.json @@ -0,0 +1,5 @@ +{ + "log_create_order_method": "创建支付方式 %d", + "log_delete_order_method": "删除支付方式 %d", + "log_update_order_method": "修改支付方式 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/plan.json b/pkg/langs/protos/zh-cn/plan.json new file mode 100644 index 0000000..fe0c292 --- /dev/null +++ b/pkg/langs/protos/zh-cn/plan.json @@ -0,0 +1,6 @@ +{ + "log_delete_plan": "删除套餐 %d", + "log_update_plan": "修改套餐 %d", + "log_create_plan": "创建套餐 %d", + "log_sort_plans": "对套餐进行排序" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/region_city.json b/pkg/langs/protos/zh-cn/region_city.json new file mode 100644 index 0000000..77accfd --- /dev/null +++ b/pkg/langs/protos/zh-cn/region_city.json @@ -0,0 +1,4 @@ +{ + "log_update_region_city_custom": "定制城市 %d 信息", + "log_add_region_city_code": "添加城市/市 %d 别名 %s" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/region_country.json b/pkg/langs/protos/zh-cn/region_country.json new file mode 100644 index 0000000..aeaa393 --- /dev/null +++ b/pkg/langs/protos/zh-cn/region_country.json @@ -0,0 +1,4 @@ +{ + "log_update_region_country_custom": "定制国家/地区 %d 信息", + "log_add_region_country_code": "添加国家/地区 %d 别名 %s" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/region_provider.json b/pkg/langs/protos/zh-cn/region_provider.json new file mode 100644 index 0000000..805f740 --- /dev/null +++ b/pkg/langs/protos/zh-cn/region_provider.json @@ -0,0 +1,4 @@ +{ + "log_add_region_provider_code": "添加ISP服务商 %d 别名 %s", + "log_update_region_provider_custom": "定制ISP %d 信息" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/region_province.json b/pkg/langs/protos/zh-cn/region_province.json new file mode 100644 index 0000000..025bbcd --- /dev/null +++ b/pkg/langs/protos/zh-cn/region_province.json @@ -0,0 +1,4 @@ +{ + "log_add_region_province_code": "添加省份/州 %d 别名 %s", + "log_update_region_province_custom": "定制省份 %d 信息" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/region_town.json b/pkg/langs/protos/zh-cn/region_town.json new file mode 100644 index 0000000..f9ad241 --- /dev/null +++ b/pkg/langs/protos/zh-cn/region_town.json @@ -0,0 +1,4 @@ +{ + "log_add_region_town_code": "添加区/县 %d 别名 %s", + "log_update_region_town_custom": "定制县级 %d 信息" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/report_node.json b/pkg/langs/protos/zh-cn/report_node.json new file mode 100644 index 0000000..b1a9a04 --- /dev/null +++ b/pkg/langs/protos/zh-cn/report_node.json @@ -0,0 +1,5 @@ +{ + "log_create_report_node": "创建监控终端 %d", + "log_delete_report_node": "删除监控终端 %d", + "log_update_report_node": "修改监控终端 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/report_node_group.json b/pkg/langs/protos/zh-cn/report_node_group.json new file mode 100644 index 0000000..9654ce3 --- /dev/null +++ b/pkg/langs/protos/zh-cn/report_node_group.json @@ -0,0 +1,5 @@ +{ + "log_create_report_node_group": "创建监控节点分组 %d", + "log_delete_report_node_group": "删除监控节点分组 %d", + "log_update_report_node_group": "修改监控节点分组 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/reverse_proxy.json b/pkg/langs/protos/zh-cn/reverse_proxy.json new file mode 100644 index 0000000..3bb0fa9 --- /dev/null +++ b/pkg/langs/protos/zh-cn/reverse_proxy.json @@ -0,0 +1,3 @@ +{ + "log_update_reverse_proxy_scheduling": "修改反向代理 %d 负载均衡算法" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/script.json b/pkg/langs/protos/zh-cn/script.json new file mode 100644 index 0000000..671b34a --- /dev/null +++ b/pkg/langs/protos/zh-cn/script.json @@ -0,0 +1,6 @@ +{ + "log_create_script": "创建脚本 %d", + "log_delete_script": "删除脚本 %d", + "log_publish_scripts": "发布脚本库到边缘节点", + "log_update_script": "修改脚本 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server.json b/pkg/langs/protos/zh-cn/server.json new file mode 100644 index 0000000..11ace9c --- /dev/null +++ b/pkg/langs/protos/zh-cn/server.json @@ -0,0 +1,79 @@ +{ + "tab_dashboard": "看板", + "tab_stat": "统计", + "tab_access_logs": "日志", + "tab_settings": "设置", + "tab_delete": "删除", + + "menu_dashboard": "看板", + + "menu_accesslog_realtime": "实时", + "menu_accesslog_today": "今天", + "menu_accesslog_history": "历史", + + "menu_stat_traffic": "流量统计", + "menu_stat_regions": "地域分布", + "menu_stat_providers": "运营商", + "menu_stat_clients": "终端", + "menu_stat_waf": "WAF", + + "menu_setting_basic": "基本信息", + "menu_setting_dns": "DNS", + "menu_setting_domains": "域名", + "menu_setting_http": "HTTP", + "menu_setting_https": "HTTPS", + "menu_setting_origins": "源站", + "menu_setting_redirects": "URL跳转", + "menu_setting_locations": "路由规则", + "menu_setting_rewrite_rules": "重写规则", + "menu_setting_waf": "WAF", + "menu_setting_cache": "缓存", + "menu_setting_auth": "访问鉴权", + "menu_setting_referers": "防盗链", + "menu_setting_user_agents": "UA名单", + "menu_setting_charset": "字符编码", + "menu_setting_access_log": "访问日志", + "menu_setting_stat": "统计", + "menu_setting_compress": "内容压缩", + "menu_setting_pages": "自定义页面", + "menu_setting_http_headers": "HTTP Header", // TODO 中文应该改成"HTTP报头"? + "menu_setting_websocket": "Websocket", + "menu_setting_webp": "WebP", + "menu_setting_root": "静态分发", + "menu_setting_fastcgi": "Fastcgi", + "menu_setting_client_ip": "访客IP地址", + "menu_setting_request_limit": "请求限制", + "menu_setting_others": "其他设置", + "menu_setting_tcp": "TCP", + "menu_setting_tls": "TLS", + "menu_setting_unix": "Unix", + "menu_setting_udp": "UDP", + "menu_setting_delete": "删除", + "menu_setting_http_proxy": "HTTP代理", // 网站分组中使用 + "menu_setting_tcp_proxy": "TCP代理", // 网站分组中使用 + "menu_setting_udp_proxy": "UDP代理", // 网站分组中使用 + + "menu_setting_uam": "5秒盾", + "menu_setting_cc": "CC防护", + "menu_setting_traffic_limit": "流量限制", + "menu_setting_scripts": "边缘脚本", + + "copy_setting_current_group": "当前分组:%s", + "copy_setting_current_user": "当前用户:%s", + "copy_setting_current_cluster": "当前集群:%s", + "copy_setting_select_group": "选择分组", + "copy_setting_select_user": "选择用户", + "copy_setting_select_cluster": "选择集群", + "copy_setting_select_server": "选择网站", + + "server_names_log_update_server_names": "修改网站 %d 域名", + + "log_update_global_settings": "保存网站全局配置", + "log_create_server": "创建网站 %d", + "log_delete_server": "删除网站 %d", + "log_update_server_basic": "修改网站 %d 基本信息", + + "log_copy_server_configs": "从服务 %d 中同步配置 %s", + + "log_submit_auditing_server": "提交服务 %d 域名审核" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_access_log.json b/pkg/langs/protos/zh-cn/server_access_log.json new file mode 100644 index 0000000..e34cfcf --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_access_log.json @@ -0,0 +1,3 @@ +{ + "log_update_access_log_setting": "修改Web %d 的访问日志设置" // 参数 webId +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_auth.json b/pkg/langs/protos/zh-cn/server_auth.json new file mode 100644 index 0000000..15e7ead --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_auth.json @@ -0,0 +1,3 @@ +{ + "log_update_http_auth_settings": "修改Web %d 的鉴权设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_cache.json b/pkg/langs/protos/zh-cn/server_cache.json new file mode 100644 index 0000000..f338de9 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_cache.json @@ -0,0 +1,6 @@ +{ + "log_fetch_caches": "预热网站 %d 缓存", + "log_purge_caches": "删除网站 %d 缓存", + "log_update_cache_settings": "修改Web %d 的缓存设置", + "log_update_cluster_cache_policy": "设置集群 %d 的缓存策略为 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_cache_policy.json b/pkg/langs/protos/zh-cn/server_cache_policy.json new file mode 100644 index 0000000..f0445f3 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_cache_policy.json @@ -0,0 +1,11 @@ +{ + "log_clean_all": "清除缓存,缓存策略:%d", + "log_create_cache_policy": "创建缓存策略:%d", + "log_delete_cache_policy": "删除缓存策略:%d", + "log_fetch_caches": "预热缓存,缓存策略:%d", + "log_purge_caches": "删除缓存,缓存策略:%d", + "log_stat_caches": "统计缓存,缓存策略:%d", + "log_test_reading": "测试读取,缓存策略:%d", + "log_test_writing": "测试写入,缓存策略:%d", + "log_update_cache_policy": "修改缓存策略:%d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_cc.json b/pkg/langs/protos/zh-cn/server_cc.json new file mode 100644 index 0000000..82e1312 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_cc.json @@ -0,0 +1,4 @@ +{ + "log_update_cluster_http_cc_policy": "修改集群 %d 的HTTP CC策略设置", + "log_update_cc_settings": "修改Web %d CC防护配置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_charset.json b/pkg/langs/protos/zh-cn/server_charset.json new file mode 100644 index 0000000..83ecb61 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_charset.json @@ -0,0 +1,3 @@ +{ + "log_update_charset_setting": "修改Web %d 的字符集设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_common.json b/pkg/langs/protos/zh-cn/server_common.json new file mode 100644 index 0000000..3d1f3b5 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_common.json @@ -0,0 +1,3 @@ +{ + "log_update_common_settings": "修改服务Web %d 设置的其他设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_compression.json b/pkg/langs/protos/zh-cn/server_compression.json new file mode 100644 index 0000000..be1cf62 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_compression.json @@ -0,0 +1,3 @@ +{ + "log_update_compression_settings": "修改Web %d 的压缩设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_dns.json b/pkg/langs/protos/zh-cn/server_dns.json new file mode 100644 index 0000000..ffbb413 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_dns.json @@ -0,0 +1,5 @@ +{ + "log_update_dns_settings": "修改服务 %d 的DNS设置", + "log_regenerate_dns_name": "重新生成服务 %d 的CNAME", + "log_update_dns_name": "修改服务 %d CNAME为 %s" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_fastcgi.json b/pkg/langs/protos/zh-cn/server_fastcgi.json new file mode 100644 index 0000000..e8b7631 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_fastcgi.json @@ -0,0 +1,3 @@ +{ + "log_update_http_fastcgi": "修改Web %d 的Fastcgi设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_global_setting.json b/pkg/langs/protos/zh-cn/server_global_setting.json new file mode 100644 index 0000000..1741292 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_global_setting.json @@ -0,0 +1,3 @@ +{ + "log_update_cluster_global_server_config": "修改集群 %d 全局配置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_group.json b/pkg/langs/protos/zh-cn/server_group.json new file mode 100644 index 0000000..87ab584 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_group.json @@ -0,0 +1,6 @@ +{ + "log_delete_server_group": "删除网站分组 %d", + "log_update_server_group": "修改网站分组 %d", + "log_create_server_group": "创建网站分组 %d", + "log_sort_server_groups": "修改网站分组排序" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_http.json b/pkg/langs/protos/zh-cn/server_http.json new file mode 100644 index 0000000..19f3452 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_http.json @@ -0,0 +1,3 @@ +{ + "log_update_http_settings": "修改网站 %d 的HTTP设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_http3.json b/pkg/langs/protos/zh-cn/server_http3.json new file mode 100644 index 0000000..80174ca --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_http3.json @@ -0,0 +1,3 @@ +{ + "log_update_cluster_http3_policy": "修改集群 %d 的HTTP3策略设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_http_header.json b/pkg/langs/protos/zh-cn/server_http_header.json new file mode 100644 index 0000000..7a8a3db --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_http_header.json @@ -0,0 +1,10 @@ +{ + "log_create_deleting_header": "添加删除的Header HeaderPolicyId: %d, Name: %s", + "log_create_non_standard_header": "添加非标的Header HeaderPolicyId: %d, Name: %s", + "log_create_setting_header": "设置请求Header,HeaderPolicyId:%d, Name:%s, Value:%s", + "log_delete_header": "删除请求Header,HeaderPolicyId:%d, HeaderId:%d", + "log_delete_deleting_header": "删除需要删除的Header,HeaderPolicyId:%d, HeaderName:%s", + "log_delete_non_standard_header": "删除需要非标的Header,HeaderPolicyId:%d, HeaderName:%s", + "log_update_setting_header": "修改设置请求Header,HeaderPolicyId:%d, Name:%s, Value:%s", + "log_update_http_headers": "修改Web %d 的Header设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_https.json b/pkg/langs/protos/zh-cn/server_https.json new file mode 100644 index 0000000..309be56 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_https.json @@ -0,0 +1,3 @@ +{ + "log_update_https_settings": "修改网站 %d 的HTTPS设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_origin.json b/pkg/langs/protos/zh-cn/server_origin.json new file mode 100644 index 0000000..a36a6d7 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_origin.json @@ -0,0 +1,5 @@ +{ + "log_create_origin": "创建源站 %d", + "log_delete_origin": "删除源站 %d", + "log_update_origin": "修改源站 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_page.json b/pkg/langs/protos/zh-cn/server_page.json new file mode 100644 index 0000000..0a545e3 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_page.json @@ -0,0 +1,6 @@ +{ + "log_create_page": "创建自定义页面 %d", + "log_update_pages": "修改Web %d 的自定义页面设置", // 参数:webId + "log_update_page": "修改自定义页面 %d", + "log_update_cluster_pages": "修改集群 %d 自定义页面策略" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_redirect.json b/pkg/langs/protos/zh-cn/server_redirect.json new file mode 100644 index 0000000..7fbbac1 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_redirect.json @@ -0,0 +1,3 @@ +{ + "log_update_redirects": "修改Web %d 的跳转设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_referer.json b/pkg/langs/protos/zh-cn/server_referer.json new file mode 100644 index 0000000..057182d --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_referer.json @@ -0,0 +1,3 @@ +{ + "log_update_referers": "修改Web %d 防盗链设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_request_limit.json b/pkg/langs/protos/zh-cn/server_request_limit.json new file mode 100644 index 0000000..899e39d --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_request_limit.json @@ -0,0 +1,3 @@ +{ + "log_update_request_limit_settings": "修改Web %d 请求限制" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_reverse_proxy.json b/pkg/langs/protos/zh-cn/server_reverse_proxy.json new file mode 100644 index 0000000..c7b5314 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_reverse_proxy.json @@ -0,0 +1,5 @@ +{ + "log_update_server_group_reverse_proxy_settings": "修改分组 %d 的反向代理设置", + "log_update_location_reverse_proxy_settings": "修改路由规则 %d 的反向代理设置", + "log_update_server_reverse_proxy_settings": "修改代理服务 %d 的反向代理设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_root.json b/pkg/langs/protos/zh-cn/server_root.json new file mode 100644 index 0000000..dee49cd --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_root.json @@ -0,0 +1,3 @@ +{ + "log_update_root": "修改Web %d 静态分发设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_script.json b/pkg/langs/protos/zh-cn/server_script.json new file mode 100644 index 0000000..14a6f5e --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_script.json @@ -0,0 +1,3 @@ +{ + "log_update_scripts": "修改Web %d 边缘脚本" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_stat.json b/pkg/langs/protos/zh-cn/server_stat.json new file mode 100644 index 0000000..b44dbc1 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_stat.json @@ -0,0 +1,3 @@ +{ + "log_update_stat_settings": "修改Web %d 的统计设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_tcp.json b/pkg/langs/protos/zh-cn/server_tcp.json new file mode 100644 index 0000000..84a2362 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_tcp.json @@ -0,0 +1,3 @@ +{ + "log_update_tcp_settings": "修改网站 %d TCP设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_tls.json b/pkg/langs/protos/zh-cn/server_tls.json new file mode 100644 index 0000000..044988c --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_tls.json @@ -0,0 +1,3 @@ +{ + "log_update_tls_settings": "修改代理服务 %d TLS设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_traffic_limit.json b/pkg/langs/protos/zh-cn/server_traffic_limit.json new file mode 100644 index 0000000..5b94c01 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_traffic_limit.json @@ -0,0 +1,3 @@ +{ + "log_update_traffic_limit_settings": "修改网站 %d 流量限制" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_server_traffic_stat.json b/pkg/langs/protos/zh-cn/server_traffic_stat.json similarity index 100% rename from pkg/langs/protos/zh-cn/admin_server_traffic_stat.json rename to pkg/langs/protos/zh-cn/server_traffic_stat.json diff --git a/pkg/langs/protos/zh-cn/server_uam.json b/pkg/langs/protos/zh-cn/server_uam.json new file mode 100644 index 0000000..cfd9019 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_uam.json @@ -0,0 +1,5 @@ +{ + "log_update_cluster_uam_policy": "修改集群 %d 的UAM设置", + "log_update_uam_settings": "修改Web %d 全站防护模式", + "log_update_server_uam_settings": "修改网站 %d 全站防护模式" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_udp.json b/pkg/langs/protos/zh-cn/server_udp.json new file mode 100644 index 0000000..9a8912b --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_udp.json @@ -0,0 +1,3 @@ +{ + "log_update_udp_settings": "修改网站 %d UDP设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_user_agent.json b/pkg/langs/protos/zh-cn/server_user_agent.json new file mode 100644 index 0000000..1c1aa74 --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_user_agent.json @@ -0,0 +1,3 @@ +{ + "log_update_user_agents": "修改Web %d User-Agent设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_waf.json b/pkg/langs/protos/zh-cn/server_waf.json new file mode 100644 index 0000000..de9bd4f --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_waf.json @@ -0,0 +1,3 @@ +{ + "log_update_waf_settings": "修改Web %d 的WAF设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_webp.json b/pkg/langs/protos/zh-cn/server_webp.json new file mode 100644 index 0000000..a2c000d --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_webp.json @@ -0,0 +1,3 @@ +{ + "log_update_cluster_webp_policy": "修改集群 %d 的WebP设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/server_websocket.json b/pkg/langs/protos/zh-cn/server_websocket.json new file mode 100644 index 0000000..f6005bf --- /dev/null +++ b/pkg/langs/protos/zh-cn/server_websocket.json @@ -0,0 +1,3 @@ +{ + "log_update_websocket_settings": "修改Web %d 的Websocket设置" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ssl_cert.json b/pkg/langs/protos/zh-cn/ssl_cert.json new file mode 100644 index 0000000..98faf1f --- /dev/null +++ b/pkg/langs/protos/zh-cn/ssl_cert.json @@ -0,0 +1,17 @@ +{ + "menu_certs": "证书", + "menu_apply": "申请证书", + "menu_ocsp": "OCSP日志", + + "log_delete_ssl_cert": "删除SSL证书 %d", + "log_update_ssl_cert": "修改SSL证书 %d", + "log_upload_ssl_cert": "上传SSL证书 %d", + "log_upload_ssl_cert_batch": "批量上传证书", + "log_download_ssl_cert": "下载SSL证书 %d", + "log_download_ssl_cert_key": "下载SSL密钥 %d", + "log_download_ssl_cert_zip": "下载SSL证书压缩包 %d", + + "log_ocsp_ignore_ocsp_status": "忽略一组证书的OCSP状态", + "log_ocsp_reset_ocsp_status": "重置一组证书的OCSP状态", + "log_ocsp_reset_all_ocsp_status": "忽略所有证书的OCSP状态" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/ticket_category.json b/pkg/langs/protos/zh-cn/ticket_category.json new file mode 100644 index 0000000..44aafd0 --- /dev/null +++ b/pkg/langs/protos/zh-cn/ticket_category.json @@ -0,0 +1,5 @@ +{ + "log_create_ticket_category": "添加工单分类 %d", + "log_delete_ticket_category": "删除工单分类 %d", + "log_update_ticket_category": "修改分类 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/traffic_package.json b/pkg/langs/protos/zh-cn/traffic_package.json new file mode 100644 index 0000000..2756830 --- /dev/null +++ b/pkg/langs/protos/zh-cn/traffic_package.json @@ -0,0 +1,5 @@ +{ + "log_create_traffic_package": "创建流量包 %d", + "log_delete_traffic_package": "删除流量包 %d", + "log_update_traffic_package": "修改流量包 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/traffic_package_period.json b/pkg/langs/protos/zh-cn/traffic_package_period.json new file mode 100644 index 0000000..33dac0e --- /dev/null +++ b/pkg/langs/protos/zh-cn/traffic_package_period.json @@ -0,0 +1,5 @@ +{ + "log_create_traffic_package_period": "创建流量包有效期 %d", + "log_delete_traffic_package_period": "删除流量包有效期选项 %d", + "log_update_traffic_package_period": "修改流量包有效期选项 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/traffic_package_price.json b/pkg/langs/protos/zh-cn/traffic_package_price.json new file mode 100644 index 0000000..a6aa1ae --- /dev/null +++ b/pkg/langs/protos/zh-cn/traffic_package_price.json @@ -0,0 +1,3 @@ +{ + "log_update_traffic_package_price": "修改流量包 %d 区域 %d x 有效期 %d 的价格" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user.json b/pkg/langs/protos/zh-cn/user.json new file mode 100644 index 0000000..f1875ca --- /dev/null +++ b/pkg/langs/protos/zh-cn/user.json @@ -0,0 +1,9 @@ +{ + "log_update_user_email_settings": "修改用户邮件设置", + "log_update_user_global_settings": "修改用户设置", + "log_create_user": "创建用户 %d", + "log_delete_user": "删除用户 %d", + "log_update_user_features": "设置用户 %d 的功能列表", + "log_update_user": "修改用户 %d", + "log_verify_user": "审核用户:%d 结果:%s" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_access_key.json b/pkg/langs/protos/zh-cn/user_access_key.json new file mode 100644 index 0000000..453fea0 --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_access_key.json @@ -0,0 +1,5 @@ +{ + "log_update_user_access_key_is_on": "设置AccessKey %d 启用状态", + "log_create_user_access_key": "创建AccessKey %d", + "log_delete_user_access_key": "删除AccessKey %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_account.json b/pkg/langs/protos/zh-cn/user_account.json new file mode 100644 index 0000000..5fe40eb --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_account.json @@ -0,0 +1,3 @@ +{ + "log_update_user_account": "操作用户账户 %d: %s" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_ad_instance.json b/pkg/langs/protos/zh-cn/user_ad_instance.json new file mode 100644 index 0000000..2be9ddc --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_ad_instance.json @@ -0,0 +1,5 @@ +{ + "log_delete_user_ad_instance": "删除用户高防实例 %d", + "log_renew_user_ad_instance": "为用户高防实例 %d 续期", + "log_update_user_ad_instance_objects": "修改用户高防实例 %d 防护对象" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_bill.json b/pkg/langs/protos/zh-cn/user_bill.json new file mode 100644 index 0000000..1f677e9 --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_bill.json @@ -0,0 +1,3 @@ +{ + "log_pay_user_bill": "支付账单 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_identity.json b/pkg/langs/protos/zh-cn/user_identity.json new file mode 100644 index 0000000..f5fca4e --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_identity.json @@ -0,0 +1,5 @@ +{ + "log_reject_user_identity":"驳回用户 %d 的实名认证", + "log_reset_user_identity": "重置用户 %d 的实名认证", + "log_verify_user_identity": "通过用户 %d 的实名认证" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_node.json b/pkg/langs/protos/zh-cn/user_node.json new file mode 100644 index 0000000..b5f7f7a --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_node.json @@ -0,0 +1,5 @@ +{ + "log_create_user_node": "创建用户节点 %d", + "log_update_user_node": "修改用户节点 %d", + "log_delete_user_node": "删除用户节点 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_order.json b/pkg/langs/protos/zh-cn/user_order.json new file mode 100644 index 0000000..b3fab04 --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_order.json @@ -0,0 +1,3 @@ +{ + "log_finish_user_order": "设置订单 %s 为完成支付" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_plan.json b/pkg/langs/protos/zh-cn/user_plan.json new file mode 100644 index 0000000..8976d34 --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_plan.json @@ -0,0 +1,5 @@ +{ + "log_buy_user_plan": "为用户 %d 购买套餐 %d", + "log_delete_user_plan": "删除用户已购套餐 %d", + "log_renew_user_plan": "续费已购套餐 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_ticket_log.json b/pkg/langs/protos/zh-cn/user_ticket_log.json new file mode 100644 index 0000000..bb8a1fe --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_ticket_log.json @@ -0,0 +1,3 @@ +{ + "log_reply_ticket": "回复工单 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/user_traffic_package.json b/pkg/langs/protos/zh-cn/user_traffic_package.json new file mode 100644 index 0000000..2a817c2 --- /dev/null +++ b/pkg/langs/protos/zh-cn/user_traffic_package.json @@ -0,0 +1,4 @@ +{ + "log_create_user_traffic_package": "为用户 %d 创建流量包:%d,区域:%d,有效期:%d,数量:%d", + "log_delete_user_traffic_package": "删除用户流量包 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/waf.json b/pkg/langs/protos/zh-cn/waf.json new file mode 100644 index 0000000..e4822e5 --- /dev/null +++ b/pkg/langs/protos/zh-cn/waf.json @@ -0,0 +1,11 @@ +{ + "connector_and": "和(AND)", + "connector_and_description": "所有规则都满足才视为匹配", + "connector_or": "或(OR)", + "connector_or_description": "任一规则满足了就视为匹配", + + "log_update_forbidden_countries": "WAF策略 %d 设置禁止访问的国家和地区", + "log_update_forbidden_provinces": "WAF策略 %d 设置禁止访问的省份", + "log_delete_ip_from_waf_policy": "从WAF策略 %d 名单中删除IP %d", + "log_update_ip_from_waf_policy": "修改WAF策略 %d 名单中的IP %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/waf_action.json b/pkg/langs/protos/zh-cn/waf_action.json new file mode 100644 index 0000000..ccd4acb --- /dev/null +++ b/pkg/langs/protos/zh-cn/waf_action.json @@ -0,0 +1,5 @@ +{ + "log_create_waf_action": "创建集群 %d 的WAF动作", + "log_delete_waf_action": "删除WAF动作 %d", + "log_update_waf_action": "修改WAF动作 %d" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/waf_policy.json b/pkg/langs/protos/zh-cn/waf_policy.json new file mode 100644 index 0000000..6c7ca3f --- /dev/null +++ b/pkg/langs/protos/zh-cn/waf_policy.json @@ -0,0 +1,9 @@ +{ + "log_create_waf_policy": "创建WAF策略 %d", + "log_delete_waf_policy": "删除WAF策略 %d", + "log_update_waf_policy": "修改WAF策略 %d 基本信息", + "log_update_cluster_waf_policy": "设置集群 %d 的WAF策略为 %d", + "log_export_waf_policy": "导出WAF策略 %d", + "log_import_waf_policy": "从文件中导入规则到WAF策略 %d", + "log_upgrade_waf_policy": "升级WAF %d 内置规则" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/admin_api_node.json b/pkg/langs/protos/zh-cn/waf_rule.json similarity index 75% rename from pkg/langs/protos/zh-cn/admin_api_node.json rename to pkg/langs/protos/zh-cn/waf_rule.json index 7a73a41..0e0dcd2 100644 --- a/pkg/langs/protos/zh-cn/admin_api_node.json +++ b/pkg/langs/protos/zh-cn/waf_rule.json @@ -1,2 +1,3 @@ { + } \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/waf_rule_group.json b/pkg/langs/protos/zh-cn/waf_rule_group.json new file mode 100644 index 0000000..a8a95e3 --- /dev/null +++ b/pkg/langs/protos/zh-cn/waf_rule_group.json @@ -0,0 +1,7 @@ +{ + "log_create_rule_group": "创建规则分组 %d,名称:%s", + "log_delete_rule_group": "删除WAF策略 %d 的规则分组 %d", + "log_sort_rule_groups": "修改WAF策略 %d 中的规则分组中的排序", + "log_update_rule_group_is_on": "设置WAF规则分组 %d 开启状态", + "log_update_rule_group": "修改WAF规则分组 %d 基本信息" +} \ No newline at end of file diff --git a/pkg/langs/protos/zh-cn/waf_rule_set.json b/pkg/langs/protos/zh-cn/waf_rule_set.json new file mode 100644 index 0000000..f09a34b --- /dev/null +++ b/pkg/langs/protos/zh-cn/waf_rule_set.json @@ -0,0 +1,6 @@ +{ + "log_delete_rule_set":"删除WAF规则分组 %d 中的规则集 %d", + "log_sort_rule_sets": "修改WAF规则分组 %d 中的规则集排序", + "log_update_rule_set_is_on": "修改WAF规则集 %d 开启状态", + "log_update_rule_set": "修改WAF规则集 %d 基本信息" +} \ No newline at end of file diff --git a/pkg/langs/utils.go b/pkg/langs/utils.go index 41588d6..b12e29d 100644 --- a/pkg/langs/utils.go +++ b/pkg/langs/utils.go @@ -15,6 +15,10 @@ func Message(langCode LangCode, messageCode MessageCode, args ...any) string { return defaultManager.GetMessage(langCode, messageCode, args...) } +func DefaultMessage(messageCode MessageCode, args ...any) string { + return defaultManager.GetMessage("en-us", messageCode, args...) +} + func ParseLangFromRequest(req *http.Request) (langCode string) { // parse language from cookie const cookieName = "edgelang" @@ -56,13 +60,13 @@ func Format(langCode LangCode, varString string) string { if !strings.HasPrefix(varName, varPrefix) { return "${" + varName + "}" // keep origin variable } - return Message(langCode, varName[len(varPrefix):]) + return Message(langCode, MessageCode(varName[len(varPrefix):])) }) } // Load 加载消息定义 // Load message definitions from map -func Load(langCode LangCode, messageMap map[string]string) { +func Load(langCode LangCode, messageMap map[MessageCode]string) { lang, ok := defaultManager.GetLang(langCode) if !ok { lang = defaultManager.AddLang(langCode) diff --git a/pkg/rpc/dao/log_dao.go b/pkg/rpc/dao/log_dao.go index f337112..a9820f0 100644 --- a/pkg/rpc/dao/log_dao.go +++ b/pkg/rpc/dao/log_dao.go @@ -2,6 +2,8 @@ package dao import ( "context" + "encoding/json" + "github.com/TeaOSLab/EdgeCommon/pkg/langs" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" ) @@ -25,12 +27,23 @@ func (this *LogDAO) CreateUserLog(ctx context.Context, level string, action stri return err } -func (this *LogDAO) CreateAdminLog(ctx context.Context, level string, action string, description string, ip string) error { - _, err := this.RPC().LogRPC().CreateLog(ctx, &pb.CreateLogRequest{ - Level: level, - Description: description, - Action: action, - Ip: ip, +func (this *LogDAO) CreateAdminLog(ctx context.Context, level string, action string, description string, ip string, langMessageCode langs.MessageCode, langMessageArgs []any) error { + var langMessageArgsJSON []byte + var err error + if len(langMessageArgs) > 0 { + langMessageArgsJSON, err = json.Marshal(langMessageArgs) + if err != nil { + return err + } + } + + _, err = this.RPC().LogRPC().CreateLog(ctx, &pb.CreateLogRequest{ + Level: level, + Description: description, + Action: action, + Ip: ip, + LangMessageCode: langMessageCode.String(), + LangMessagesArgsJSON: langMessageArgsJSON, }) return err } diff --git a/pkg/rpc/pb/service_log.pb.go b/pkg/rpc/pb/service_log.pb.go index 503b8be..2622064 100644 --- a/pkg/rpc/pb/service_log.pb.go +++ b/pkg/rpc/pb/service_log.pb.go @@ -35,10 +35,12 @@ type CreateLogRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Level string `protobuf:"bytes,1,opt,name=level,proto3" json:"level,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` - Ip string `protobuf:"bytes,4,opt,name=ip,proto3" json:"ip,omitempty"` + Level string `protobuf:"bytes,1,opt,name=level,proto3" json:"level,omitempty"` // 级别:info, warn, error + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // 描述 + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` // 可选项,发生操作所在的页面URL + Ip string `protobuf:"bytes,4,opt,name=ip,proto3" json:"ip,omitempty"` // 可选项,操作用户IP + LangMessageCode string `protobuf:"bytes,5,opt,name=langMessageCode,proto3" json:"langMessageCode,omitempty"` // 多语言消息 + LangMessagesArgsJSON []byte `protobuf:"bytes,6,opt,name=langMessagesArgsJSON,proto3" json:"langMessagesArgsJSON,omitempty"` // 多语言消息中的参数项,格式:[arg1, arg2, ...] } func (x *CreateLogRequest) Reset() { @@ -101,6 +103,20 @@ func (x *CreateLogRequest) GetIp() string { return "" } +func (x *CreateLogRequest) GetLangMessageCode() string { + if x != nil { + return x.LangMessageCode + } + return "" +} + +func (x *CreateLogRequest) GetLangMessagesArgsJSON() []byte { + if x != nil { + return x.LangMessagesArgsJSON + } + return nil +} + type CreateLogResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -607,86 +623,92 @@ var file_service_log_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x72, 0x0a, 0x10, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x13, - 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, - 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, - 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, - 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x22, 0xb9, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, - 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, - 0x79, 0x54, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, - 0x2f, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x07, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, - 0x22, 0x33, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x50, 0x65, 0x72, - 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x22, 0x36, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, - 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x73, 0x22, 0x4d, 0x0a, - 0x1b, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, - 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x22, 0x14, 0x0a, 0x12, - 0x53, 0x75, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x2f, 0x0a, 0x0f, 0x53, 0x75, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x32, 0xce, 0x03, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x12, - 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, - 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, - 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, - 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, - 0x74, 0x6c, 0x79, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, - 0x6f, 0x67, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, - 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x12, 0x20, 0x2e, - 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, - 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, - 0x47, 0x0a, 0x14, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x65, - 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, - 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x75, 0x6d, 0x4c, - 0x6f, 0x67, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x6d, - 0x4c, 0x6f, 0x67, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x01, 0x0a, 0x10, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, + 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x6e, 0x67, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x61, 0x6e, + 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x41, 0x72, 0x67, 0x73, 0x4a, 0x53, 0x4f, + 0x4e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x6c, 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x41, 0x72, 0x67, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x13, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x22, 0xb9, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x79, + 0x54, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x2f, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x07, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x22, + 0x33, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, + 0x6f, 0x67, 0x49, 0x64, 0x22, 0x36, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, + 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x73, 0x22, 0x4d, 0x0a, 0x1b, + 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, + 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x22, 0x14, 0x0a, 0x12, 0x53, + 0x75, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x2f, 0x0a, 0x0f, 0x53, 0x75, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x32, 0xce, 0x03, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x14, + 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, + 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, + 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, + 0x6c, 0x79, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, + 0x67, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, + 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x12, 0x20, 0x2e, 0x70, + 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, + 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, + 0x0a, 0x14, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, + 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, + 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x75, 0x6d, 0x4c, 0x6f, + 0x67, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x6d, 0x4c, + 0x6f, 0x67, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, + 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/rpc/protos/service_log.proto b/pkg/rpc/protos/service_log.proto index d73bff9..9b38274 100644 --- a/pkg/rpc/protos/service_log.proto +++ b/pkg/rpc/protos/service_log.proto @@ -32,10 +32,12 @@ service LogService { // 创建日志 message CreateLogRequest { - string level = 1; - string description = 2; - string action = 3; - string ip = 4; + string level = 1; // 级别:info, warn, error + string description = 2; // 描述 + string action = 3; // 可选项,发生操作所在的页面URL + string ip = 4; // 可选项,操作用户IP + string langMessageCode = 5; // 多语言消息 + bytes langMessagesArgsJSON = 6; // 多语言消息中的参数项,格式:[arg1, arg2, ...] } message CreateLogResponse {