GitHub 中文化插件终极配置指南:轻松管理多用户翻译设置
GitHub 中文化插件终极配置指南:轻松管理多用户翻译设置
GitHub 中文化插件(GitHub Translation To Chinese)是一款强大的工具,能将 GitHub 界面完全转换为中文,帮助中文用户更顺畅地使用 GitHub。本文将详细介绍如何集中管理多用户的翻译设置,包括配置文件解析、多版本管理、自定义翻译规则等高级技巧,让团队协作更高效。
为什么需要集中管理翻译设置?
在团队协作中,不同成员可能需要不同的翻译偏好:有的成员希望保留部分英文术语以便与国际团队同步,有的成员则需要全中文界面提高效率。通过集中管理翻译设置,可以:
- 统一团队翻译标准,避免术语混乱
- 灵活配置不同用户组的翻译规则
- 快速部署翻译更新,确保团队使用一致的界面
GitHub中文化插件将界面元素转换为中文,包括导航栏、按钮和提示信息
核心配置文件解析
翻译设置主要通过 locals.js 文件进行配置,该文件包含翻译规则、页面匹配规则和忽略规则。以下是关键配置项解析:
1. 页面匹配规则
I18N.conf = {
rePagePath: /^\/($|home|dashboard|feed|copilot|spark|signup|account_verifications|login\/oauth|login|logout|sessions?|password_reset|orgs|explore|topics|notifications\/subscriptions|notifications|watching|stars|issues|pulls|repos|search|trending|showcases|new\/(import|project)|new|import|settings\/(profile|admin|appearance|accessibility|notifications|billing|emails|security_analysis|security-log|security|auth|sessions|keys|ssh|gpg|organizations|enterprises|blocked_users|interaction_limits|code_review_limits|repositories|codespaces|models|codespaces\/allow_permissions|deleted_repositories|packages|copilot|pages|replies|installations|apps\/authorizations|reminders|sponsors-log|apps|(?:personal-access-|)tokens|developers|applications\/new|applications|connections\/applications|education\/benefits)|settings|installations\/new|marketplace|apps|account\/(organizations\/new|choose|upgrade|billing\/history)|projects|redeem|discussions|collections|sponsors|sponsoring|github-copilot\/(signup|free_signup|code-review-waitlist|pro)|codespaces|developer\/register|features|security|sitemap|education|mcp)|^\/users\/[^\/]+\/(projects|packages|succession\/invitation)/,
rePagePathRepo: /^\/[^\/]+\/[^\/]+\/(issues|pulls|pull|tree|watchers|stargazers|new|edit|delete|upload|find|models|wiki|branches|discussions|activity|rules|releases|packages|tags|labels|milestones?|compare|commit|blob|blame|actions(\/metrics\/(usage|performance))?|runs|deployments|security|pulse|community|forks|fork|import|graphs\/(contributors|community|traffic|commit-activity|code-frequency)|network$|network\/(dependencies|dependents|updates|members)|settings\/(access|code_review_limits|interaction_limits|branches|branch_protection_rules|tag_protection|rules|actions|models\/access-policy|hooks|copilot\/(code_review|coding_agent)|environments|codespaces|pages|security_analysis|dependabot_rules|keys|secrets|variables|installations|notifications|key_links)|settings|transfer|projects\/new|projects|pkgs|contribute|subscription|invitations|codespaces|attestations|custom-properties|reported_content)/,
rePagePathOrg: /^\/[^\/]+\/[^\/]+\/(repositories\/new|repositories|sponsoring|discussions|projects|packages|teams|new-team|people|outside-collaborators|pending_collaborators|dashboard|billing_managers\/new|invitations?|settings\/(profile|billing|roles|member_privileges|teams|import-export|blocked_users|interaction_limits|code_review_limits|moderators|repository-defaults|rules|codespaces|copilot|actions|hooks|discussions|packages|pages|projects|security_analysis|security|dependabot_rules|domains|secrets|variables|oauth_application_policy|installations|personal-access-token|reminders|sponsors-log|audit-log|deleted_repositories|applications\/new|applications|apps\/new|apps|publisher|policies\/repositories)|topics|domain\/new|audit-log\/event_settings|billing\/(history|plans)|policies\/applications)|^\/[^\/]+\/(enterprise_plan|sponsoring)/
};
这些正则表达式定义了哪些页面需要应用翻译。通过修改这些规则,可以控制翻译的作用范围。
2. 翻译忽略规则
ignoreSelectorPage: {
'repository/new': [".cm-scroller"], // 代码编辑器
'repository/edit': [".cm-scroller", "table"], // 代码编辑器
'repository/pull': [
"td.blob-code", // 代码差异 分屏/同屏
'.js-full-logs-container', // 工作流运行日志
],
// 更多规则...
'*': [
'div.QueryBuilder-StyledInputContainer', // 顶部搜索栏 关键词
'#qb-input-query span', // 搜索页面 搜索栏 关键词
'div.styled-input-content', // 筛选条
],
}
通过配置 ignoreSelectorPage,可以指定在特定页面中不需要翻译的元素,如代码块、搜索框内容等,避免翻译破坏代码格式。
3. 翻译词条库
翻译词条主要存储在 I18N["zh-CN"] 对象中,包括静态翻译和正则翻译:
I18N["zh-CN"]["public"] = {
"static": {
"Sign up to GitHub · GitHub": "注册 · GitHub",
"Sign in to GitHub · GitHub": "登录 GitHub · GitHub",
// 更多静态翻译...
},
"regexp": [
[/Authorized OAuth Apps/, "授权的 OAuth 应用"],
[/Authorized GitHub Apps/, "授权的 GitHub 应用"],
// 更多正则翻译...
]
};
静态翻译用于精确匹配固定文本,正则翻译则用于匹配动态变化的内容。
多用户翻译设置管理
1. 创建多版本配置文件
项目中提供了不同语言版本的配置文件:
locals.js- 简体中文主配置locals_zh-TW.js- 繁体中文配置locals(greasyfork).js- Greasy Fork 专用版本
通过复制这些文件,可以创建自定义版本,如 locals_teamA.js、locals_teamB.js,为不同团队配置独立的翻译规则。
2. 版本切换脚本
创建切换脚本 switch_locale.sh,方便快速切换不同版本的配置文件:
#!/bin/bash
# 切换到团队A的翻译配置
cp locals_teamA.js locals.js
echo "Switched to team A locale settings"
3. 自定义翻译规则
添加新翻译词条
在 locals.js 中添加新的静态翻译:
I18N["zh-CN"]["public"]["static"]["New custom feature"] = "新自定义功能";
修改正则翻译规则
调整现有正则翻译:
// 将 "Pull Request" 翻译为 "拉取请求" 改为 "合并请求"
// 原规则: [/Pull (R|r)equests?/, "拉取请求"],
// 修改为:
[/Pull (R|r)equests?/, "合并请求"],
4. 翻译冲突解决
当多个翻译规则可能匹配同一文本时,遵循以下优先级:
- 页面特定规则(
page-*)优先于全局规则 - 静态翻译优先于正则翻译
- 更具体的正则表达式优先于通用表达式
高级配置技巧
1. 基于用户角色的翻译过滤
通过修改 locals.js 实现不同用户角色看到不同翻译:
// 假设存在全局变量 USER_ROLE
if (USER_ROLE === 'developer') {
// 开发者保留部分英文术语
I18N["zh-CN"]["public"]["static"]["Pull Request"] = "Pull Request";
} else {
I18N["zh-CN"]["public"]["static"]["Pull Request"] = "拉取请求";
}
2. 动态加载翻译规则
使用 script/rd.py 脚本可以从远程服务器加载最新翻译规则,实现动态更新:
# script/rd.py 示例功能
import requests
import json
def fetch_latest_translations():
url = "https://your-server.com/translations.json"
response = requests.get(url)
translations = response.json()
# 合并到本地翻译文件
with open("locals.js", "r+") as f:
content = f.read()
# 合并逻辑...
f.write(updated_content)
3. 翻译质量监控
使用 t2s-convert.pl 脚本检查翻译质量:
#!/usr/bin/perl
# t2s-convert.pl - 检查翻译完整性
open my $fh, '<', 'locals.js' or die $!;
my $content = do { local $/; <$fh> };
close $fh;
if ($content =~ /TODO: (.*)/) {
print "未完成的翻译: $1\n";
}
部署与更新策略
1. 本地部署
-
克隆仓库:
git clone https://gitcode.com/gh_mirrors/gi/github-chinese -
根据需要修改配置文件
-
在浏览器中安装油猴脚本
main.user.js
2. 团队共享配置
将自定义配置提交到团队仓库,通过以下命令同步更新:
# 添加远程仓库
git remote add team https://gitcode.com/your-team/github-chinese-config
# 拉取最新配置
git pull team main
3. 自动化更新
设置定时任务自动同步翻译更新:
# 添加到 crontab
0 0 * * * cd /path/to/github-chinese && git pull origin main && cp locals.js ~/Documents/GitHub/
常见问题解决
1. 部分页面未翻译
检查 rePagePath 正则表达式是否包含该页面路径,例如添加 copilot 路径。
2. 翻译不生效可能是因为配置文件加载顺序或缓存问题。
3. 动态加载的翻译规则可能会被覆盖。
结语
通过以上介绍,您可以根据需求自定义翻译规则,实现个性化的翻译内容。无论是个人使用还是团队协作,这些配置方法能有效提升开发效率。
注意事项:
- 确保定期更新翻译内容,以适应 GitHub 界面的变化。
- 注意保护个人数据和敏感信息,避免泄露。
希望这份指南能帮助您更好地管理翻译设置,提高工作效率。
更多推荐





所有评论(0)