GitHub 中文化插件与Git钩子:在提交前自动运行翻译测试

GitHub 中文化插件与Git钩子:在提交前自动运行翻译测试

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

你是否遇到过这样的困扰:提交翻译更新后才发现部分词条翻译错误,导致插件在特定页面显示异常?本文将介绍如何通过Git钩子在提交前自动运行翻译测试,确保GitHub中文化插件的翻译质量。读完本文,你将学会配置本地化测试环境、创建自动化测试脚本,以及设置Git钩子实现提交前的自动校验。

插件工作原理与翻译验证痛点

GitHub中文化插件通过静态词库和正则规则实现界面元素的实时翻译。核心翻译逻辑在main.user.js中实现,通过transText函数匹配locals.js中的翻译词条。然而,手动维护大量翻译词条时,容易出现以下问题:

  • 繁简转换错误(如"合并"误写为"併合")
  • 正则表达式冲突导致部分页面翻译失效
  • 新增词条未覆盖所有页面场景

传统的验证方式需要手动刷新页面检查,效率低下且容易遗漏。通过自动化测试和Git钩子可以将错误拦截在提交阶段。

本地化翻译测试环境搭建

1. 项目结构与关键文件

项目核心文件结构如下:

github-chinese/
├── locals.js               # 主翻译词库
├── locals_zh-TW.js         # 繁体中文词库
├── main.user.js            # 插件主逻辑
├── t2s_rules.conf          # 繁简转换规则
└── script/
    └── ci_commit_with_signature.sh  # 提交脚本

其中t2s_rules.conf定义了繁简转换规则,包含普通替换和正则替换两种模式:

# 普通替换
zh-CN       zh-TW
只读        只讀

# 正则替换
REGEX:(?<!合)併為  並為

2. 测试环境配置步骤

  1. 克隆项目仓库:

    git clone https://gitcode.com/gh_mirrors/gi/github-chinese
    
  2. 安装依赖工具:

    sudo apt install -y jq dos2unix  # 依赖工具在[apt-packages.txt](https://link.gitcode.com/i/b808aecdd70de20c3da85f605fbf64e4)中定义
    
  3. 配置本地调试模式(参考README.md中的"本地调试"章节):

    • 修改Tampermonkey脚本引用路径为本地文件
    • 启用"允许访问文件网址"权限

翻译测试自动化脚本实现

1. 测试脚本功能设计

创建script/test_translation.sh脚本,实现以下功能:

  • 验证繁简转换规则正确性
  • 检查正则表达式语法有效性
  • 测试核心翻译函数对关键词条的处理

2. 关键测试用例实现

#!/bin/bash

# 测试繁简转换规则
function test_t2s_rules() {
  echo "Testing traditional-simplified conversion rules..."
  local errors=0
  
  # 检查规则文件格式
  if ! grep -q "REGEX:" t2s_rules.conf; then
    echo "❌ 未找到正则转换规则"
    ((errors++))
  fi
  
  # 测试关键转换是否正确
  local test_cases=(
    "合并,合併"   # 正确转换
    "并发,並發"   # 正则匹配测试
    "干净,乾淨"   # 特殊规则测试
  )
  
  for case in "${test_cases[@]}"; do
    local input=$(echo $case | cut -d',' -f1)
    local expected=$(echo $case | cut -d',' -f2)
    # 实际转换逻辑测试...
  done
  
  return $errors
}

# 测试正则表达式有效性
function test_regex_rules() {
  echo "Testing regex translation rules..."
  # 从main.user.js中提取所有正则规则并验证
  grep -oP 'new RegExp\(".*?"' main.user.js | while read -r regex; do
    # 正则语法验证...
  done
}

# 主测试流程
test_t2s_rules || exit 1
test_regex_rules || exit 1
echo "✅ All translation tests passed"

Git钩子配置与自动化验证流程

1. 提交前钩子实现

.git/hooks/pre-commit中添加以下脚本:

#!/bin/sh

# 运行翻译测试
if ! script/test_translation.sh; then
  echo "❌ Translation tests failed. Please fix errors before commit."
  exit 1
fi

# 检查词库文件格式
if ! jq . locals.js >/dev/null 2>&1; then
  echo "❌ Invalid JSON format in locals.js"
  exit 1
fi

echo "✅ Pre-commit checks passed"

2. 完整工作流程

mermaid

实际应用与常见问题解决

1. 钩子不执行的排查步骤

如果提交时未触发测试,可能原因包括:

  • 钩子文件没有可执行权限:

    chmod +x .git/hooks/pre-commit
    
  • 使用了--no-verify参数跳过钩子:

    git commit --no-verify  # 应避免使用此参数
    

2. 测试脚本优化建议

  • 增量测试:只检查修改过的词条
  • 集成preview/目录中的截图进行视觉对比
  • 添加自动修复功能(如自动修正简单的繁简转换错误)

总结与进阶方向

通过本文介绍的方法,我们实现了翻译测试的自动化和提交前的自动验证,有效降低了翻译错误率。后续可以从以下方向进一步优化:

  1. 将测试集成到CI流程,使用script/ci_commit_with_signature.sh实现自动签名提交
  2. 开发交互式翻译辅助工具,可视化展示翻译覆盖范围
  3. 引入AI辅助翻译,自动生成候选词条并标记需要人工审核的内容

希望本文能帮助你构建更可靠的GitHub中文化插件维护流程。如有疑问,欢迎通过项目README.md中的反馈渠道提交issue。

如果你觉得本文有用,请点赞、收藏并关注项目更新,下期将介绍如何利用GitHub Actions实现翻译词条的自动更新。

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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值