Wielojęzyczność w VS C#

0

Witam
Próbuje ogarnąć wielojęzyczność w Visual Studio, przeczytałam kilka poradników a mimo to nie mogę sobie poradzić. Nie mam pojęcia gdzie popełniam błąd, dlatego wrzucam mój projekt do załącznika i może ktoś łaskawym okiem spojrzy na to i powie co jest nie tak.
Pozdrawiam
Marta ;)

0
  1. Wszystkie pliki do lokalizacji muszą mieć taką samą nazwę:
    Slownik.resx
    Slownik.pl-PL.resx
    Slownik.en-US.resx

  2. Powinien istnieć plik domyślny(niewskazujący na żaden język). Jeśli plik dla danego języka nie zostanie znaleziony(lub klucz w danym pliku) użyte zostaną wartości domyślne.
    Slownik.resx

  3. Jeśli dodasz plik ".resx" przez Add Item w projekcie, VS wygeneruje klasę do szybkiego i bezproblemowego dostępu do Kluczy w pliku domyślnym.
    Slownik.designer.cs

            string localizedString = Slownik.String1;
 
  1. Jeśli chcesz się ręcznie odwoływać to danych w tym pliku to :
            System.Resources.ResourceManager rm = new System.Resources.ResourceManager("[Namespace].Slownik", typeof(Slownik).Assembly);
            string localizedString = rm.GetString("String1", new CultureInfo("pl-PL"));
            //albo dla plikow resx
            System.Resources.ResourceManager.CreateFileBasedResourceManager(***)
0

@j_s_r_n, dzięki za pomoc, ale mi to nadal nie działa, mógłbyś zmodyfikować mój program, aby działał prawidłowo?
Poprawiłam wszystkie nazwy tak jak podałes
Slownik.resx (moj domyslny - polski)
Slownik.de-DE.resx
Slownik.en-US.resx
Dodałam właśnie ".resx" przez Add Item. Klucze mogę zmieniać i nadawać im wartości, ale czemu po kompilacji i ustawieniu jezyka wyświetlany jest klucz a nie jego wartość ;(

0

Jeśli nadal wyświetlasz tak:

             MessageBox.Show("String1");
 

zamiast tak:

            System.Resources.ResourceManager rm = new System.Resources.ResourceManager("WindowsFormsApplication1.Slownik", typeof(Slownik).Assembly);
            MessageBox.Show(rm.GetString("String1", new CultureInfo("pl-PL")));
 

to dlatego.

0

Projekt

0

@j_s_r_n
Dziękuje Ci bardzo ;)

Jednak mam jeszcze dwa nurtujące mnie pytania

  1. Mam napis na buttonie ustawiony w propertisach "jezyki.Slownik.String1" to wyświetla mi dosłownie "jezyki.Slownik.String1" a nie jego wartość.
  2. Klikam na formatce głównej PPM i ustawiam w propertisach język domyślny jako angielski to czemu automatycznie nie odnajduje języka?
0

Witam,

Tutaj znajdziesz artykuł o tym jak zmienić język formatek w czasie działania programu. Zawiera on też kilka linków do podstaw jak zmieniać język formatki i jak wszystko konfigurować.

http://rtarlowski.blogspot.com/2011/02/c-change-form-language-at-runtime.html

Pozdrawiam,
chesti

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