čtvrtek 13. srpna 2015

WinForm Localization (Globalization)


Ve vlastnostech formuláře
ve skupině Design nastavit vlastnost Localizable na true
Přepnout vlastnost Language z default na češtinu.
Upravit text některého z prvků které chcete lokalizovat. (tím se vytvoří další Resource File *.cs-CZ.resx)




Zkopírujte z výchozího resource souboru klíče i s hodnotou a přeneste je do Google Translatoru. Nechte si je přeložit do zvoleného jazyka a zase je zkopírujte. Tentokát ale do nového resource souboru. (pokud tam něco už je tak to přepište, nebo předtím smažte) Nesprávně přeložené hodnoty opravte a soubor uložte.



Pokud potřebujete přepnout Jazyk je nutné nastavit CurrentUICulture hned před inicializací formuláře. CurrentCulture kvuli lokalizaci stringů není potřeba měnit. Má ale vliv na chování některých metod jako např. ToLongDateString()



label1.Text = DateTime.Now.ToLongDateString();

public Form1()
        {
            
            //Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("Fr");
            Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("Fr");
            InitializeComponent();
        }

Pokud změníte CurrentUICulture až po inicializaci formuláře musíte provést lokalizaci ručně.
        private void button1_Click(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("Fr");

            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            resources.ApplyResources(this.button1, "button1");
        }

Seznam kódů
https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx

Video:
Globalization of a WinForms App in 2 minutes
https://www.youtube.com/watch?v=SNIyP1QQdVs

Články:
http://www.zive.cz/clanky/poznavame-c-a-microsoft-net---74-dil--lokalizace/sc-3-a-130695/default.aspx

Žádné komentáře:

Okomentovat