GNU Gettext

Post on 15-Jan-2015

722 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

Transcript

GNU Gettext

GNU Gettext

Nyitrai István

2008. október 22.

Nyitrai István GNU Gettext 1/25

GNU GettextTartalom

1 BevezetésÁltalánosan a lokalizációrólNyelvi támogatás

2 gettextMi is az a gettextSegédprogramokFájlokgettext a Java programokbanUtómunkálatok

Nyitrai István GNU Gettext 2/25

GNU GettextBevezetés

Nem mindenki beszél angolul

Nem mindenki beszél angolul

Az emberek 95% nem angol anyanyelvű

Fedora: 6 millió telepítés, 60%-át nem angolulGnome: 75 nyelv, 30% UIWordpress.com: 120 nyelvWikipedia: 150 nyelv

Nyitrai István GNU Gettext 3/25

GNU GettextBevezetés

Nem mindenki beszél angolul

Nem mindenki beszél angolul

Az emberek 95% nem angol anyanyelvűFedora: 6 millió telepítés, 60%-át nem angolul

Gnome: 75 nyelv, 30% UIWordpress.com: 120 nyelvWikipedia: 150 nyelv

Nyitrai István GNU Gettext 3/25

GNU GettextBevezetés

Nem mindenki beszél angolul

Nem mindenki beszél angolul

Az emberek 95% nem angol anyanyelvűFedora: 6 millió telepítés, 60%-át nem angolulGnome: 75 nyelv, 30% UI

Wordpress.com: 120 nyelvWikipedia: 150 nyelv

Nyitrai István GNU Gettext 3/25

GNU GettextBevezetés

Nem mindenki beszél angolul

Nem mindenki beszél angolul

Az emberek 95% nem angol anyanyelvűFedora: 6 millió telepítés, 60%-át nem angolulGnome: 75 nyelv, 30% UIWordpress.com: 120 nyelv

Wikipedia: 150 nyelv

Nyitrai István GNU Gettext 3/25

GNU GettextBevezetés

Nem mindenki beszél angolul

Nem mindenki beszél angolul

Az emberek 95% nem angol anyanyelvűFedora: 6 millió telepítés, 60%-át nem angolulGnome: 75 nyelv, 30% UIWordpress.com: 120 nyelvWikipedia: 150 nyelv

Nyitrai István GNU Gettext 3/25

GNU GettextBevezetés

Nyelvi támogatás

Nyelvi támogatás részei

Karakterek és kódkészletekPénznemDátumokSzámokÜzenetek

Nyitrai István GNU Gettext 4/25

GNU GettextBevezetés

Nyelvi támogatás

Translation Project

Céljuk: minél több program legyen többnyelvűStatisztika a csatlakozott projektek helyzetérőlLevelezőlista a fordítócsapatoknakGNU gettext

A kódra tett hatás legyen minimális

Nyitrai István GNU Gettext 5/25

GNU Gettextgettext

Mi is az a gettext

Mi is az a gettext

ProgramcsomagProgramozási szabályokSegédprogramokFutásidejű függvénykönyvtárak

Nyitrai István GNU Gettext 6/25

GNU Gettextgettext

Mi is az a gettext

gettext használata

A fordítható üzenetek megjelöléseA megjelölt üzeneteket kigyűjtéseAz üzenetek lefordításaA fordítás visszanyerése

Nyitrai István GNU Gettext 7/25

GNU Gettextgettext

Segédprogramok

xgettext

Megjelölt szövegek kigyűjtése sablon fájlbaLinux alatt „elfedhető”

Nyitrai István GNU Gettext 8/25

GNU Gettextgettext

Segédprogramok

msginit

PO fájl készítése

PO fájl fejlécének inicializálásaPélda: msginit �locale hu �input=hello.pot

Nyitrai István GNU Gettext 9/25

GNU Gettextgettext

Segédprogramok

msginit

PO fájl készítésePO fájl fejlécének inicializálása

Példa: msginit �locale hu �input=hello.pot

Nyitrai István GNU Gettext 9/25

GNU Gettextgettext

Segédprogramok

msginit

PO fájl készítésePO fájl fejlécének inicializálásaPélda: msginit �locale hu �input=hello.pot

Nyitrai István GNU Gettext 9/25

GNU Gettextgettext

Segédprogramok

msgfmt

PO fájlból készít MO vagy egyéb katalógus fájlt

Példa: msgfmt �java2 -d ../src -r

hello.i18n.Translation -l hu hu.po

Nyitrai István GNU Gettext 10/25

GNU Gettextgettext

Segédprogramok

msgfmt

PO fájlból készít MO vagy egyéb katalógus fájltPélda: msgfmt �java2 -d ../src -r

hello.i18n.Translation -l hu hu.po

Nyitrai István GNU Gettext 10/25

GNU Gettextgettext

Fájlok

PO fájl

Bejegyzésekből (entry) állHárom fajta bejegyzés:

1 Egyszerű2 Többesszámú3 Fejléc

Nyitrai István GNU Gettext 11/25

GNU Gettextgettext

Fájlok

Egyszerű bejegyzés

white-spaceMegjegyzésekmsgctxt contextmsgid untranslated-stringmsgstr translated-string

Nyitrai István GNU Gettext 12/25

GNU Gettextgettext

Fájlok

Egyszerű bejegyzés

white-spaceMegjegyzésekmsgctxt contextmsgid untranslated-stringmsgstr translated-string

Nyitrai István GNU Gettext 12/25

GNU Gettextgettext

Fájlok

Egyszerű bejegyzés

white-spaceMegjegyzésekmsgctxt contextmsgid untranslated-stringmsgstr translated-string

Nyitrai István GNU Gettext 12/25

GNU Gettextgettext

Fájlok

Egyszerű bejegyzés

white-spaceMegjegyzésekmsgctxt contextmsgid untranslated-stringmsgstr translated-string

Nyitrai István GNU Gettext 12/25

GNU Gettextgettext

Fájlok

Egyszerű bejegyzés

white-spaceMegjegyzésekmsgctxt contextmsgid untranslated-stringmsgstr translated-string

Nyitrai István GNU Gettext 12/25

GNU Gettextgettext

Fájlok

Egyszerű bejegyzés

white-spaceMegjegyzésekmsgctxt contextmsgid untranslated-stringmsgstr translated-string

Nyitrai István GNU Gettext 12/25

GNU Gettextgettext

Fájlok

Többesszámú bejegyzés

msgid untranslated-string-singularmsgid_plural untranslated-string-pluralmsgstr[0] translated-string-case-0...msgstr[N] translated-string-case-n

Nyitrai István GNU Gettext 13/25

GNU Gettextgettext

Fájlok

Többesszámú bejegyzés

msgid untranslated-string-singularmsgid_plural untranslated-string-pluralmsgstr[0] translated-string-case-0...msgstr[N] translated-string-case-n

Nyitrai István GNU Gettext 13/25

GNU Gettextgettext

Fájlok

Többesszámú bejegyzés

msgid untranslated-string-singularmsgid_plural untranslated-string-pluralmsgstr[0] translated-string-case-0...msgstr[N] translated-string-case-n

Nyitrai István GNU Gettext 13/25

GNU Gettextgettext

Fájlok

Többesszámú bejegyzés

msgid untranslated-string-singularmsgid_plural untranslated-string-pluralmsgstr[0] translated-string-case-0...msgstr[N] translated-string-case-n

Nyitrai István GNU Gettext 13/25

GNU Gettextgettext

Fájlok

Többesszámú bejegyzés

msgid untranslated-string-singularmsgid_plural untranslated-string-pluralmsgstr[0] translated-string-case-0...msgstr[N] translated-string-case-n

Nyitrai István GNU Gettext 13/25

GNU Gettextgettext

Fájlok

Többesszámú bejegyzés

msgid untranslated-string-singularmsgid_plural untranslated-string-pluralmsgstr[0] translated-string-case-0...msgstr[N] translated-string-case-n

Nyitrai István GNU Gettext 13/25

GNU Gettextgettext

Fájlok

Fejléc bejegyzés

Főleg informális tartalom, ettől azért érdekesebb aprogramozás

Nyitrai István GNU Gettext 14/25

GNU Gettextgettext

Fájlok

Sablon fájl

Ugyanaz, mint a PO fájl, de:A fejléce nincs kitöltveNincs benne fordítás

Nyitrai István GNU Gettext 15/25

GNU Gettextgettext

Fájlok

Katalógus fájl

PO fájlból készülA program számára is olvasható formátum

Nyitrai István GNU Gettext 16/25

GNU Gettextgettext

gettext a Java programokban

Emlékeztető

A fordítható üzenetek megjelöléseA megjelölt üzenetetek kigyűjtéseAz üzenetek lefordításaA fordítás visszanyerése

Nyitrai István GNU Gettext 17/25

GNU Gettextgettext

gettext a Java programokban

Ami mindig kell

import gnu.gettext.GettextResource;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;ResourceBundle catalog;

