画像をローカライズするテスト
AppHubに「画像のローカライズしたいんだけど」って質問があったので、方法を考えてみました。
アプリを国際化する
まずは、先人のノウハウをもとにアプリを国際化します。
参考 覚え書き:Windows Phoneアプリをローカライズする
http://darutk-oboegaki.blogspot.jp/2011/06/windows-phone_10.html
画像をローカライズする
言語環境ごとに画像をローカライズする方法を考えます。
- 言語リソースに画像を追加する
- ImageのUriを言語リソースに登録し、それをBindingで参照する
- 言語設定を取得し、コードビハインドからImageのSourceにセットする
1は試してみたところ、System.Drawing.Bitmap名前空間がWPでは使えないため×っぽいです。
3は確実に出来るのでいいのですが、画像ごとに処理を記述するのは面倒です。
というわけで、今回は2を試してみます。
まず、こんな感じでローカライズする画像を追加します。
次に、言語リソースに文字列として、
名前:TopImageUri
値:Images/other/other.png
というように、対応言語ごとに表示したい画像のUriを同じ名前で登録します。
<Image Source="{Binding Source={StaticResource AppResourcesProvider}, Path=AppResources.TopImageUri}"/>
そうすると、
英語環境
日本語(英語以外)環境
と、このように画像が環境によって変わりました。
が、デザイン画面ではこのように画像が表示されません。
これは困るのでちょっと良い方法がないか検討してみます&あったら教えてください。