尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

GitHub 中文界面是怎么实现的?拆解一个汉化脚本的翻译机制

GitHub 中文界面是怎么实现的?拆解一个汉化脚本的翻译机制 GitHub 中文界面是怎么实现的拆解一个汉化脚本的翻译机制【免费下载链接】github-chineseGitHub 汉化插件GitHub 中文化界面。 (GitHub Translation To Chinese)项目地址: https://gitcode.com/gh_mirrors/gi/github-chineseGitHub 中文化插件github-chinese是一个浏览器脚本安装后能把 GitHub 的菜单、按钮、提示和绝大多数页面文案实时翻译成中文。它不修改 GitHub 上的任何数据只在你本地把界面翻译一遍。这篇文章不讲怎么装那真的很快而是想拆开看看它到底怎么工作以及你能拿它玩出什么花样。安装 GitHub 中文脚本装好管理器、点一下安装、刷新页面先交代安装一笔带过浏览器里先有一个脚本管理器。Chrome / Edge / Firefox 可以用 Tampermonkey篡改猴开源替代品是 ViolentmonkeySafari 可以用 Tampermonkey也有 Macaque、Stay 等选择。拿到main.user.js之后脚本管理器会弹出安装确认页点确认即可。刷新 GitHub 页面界面就换成中文了。值得多说一句的是脚本声明在document-start阶段运行也就是页面还没渲染完就开始介入所以你基本看不到先闪英文、再变中文的跳变切换是干脆的。GitHub 汉化效果对照同一页面中英文差在哪里以仓库页为例顶栏的 Code / Issues / Pull Requests 会变成代码 / 问题 / 拉取请求仓库描述、文件列表里的操作按钮、分支下拉框都会跟着翻译。容易被忽视的角落——Issues 筛选器、通知页、设置页、组织页——也都有对应的词条覆盖。至于深色主题脚本用 CSS 变量加prefers-color-scheme媒体查询适配暗色模式下同样完整中文化不会出现文字糊在背景上的情况。GitHub 中文化脚本的原理locals.js 词库和按页面匹配规则翻译不是硬编码在脚本里的核心是一份庞大的词库文件locals.js。它差不多有三万行主要包含三类内容页面匹配正则rePagePath、rePagePathRepo、rePagePathOrg等先用正则判断当前 URL 属于登录页、仓库、组织、搜索还是趋势页再套用对应页面的翻译规则。词条对照英文原文到中文译文的映射比如 Star → 星标、Fork → 复刻。忽略规则ignoreSelectors代码、文件树、diff 区域这类不该动的内容会被明确跳过。这个设计很关键——如果词库命中了一段真实代码里的单词翻译出来反而是灾难所以不翻译哪里和翻译哪里同等重要。正是因为每个页面都有自己的精细化规则Settings这种词在仓库设置页和个人设置页里才能分别得到贴合语境的处理。动态内容即时翻译GitHub 汉化怎么跟上异步加载GitHub 现在大量使用异步加载pjax / Turbo 时代的遗产加上近年的 React 化页面里很多东西是滚动、点击之后才出现的静态翻译根本来不及。脚本的做法是用MutationObserver持续监听 DOM 变化一旦发现新增节点就对新出现的内容重新跑一遍匹配对部分页面还启用了字符级别的监测连文本节点内部的变化也能捕捉到。另一个贴心细节是时间元素本地化——3 hours ago会显示成3 小时前这样的相对时间。顺带一提这个项目一直在跟 GitHub 前端的变化拉扯。更新日志里最近的几版就是在处理 GitHub 引入 React 之后头部搜索框消失、导航弹层翻译失效的问题。这种持续修兼容的状态说明汉化这种事的难点不在翻译本身而在跟进平台不停改版。自定义 GitHub 翻译词库从改词条到本地调试词库不只是拿来用的也是可以改的本地调试把locals.js下载到本地在脚本管理器中把require的引用路径从远程改成file:///指向本地文件刷新页面即可生效。官方文档里还给了 Tampermonkey 高级设置中允许脚本访问本地文件的开启方法遇到不生效时按那几步排查就行。定制译法比如你的团队有内部术语希望在界面上统一显示为某个固定说法直接在词库里加一条词条就能实现。仓库描述翻译脚本在仓库页提供了一个翻译按钮调用在线翻译引擎把项目简介译成中文——这个功能可以单独使用不影响整站词库翻译。开发者模式收集没翻译到的词条顺便参与项目共建脚本里有个全局配置常量CONFIG把CONFIG.DEV改成true就能开启开发者模式。开启后会出现未命中词条相关菜单翻译时没在词库里匹配到的英文文本会被记录下来可以统计数量、一键清空、导出成 JSON导出的清单里包含词条原文和所在页面路径直接就能拿来补词库。这个功能原本是作者自己查漏补缺的内部工具开放给所有用户之后等于让每个使用者都变成了词库维护者——你逛 GitHub 时顺手导出一份未命中清单提交回去就是对项目最直接的贡献。开发版与稳定版汉化脚本的更新节奏项目采用双版本策略开发版实时更新每周五自动更新词库稳定版每周一同步开发版词库更稳妥。想尝鲜用开发版追求稳定就装在 GreasyFork 托管的稳定版上。参与的入口也很简单编辑locals.js完善词条、提 issue 报告问题、改进脚本逻辑任选其一。项目以 GPL-3.0 开源从早期的 github-hans 一路维护至今翻译词条的准确性就是这样靠社区一点一点磨出来的。如果你也经常泡在 GitHub 上与其被界面上的英文分散注意力不如花几分钟装一个汉化脚本然后把它当成一个可以自己改的翻译工具来用。翻译覆盖再全终究是长期维护出来的结果而这份词库恰恰是每个人都能往里添一笔的。【免费下载链接】github-chineseGitHub 汉化插件GitHub 中文化界面。 (GitHub Translation To Chinese)项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表