前回のエントリーで、WPF アプリの国際化 (多言語対応) と、動的な言語切り替えの実装例について解説しました。 続いて、多言語化対象となるリソースを、翻訳プラットフォーム Transifex を活用して翻訳・管理する例を紹介します。
「提督業も忙しい!」を例にしていますが、Transifex で管理するようになって日が浅いので、今回は導入まで、特に既存のリソースを Transifex に投入する部分までとします。 導入編、もしくは移行編です。 実際に運用してから判ったことなどは、後日共有させて頂きたく。
実際に作成した Transifex 上のプロジェクトはこちら。 https://www.transifex.com/projects/p/kancolleviewer/
プロジェクトの作成
Transifex は有償サービスですが、OSS プロジェクトであれば無償で利用できます。 そこで「提督業も忙しい!」は、Transifex で多言語リソースの翻訳・管理をすることにしました。
まず、Transifex で新しいプロジェクトを作成します。(以降、画像クリックで拡大)
ダッシュボードの左ペインから、[新規プロジェクト] ボタンを押します。 こんな感じに入力しました。
翻訳元を日本語、翻訳する言語に英語・中国語・韓国語を指定してみます (既にリソースがある言語なので…)。
こんな感じのプロジェクトが作成されました。
リソースの追加
次に、翻訳対象となるリソースを追加します。
リソース タブからリソース画面に移ると、こんな表示に。まだリソースは何もありません。
[新規リソースを追加] ボタンから、リソースを追加します。
ここで、前回のエントリーでも解説した Resources.resx ファイルを指定しましょう。 プロジェクト作成時に「翻訳元言語」で日本語を指定したので、この Resources.resx は日本語の文字列が含まれている必要があります。
Resources.resx ファイルを指定すると、ファイル形式は自動的に「.NET Resource Files (.resx, .aspx)」が選択されます。
ご参考までに、この Resources.resx の中身 (例)。
リソースを作成すると、こんな感じに。 翻訳元である日本語リソースが 100 % 作成された状態で、他は 0 % です。
この状態で各言語の文字列を web で参照すると、当然ながらリソースが翻訳されていない状態で出てきます。
今回は既に翻訳されたリソースがあるので、それをアップロードして埋めてみましょう。 各言語のメニューにある [ファイルのアップロード] リンクから、その言語でローカライズされた .resx ファイルを指定します。
翻訳できました。 98 % になっているのは、日本語 (Resources.resx) で先行して追加されたリソースがあるためです。
個々のリソースを翻訳する場合は、各言語のメニューから [翻訳する] ボタンで。 「提督業も忙しい!」では、実際にこの画面から翻訳する運用に至っていないので、詳細は後日、ということで…
翻訳されたリソースのダウンロード
さて、翻訳が済んだリソースをプロジェクトにどう適用するか、というと、各言語のメニューに「利用のためにダウンロード」というリンクがあります。 クリックすると、.resx がダウンロードされます。
中身は普通の .resx ファイルですので、これを Resources.<カルチャ名>.resx にリネームしてプロジェクトに入れてやれば、ローカライズ完了です。 (いちいちリネームしたりするのがちょっと面倒なので、何とかしたいかも…)
おわりに
ということで、「提督業も忙しい!」の開発で実施した .resx 管理の Transifex への移行、でした。 まだ Transifex にリソースを移しただけです。 これから、リソースの翻訳や言語の追加、などの運用していきたいです。
https://www.transifex.com/projects/p/kancolleviewer/
うまくいったら、また何か書きます。