2010/05/09 - WPFのローカライズ

WPFのローカリゼーション。どうもMS的にはLocBamlを使う方法を推奨している感じがするが,リソースDLLをビルドしてからバイナリを編集するというのはちょっと気持ち悪い。ということでresxを使うことに。これで合ってるか分からないけどとりあえず最小限のやり方。

  • 最初から入っているResources.resxと同じようにResources.ja-JP.resxを作成し,Propertiesに入れておく。
  • 英語と日本語で同じNameのリソースを作成。
  • .csファイルからはProperties.Resources.XXXで参照する。
  • .xamlファイルからは「xmlns:s="clr-namespace:project.Properties"」のようにネームスペースを参照しておき,{x:Static s:Resources.XXX}として参照する。

なおこれだと言語はOSの表示言語に従うことになる。切り替えたい場合はThread.CurrentThread.CurrentUICultureで切り替えればいいはず。試してないけど。


ここまで作成したものをXPで試してみたが,xmlparseでエラーが発生し,起動できなかった。しばらく調べてみたが原因不明。まあXPは対象外にする予定だからまあいいか。

コメントする