Gettext

Gettext
Γενικά
Ημερ. Δημιουργίας1990
Είδοςβιβλιοθήκη, ελεύθερο λογισμικό
Διανομή
Έκδοση1.0 (28 Ιανουάριος 2026)[1]
ΛειτουργικάBSD
Ανάπτυξη
Υπευθ. ανάπτυξηςΕγχείρημα GNU
Άδεια χρήσηςLGPLv1.2+
Σύνδεσμοι
Επίσημος ιστότοπος
https://www.gnu.org/software/gettext/
Αποθετήριο κώδικα
https://git.savannah.gnu.org/cgit/gettext.git

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

Ροή εργασίας

Προγραμματιστής

Πρώτα τροποποιείται ο πηγαίος κώδικας ώστε να γίνει δυνατή η κλήση συναρτήσεων της βιβλιοθήκης 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. «gettext-1.0 released [stable]» (στα Αγγλικά). 29 Ιανουάριος 2026. Ανακτήθηκε στις 29 Ιανουάριος 2026. 

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.