Nyitrai István GNU Gettext 18/25

GNU Gettextgettext

gettext a Java programokban

Ami mindig kell

import gnu.gettext.GettextResource;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;ResourceBundle catalog;

Nyitrai István GNU Gettext 18/25

GNU Gettextgettext

gettext a Java programokban

Ami mindig kell

import gnu.gettext.GettextResource;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;ResourceBundle catalog;

Nyitrai István GNU Gettext 18/25

GNU Gettextgettext

gettext a Java programokban

Ami mindig kell

import gnu.gettext.GettextResource;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;ResourceBundle catalog;

Nyitrai István GNU Gettext 18/25

GNU Gettextgettext

gettext a Java programokban

Ami mindig kell

import gnu.gettext.GettextResource;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;ResourceBundle catalog;

Nyitrai István GNU Gettext 18/25

GNU Gettextgettext

gettext a Java programokban

Ami mindig kell

import gnu.gettext.GettextResource;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;ResourceBundle catalog;

Nyitrai István GNU Gettext 18/25

GNU Gettextgettext

gettext a Java programokban

Trükk, hogy még egyszerűbb legyen

try {

catalog = ResourceBundle.getBundle(

"hello.i18n.Translation");

} catch (MissingResourceException e) {

catalog = ResourceBundle.getBundle(

"hello.i18n.Translation", Locale.ENGLISH);

}

Nyitrai István GNU Gettext 19/25

GNU Gettextgettext

gettext a Java programokban

Szöveg megjelölése

String simple = GettextResource.gettext(

catalog,"Hello World!");

String error = MessageFormat.format(

GettextResource.gettext(catalog,

"File {0} is not existing or readable"),

new Object[]{foofilename});

String plural_1 = GettextResource.ngettext(

catalog,"Hello World!",

"Hello girls!", 1);

Nyitrai István GNU Gettext 20/25

GNU Gettextgettext

Utómunkálatok

Megjelölt üzeneteket kigyűjtése

1 xgettext: xgettext �from-code=utf-8 -o hello.pot

../src/hello/*.java

2 intltool:

POTFILES.inintltool-update -p -g hello

Nyitrai István GNU Gettext 21/25

GNU Gettextgettext

Utómunkálatok

Megjelölt üzeneteket kigyűjtése

1 xgettext: xgettext �from-code=utf-8 -o hello.pot

../src/hello/*.java

2 intltool:

POTFILES.inintltool-update -p -g hello

Nyitrai István GNU Gettext 21/25

GNU Gettextgettext

Utómunkálatok

Megjelölt üzeneteket kigyűjtése

1 xgettext: xgettext �from-code=utf-8 -o hello.pot

../src/hello/*.java

2 intltool:POTFILES.in

intltool-update -p -g hello

Nyitrai István GNU Gettext 21/25

GNU Gettextgettext

Utómunkálatok

Megjelölt üzeneteket kigyűjtése

1 xgettext: xgettext �from-code=utf-8 -o hello.pot

../src/hello/*.java

2 intltool:POTFILES.inintltool-update -p -g hello

Nyitrai István GNU Gettext 21/25

GNU Gettextgettext

Utómunkálatok

Az üzeneteket lefordítása

1 msginit -l hu -i hello.pot

2 KBabel, Poedit programokkal fordítás

Nyitrai István GNU Gettext 22/25

GNU Gettextgettext

Utómunkálatok

Az üzeneteket lefordítása

1 msginit -l hu -i hello.pot2 KBabel, Poedit programokkal fordítás

Nyitrai István GNU Gettext 22/25

GNU Gettextgettext

Utómunkálatok

A fordítás visszanyerése

msgfmt �java2 -d ../src -r

hello.i18n.Translation -l hu hu.po

A .class becsomagolása a jar fájlbaA program kész is van!

Nyitrai István GNU Gettext 23/25

GNU Gettextgettext

Utómunkálatok

A fordítás visszanyerése

msgfmt �java2 -d ../src -r

hello.i18n.Translation -l hu hu.po

A .class becsomagolása a jar fájlba

A program kész is van!

Nyitrai István GNU Gettext 23/25

GNU Gettextgettext

Utómunkálatok

A fordítás visszanyerése

msgfmt �java2 -d ../src -r

hello.i18n.Translation -l hu hu.po

A .class becsomagolása a jar fájlbaA program kész is van!

Nyitrai István GNU Gettext 23/25

GNU GettextKérdés?

Nyitrai István GNU Gettext 24/25

GNU GettextKérdés?

Nyitrai István GNU Gettext 25/25

top related