J'ai programmé une option de langue choisie dans mon projet, en utilisant MergedDictionaries et les paramètres du projet. Le problème est la langue change avec succès seulement dans ma MainWindow, et aussi bien dans d'autres Windows. Qu'est-ce que je fais mal?
Set langue func dans MainWindow (edit: MainWindow.cs):WPF - Changement de langue uniquement dans MainWindow?
/*set language*/
private void SetLanguageDictionary()
{
ResourceDictionary dict = new ResourceDictionary();
if (Properties.Settings.Default.Language.Equals("en")) //english was set
{
dict.Source = new Uri("\\res\\enDictionary.xaml", UriKind.Relative);
}
else //otherwise - hebrew as default lang.
{
dict.Source = new Uri("\\res\\hebDictionary.xaml", UriKind.Relative);
}
//add required dictionary to the MergedDictionaries
Resources.MergedDictionaries.Add(dict);
}
Un petit exemple de l'un des dictionnaires [ils sont fixés de manière symétrique, si elle compte]:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:UI_WPF"
xmlns:system="clr-namespace:System;assembly=mscorlib">
<system:String x:Key="employees">Employees</system:String>
<system:String x:Key="employers">Employers</system:String>
<system:String x:Key="contracts">Contracts</system:String> </ResourceDictionary>
il n'y a pas assez d'informations, si le dictionnaire n'est pas ajouté son impossible de l'utiliser. cela signifie quelque part que vous fusionnez le dictionnaire anglais qui cause ce problème. –