github-chinese Documentation

GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese)

35,701 stars JavaScript JavaScript 1 file · ~6,533 tokens #github#greasyfork#macaque#tampermonkey#userscript#violentmonkey
RAW Doc

Technical Documentation: maboloshi/github-chinese

ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference

Overview (`README.md`)

[!warning]
本项目从未发布至 GitCode,如您发现请截图并保留证据

目录树

TOC

🌟 功能特性

  • 全面中文化 GitHub 界面元素(菜单栏、标题、按钮等)
  • 智能正则匹配功能
  • 支持项目描述的人机翻译
  • 自动本地化时间元素
  • 持续更新词库

🌐 兼容环境

浏览器类型 支持的脚本管理器
Chrome / Chromium 内核 Tampermonkey, Violentmonkey
Safari(全平台) Tampermonkey, Macaque, Stay
Firefox / Gecko 内核 Tampermonkey, Violentmonkey
Via(Android) 内置管理器
VS Code 集成浏览器

💻 安装指南

浏览器(Tampermonkey)

  1. 安装用户脚本管理器:
  2. 基于 Chrome / Chromium 内核浏览器:
    1. 务必开启 “扩展程序” 管理中的 “开发者模式”[^1]
    2. 务必开启 “扩展程序” 管理中脚本管理器扩展的 “允许运行用户脚本”
    3. 具体可参考 Tampermonkey 官方指引
  3. 选择安装源:
  4. 刷新页面后,插件即可生效
  5. 必要时,重启浏览器

[^1]: Chrome 切换到 Manifest V3后,使用问题

[!NOTE]
版本说明:

  • 🚀 开发版:实时更新,每周五自动更新词库
  • 🛡️ 稳定版:每周一同步开发版词库,更稳定

VS Code 集成浏览器

请参考扩展的自述文件。

🔧 本地调试

  1. 安装 Tampermonkey,并启用 “允许访问文件网址”。
  2. 下载词库文件到本地(如:D:\github-chinese\locals.js)
  3. 在脚本管理器中修改引用路径:
    js
    // 原始路径
    // @require https://raw.githubusercontent.com/...
    
    // 修改为
    // @require file:///D:/github-chinese/locals.js
  4. 刷新页面生效

[!IMPORTANT]
若无效:

  1. 进入 Tampermonkey 插件设置页
  2. 将 通用 - 配置模式 设置为高级,进入高级设置模式
  3. 找到 安全 - 允许脚本访问本地文件 并设置为 外部(@require 和 @resource)

[!TIP]
💡 温馨提示: 您可以将词库文件拖拽至浏览器地址栏,复制路径直接使用。

