在 GitLab Linux 服务器上进行汉化,主要有两种方式:使用第三方汉化包(推荐) 和 修改浏览器语言设置(官方支持,但可能不完全)。
由于 GitLab 官方目前没有提供完整的中文语言包(部分版本可能只有零星翻译),如果你想实现后台界面的全面汉化,通常需要使用社区维护的汉化包(如 larryli 或 kaixuan 维护的版本)。
以下是基于 GitLab 社区版 (Omnibus 安装方式) 的详细汉化步骤。
这是最常用的方法,通过替换 GitLab 的源代码文件来实现汉化。
首先,你需要确认当前安装的 GitLab 版本号,以便下载对应版本的汉化包。
cat /opt/gitlab/version-manifest.txt | head -n 1
# 或者
gitlab-rake gitlab:env:info
记下版本号,例如 16.5.1。
在替换文件之前,必须先停止 GitLab 的服务,否则文件会被占用或覆盖失败。
sudo gitlab-ctl stop
目前社区比较活跃且维护较新的汉化仓库是 kaixuan 的分支(原 larryli 停止维护较久,版本较老)。
注意: 请务必选择与你的 GitLab 版本完全一致的汉化包分支。
# 克隆汉化仓库
git clone https://gitlab.com/xhang/gitlab.git
# 进入目录
cd gitlab
# 查看可用的分支(通常分支名就是版本号)
git branch -a
# 切换到与你的版本一致的汉化分支(例如 16-5-stable)
git checkout 16-5-stable
如果找不到完全一致的版本,请选择最接近的版本,但可能会有部分差异。
汉化包通常是一个完整的 GitLab 源码副本,我们需要用 diff 生成补丁,然后应用到系统中。
# 生成 English 和 Chinese 的补丁文件
# 注意:这里比较的是汉化仓库和原始仓库的区别
git diff origin/16-5-stable origin/16-5-stable-zh > /tmp/16.5.1-zh.diff
如果上面的命令报错,通常是因为仓库结构不同。更稳妥的方法是直接覆盖文件(见下方备选方案)。
备选方案(直接覆盖,更常用):
# 进入汉化包目录
cd /path/to/your/downloaded/gitlab
# 通常汉化包目录里有一个 locale 文件夹,或者你需要直接替换 /opt/gitlab/embedded/service/gitlab-rails 下的文件
# 警告:直接覆盖有风险,建议先备份原文件
# 备份原文件
sudo cp -r /opt/gitlab/embedded/service/gitlab-rails{,.bak}
# 复制汉化文件(假设汉化包的结构与安装目录一致,或者你只替换 locale 文件夹)
# 通常汉化包作者会提供详细的覆盖说明,请参考其 README
# 常见做法是替换 app/assets/locales 和 config/locales
sudo cp -rf ./app /opt/gitlab/embedded/service/gitlab-rails/
sudo cp -rf ./config /opt/gitlab/embedded/service/gitlab-rails/
sudo cp -rf ./lib /opt/gitlab/embedded/service/gitlab-rails/
应用完补丁后,需要重新编译 assets 并启动服务。
# 重新配置
sudo gitlab-ctl reconfigure
# 启动服务
sudo gitlab-ctl start
访问你的 GitLab 页面,如果汉化成功,界面应该已经变成中文。如果还是英文,请尝试清除浏览器缓存。
如果你是用 Docker 部署的 GitLab,最简单的方法是直接使用别人打包好的汉化版 Docker 镜像。
docker pull twang2218/gitlab-ce-zh
然后使用这个镜像启动容器即可。
GitLab 在某些新版本中开始支持国际化(i18n),虽然翻译不全,但可以通过浏览器语言偏好来切换。
缺点: 翻译覆盖率很低,大部分内容依然是英文。
/opt/gitlab/embedded/service/gitlab-rails 目录,或者最好对整个服务器做快照。gitlab-ctl tail 日志排查错误。对于 Linux 服务器上的 GitLab,方法一(第三方汉化补丁) 是目前唯一能实现全中文界面的方法。操作时请务必注意版本对应和数据备份。