GNU Gettext

901 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
901
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

GNU Gettext

  1. 1. GNU Gettext GNU Gettext Nyitrai István 2008. október 22. Nyitrai István GNU Gettext 1/25
  2. 2. GNU Gettext Tartalom 1 Bevezetés Általánosan a lokalizációról Nyelvi támogatás 2 gettext Mi is az a gettext Segédprogramok Fájlok gettext a Java programokban Utómunkálatok Nyitrai István GNU Gettext 2/25
  3. 3. GNU Gettext Bevezetés Nem mindenki beszél angolul Nem mindenki beszél angolul Az emberek 95% nem angol anyanyelvű Nyitrai István GNU Gettext 3/25
  4. 4. GNU Gettext Bevezeté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 Nyitrai István GNU Gettext 3/25
  5. 5. GNU Gettext Bevezeté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% UI Nyitrai István GNU Gettext 3/25
  6. 6. GNU Gettext Bevezeté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% UI Wordpress.com: 120 nyelv Nyitrai István GNU Gettext 3/25
  7. 7. GNU Gettext Bevezeté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% UI Wordpress.com: 120 nyelv Wikipedia: 150 nyelv Nyitrai István GNU Gettext 3/25
  8. 8. GNU Gettext Bevezetés Nyelvi támogatás Nyelvi támogatás részei Karakterek és kódkészletek Pénznem Dátumok Számok Üzenetek Nyitrai István GNU Gettext 4/25
  9. 9. GNU Gettext Bevezetés Nyelvi támogatás Translation Project Céljuk: minél több program legyen többnyelvű Statisztika a csatlakozott projektek helyzetéről Levelezőlista a fordítócsapatoknak GNU gettext A kódra tett hatás legyen minimális Nyitrai István GNU Gettext 5/25
  10. 10. GNU Gettext gettext Mi is az a gettext Mi is az a gettext Programcsomag Programozási szabályok Segédprogramok Futásidejű függvénykönyvtárak Nyitrai István GNU Gettext 6/25
  11. 11. GNU Gettext gettext Mi is az a gettext gettext használata A fordítható üzenetek megjelölése A megjelölt üzeneteket kigyűjtése Az üzenetek lefordítása A fordítás visszanyerése Nyitrai István GNU Gettext 7/25
  12. 12. GNU Gettext gettext Segédprogramok xgettext Megjelölt szövegek kigyűjtése sablon fájlba Linux alatt „elfedhető” Nyitrai István GNU Gettext 8/25
  13. 13. GNU Gettext gettext Segédprogramok msginit PO fájl készítése Nyitrai István GNU Gettext 9/25
  14. 14. GNU Gettext gettext Segédprogramok msginit PO fájl készítése PO fájl fejlécének inicializálása Nyitrai István GNU Gettext 9/25
  15. 15. GNU Gettext gettext Segédprogramok msginit PO fájl készítése PO fájl fejlécének inicializálása Példa: msginit locale hu input=hello.pot Nyitrai István GNU Gettext 9/25
  16. 16. GNU Gettext gettext Segédprogramok msgfmt PO fájlból készít MO vagy egyéb katalógus fájlt Nyitrai István GNU Gettext 10/25
  17. 17. GNU Gettext gettext 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
  18. 18. GNU Gettext gettext Fájlok PO fájl Bejegyzésekből (entry) áll Három fajta bejegyzés: 1 Egyszerű 2 Többesszámú 3 Fejléc Nyitrai István GNU Gettext 11/25
  19. 19. GNU Gettext gettext Fájlok Egyszerű bejegyzés white-space Megjegyzések msgctxt context msgid untranslated-string msgstr translated-string Nyitrai István GNU Gettext 12/25
  20. 20. GNU Gettext gettext Fájlok Egyszerű bejegyzés white-space Megjegyzések msgctxt context msgid untranslated-string msgstr translated-string Nyitrai István GNU Gettext 12/25
  21. 21. GNU Gettext gettext Fájlok Egyszerű bejegyzés white-space Megjegyzések msgctxt context msgid untranslated-string msgstr translated-string Nyitrai István GNU Gettext 12/25
  22. 22. GNU Gettext gettext Fájlok Egyszerű bejegyzés white-space Megjegyzések msgctxt context msgid untranslated-string msgstr translated-string Nyitrai István GNU Gettext 12/25
  23. 23. GNU Gettext gettext Fájlok Egyszerű bejegyzés white-space Megjegyzések msgctxt context msgid untranslated-string msgstr translated-string Nyitrai István GNU Gettext 12/25
  24. 24. GNU Gettext gettext Fájlok Egyszerű bejegyzés white-space Megjegyzések msgctxt context msgid untranslated-string msgstr translated-string Nyitrai István GNU Gettext 12/25
  25. 25. GNU Gettext gettext Fájlok Többesszámú bejegyzés msgid untranslated-string-singular msgid_plural untranslated-string-plural msgstr[0] translated-string-case-0 ... msgstr[N] translated-string-case-n Nyitrai István GNU Gettext 13/25
  26. 26. GNU Gettext gettext Fájlok Többesszámú bejegyzés msgid untranslated-string-singular msgid_plural untranslated-string-plural msgstr[0] translated-string-case-0 ... msgstr[N] translated-string-case-n Nyitrai István GNU Gettext 13/25
  27. 27. GNU Gettext gettext Fájlok Többesszámú bejegyzés msgid untranslated-string-singular msgid_plural untranslated-string-plural msgstr[0] translated-string-case-0 ... msgstr[N] translated-string-case-n Nyitrai István GNU Gettext 13/25
  28. 28. GNU Gettext gettext Fájlok Többesszámú bejegyzés msgid untranslated-string-singular msgid_plural untranslated-string-plural msgstr[0] translated-string-case-0 ... msgstr[N] translated-string-case-n Nyitrai István GNU Gettext 13/25
  29. 29. GNU Gettext gettext Fájlok Többesszámú bejegyzés msgid untranslated-string-singular msgid_plural untranslated-string-plural msgstr[0] translated-string-case-0 ... msgstr[N] translated-string-case-n Nyitrai István GNU Gettext 13/25
  30. 30. GNU Gettext gettext Fájlok Többesszámú bejegyzés msgid untranslated-string-singular msgid_plural untranslated-string-plural msgstr[0] translated-string-case-0 ... msgstr[N] translated-string-case-n Nyitrai István GNU Gettext 13/25
  31. 31. GNU Gettext gettext Fájlok Fejléc bejegyzés Főleg informális tartalom, ettől azért érdekesebb a programozás Nyitrai István GNU Gettext 14/25
  32. 32. GNU Gettext gettext Fájlok Sablon fájl Ugyanaz, mint a PO fájl, de: A fejléce nincs kitöltve Nincs benne fordítás Nyitrai István GNU Gettext 15/25
  33. 33. GNU Gettext gettext Fájlok Katalógus fájl PO fájlból készül A program számára is olvasható formátum Nyitrai István GNU Gettext 16/25
  34. 34. GNU Gettext gettext gettext a Java programokban Emlékeztető A fordítható üzenetek megjelölése A megjelölt üzenetetek kigyűjtése Az üzenetek lefordítása A fordítás visszanyerése Nyitrai István GNU Gettext 17/25
  35. 35. GNU Gettext gettext 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
  36. 36. GNU Gettext gettext 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
  37. 37. GNU Gettext gettext 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
  38. 38. GNU Gettext gettext 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
  39. 39. GNU Gettext gettext 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
  40. 40. GNU Gettext gettext 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
  41. 41. GNU Gettext gettext gettext a Java programokban Trükk, hogy még egyszerűbb legyen try { catalog = ResourceBundle.getBundle( quot;hello.i18n.Translationquot;); } catch (MissingResourceException e) { catalog = ResourceBundle.getBundle( quot;hello.i18n.Translationquot;, Locale.ENGLISH); } Nyitrai István GNU Gettext 19/25
  42. 42. GNU Gettext gettext gettext a Java programokban Szöveg megjelölése String simple = GettextResource.gettext( catalog,quot;Hello World!quot;); String error = MessageFormat.format( GettextResource.gettext(catalog, quot;File {0} is not existing or readablequot;), new Object[]{foofilename}); String plural_1 = GettextResource.ngettext( catalog,quot;Hello World!quot;, quot;Hello girls!quot;, 1); Nyitrai István GNU Gettext 20/25
  43. 43. GNU Gettext gettext Utómunkálatok Megjelölt üzeneteket kigyűjtése 1 xgettext: xgettext from-code=utf-8 -o hello.pot ../src/hello/*.java Nyitrai István GNU Gettext 21/25
  44. 44. GNU Gettext gettext Utómunkálatok Megjelölt üzeneteket kigyűjtése 1 xgettext: xgettext from-code=utf-8 -o hello.pot ../src/hello/*.java 2 intltool: Nyitrai István GNU Gettext 21/25
  45. 45. GNU Gettext gettext 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 Nyitrai István GNU Gettext 21/25
  46. 46. GNU Gettext gettext 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
  47. 47. GNU Gettext gettext Utómunkálatok Az üzeneteket lefordítása 1 msginit -l hu -i hello.pot Nyitrai István GNU Gettext 22/25
  48. 48. GNU Gettext gettext 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
  49. 49. GNU Gettext gettext Utómunkálatok A fordítás visszanyerése msgfmt java2 -d ../src -r hello.i18n.Translation -l hu hu.po Nyitrai István GNU Gettext 23/25
  50. 50. GNU Gettext gettext 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 Nyitrai István GNU Gettext 23/25
  51. 51. GNU Gettext gettext 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
  52. 52. GNU Gettext Kérdés? Nyitrai István GNU Gettext 24/25
  53. 53. GNU Gettext Kérdés? Nyitrai István GNU Gettext 25/25

×