あなたの特定のケースでは、コンバーターのリソース ファイルから文字列を取り出すと、.Net が提供するローカリゼーションが機能します。これはおそらく、文字列を構築する場合により重要であり、構築する順序は言語によって変わる可能性があります。
標準的な方法でリソース ファイルを作成します。"MyResource.resx" を使用して、既定の言語の文字列を保存します。次に、"MyResource.Fr-fr.resx" という名前のローカライズ バージョンを作成できます (フランス語を使用している場合)。 . これは、文字列の最初のインスタンスで自動的に読み込まれ、検索されます。見つからない場合、コードはデフォルトのリソース ファイルから文字列を取り出します。この方法では、すべてを翻訳する必要はありません。US と GB のスペルの違いに役立ちます。
一般に、これを取得すると、XAML にローカライズされた文字列を含めることができます
ローカライズ クラスを追加します。
public class Localize : INotifyPropertyChanged
{
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyChange(String name)
{
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(name));
}
#endregion
#region 'Public Properties'
//Declarations
private static Resources.MyResources _myResources = new Resources.MyResources();
public Resources.MyResources myResources
{
get { return _myResources; }
set { NotifyChange("MyResources"); }
}
#endregion
}
次に、XAML でこれをユーザー コントロールのリソースに追加します。
<local:Localize x:Key="myResource"
xmlns:local="clr-namespace:MyProject" />
次に、それを使用できます。
<TextBlock Text="{Binding myResource.MyString, Source={StaticResource myResource}}"/>