Lokalisointi - Luento 19

Käydään läpi miten WPF-sovelluksesta saadaan "helposti" monikielinen. Aiheeseen liittyen kannattaa lukea: WPF Localization Guidance.

luentoesimerkki (zip)

Lokalisointi resx-tiedostoilla

  1. Luo normaali WPF-ohjelma
  2. Lisää Properties-kansion alta löytyvään resources.resx-tiedostoon haluamasi käännettävät tiedot.
  3. Muista valita Access Modifieriin arvo public
  4. Lisää XAML-tiedostoon nimiavaruusmääritys:
    xmlns:properties="clr-namespace:oman_projektin_nimi.Properties"
  5. Viittaa XAMLissa käännettävään resurssiin:
     <Button Name="button1" Content="{x:Static properties:Resources.buttonin_teksti}"></Button>

    buttonin_teksti on tässä resurssitiedostossa olevan resurssin nimi.

    Huomaa, että viittaus ei välttämättä toimi (designer herjailee) ennen kuin olet kertaalleen kääntänyt ohjelmasi.

    Jos saat omituisen virheen liittyen metadataan niin siirrä projektisi verkkolevyltä lokaalille c:-asemalle MyTemp-kansioon ja yritä sieltä uudelleen.

  6. Voit viitata myös koodissa
    button1.Content =  Properties.Resources.buttonin_teksti;
  7. Kopioi resurssitiedosto Propertiesin alle uudelle nimelle. Tee kopiointi suoraan Solution Explorerissa (ctrl-c / ctrl-v). Jos haluat kääntää esim. suomeksi niin anna uuden tiedoston nimeksi Resources.fi-FI.resx. Jos englanniksi niin uusi nimi on Resources.en-US.resx jne. kts. List of Culture Codes. Älä nimeä uudelleen alkuperäistä Resources.resx-tiedostoa.
  8. Käännä uudessa resurssitiedostossa olevat tekstit
  9. Lisää App.xaml.cs-tiedostoon konstruktori, joka määrää käytettävän kielen:
    public App()
    {
    localization_resx.Properties.Resources.Culture = new CultureInfo("en-US");
    }
    // myös seuraavia voi tarvita:
    System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");;
    System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");;
    

    localization_resx on projektisi nimi!

    Joudut lisäämään myös using System.Globalization;

  10. Kokeile ohjelmaasi. Vaihda kieltä vaihtamalla konstruktorissa CultureInfon parameteriksi fi-FI tai jokin muu kieli.

Lokalisointi LocBaml-työkalulla

Seuraava ohje pohjautuu suoraan Microsoftin How to: Localize an Application -ohjeeseen. Vaihda ohjeessa käytetyn localisation.csproj tilalle oman projektisi nimi.

xml:lang Handling in XAML

Localization comments

Localization attributes

Avustus

Älä käytä vanhanaikaisia avustuksia vaan kirjoita ohjelman avustus WWW-sivuksi ja avaa se ohjelmastasi tähän tapaan:

System.Diagnostics.Process.Start("http://appro.mit.jyu.fi/gko/");

Microsoft Compiled HTML Help

Help

Lisätietoa

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/luennot/luento19/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2012-03-29 15:41:34
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta