mirror of
https://github.com/jeessy2/ddns-go.git
synced 2025-10-20 15:33:46 +08:00
* fix(web): IPv4/6 cannot be enabled without domains Currently, if IPv4/6 is enabled but there is no domain, nothing happens. In this case, we should throw an error. * fix: replace errors with logs * fix: logging only if no domain is entered * feat: logging index
131 lines
10 KiB
Go
131 lines
10 KiB
Go
package util
|
|
|
|
import (
|
|
"log"
|
|
"strings"
|
|
|
|
"golang.org/x/text/language"
|
|
"golang.org/x/text/message"
|
|
)
|
|
|
|
var logPrinter = message.NewPrinter(language.English)
|
|
|
|
func init() {
|
|
|
|
message.SetString(language.English, "可使用 .\\ddns-go.exe -s install 安装服务运行", "You can use 'sudo .\\ddns-go -s install' to install service")
|
|
message.SetString(language.English, "可使用 sudo ./ddns-go -s install 安装服务运行", "You can use 'sudo ./ddns-go -s install' to install service")
|
|
message.SetString(language.English, "监听 %s", "Listen on %s")
|
|
message.SetString(language.English, "配置文件已保存在: %s", "Config file has been saved to: %s")
|
|
|
|
message.SetString(language.English, "你的IP %s 没有变化, 域名 %s", "Your's IP %s has not changed! Domain: %s")
|
|
message.SetString(language.English, "新增域名解析 %s 成功! IP: %s", "Added domain %s successfully! IP: %s")
|
|
message.SetString(language.English, "新增域名解析 %s 失败! 异常信息: %s", "Added domain %s failed! Result: %s")
|
|
|
|
message.SetString(language.English, "更新域名解析 %s 成功! IP: %s", "Updated domain %s successfully! IP: %s")
|
|
message.SetString(language.English, "更新域名解析 %s 失败! 异常信息: %s", "Updated domain %s failed! Result: %s")
|
|
|
|
message.SetString(language.English, "你的IPv4未变化, 未触发 %s 请求", "Your's IPv4 has not changed, %s request has not been triggered")
|
|
message.SetString(language.English, "你的IPv6未变化, 未触发 %s 请求", "Your's IPv6 has not changed, %s request has not been triggered")
|
|
message.SetString(language.English, "Namecheap 不支持更新 IPv6", "Namecheap don't supports IPv6")
|
|
|
|
// http_util
|
|
message.SetString(language.English, "异常信息: %s", "Exception: %s")
|
|
message.SetString(language.English, "查询域名信息发生异常! %s", "Query domain info failed! %s")
|
|
message.SetString(language.English, "返回内容: %s ,返回状态码: %d", "Response body: %s ,Response status code: %d")
|
|
message.SetString(language.English, "通过接口获取IPv4失败! 接口地址: %s", "Get IPv4 from %s failed")
|
|
message.SetString(language.English, "通过接口获取IPv6失败! 接口地址: %s", "Get IPv6 from %s failed")
|
|
message.SetString(language.English, "将不会触发Webhook, 仅在第 3 次失败时触发一次Webhook, 当前失败次数:%d", "Webhook will not be triggered, only trigger once when the third failure, current failure times: %d")
|
|
message.SetString(language.English, "在DNS服务商中未找到域名: %s", "Domain %s not found in DNS provider")
|
|
|
|
// webhook
|
|
message.SetString(language.English, "Webhook配置中的URL不正确", "Webhook url is incorrect")
|
|
message.SetString(language.English, "Webhook中的 RequestBody JSON 无效", "Webhook RequestBody JSON is invalid")
|
|
message.SetString(language.English, "Webhook调用成功! 返回数据:%s", "Webhook called successfully! Response body: %s")
|
|
message.SetString(language.English, "Webhook调用失败! 异常信息:%s", "Webhook called failed! Exception: %s")
|
|
message.SetString(language.English, "Webhook Header不正确: %s", "Webhook header is invalid: %s")
|
|
message.SetString(language.English, "请输入Webhook的URL", "Please enter the Webhook url")
|
|
|
|
// callback
|
|
message.SetString(language.English, "Callback的URL不正确", "Callback url is incorrect")
|
|
message.SetString(language.English, "Callback调用成功, 域名: %s, IP: %s, 返回数据: %s", "Webhook called successfully! Domain: %s, IP: %s, Response body: %s")
|
|
message.SetString(language.English, "Callback调用失败, 异常信息: %s", "Webhook called failed! Exception: %s")
|
|
|
|
// save
|
|
message.SetString(language.English, "若通过公网访问, 仅允许在ddns-go启动后 5 分钟内完成首次配置", "If accessed via the public network, only allow the first configuration to be completed within 5 minutes after ddns-go starts")
|
|
message.SetString(language.English, "若从未设置过帐号密码, 仅允许在ddns-go启动后 5 分钟内设置, 请重启ddns-go", "If you have never set an account password, you can only set it within 5 minutes after ddns-go starts, please restart ddns-go")
|
|
message.SetString(language.English, "启用外网访问, 必须输入登录用户名/密码", "Enable external network access, you must enter the login username/password")
|
|
message.SetString(language.English, "修改 '通过命令获取' 必须设置帐号密码,请先设置帐号密码", "Modify 'Get by command' must set username/password, please set username/password first")
|
|
message.SetString(language.English, "密码不安全!尝试使用更长的密码", "insecure password, try using a longer password")
|
|
message.SetString(language.English, "数据解析失败, 请刷新页面重试", "Data parsing failed, please refresh the page and try again")
|
|
message.SetString(language.English, "第 %s 个配置未填写域名", "The %s config does not fill in the domain")
|
|
|
|
// config
|
|
message.SetString(language.English, "从网卡获得IPv4失败", "Get IPv4 from network card failed")
|
|
message.SetString(language.English, "从网卡中获得IPv4失败! 网卡名: %s", "Get IPv4 from network card failed! Network card name: %s")
|
|
message.SetString(language.English, "获取IPv4结果失败! 接口: %s ,返回值: %s", "Get IPv4 result failed! Interface: %s ,Result: %s")
|
|
message.SetString(language.English, "获取%s结果失败! 未能成功执行命令:%s, 错误:%q, 退出状态码:%s", "Get %s result failed! Command: %s, Error: %q, Exit status code: %s")
|
|
message.SetString(language.English, "获取%s结果失败! 命令: %s, 标准输出: %q", "Get %s result failed! Command: %s, Stdout: %q")
|
|
message.SetString(language.English, "从网卡获得IPv6失败", "Get IPv6 from network card failed")
|
|
message.SetString(language.English, "从网卡中获得IPv6失败! 网卡名: %s", "Get IPv6 from network card failed! Network card name: %s")
|
|
message.SetString(language.English, "获取IPv6结果失败! 接口: %s ,返回值: %s", "Get IPv6 result failed! Interface: %s ,Result: %s")
|
|
message.SetString(language.English, "未找到第 %d 个IPv6地址! 将使用第一个IPv6地址", "%dth IPv6 address not found! Will use the first IPv6 address")
|
|
message.SetString(language.English, "IPv6匹配表达式 %s 不正确! 最小从1开始", "IPv6 match expression %s is incorrect! Minimum start from 1")
|
|
message.SetString(language.English, "IPv6将使用正则表达式 %s 进行匹配", "IPv6 will use regular expression %s for matching")
|
|
message.SetString(language.English, "匹配成功! 匹配到地址: %s", "Match successfully! Matched address: %s")
|
|
message.SetString(language.English, "没有匹配到任何一个IPv6地址, 将使用第一个地址", "No IPv6 address matched, will use the first address")
|
|
message.SetString(language.English, "未能获取IPv4地址, 将不会更新", "Failed to get IPv4 address, will not update")
|
|
message.SetString(language.English, "未能获取IPv6地址, 将不会更新", "Failed to get IPv6 address, will not update")
|
|
|
|
// domains
|
|
message.SetString(language.English, "域名: %s 不正确", "The domain %s is incorrect")
|
|
message.SetString(language.English, "域名: %s 解析失败", "The domain %s resolution failed")
|
|
message.SetString(language.English, "IPv6未改变, 将等待 %d 次后与DNS服务商进行比对", "IPv6 has not changed, will wait %d times to compare with DNS provider")
|
|
message.SetString(language.English, "IPv4未改变, 将等待 %d 次后与DNS服务商进行比对", "IPv4 has not changed, will wait %d times to compare with DNS provider")
|
|
|
|
message.SetString(language.English, "本机DNS异常! 将默认使用 %s, 可参考文档通过 -dns 自定义 DNS 服务器", "Local DNS exception! Will use %s by default, you can use -dns to customize DNS server")
|
|
message.SetString(language.English, "等待网络连接: %s", "Waiting for network connection: %s")
|
|
message.SetString(language.English, "%s 后重试...", "Retry after %s")
|
|
|
|
// main
|
|
message.SetString(language.English, "监听端口发生异常, 请检查端口是否被占用! %s", "Listen port failed, please check if the port is occupied! %s")
|
|
message.SetString(language.English, "Docker中运行, 请在浏览器中打开 http://docker主机IP:9876 进行配置", "Running in Docker, please open http://docker-host-ip:9876 in the browser for configuration")
|
|
message.SetString(language.English, "ddns-go 服务卸载成功", "ddns-go service uninstalled successfully")
|
|
message.SetString(language.English, "ddns-go 服务卸载失败, 异常信息: %s", "ddns-go service uninstalled failed, Exception: %s")
|
|
message.SetString(language.English, "安装 ddns-go 服务成功! 请打开浏览器并进行配置", "Install ddns-go service successfully! Please open the browser and configure it")
|
|
message.SetString(language.English, "安装 ddns-go 服务失败, 异常信息: %s", "Install ddns-go service failed, Exception: %s")
|
|
message.SetString(language.English, "ddns-go 服务已安装, 无需再次安装", "ddns-go service has been installed, no need to install again")
|
|
message.SetString(language.English, "重启 ddns-go 服务成功", "restart ddns-go service successfully")
|
|
message.SetString(language.English, "启动 ddns-go 服务成功", "start ddns-go service successfully")
|
|
message.SetString(language.English, "ddns-go 服务未安装, 请先安装服务", "ddns-go service is not installed, please install the service first")
|
|
|
|
// login
|
|
message.SetString(language.English, "%q 配置文件为空, 超过3小时禁止从公网访问", "%q configuration file is empty, public network access is prohibited for more than 3 hours")
|
|
message.SetString(language.English, "%q 被禁止从公网访问", "%q is prohibited from accessing the public network")
|
|
message.SetString(language.English, "%q 登陆失败超过5次! 并延时5分钟响应", "%q login failed more than 5 times! And delay 5 minutes to respond")
|
|
message.SetString(language.English, "%q 帐号密码不正确", "%q username or password is incorrect")
|
|
message.SetString(language.English, "%q 请求登陆", "%q request login")
|
|
|
|
// webhook通知
|
|
message.SetString(language.English, "未改变", "no changed")
|
|
message.SetString(language.English, "失败", "failed")
|
|
message.SetString(language.English, "成功", "success")
|
|
|
|
}
|
|
|
|
func Log(key string, args ...interface{}) {
|
|
log.Println(LogStr(key, args...))
|
|
}
|
|
|
|
func LogStr(key string, args ...interface{}) string {
|
|
return logPrinter.Sprintf(key, args...)
|
|
}
|
|
|
|
func InitLogLang(lang string) string {
|
|
logLang := language.English
|
|
if strings.HasPrefix(lang, "zh") {
|
|
logLang = language.Chinese
|
|
}
|
|
logPrinter = message.NewPrinter(logLang)
|
|
return logLang.String()
|
|
}
|