日本語化パッチ作りました。
2014/7/5現在、GitLab最新バージョン7.0.0まで対応してあります。
GitLabについて
GitHubクローンの中でも有名な「GitLab」ですが、開発速度が非常に速く、機能も充実しています。
「GitHubだとソースコードを外に置くことになるNG…でもGitHubのようなワークフローで仕事をしたい」という場合に非常に便利です。
ですが、このGitLab、開発スピードを重視しているので英語のみで開発されています。
(i18n対応がissueに上がっていたものも見かけましたが、上記理由でdeclineされていました)
「チームには英語だと抵抗のあるメンバーもいるし、日本語で使いたい…だったら作ろう」と思い立って、日本語化パッチを作りました。
GitLabの導入、パッチの適用方法、簡単に試してみる方法、等々がこの記事の内容です。
GitLabの導入
導入は数年前に比べて遥かに簡単になっています。
Ubuntu, CentOS, Debianなら以下からパッケージをダウンロードしてインストールし、コマンドをいくつか叩くだけで使えるようになります。
https://www.gitlab.com/downloads/
(詳細は上記ページに書いてあります)
GitLab日本語化パッチの適用
ここから最新のリリースを取得してきます。
https://github.com/ksoichiro/gitlab-i18n-patch
patches/[GitLabバージョン]/app_ja.patchがパッチです。
例えばホームディレクトリにパッチファイルを配置した場合、以下で適用します。
$ cd /opt/gitlab/embedded/service/gitlab-rails
$ patch -p1 < ~/app_ja.patch
JavaScriptファイルを変更するため、パッチ適用後にプリコンパイルされたファイルを一度削除してプリコンパイルし直してください。
例:
$ cd /opt/gitlab/embedded/service/gitlab-rails
$ rm -rf public/assets
$ export PATH=/opt/gitlab/embedded/bin:$PATH
$ bundle exec rake assets:precompile RAILS_ENV=production
この辺りの手順は変わるかもしれませんので、
実際に試す場合は上記リポジトリのREADMEもご参照ください。
Vagrantで試す
いきなりGitLab用のサーバを用意して導入する、というのも難しいと思いますので、Vagrantで試せるようにしてあります。
上記パッチのプロジェクトをダウンロードorクローンしてきた上で、
以下のようにするとローカルでGitLabが立ち上がります。
(VirtualBoxとVagrantはインストールしておいてください)
$ cd gitlab-i18n-patch/
$ vagrant up v700
セットアップはこんな感じで出力されます。
$ vagrant up v700
Bringing machine 'v700' up with 'virtualbox' provider...
==> v700: Importing base box 'precise64'...
==> v700: Matching MAC address for NAT networking...
:
(中略)
:
Provisioning GitLab v7.0.0...
Installing gitlab...
Reconfiguring gitlab...
Updating apt-get...
Installing patch...
Creating backup of gitlab-rails...
Applying patch...
Refreshing assets (this may take minutes)...
Restarting gitlab...
Done!
GitLab v7.0.0 has been installed: http://localhost:9700/
上記でセットアップが終わった後、http://localhost:9700/ でアクセスできます。
他のバージョンを試す場合は、ポート番号を9000 + バージョンから'.'を取った値
に読み替えてください。
セットアップ直後はGitLabの管理ユーザでログインできます。
ユーザ名はroot
(もしくはadmin@local.host
)、初期パスワードは5iveL!fe
です。
VMのチューニングなど
現状、VirtualBoxでメモリを1GB、CPUを2で割り当てています。
メモリが足りないor使い過ぎ、等の場合はVagrantfile
の以下の部分を修正してください。
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 2
end
注意点など
- 利用される場合は自己責任でお願いします
- 日本語化できていない部分もあります
- 訳がおかしい部分があればご指摘いただけると幸いです
おまけ:パッチの内容と成り立ちについて
Ruby on Railsで作られているので、そのi18nなどの仕組みに乗っかれれば良かったのですが、国際化対応しない方針ということもありGitLabそのものがそういう作りになっていません。
作り込んでも良いですが、あまり本体からロジック的に変えてしまうとバージョンアップに追随していけなくなる、と判断し直接ソースコード中の英語を書き換える方法を採っています。
(実際、3月頃に6.6.4をベースに開始して以来、すでに7回もパッチをアップデートさせています)
最初に取り組んだのがv6.6.4でしたので、これをベースにGitLab-CEをフォークしたリポジトリに日本語化ブランチを作り、以降のバージョンアップではこの日本語化ブランチにアップデートをマージし、コンフリクトを手動で解消していく、という地道な作業からできあがっています。
(一度に100ファイル以上コンフリクトすることも…)