WPF Aplikacja wielojezyczna

0

Witam,

Jestem zielony. Dopiero zaczynam swoją przygodę z C#, WPF itd. Nie mam pojęcia jak to zrobić.
Konkretnie chodzi mi o aplikację która mając szablon w xaml tekst etykiet zmieniał się w zależności od wybranego języka:

doszedłem do takiego etapu, że używam takiego wpisu:

 <Label x:Name="lbNazwa" Content="{StaticResource LB_NAME_STRING}" /> 

gdzie

LB_NAME_STRING jest zapisany w oddzielnym pliku <ResourceDirectory>

 <System:String x:Key="LB_NAME_STRING" >Nazwisko i imię lub nazwa firmy</System:String>

są 3 pliki polski, niemiecki, angielski.

wszystkie 3 zawierają ten sam klucz i własne tłumaczenie opcji. Ale nie mogę skapować jak to zamieniać przy wyborze języka?

A jeżeli to nie będzie za dużo oczekiwań to pytanie pomocnicze czy taki plik <ResourceDirectory>:
czy można wykorzystać w kodzie C# a jeżeli tak to jak to zrobić ?

procedure zmien(Language lng)
{
    switch (lng)
    {
        1: lbNazwa.Content = **LB_NAME_STRING**; break;  // po polsku //
        2: lbNazwa.Content = **LB_NAME_STRING**; break;  // po angielsku //
        3: lbNazwa.Content = **LB_NAME_STRING**; break;  // po niemiecku //
   }
}

chyba że to można zrobić jakoś inaczej.
Proszę o jakąś podpowiedź

Pozdrowienia dla wszystkich

0

Bardzo dziękuje. To jest dobry opis.

0

Witam ponownie,

Mam jednak pewien kłopot. Nie rozumiem, dlaczego nie mogę poprawnie się odnieść do Resources.
Mam taki zapis:

  • w pliku cs
  private void SetLanguage(string lng)
  {
            ResourceDictionary dict = new ResourceDictionary();
            dict.Source = new Uri("..\\Language\\" + lng + ".xaml", UriKind.Relative);
            this.Resources.MergedDictionaries.Add(dict);
   }

w innej metodzie mam wywołanie:

private void Loaded_1()
{
        MessageBox.Show(this.Resources["Klucz1String"].ToString(), this.Resources["InformationString"].ToString(), MessageBoxButton.OK);
}

tu się wywala na NullReferenceException - Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.

Co robię źle ?

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1