SlideShare a Scribd company logo
1 of 53
Download to read offline
GNU Gettext




              GNU Gettext

                 Nyitrai István


              2008. október 22.




              Nyitrai István   GNU Gettext   1/25
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
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
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
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
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
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
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
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
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
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
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
GNU Gettext
  gettext
     Segédprogramok



msginit



              PO fájl készítése




                                  Nyitrai István   GNU Gettext   9/25
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GNU Gettext
  Kérdés?




              Nyitrai István   GNU Gettext   24/25
GNU Gettext
  Kérdés?




              Nyitrai István   GNU Gettext   25/25

More Related Content

Featured

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Featured (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

GNU Gettext

  • 1. GNU Gettext GNU Gettext Nyitrai István 2008. október 22. Nyitrai István GNU Gettext 1/25
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. GNU Gettext gettext Segédprogramok msginit PO fájl készítése Nyitrai István GNU Gettext 9/25
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. GNU Gettext Kérdés? Nyitrai István GNU Gettext 24/25
  • 53. GNU Gettext Kérdés? Nyitrai István GNU Gettext 25/25