UWP アプリのローカライズをしよう (後編)
UWP アプリの国際化対応に便利なツールを紹介します。前編はこちらから。
よくわたしが使う二つのツールを紹介しますが,これらを使った場合はビルドする環境すべてにインストールしておく必要があるので注意してください。
プロジェクト構成
デフォルト言語en-US
で,これに日本語リソースを追加していきます。
ResW File Code Generator
コード内からリソース文字列を参照するにはResourceLoader
を使う必要がありました。たとえばこういう感じ。
var r = ResourceLoader.GetForCurrentView();
TextBlock1.Text = r.GetString("Greeting");
実に面倒ですし,typoによる見つけにくい間違いも起きそうです。そこでこちらのツール,ResW File Code Generator
をお勧めしたいです。
vsixパッケージをインストールし,reswファイルのプロパティからカスタムツールに設定します。設定するのはデフォルト言語のリソースファイルだけでかまいません。
ファイル名と同じクラスが,指定した名前空間以下に自動生成されるようになります。
生成されたコードを見るとResourceLoader
を呼んでラップしているだけですが,get-onlyプロパティにしてくれるため,リソース名を変更したときにきちんとエラーになりますし,インテリセンスも効きます。しかもコメント付き。
日本語が入っていると化けますので,英語リソースに設定しておくと大変捗ります。
Multilingual App Toolkit
リソースファイルを各言語間で同期していくのはかなり大変な作業になります。言語が増えればなおさらです。そんなときにこちらのツールキット。
visualstudiogallery.msdn.microsoft.com
インストール後,ツールメニューからプロジェクトに対して有効にします。
次に言語を選択します。本来は疑似言語のリソースを作っておいて,これに英語や日本語を追加していくのがまっとうな使い方のようですが,デフォルト言語en-US
に対して日本語を追加していくことにします。
ダイアログで,ja-JP
を検索してチェックマークを入れ,OKをクリックします。このとき,すでに存在するja-JP
以下のファイルはダミーのものに置き換えられますので注意してください。今後,置き換えられたダミーファイルをいじる必要はありません。
ではさっそく,追加されたApp3.ja-JP.xlf
をダブルクリックしてエディタを開きます。ここでローカライズを行っていくことになります。
新しいリソースをen-US
に追加した後に,このエディタを開くと新しいエントリが増えています。
翻訳を追加して保存すると,ビルド時にツールキットがリソースファイルを生成してくれます。
まとめ
国際化対応の際に便利なツールを紹介しましたが,これらは自動生成を行うツールのため,ビルドする環境にインストールされていない場合はビルドすらできません。
その点がクリアできれば大変便利に国際化対応を行っていくことができます。ぜひ試してみてください。