チームで gettext の翻訳ファイルを作る必要がでてきたのでやり方を考えた git で管理しようと思ったがコンフリクトが面倒だったので crowdin を利用した。
gettext とは
GUN プロジェクトの i18n ライブラリ .po とコンパイルされた.mo で構成されている
.po はmsgid ""
とmsgstr ""
の組み合わせで構成されている翻訳ファイル
.mo は.po をコンパイルして作るバイナリファイル
git で複数人で翻訳作業するとコンフリクトがすこぶるめんどくさい
はじめは git で管理しようと思っていたのだが、どの範囲を翻訳するかと言った取り決めをしないとコンフリクトしたり、同じ行を翻訳した場合上書きされてしまうといったことが発生してめんどくさかった
ローカライゼーションマネジメントプラットフォームを利用する
雰囲気としては翻訳用の github のようなもので、「どこ」を「いつ」、「だれが」書き換えたか明確になる、コンフリクトした場合もどちらかを選択できる
選ばなかったほうも消えることなく管理できる。今回は今使っていた po ファイルのエディタのpoedit
と連携が取れたcrowdin
を選択した。
crowdin の所感
crowdin を導入してよかった点
- 無料プランがあり、無料プランでも1つ private プロジェクトが作ることが出来る
- 機械翻訳結果がオススメにでてくるのでとりあえず翻訳できる
- 翻訳レポートが見れるのでモチベにつながる
- poedit を使って直接編集できる
- API が用意されていてビルドやテスト環境への反映がやりやすい
- コンフリクトを気にしなくてよくなり、スキマ時間にすこしずつ進めやすい
crowdin を使うにあたっての不満
- サービスサイトがとても重いことが頻繁にある
- gettext の場合、
Language-Team:
,Language:
の情報を勝手に書き換える
所感として今の所、利点しかない、サービスサイトが重くて繋がらないことが頻繁にあるのは困るが、今の所ヘビーユースしていないので気にならない(無料で使えているのでそこに文句は言えない) 情報を勝手に書き換えるのは少し困った問題で、原状の対応は強制的に書き換えているが、なにか手はあるのだろうか…
参考
おしまい