Neki dobar tutorial nemam, a i davno sam radio sa WinForms aplikacijama.
Ali uglavnom ide ovako nekako:
- Otvoriš formu i desni klik pa
Properties (ili ALT + ENTER)
- Nađeš
property Localizable i staviš njegovu vrednost na
True
- Sačuvaš izmene (opciono)
- Iznad tog
property-a imaš novi koji se zove
Language. Njegova vrednost je
(default) i to ti je ujedino
fallback language.
- Ukoliko želiš da dodaš podršku za srpski jezik, promeni
Language na
Serbian (Latin) i svim kontrolama promeni
Text property (na srpskom, naravno).
- Visual Studio je u pozadini napravio novi .resx fajl: Form1.sr-Latn.resx
Menjanje jezika (pozivom na
button click):
Code:
// srpski
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("sr-Latn");
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("sr-Latn");
// engleski
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
E sada, kada se izvrši taj kod, jezik se neće promeniti za trenutnu formu, već samo za novootvorene forme.
Ukoliko želiš da se tekst promeni i na trenutnoj formi, pred tobom su 2 puta, baš kao u filmu Matrix:
- Možeš da uzmeš plavu pilulu, a to znači da zatvoriš formu i ponovo je otvoriš (najbezbolnije)
- Možeš da uzmeš crvenu pilulu, a to znači da ručno settuješ text na svim kontrolama
Zaista mi nije jasno zašto MS nije napravio da se text automatski osveži prilikom promene vrednosti za
CurrentCulture.