您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
汉化界面的部分菜单及内容
// ==UserScript== // @name eu.org汉化 // @namespace Violentmonkey Scripts // @match https://nic.eu.org/* // @grant none // @version 1.0 // @license MIT // @author - // @description 汉化界面的部分菜单及内容 // @namespace https://t.me/KingRan_qun // ==/UserScript== (function() { 'use strict'; const i18n = new Map([ ['Filter', '过滤器'], ['Domains', '域名'], ['Two-Factor Authentication', '双因素认证'], ['Information ', '信息 '], ['New Domain', '新域名'], ['Domain', '域名'], ['Created', '已创建'], ['Updated', '更新'], ['DNSSEC', '域名安全协议'], ['Flags', '标志'], ['Eligible', '合格的'], ['Password Change', '密码更改'], ['Current Password:', '当前密码:'], ['New Password:', '新密码:'], ['Confirm Password:', '确认密码:'], ['Contact handle: ', '联系处理: '], ['Contact Information', '联系信息'], ['Name', '联系人姓名'], ['E-mail', '电子邮件'], ['Country', '国家'], ['Phone', '电话'], ['Fax', '传真'], ['Private', '私有'], ['not shown in the public Whois', '不显示在公共Whois中'], ['Two-factor Authentication is set', '双因素认证已设置'], ['Enter code to deactivate', '输入代码以停用'], ['You currently have 10 recovery codes remaining. ', '您目前还有10个恢复代码。'], ['You can regenerate new codes, cancelling the current ones', '您可以重新生成新的代码,取消当前的代码'], ['New domain request', '新域名申请'], ['Requesting domain from EU.org implies that you accept the', '向EU.org申请域名,意味着你接受了'], ['domain policy', '域名政策'], ['Complete domain name', '完整的域名'], ['full domain name, including the enclosing domain. See the', '完整的域名,包括包围的域名。见'], ['Organization', '组织机构'], ['Administrative contact', '行政联系人'], ['The person in charge of administrative matters regarding the domain', '负责有关该域名的行政事务的人'], ['It is set to your handle', '它被设置为你的手柄'], ['You can change this later in the domain contact interface', '你可以在以后的域名联系人界面中改变这一点'], ['Technical contact', '技术联系人'], ['The person in charge of technical matters regarding the domain', '负责该域名技术事务的人'], ['An existing handle; see', '一个现有的手柄;见'], ['to create one', '来创建一个'], ['Check for correctness of', '检查以下内容是否正确'], ['server names', '服务器名称'], ['replies on SOA', '检查SOA授权机构起始记录'], ['replies on NS', '检查NS域名服务器记录'], ['recommended', '建议'], ['Fill', '填写 '], ['with the fully qualified domain names', '填上完全合格的域名'], ['If necessary', '如有必要'], ['with the IPv4 or IPv6 addresses', '用IPv4或IPv6地址填写IP1...IPX'], ['Address', '地址'], ['line 1', '第1行'], ['line 2', '第2行'], ['line 3', '第3行'], ['line 4', '第4行'], ['line 5', '第5行'], ['with the fully qualified domain names', '与完全合格的域名'], ['fill IP1...IPX with the IPv4 or IPv6 addresses', '用IPv4或IPv6地址填写IP1...IPX'], ['submit', '提交'], ['Generate new recovery codes', '生成新的恢复代码'], ['Deactivate', '停用'], ['Logout', '登出'], ['already exists', '已经存在'], ['Servers and domain names check', '服务器和域名检查'], ['Checking SOA records for', '检查SOA记录'], ['Checking NS records for', '检查NS记录为'], ['Error: Answer not authoritative', '错误:域名没有正确绑定到相应的 DNS 服务器上'], ['Getting IP for', '获取IP的'], ['SOA from', 'SOA来自'], ['NS from', 'NS来自'], ['No error', '没有错误'], ['storing for validation', '储存用于验证'], ['IGNORED', '忽视'], ['you already have a pending request', '你已经有一个待处理的请求'], ['for that domain.', '该域名的请求。'], ['Invalid domain name', '无效域名'], ['length too short', '长度太短'], ['Saved as request', '保存请求'], ['Information', '信息'], ['Updated', '更新于'], ['Forks', '复刻'], ]) replaceText(document.body) // | const bodyObserver = new MutationObserver(mutations => { mutations.forEach(mutation => { mutation.addedNodes.forEach(addedNode => replaceText(addedNode)) }) }) bodyObserver.observe(document.body, { childList: true, subtree: true }) function replaceText(node) { nodeForEach(node).forEach(htmlnode => { i18n.forEach((value, index) => { // includes可直接使用 === 以提高匹配精度 const textReg = new RegExp(index, 'g') if (htmlnode instanceof Text && htmlnode.nodeValue.includes(index)) htmlnode.nodeValue = htmlnode.nodeValue.replace(textReg, value) else if (htmlnode instanceof HTMLInputElement && htmlnode.value.includes(index)) htmlnode.value = htmlnode.value.replace(textReg, value) }) }) } function nodeForEach(node) { const list = [] if (node.childNodes.length === 0) list.push(node) else { node.childNodes.forEach(child => { if (child.childNodes.length === 0) list.push(child) else list.push(...nodeForEach(child)) }) } return list } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址