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

Gettext
Γενικά
Ημερ. Δημιουργίας1995
Είδοςβιβλιοθήκη, ελεύθερο λογισμικό
Διανομή
Έκδοση0.22.5 (21 Φεβρουάριος 2024)[1]
ΛειτουργικάGNU/Linux, BSD, Microsoft Windows, macOS
Ανάπτυξη
Υπευθ. ανάπτυξηςΕγχείρημα GNU
Γραμμένο σεC
Άδεια χρήσηςLGPLv1.2+
Σύνδεσμοι
Επίσημος ιστότοπος
https://www.gnu.org/software/gettext/
Αποθετήριο κώδικα
https://git.savannah.gnu.org/cgit/gettext.git

Ροή εργασίας Επεξεργασία

Προγραμματιστής Επεξεργασία

Πρώτα τροποποιείται ο πηγαίος κώδικας ώστε να γίνει δυνατή η κλήση συναρτήσεων της βιβλιοθήκης 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 γι'αυτή.

Δείτε επίσης Επεξεργασία


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

  1. «GNU gettext 0.22.5 released» (στα Αγγλικά). 22 Φεβρουάριος 2024. Ανακτήθηκε στις 7 Μάρτιος 2024.