私は最初のアプリを開発していて、それを多言語にしようとしています。AppHubの例
と他のリンクを
使用して、リソースファイルを作成し、コンポーネントのバインディング文字列を修正して、設定ページを設定しました。
私が抱えていた最初の問題は、メニュー項目とappbarボタンがローカリゼーション文字列を使用できないことでした(プロジェクトは起動時に文句を言いました)ので、私は次のことをしました:
- ローカライズされた文字列でバインドされたTextBlocksおよびその他のコンポーネント
- ローカライズされた文字列をロードする手順を使用して手動でローカライズされたAppbarボタンとアイテム
設定ページができたので、ユーザーが変更できる項目の1つは言語です。
さて、ユーザーの選択に応じて正しいCultureInfoが選択され、次に使用します
Thread.CurrentThread.CurrentUICulture = Settings.Language;
戻るボタンを押してメインページに戻ると、appbarアイテムは正しくローカライズされていますが、他のすべてはローカライズされていません。
唯一の回避策(私が本当に好きではない、それはただ理解することです)はこれです:
public MainPage()
{
Thread.CurrentThread.CurrentUICulture = Settings.Language;
InitializeComponent();
// Everything else I need here
}
そのため、コンポーネントを作成する前に言語を設定して機能させる必要があります。
どうしたの?バインドされた文字列を使用して言語を変更した後にページを更新する正しい方法はどれですか?
基本的にリンクで提供されているものを使用したので、多くのコードを入れませんでしたが、さらに情報が必要な場合は、質問を編集します。