MVVM Kalıbı'nı kullanarak bir WPF Uygulamasını nasıl yerelleştirebilirim? Bunu gerçekten "doğru" şekilde yapmak istiyorum.MVVM, WPF Uygulamalarında yerelleştirmeye uyuyor
Geçerli yaklaşımım, uygulamanızı yerelleştirmek için .resx Resource dosyalarını kullanıyorum.
benim xaml kodu
xmlns:localization="clr-namespace:ClientLibTestTool.ViewLanguages"
onları dahil ve bunun gibi bunlara erişmek:
<Button x:Name="BtnGenerate"
Content="{x:Static localization:localization.ButtonGenerate}"/>
Sorularım:
- orada mı Bunu yapmanın daha iyi yolu?
- Farklı dilleri nasıl test edebilirim (farklı dil ayarlarıyla yükleme uygulaması)?
- Çalışma zamanında dili değiştirmek mümkün mü?
Yanıtlar:
Soru 1:
Soru 2:
public MainWindow()
{
// Debug Settings
localization.Culture = CultureInfo.GetCultureInfo("en-US");
// localization.Culture = CultureInfo.GetCultureInfo("de-DE");
this.InitializeComponent();
}
Soru 3 (stijn teşekkürler):
Değil (Stijn teşekkür ederim) gerçekten tüm pencereyi yeniden çizmek gereklidir.
Açıklama: bu kod satırı ÖNCE InitializeComponent(); Yöntem: Aksi halde işe yaramaz – Joel
Son cümlede kastettiğim şey budur, hala çalışır ancak yalnızca compone için tekrar referans veren nts. Bunu, kaynak dizelerini xaml kullanarak değil, bunun yerine kaynak değerini içeren ve bu değişiklik olduğunda PropertyChanged olayını tetikleyen gözlenebilir özelliklere bağlayarak alabilirsiniz. – stijn