[

🔄 更新日志

最新版本

v1.9.4.4 (2026-06-20)

  1. 兼容修复1.9.2.4,1.9.4.4:
    • 区分 React GlobalNav 与页面主体共享的 Primer 弹层,恢复下拉菜单即时、完整翻译。

v1.9.4.3 (2026-06-17)

  1. 兼容修复1.9.2.3,1.9.4.3:
    • 收窄 React 搜索模块忽略范围,恢复仓库议题页和搜索页主体区域翻译。

v1.9.4.2 (2026-06-17)

  1. 兼容修复1.9.2.2,1.9.4.2:
    • 在保持 React 头部搜索框稳定的前提下,恢复头部导航、菜单、搜索弹层和提示翻译。

v1.9.4.1 (2026-06-16)

  1. 临时修复1.9.2,1.9.4:
    • 关于 GitHub 引入 React 机制导致头部搜索框消失。副作用整个头部导航全部加入忽略规则,无法翻译。

v1.9.4 (2026-05-17)

  1. 代码重构:
    • 全面结构化重组:抽离配置常量 CONFIG、状态管理器 State
    • 引入 safe() 错误边界包裹关键函数,便于排错
    • 函数拆分细化:watchUpdate → setupMutationObserver + processMutations,transDesc → handleTransClick + requestRemoteTrans + showTransResult
    • processMutations 祖先去重:同一批 mutation 中后代节点不再重复遍历
  2. 新增功能:
    • 翻译结果 UI 暗色主题适配(CSS 变量 + prefers-color-scheme 媒体查询),使用 GM_addStyle 插入
    • 未命中词条管理器 MissedTermsManager(记录、导出 JSON、清空、统计、菜单)
    • 开发者模式(CONFIG.DEV)控制未命中词条菜单显隐
    • Tampermonkey onurlchange 事件支持(setupUrlChangeListener)
  3. 修复:
    • 修复翻译 API 响应 XSS 漏洞:innerHTML 模板拼接改为 textContent 安全赋值(由 #692 报告)
    • 修复 TreeWalker 过滤器在 ignoreSelectors 为空时抛出 SyntaxError
    • 修复翻译按钮可能重复添加的问题(nextSibling 空值检查)
    • 修复 RELATIVE-TIME shadowRoot 为 null 时的崩溃
    • 修复从未识别页面离开后 State.pageConfig 未清空,导致旧配置残留的问题
  4. 性能优化:减少无效迭代,消除不必要的 DOM 遍历

v1.9.3 (2024-08-18)

  1. 新增功能:通过设置中文环境,自动本地化时间元素,仅保留on开头的时间正则,并停用时间元素监视
  2. 优化突变翻译处理:
    • 引入characterDataPage规则,对特定页面启用筛选字符数据的变更
    • 引入ignoreMutationSelectorPage规则,忽略特定突变元素
  3. 合并reIgnoreClass,reIgnoreItemprop,ignoreId,ignoreTag为ignoreSelectorPage规则,处理全局及特定页面,忽略特定元素
  4. 引入全局缓存模式,减少重复构建包括不限于基于page变化的忽略规则、正则规则数组等
  5. 调整:更新讯飞听见翻译引擎v2.0
  6. 优化:梳理、优化脚本
  7. 调整:调整词库语言代码为zh-CN, 与环境语言设置一致

查看更多历史版本

v1.9.2 (2024-06-14)

  1. 适配www.githubstatus.com
  2. 适配skills.github.com

v1.9.1 (2024-05-23)

  1. 更新切换正则功能按钮

v1.9.0 (2023-12-09)

  1. 重新定义版本号规则, 如1.9.0-2023-12-09。
    • 1.9.0: 主版本号(由项目所有者更新)
    • 2023-12-09:词库发布版本号(由 GitHub Action 自动更新)
  2. 加强: GitHub 源【开发版】每周一凌晨自动更新词库发布版本号
  3. 加强: GreasyFork 源【稳定版】每周五凌晨自动更新词库发布版本号, 词库内容同上一次GitHub 源【开发版】
  4. 加强:在 README.md 中自动更新贡献者头像
  5. 更新: 忽略规则, 词条等

v1.8.5 (2023-08-31)

  1. 优化: transDesc 函数代码
  2. 修复: 重复添加translate-me翻译按钮
  3. 加强:watchUpdate 函数新增节点文本更新的情况
  4. 调整: transBySelector和transDesc函数延迟执行时间
  5. 更新: 忽略规则, 词条等

v1.8.4 (2023-08-08)

  1. 修复: Itemprop过滤规则, 依然使用正则方式
  2. 修复: tooltipped样式提示, 依然使用正则方式

v1.8.3 (2023-08-07)

  1. 梳理、优化脚本
  2. 更新: 忽略规则, 大量词条等

v1.8.2 (2023-05-15)

  1. greasyfork 托管源切换到按页面精细化词条模式
  2. 调整词库格式
  3. 功能加强: 优化元素筛选器翻译逻辑
  4. 更新: 忽略规则, 大量词条等

v1.8.1 (2023-01-22)

  1. 修复: #8 与 dark reader 扩展发生冲突,导致时间显示出现问题
  2. GitHub源开始切换到按页面精细化词条模式(开发版), 词库未完全迁移适配
  3. 停止greasyfork源词库文件的同步更新

v1.8.0 (2023-01-18)

  1. 删除: TURBO-FRAME框架处理代码. Github 已调整新动态加载模式, 直接检测url的变化就能获取对应的page信息
  2. 新增: 支持时间元素的Shadow DOM翻译, 并监听变化
  3. 新增: 启用并更新时间元素翻译专项正则词条
  4. 新增: 仅当page有效才翻译页面
  5. 修复: 原简介翻译引擎GitHub中文社区失效, 改为讯飞引擎(测试)
  6. 修复: 追加公共正则重复迭代的问题
  7. 修复: 正则标记变量RegExp与构造函数new RegExp冲突
  8. 更新: 忽略规则, 词条等

预告, 下次将细化page匹配规则, 导致词库文件结构大调整, 词库文件会适当变大, 页面正则更精细效率会提升

v1.7.9 (2022-07-17)

GitHub 的 ajax 载入方式逐步从 defunkt/jquery-pjax 切换到 hotwired/turbo, 导致已有的动态监测方式逐步失效

目前, 通过以下修复:

  1. 新增 BODY 元素新增监视
  2. 解析 TURBO-FRAME 框架, 获取对应的 page
  3. 修复 github 新动态加载模式, 导致翻译描述返回值无法插入
  4. 修复 github 新动态加载模式, 导致chrome浏览器自带翻译功能卡死页面

其他更新:

  1. 修复rePagePath,rePagePathRepo,rePagePathOrg匹配规则,限制路径匹配层次,排除干扰
  2. 直接使用网页URLdocument.URL变化触发标题翻译和JS 筛选器翻译
  3. 修复关闭正则无法生效, 需要刷新页面才生效
  4. 日常更新词库和忽略规则
  5. 更新JS 筛选器规则

v1.7.8 (2022-06-29)

  1. 紧急修复: GitHub 变更了document.body和title更新机制, 导致原有的监测更新规则部分失效, 目前使用document.documentElement监视整个页面 DOM 的变更
  2. 跳过<HEAD>标签
  3. 标题翻译和JS 筛选器翻译, 依据 URL变化更新

v1.7.7 (2022-06-26)

  1. 新增时间元素翻译功能
  2. 重写页面标题翻译函数
  3. 梳理遍历节点函数逻辑
  4. 优化transPage函数,默认翻译公共部分
  5. 调整getPage函数, 使ClassName匹配规则优先
  6. 优化translate函数, 跳过不存在英文字母和符号,., 保留首尾空白部分等
  7. 部分函数重命名,使用es6新语法
  8. 日常更新词库和忽略规则,修复一个JS 选择器规则

v1.7.6 (2022-05-12)

  1. 日常更新词库和忽略规则
  2. 添加手动开启/禁用正则翻译,添加切换菜单
  3. 优化翻译文本函数:避免已翻译词汇二次匹配,提高效率;局部翻译优先于全局

[

📌 待办事项

  1. 添加 GitHub 专用名词解释
  2. 整理 Git & GitHub 学习资料
  3. 完善文档翻译,需大家 PR 共同翻译

🤝 参与贡献

欢迎通过以下方式参与贡献:

  1. 完善词库翻译(编辑 locals.js)
  2. 提交议题报告,参与话题讨论
  3. 改进代码逻辑

翻译参考资源:

  1. Pro Git 第二版 简体中文
  2. Pro Git: 翻译约定
  3. Git 官方软件包的简体中文翻译
  4. GitHub 词汇表官方译本
  5. CSS 选择器 用于编写忽略规则

查看详细贡献指南

🖼️ 效果预览

🙏 特别鸣谢

核心团队

贡献者墙

一如既往,感谢我们出色的贡献者❤️!











































贡献者列表,由 GitHub Action 自动生成

[

📈 项目统计

[

🎁 欢迎打赏

赞赏列表

微信赞赏 支付宝赞赏
☕喝点咖啡继续干☕ 🌶️来包辣条吧~🍪

Overview (`vscode-extension/README.md`)

GitHub 中文化 (VS Code 扩展)

一键安装 GitHub 扩展,实现 VS Code 集成浏览器中 GitHub 网页的中文化。

工作原理

  • 扩展启用 VS Code 的 proposed browser API(vscode.window.browserTabs + startCDPSession())
  • 在扩展宿主侧从 南大镜像 拉取词库 locals.js 与主脚本 main.user.js,规避页面 CORS 限制
  • 通过 CDP Page.addScriptToEvaluateOnNewDocument 直接注入源码(非 eval),绕过 github.com 的 CSP 限制(IBE 因使用 new Function 被 CSP 拦截)
  • 注入内容内置 GM_* 兼容层与 document-end 语义(等 DOMContentLoaded 后执行)

先决条件

添加启动参数

VS Code 必须带 --enable-proposed-api maboloshi.github-chinese 参数启动,否则无法使用 browser API。

带参数启动 VS Code 的方式

  • 打开运行对话框,输入:

    cmd
    "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" --enable-proposed-api maboloshi.github-chinese
  • 或修改“开始”菜单的 VS Code 快捷方式,在 目标 字段末尾追加 COMMAND_LINE_ARGUMENTS:

    cmd
    --enable-proposed-api maboloshi.github-chinese

    然后从“开始”菜单启动

安装方式

方案一:从 GitHub Actions 下载(推荐)

该方案需要登录 GitHub 账号,若你没有账号,请使用 方案二

  1. 打开本仓库的 Actions 页面

  2. 选择最近一次成功运行的 workflow

  3. 滚动到页面底部,在 Artifacts 区域下载 github-chinese-extension.vsix

  4. 在 VS Code 中按 Ctrl+Shift+P 打开命令面板

  5. 输入 Extensions: Install from VSIX... 并选择刚才下载的 .vsix 文件

  6. 安装完成后,在 VS Code 集成浏览器中刷新 GitHub 页面即可生效

方案二:从源码构建

环境要求

  • Git (可选,用于克隆仓库,若不打算安装 Git ,请自行将仓库下载至本地)

  • NodeJS

构建步骤

在 PowerShell 中执行以下代码:

shell
git clone https://github.com/maboloshi/github-chinese.git # 克隆仓库

# 若你的网络环境无法访问 GitHub 克隆仓库,请自行寻找加速器等解决

cd github-chinese/vscode-extension # 进入插件目录

npm install # 安装依赖

# 若你的网络环境缓慢,请使用这行命令:

# npm install --registry=https://registry.npmmirror.com

npx @vscode/vsce package # 打包插件

构建完成后,按方案一的第 4-5 步安装生成的 .vsix 文件。

[!NOTE]
本扩展尚未上架 VS Code 市场,需通过 源码构建 或从 Actions 下载 VSIX 安装。

命令

  • GitHub 中文化: 检查注入状态 — 查看 browser API 可用性、注入标签数与词库加载状态
  • GitHub 中文化: 刷新集成浏览器注入 — 重新拉取词库/主脚本并重新注入所有已打开的集成浏览器标签

常见问题

为什么打开 GitHub 页面没有汉化?

请检查以下几点:

  1. 确认已安装依赖扩展:Integrated Browser Extensions 必须已安装并启用
  2. 确认启动参数正确:VS Code 必须带 --enable-proposed-api boylett.integrated-browser-extensions 参数启动
  3. 确认扩展已启用:在扩展面板中确认 GitHub 中文化 扩展已启用
  4. 刷新页面:在 VS Code 的集成浏览器中按 Ctrl+R 或 F5 刷新页面
  5. 重启 VS Code:尝试完全退出并重新启动 VS Code

调试

打开扩展开发宿主窗口。


Ai Review (`docs/ai-review.md`)

AI 代码审查(DeepSeek)— 使用说明

本仓库内置一个"类 Copilot"的 AI 代码审查工作流:任何用户可自动或按需请求 DeepSeek 对 PR 进行中文代码审查,审查以机器人身份发布,每次审查消耗请求者自己的 DeepSeek 额度,仓库不保存任何密钥明文。

如何工作

mermaid
flowchart LR
  U[用户] -- 提交/评论 PR 或 /review --> W[GitHub Actions<br/>本仓库/fork]
  W -- 拉取 PR diff --> D
  W -- 调用 DeepSeek(用请求者 LLM_API_KEY) --> D[(DeepSeek)]
  W -- 机器人身份发布中文审查 --> P[PR]
  • script/ai_review.py:拉取 PR 元数据与 diff → 读取 .github/copilot-instructions.md(强制中文)→ 调用 DeepSeek → 生成结构化审查(概览 / 问题分级 / 优点 / 重写建议)。
  • 发布身份:
    • 默认:github-actions[bot](无需任何额外配置)。
    • 若配置了 GitHub App:以 gh-chinese-ai-reviewer[bot] 发布(可发布到任意已安装该 App 的仓库,含上游)。

触发方式

触发 说明
pull_request(opened / synchronize / ready_for_review) 打开或更新 PR 时自动审查(需工作流位于默认分支)
评论 /review 在 PR 上评论 /review 即按需审查
workflow_dispatch 手动指定 repo 与 pr 审查任意公开 PR
schedule(每 15 分钟) 轮询「看护清单」中的上游 PR,响应其中由本仓库属主发出的 /review

去重:同一 head SHA 只会审查一次(评论尾部 `` 标记)。

配置(fork 自建实例)

Secrets(Settings → Secrets and variables → Actions)

名称 必填 说明
LLM_API_KEY ✅ 你的 DeepSeek API key(https://platform.deepseek.com/api_keys)。只存在你自己的 fork,明文从不出你侧
APP_ID 可选 用于以 App 机器人身份发布(见下「GitHub App」)
APP_PRIVATE_KEY 可选 GitHub App 私钥(.pem 全文)
LLM_BASE_URL / LLM_MODEL 可选 默认 https://api.deepseek.com / deepseek-chat

Variables(可选,Step 2 轮询用)

名称 说明
REVIEW_TARGET 轮询的目标仓库,默认 maboloshi/github-chinese
REVIEW_WATCHLIST 逗号分隔的 PR 号,如 760,766;只轮询这些 PR 上的 /review

GitHub App(可选,bot 身份发布)

  1. https://github.com/settings/apps/new 创建 App(名称勿以 GitHub/Gist 开头)
  2. 权限:Pull requests Read & write、Issues Write;Webhook 可关;安装范围 Any account
  3. 生成私钥 .pem;把 APP_ID、APP_PRIVATE_KEY 配进 Secrets
  4. 安装到你自己的 fork(Install App);发布到上游仓库时,请仓库维护者从 App 公共页 https://github.com/apps/ 安装

安全模型

  • 任何人看不到明文:DeepSeek key 只存在于请求者自己的 fork secret / 本地;上游仓库零密钥。
  • 自负额度:每次审查只用触发者自己的 LLM_API_KEY(secrets.LLM_API_KEY)。
  • bot 身份:审查以 github-actions[bot] 或 GitHub App 机器人发布,不占用用户账号。
  • 提示词注入:密钥绝不进入 prompt;模型输出只作为文本渲染,不执行。
  • 工作流安全:不使用 pull_request_target;第三方 Action 建议钉版本;不打印密钥。
  • 已知限制:
    • 上游 /review 为轮询(约 15 分钟),非即时。
    • fork PR 的 pull_request 事件读不到 secrets → fork 内 PR 自动审需要把工作流放到 fork 默认分支;上游 PR 的自动审依赖 fork 侧 push 反查或轮询。
    • 发布到上游需仓库维护者安装 GitHub App(可随时撤销)。

常见问题

  • 工作流没跑? 确认工作流文件在默认分支(issue_comment / schedule / workflow_dispatch 只在默认分支触发)。
  • 提示缺 LLM_API_KEY? 在 fork 的 Secrets 添加。
  • /review 没反应? 轮询有延迟(≤15 分钟);确认该 PR 在 REVIEW_WATCHLIST 中(若配置)。
  • 想只审一次? 去重按 head SHA,同一提交不会重复审查。

--- METRICS ---