かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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

ユニバーサルアプリで、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アプリえ同じ方法が使えます。とてもいいですね。