するには、アプリに複数の文字列リソースを持たせ、言語によって文字列リソースを切り替えればよい。Insider.NET連載目次はこちら前回のTIPSで文字列リソースの使い方を説明した。Metroスタイル・アプリ)を多言語化対応させる方法を説明する。2012)が必要である。これらを準備するには、第1回のTIPSを参考にしてほしい。Expressを使用している。●既定の言語とは?多言語化の方法を解説する前に、「既定の言語」について説明しておく。Windowsストア・アプリの「既定の言語」とは、OSから要求された言語をアプリが持っていないときに使われる言語である。2012のアプリケーション・マニフェスト・エディタで設定する(設定の保存先は、.csproj/.vbprojファイル)。UI]タブ上から3番目に[既定の言語]が見える。8では、使用する言語とその優先順位を次の画像のようにコントロール・パネルから設定する。[言語の設定の変更]ダイアログコントロール・パネルの[時計、言語、および地域]−「言語」で開く。この画像の例では、OSはアプリに対してまず日本語で表示するよう要求する。States)」)を、と順番に要求していく。どの要求にも応えられなかった場合、つまり、上の画像のダイアログで設定した言語の中にアプリが持っている言語が1つもなかった場合に、アプリは既定の言語で表示するのだ。お分かりだと思うが、OSが日本語でも英語でもないときに表示されるものなのだから、「英語(en-US)」にしておくのが一般的だろう。●複数の文字列リソースを定義するには?前回のTIPSでは、文字列リソースのファイル(ファイル名は「Resources.resw」)を1つだけ適当な場所に置いた。多言語化対応するには、言語との結び付きを明示して複数のファイルを配置する。一般的には、言語名のフォルダを作ってそれぞれにResources.reswファイルを置く。「ja-JP」フォルダを作って、そこに既存のResources.reswファイルを移動させる。次に、ほかの言語用のフォルダを作って、Resources.reswファイルをコピーするとよいだろう。次の画像は、「日本語(ja-JP)」「英語(en-US)」「フランス語(fr-FR)」を用意した状態である。3カ国語用の文字列リソースを用意した(ソリューション・エクスプローラ)そうしたら、ほかの言語用のResources.reswファイルを翻訳する。文字列リソースを追加/変更したときは、全てのResources.reswファイルの修正を忘れないように気を付けてほしい。●言語別のフォルダを作らずに多言語化対応するには?フォルダを分けずにファイル名で分けることも可能だ。次の画像のように「Resources.lang-ja-JP.resw」などと言語の識別子をファイル名に含めればよい。それには、前回のTIPSで説明した「ms-resource:」プロトコルを使う。冒頭に載せたアプリケーション・マニフェスト・エディタの画像の中の[表示名]欄を見てほしい。UI]の[表示名]と、[パッケージ化]の[パッケージ表示名]は必須である。●テストするには?以上のようにして複数言語の文字列リソースを用意するだけで対応は完了だ。コードの修正は必要ない。前述したコントロール・パネルの[言語の設定の変更]で、言語の優先順位を変更してからデバッグ実行する。シミュレータなら、いったん終了させることでタイルにもすぐに反映させられる。前回のTIPSで作ったアプリで、コードは変更することなく文字列リソースだけを修正して試してみよう。次の画像は、最優先言語が「日本語」の場合である。最優先言語を「日本語」にして実行した画面アプリをいったん終了させ、「英語」を1番上にしてから実行すると、次のように英語のリソースで表示される。Kit)を使うとよい。[検証するアプリの選択]画面で、アプリに定義されている言語が表示される(次の画像)。WACKの[検証するアプリの選択]画面アプリに定義されている言語が表示されている。ここに表示されているのは、アプリが対応していると宣言している言語である。その言語のリソースが実際に実装されているかどうかではない。実装した覚えのない言語がここに出現したときは、言語を明示することを試してほしい。●言語を明示的に設定するには?例えば、アプリに3カ国語の文字列リソースを用意したが、次のリリースでは2カ国語にとどめておきたいとしよう。不要なResources.reswファイルを削除してもよいが、アプリケーション・マニフェスト・ファイルを編集して設定することも可能だ。2012のアプリケーション・マニフェスト・エディタが対応していないので、「メモ帳」などのテキスト・エディタを使ってPackage.appxmanifestファイルを開く。すると次のような記述が見つかるはずだ。Language="x-generate"/></Resources>修正前のPackage.appxmanifestファイル内の言語指定(テキスト・エディタ)デフォルトは「x-generate」(=生成された文字列リソース全部)となっている。ここを、例えば英語と日本語だけとするには、次のように書き換える。Language="en-US"/></Resources>修正後のPackage.appxmanifestファイル内の言語指定(テキスト・エディタ)対応言語を、日本語と英語であると明示した。Resources.reswファイルは3カ国語とも残したままでビルドして、WACKで確認してみよう。次の画像のように、上で設定した2カ国語だけとなっているはずだ。WACKの[検証するアプリの選択]画面マニフェストに指定した2カ国語だけになっている。●まとめ多言語化するには、言語ごとにResources.reswファイルを用意すればよい。8でも、ほかの言語での表示をチェックすることは可能だ。ストアに提出する前には、アプリの対応言語をWACKでチェックしておこう。次のドキュメントが参考になる。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。