您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
汉化界面的部分菜单及内容
- // ==UserScript==
- // @name 汉化duckyci.com
- // @namespace Violentmonkey Scripts
- // @match https://*.duckyci.com/*
- // @version 1.0
- // @author -
- // @description 汉化界面的部分菜单及内容
- // @grant none
- // @author sec
- // @license MIT
- // @namespace https://t.me/KingRan_qun
- // ==/UserScript==
- (function() {
- 'use strict';
- const i18n = new Map([
- ['Free', '免费'],
- ['Donate', '捐赠'],
- ['Paid', '付费'],
- ['Capacity', '容量'],
- ['Telegram', '电报'],
- ['Contact', '联系我们'],
- ['Report Abuse', '举报滥用'],
- ['Account', '账户'],
- ['Login', '登录'],
- ['Register', '注册'],
- ['VPS comes with 共享 IPv4 and Dedicated IPv6', 'VPS 附带共享 IPv4 和专用 IPv6'],
- ['CREATE VPS', '创建 VPS'],
- ['Name', '名称'],
- ['Point', '点'],
- ['Detail', '详细内容'],
- ['On-demand', '按需'],
- ['Preemptible', '可抢占'],
- ['Price', '价格'],
- ['Refresh', '刷新'],
- ['Show', '显示'],
- ['Running', '运行'],
- ['Stopped', '停止运行'],
- ['Pending', '待处理'],
- ['Other', '其他'],
- ['System Load', '系统负载'],
- ['Cpu Usage', 'CPU 使用率'],
- ['Compute Status', '计算状态'],
- ['Issue', '问题'],
- ['Our Cloud Infrastructure in US - Sanjose ', '我们在美国 Sanjose 的云计算基础设施 '],
- ['US - Sanjose', '美国 - Sanjose'],
- ['experienced service outage', '出现服务中断'],
- ['users may not be able to use compute service in this', '用户可能无法使用该数据中心的计算服务。'],
- ['datacenter', '数据中心'],
- ['We apologize for any inconvenience and are working hard to fix it. ', '我们对造成的不便深表歉意,并正在努力修复。'],
- ['Please follow the channel for more notifications', '请关注该频道以获取更多通知'],
- ['You are using a Always 免费 账户', '您正在使用 Always 账户 免费'],
- ['To upgrade to a paid account, pay ', '要升级到付费帐户,请支付 0.5 美元或更多'],
- ['Recharge', '充值'],
- ['Amount ', '金额 '],
- ['The payment amount must be a multiple of ', '支付金额必须是 0.5 美元的倍数'],
- ['and the maximum amount is', '最高金额为 20 美元'],
- ['Method', '使用方法'],
- ['Always 免费 Resources', '始终免费 资源'],
- ['付费 Resources', '付费资源'],
- ['Limit', '限制'],
- ['Used', '已使用'],
- ['Remain', '剩余'],
- ['Note', '备注'],
- ['Database Cluster', '数据库集群'],
- ['instances are good for full-duty workloads where consistent performance is important.', '实例适合对性能要求较高的全负荷工作。'],
- ['with your bank or credit card.', '.'],
- ])
- replaceText(document.body)
- // |
- // ₘₙⁿ
- // ▏n
- // █▏ 、⺍ 所以,不要停下來啊(指加入词条
- // █▏ ⺰ʷʷィ
- // █◣▄██◣
- // ◥██████▋
- // ◥████ █▎
- // ███▉ █▎
- // ◢████◣⌠ₘ℩
- // ██◥█◣\≫
- // ██ ◥█◣
- // █▉ █▊
- // █▊ █▊
- // █▊ █▋
- // █▏ █▙
- // █
- 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
- }
- })();