かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

ユニバーサルアプリで国際化対応

ユニバーサルアプリで、Sharedプロジェクトで共有可能なのはC#やXAMLだけではありません。リソースも共有できます。Stringsフォルダにja-JPというフォルダとen-USというフォルダを作って、その中にResources.reswというファイルを作ります。

  • Hoge.Shared
    • en-US
      • Resources.resw ← ここに英語リソース
    • ja-JP
      • Resources.resw ← ここに日本語リソース

つまり、Windows ストアアプリと同じ構成にすればOKなんです。リソースの値をプログラムから取得する方法とコントロールに設定する方法も、Windows ストアアプリと同じ要領でいけます。

電話で動作確認

リソースを用意してタイトル部分のTextBlockにx:Uidを設定して実行してみました。Windows Phoneのエミュレータは完全に独立してるので言語切り替えしても、ホストのマシンの再起動いらないので楽ちんです。

英語

f:id:okazuki:20140407231436j:plain

日本語

f:id:okazuki:20140407231621j:plain

まとめ

ローカライズの方法も、Windows ストア アプリとWindows Phoneアプリえ同じ方法が使えます。とてもいいですね。