gettext

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση

Η gettext είναι μια βιβλιοθήκη διεθνοποίησης (i18n-internationalization) του εγχειρήματος GNU . Χρησιμοποιείται κυρίως για τη δημιουργία πολυγλωσσικών προγραμμάτων. Η τελευταία της έκδοση είναι η 0.14.5.

Ροή εργασίας[Επεξεργασία | επεξεργασία κώδικα]

Προγραμματιστής[Επεξεργασία | επεξεργασία κώδικα]

Πρώτα τροποποιείται ο πηγαίος κώδικας ώστε να γίνει δυνατή η κλήση συναρτήσεων της βιβλιοθήκης gettext. Αυτό στις περισσότερες γλώσσες προγραμματισμού επιτυγχάνεται εσωκλείωντας αλφαριθμητικά, που θα δει ο χρήστης, στην συνάρτηση gettext . Για οικονομία χρόνου όμως κατά την πληκτρολόγηση, συνήθως αντί του ονόματος αυτής χρησιμοποιείται το ψευδώνυμο της _, έτσι ο κώδικας στην C

printf("My name is %s.\n", my_name);

θα γινόταν

printf(_("My name is %s.\n"), my_name);

Εκτός από την C, η GNU gettext έχει και τις ακόλουθες υλοποιήσεις : C++, Objective-C, σενάρια κελύφους, σενάρια bash, Python, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Java, GNU awk, Pascal, wxWidgets (μέσω της κλάσης wxLocale), YCP (η γλώσσα YaST2), Tcl, Perl, PHP, Pike, και R. Στις περισσότερες από αυτές η χρήση είναι όπως στη C.

Τρέχοντας το πρόγραμμα xgettext με είσοδο τον πηγαίο κώδικα παράγεται ένα αρχείο .pot, ή πρότυπο (φόρμα), που περιέχει μια λίστα όλων των μεταφράσιμων αλφαριθμητικών που έχουν εξαχθεί από τον πηγαίο κώδικα. Από το παραπάνω παράδειγμα θα προέκυπτε η εξής καταχώριση στο αρχείο .pot:

#: src/name.c:36
msgid "My name is %s.\n"
msgstr ""

Μεταφραστής[Επεξεργασία | επεξεργασία κώδικα]

Ο μεταφραστής παράγει ένα αρχείο .po από την φόρμα που προαναφέραμε χρησιμοποιώντας το πρόγραμμα msginit, και κατόπιν συμπληρώνει της μεταφράσεις. Το msginit αρχικοποιεί τις μεταφράσεις ώστε αν για παράδειγμα θέλαμε να δημιουργήσουμε μια μετάφραση στα Γαλλικά θα τρέχαμε την εντολή

msginit --locale=fr --input=name.pot

Αυτή θα δημιουργήσει ένα αρχείο fr.po. Μια καταχώρηση σε αυτό θα ήταν πχ:

#: src/name.c:36
msgid "My name is %s.\n"
msgstr "My name is %s.\n"

Ο μεταφραστής θα έπρεπα να την διορθώσει είτε με το χέρι είτε με ένα μεταφραστικό εργαλείο όπως το poEdit. Οπότε μόλις τελειώσει η καταχώρηση θα έχει τη μορφή:

#: src/name.c:36
msgid "My name is %s.\n"
msgstr "Je m'appelle %s.\n"

Τέλος τα αρχεία .po files μετατρέπονται σε δυαδικά αρχεία .mo με το πρόγραμμα msgfmt. Αυτά είναι τώρα έτοιμα για διανομή μαζί με το πακέτο λογισμικού.

Χρήστης[Επεξεργασία | επεξεργασία κώδικα]

Ο χρήστης σε συστήματα τύπου Unix, θέτει την μεταβλητή περιβάλλοντος LANG, και το πρόγραμμα θα δείξει τα αλφαρηθμητικά στην επελεγμένη γλώσσα αν υπάρχειένα αρχείο .mo γι'αυτή.

Δείτε επίσης[Επεξεργασία | επεξεργασία κώδικα]

Εξωτερικοί σύνδεσμοι[Επεξεργασία | επεξεργασία κώδικα]

Commons logo
Τα Wikimedia Commons έχουν πολυμέσα σχετικά με το θέμα