アプリケーション世界デビュー 多言語対応 適応編
#wp7dev_jp #wdev_jp
準備編での準備が終わったら、いよいよ実装です。
定義を作り、XAML 内やコードの中で使用する方法です。
【1】 リソースファイルに定義を追加(対応言語数必要)
作成したリソースファイルに各言語ごとの定義を追加します。その際に(定義用の)名前は同じものを指定します。
【2】 XAMLの文字列リソースに適応する
以下のようなXAMLがあった場合に、Textの内容を定義したリソースに変更します。
<TextBlock Text="アプリ名" />
Binding の定義で、Source に指定しているのは準備編の【4】で定義したプロパティ=【5】で指定したプロパティで、Path に上記で定義したプロパティを記載します。
<TextBlock
Text="{Binding Source={StaticResource LocRes}, Path=LocRes.appname}" />
プロパティウインドウで指定する場合
Visual Studio のプロパティでも定義できます。Text プロパティの右のアイコンを押して、「データバインドの適応」を選択します。
初めに、ソースを選択します。StaticResource → Application。Resource → LocRes を選択。
続けて、パスの設定です。LockRes → appname と指定します。
こうして、同じように定義されます。
<TextBlock
Text="{Binding Source={StaticResource LocRes}, Path=LocRes.appname}" />
【3】 C#でテキストリソースとして使う
C#のコード側は簡単です。使われるのは、準備編の【4】で Public 定義されたプロパティ StringResources です。
PageTitle.Text = StringResources.appname;
【4】 注意
アプリケーションバーは、OSの持ち物のため、単純にバインドできません。ですから、上記の方法を使ってコードで実装する必要があります。