複数の言語をサポートするためにWPFアプリケーションをローカライズした方法と、その中で役立つリソースに関する経験を共有してください。
フィードバックをありがとうございます。
複数の言語をサポートするためにWPFアプリケーションをローカライズした方法と、その中で役立つリソースに関する経験を共有してください。
フィードバックをありがとうございます。
この WPF アプリケーションでは、すべての文字列がリソースとしてローカライズされResourceDictionary
、言語にちなんで名付けられた .xaml ファイル (en-US.xaml、ja-JP.xaml など) に配置されます。
たとえば、アプリケーションのどこかで、ボタンは次のようになります。
<Button Content="{StaticResource Strings.FooDialog.BarButtonText}"/>
ResourceDictionary
異なる言語のそれぞれには、そのバージョンが含まれます。
<sys:String x:Key="Strings.FooDialog.BarButtonText">Bar!</sys:String>
は、実行時に次のようResourceDictionary
に動的に接続さApplication.Resources
れます。
private static void LoadLocalizedStrings(CultureInfo uiCulture)
{
ResourceDictionary stringsResourceDictionary = new ResourceDictionary();
stringsResourceDictionary.Source = new Uri(@"pack://application:,,,/Resources/Strings/" + uiCulture.Name + ".xaml");
Application.Current.Resources.MergedDictionaries.Add(stringsResourceDictionary);
}
あいまいな場合は申し訳ありませんが(上記の質問)、基本的には、アプリケーションにどのように実装し、何が最善の方法であると感じたかについてです。基本的には、シナリオを理解することです。
ResourceDictionary を使用して、WPF アプリケーションを正常にローカライズしました。私が使用した方法では、言語の動的な変更、簡単な翻訳、設計時のサポート、さらには部分的な翻訳も可能です。私は自分の仕事をhttp://www.geektieguy.com/2006/12/12/localizing-an-xbap-application-without-using-locbaml/に基づいています
私の取り組みの一部は、ResourceDictionary Source Binding to Module (for Localization)で確認できます。