środa, 11 listopada 2009

Wielojęzyczna aplikacja


Tworzenie wielojęzycznych aplikacji w C# z wykorzystaniem Visual Studio jest wręcz tak proste jak deklaracja zmiennej. Jest to możliwe dzięki użyciu zasobów.

Przypuśćmy że mamy napisaną aplikację jak na poniższym screenie:

Jak widać aplikacja pozwala na gromadzenie kilku informacji o osobach. Informacje te później można by zapisywać do bazy itp. Jednak nie chodzi tutaj o samą koncepcję budowania aplikacji do przechowywania informacji o osobach, a zbudowanie aplikacji wielojęzycznej.
Kod który został użyty przy budowie aplikacji:
    1         private void button1_Click(object sender, EventArgs e)
    2         {
    3             Person p = new Person(textBox1.Text, textBox2.Text, int.Parse(textBox3.Text));
    4             listBox1.Items.Add(p);
    5         }
    6
    7         private void button2_Click(object sender, EventArgs e)
    8         {
    9             System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
   10         }
   11     }
   12
   13     class Person
   14     {
   15         public string Imie { get; private set; }
   16         public string Nazwisko { get; private set; }
   17         public int Wiek { get; private set; }
   18
   19         public Person(string imie, string nazwisko, int wiek)
   20         {
   21             this.Imie = imie;
   22             this.Nazwisko = nazwisko;
   23             this.Wiek = wiek;
   24         }
   25
   26         public override string ToString()
   27         {
   28             return string.Format("{0} {1} {2}", Imie, Nazwisko, Wiek);
   29         }
   30     }



Aby uczynić naszą aplikację wielojęzyczną na początek zmieniamy właściwość Localizable naszej formy na true. Powoduje to wpisanie właściwości wszystkich kontrolek na formie do pliku zasobów.
Teraz ustawiamy Właściwość Language na taki język jak nas interesuje i edytujemy właściwości kontrolek (przeważnie zmieniamy tylko właściwość Text). Dla każdego wybranego języka jest tworzony nowy plik zasobów. Środowisko samo wybiera odpowiedni plik zasobów na podstawie ustawień systemowych.

Ja wykorzystałem dwa języki polski i angielski:



W zależności od ustawień systemu, zostanie wybrany odpowiedni plik językowy. Warto zauważyć że dla każdego języka tworzony jest nowy plik z zasobami co pokazuje poniższy screen:

Dzięki takiemu zastosowaniu zasobów w prosty sposób możemy stworzyć wielojęzyczną aplikację.

Brak komentarzy:

Prześlij komentarz