diff --git a/app/components/AppFooter.vue b/app/components/AppFooter.vue index 58fe4e41..5b0ba18f 100644 --- a/app/components/AppFooter.vue +++ b/app/components/AppFooter.vue @@ -1,32 +1,46 @@ diff --git a/app/pages/activate.vue b/app/pages/activate.vue index fd984a7e..553e040b 100644 --- a/app/pages/activate.vue +++ b/app/pages/activate.vue @@ -24,6 +24,13 @@ function handleMenuClick(key: string) { navigateTo(localePath(`/activate/${key}`)) drawerVisible.value = false } + +const rainyunAdUrlBase64 = + 'aHR0cHM6Ly93d3cucmFpbnl1bi5jb20vbW1fP3M9a21zLXRvb2xz' + +function handleRainyunAdClick() { + window.open(atob(rainyunAdUrlBase64), '_blank', 'noopener,noreferrer') +} diff --git a/app/pages/index.vue b/app/pages/index.vue index a9101bea..060b027f 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -19,6 +19,10 @@ const features = computed(() => [ link: '/monitor' } ]) + +function openBase64Url(urlBase64: string) { + window.open(atob(urlBase64), '_blank', 'noopener,noreferrer') +} diff --git a/i18n/locales/en.json b/i18n/locales/en.json index 0acc5625..87177d8d 100644 --- a/i18n/locales/en.json +++ b/i18n/locales/en.json @@ -25,6 +25,11 @@ "title": "Real-time Monitoring", "description": "Continuously monitor KMS server status with visual charts for success rate and latency" } + }, + "sponsors": { + "title": "Sponsors", + "subtitle": "Thanks to our partners for supporting KMS Tools", + "visit": "Visit Website" } }, "pages": { @@ -36,7 +41,48 @@ } }, "check": { - "title": "Check KMS Server" + "title": "Check KMS Server", + "result": { + "passed-title": "KMS Check Passed", + "passed-desc": "The server responded with a valid activation payload.", + "failed-title": "KMS Check Failed", + "failed-desc": "The server did not return a valid activation response.", + "default-title": "KMS Check Result", + "default-desc": "Request completed.", + "errors-title": "Connection / Runtime Errors", + "connection-title": "Connection Status", + "request-title": "Request Parameters", + "response-title": "Response from KMS Server", + "rpc-title": "RPC Timeline", + "raw-title": "Raw Output", + "request-empty": "No structured request parameters detected.", + "response-empty": "No response payload found. This usually means connection timeout or bind failure.", + "unknown-request-error": "Unknown request error", + "request-params": { + "protocol-version": "Protocol Version", + "client-is-vm": "Client Is a Virtual Machine", + "licensing-status": "Licensing Status", + "remaining-time": "Remaining Time (0 = Forever)", + "application-id": "Application ID", + "sku-id": "SKU ID (aka Activation ID)", + "kms-id": "KMS ID (aka KMS Counted ID)", + "client-machine-id": "Client Machine ID", + "previous-client-machine-id": "Previous Client Machine ID", + "client-request-timestamp-utc": "Client Request Timestamp (UTC)", + "workstation-name": "Workstation Name", + "n-count-policy": "N Count Policy (Minimum Clients)" + }, + "response-params": { + "kms-response-size": "Size of KMS Response", + "kms-epid": "KMS ePID", + "kms-hwid": "KMS HwId", + "client-machine-id": "Client Machine ID", + "client-request-timestamp-utc": "Client Request Timestamp (UTC)", + "kms-host-current-active-clients": "KMS Host Current Active Clients", + "renewal-interval-policy": "Renewal Interval Policy", + "activation-interval-policy": "Activation Interval Policy" + } + } }, "monitor": { "title": "Monitor KMS Server" @@ -68,6 +114,9 @@ "submit": "Submit", "delay": "Delay" }, + "footer": { + "description": "Lightweight online utilities for activation workflows, KMS diagnostics and service monitoring." + }, "title": { "kms-check": "KMS Server Check", "tips": "Tips" diff --git a/i18n/locales/zh-cn.json b/i18n/locales/zh-cn.json index a2212fe8..2a798ea2 100644 --- a/i18n/locales/zh-cn.json +++ b/i18n/locales/zh-cn.json @@ -25,6 +25,11 @@ "title": "实时监控", "description": "持续监控 KMS 服务器运行状态,可视化展示成功率与延迟数据" } + }, + "sponsors": { + "title": "赞助商", + "subtitle": "感谢以下伙伴对 KMS Tools 的支持", + "visit": "访问官网" } }, "pages": { @@ -36,7 +41,48 @@ } }, "check": { - "title": "检测 KMS 服务器" + "title": "检测 KMS 服务器", + "result": { + "passed-title": "KMS 检测通过", + "passed-desc": "服务器返回了有效的激活响应。", + "failed-title": "KMS 检测失败", + "failed-desc": "服务器未返回有效的激活响应。", + "default-title": "KMS 检测结果", + "default-desc": "请求已完成。", + "errors-title": "连接 / 运行时错误", + "connection-title": "连接状态", + "request-title": "请求参数", + "response-title": "KMS 服务器响应", + "rpc-title": "RPC 时间线", + "raw-title": "原始输出", + "request-empty": "未检测到可结构化的请求参数。", + "response-empty": "未找到响应载荷,这通常表示连接超时或绑定失败。", + "unknown-request-error": "未知请求错误", + "request-params": { + "protocol-version": "协议版本", + "client-is-vm": "客户端是否为虚拟机", + "licensing-status": "许可状态", + "remaining-time": "剩余时间(0 表示永久)", + "application-id": "应用程序 ID", + "sku-id": "SKU ID(即激活 ID)", + "kms-id": "KMS ID(即 KMS 计数 ID)", + "client-machine-id": "客户端机器 ID", + "previous-client-machine-id": "上一个客户端机器 ID", + "client-request-timestamp-utc": "客户端请求时间戳(UTC)", + "workstation-name": "工作站名称", + "n-count-policy": "N 计数策略(最小客户端数)" + }, + "response-params": { + "kms-response-size": "KMS 响应大小", + "kms-epid": "KMS ePID", + "kms-hwid": "KMS 硬件 ID", + "client-machine-id": "客户端机器 ID", + "client-request-timestamp-utc": "客户端请求时间戳(UTC)", + "kms-host-current-active-clients": "KMS 主机当前活跃客户端数", + "renewal-interval-policy": "续期周期策略", + "activation-interval-policy": "激活周期策略" + } + } }, "monitor": { "title": "监控 KMS 服务器" @@ -68,6 +114,9 @@ "submit": "提交", "delay": "延迟" }, + "footer": { + "description": "简洁稳定的 KMS 在线工具,覆盖激活、检测与监控场景,提供一致、可靠的操作体验。" + }, "title": { "kms-check": "KMS 服务器检测", "tips": "提示" diff --git a/nuxt.config.ts b/nuxt.config.ts index 6724d586..c92712b5 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -40,7 +40,7 @@ export default defineNuxtConfig({ }, vite: { optimizeDeps: { - include: ['@vue/devtools-core', '@vue/devtools-kit'] + include: ['@vue/devtools-core', '@vue/devtools-kit', 'vue-echarts'] } }, runtimeConfig: { diff --git a/public/images/rainyun_1.png b/public/images/rainyun_1.png new file mode 100644 index 00000000..b7b84483 Binary files /dev/null and b/public/images/rainyun_1.png differ diff --git a/public/images/rainyun_2.png b/public/images/rainyun_2.png new file mode 100644 index 00000000..e94e5a0f Binary files /dev/null and b/public/images/rainyun_2.png differ