GitHub 中文化插件终极配置指南:轻松管理多用户翻译设置

【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 【免费下载链接】github-chinese 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese

GitHub 中文化插件(GitHub Translation To Chinese)是一款强大的工具,能将 GitHub 界面完全转换为中文,帮助中文用户更顺畅地使用 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.jslocals_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. 翻译冲突解决

当多个翻译规则可能匹配同一文本时,遵循以下优先级:

  1. 页面特定规则(page-*)优先于全局规则
  2. 静态翻译优先于正则翻译
  3. 更具体的正则表达式优先于通用表达式

高级配置技巧

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)

GitHub中文化插件深色模式 深色模式下的GitHub中文界面,展示翻译效果

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. 本地部署

  1. 克隆仓库:

    git clone https://gitcode.com/gh_mirrors/gi/github-chinese
    
  2. 根据需要修改配置文件

  3. 在浏览器中安装油猴脚本 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/

GitHub仓库管理界面 GitHub仓库管理页面的中文翻译效果

常见问题解决

1. 部分页面未翻译

检查 rePagePath 正则表达式是否包含该页面路径,例如添加 copilot 路径。

2. 翻译不生效可能是因为配置文件加载顺序或缓存问题。

3. 动态加载的翻译规则可能会被覆盖。

结语

通过以上介绍,您可以根据需求自定义翻译规则,实现个性化的翻译内容。无论是个人使用还是团队协作,这些配置方法能有效提升开发效率。

注意事项:

  • 确保定期更新翻译内容,以适应 GitHub 界面的变化。
  • 注意保护个人数据和敏感信息,避免泄露。

希望这份指南能帮助您更好地管理翻译设置,提高工作效率。

【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 【免费下载链接】github-chinese 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