Come si può localizzare un'applicazione WPF utilizzando il modello MVVM? Voglio davvero farlo nel modo "giusto".MVVM conforma localizzazione nelle applicazioni WPF
Il mio approccio attuale è che utilizzo i file di risorse .resx per localizzare la mia applicazione.
li ho incluso nel mio codice XAML
xmlns:localization="clr-namespace:ClientLibTestTool.ViewLanguages"
e accedervi in questo modo:
<Button x:Name="BtnGenerate"
Content="{x:Static localization:localization.ButtonGenerate}"/>
Le mie domande:
- C'è un modo migliore per farlo?
- Come posso testare le diverse lingue (caricare l'applicazione con impostazioni di lingua diverse)?
- È possibile modificare la lingua in fase di esecuzione?
Risposte:
Domanda 1:
Domanda 2: (Grazie, Stijn)
public MainWindow()
{
// Debug Settings
localization.Culture = CultureInfo.GetCultureInfo("en-US");
// localization.Culture = CultureInfo.GetCultureInfo("de-DE");
this.InitializeComponent();
}
Domanda 3: (Grazie, Stijn)
Nondavvero , è necessario ridisegnare la finestra completa.
Nota: questa riga di codice deve essere eseguita PRIMA del InitializeComponent(); Method. Altrimenti non funzionerà – Joel
Questo è quello che intendevo con l'ultima frase, funzionerà ancora ma solo per il componente nts che fanno riferimento di nuovo. È possibile aggirare questo problema non utilizzando le stringhe di risorse in xaml, ma piuttosto associare a proprietà osservabili che contengono il valore della risorsa e generare un evento PropertyChanged ogni volta che questo cambia. – stijn