See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Gettext - Βικιπαίδεια

Gettext

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Αυτό το άρθρο είναι ορφανό καθώς λίγα ή και καθόλου άρθρα συνδέουν σε αυτό.

Παρακαλούμε βοηθήστε βάζοντας συνδέσμους προς αυτό σε άρθρα για σχετικά θέματα. (Ιανουαρίου 2008)

Ο σωστός τίτλος αυτού του άρθρου είναι 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, sh σενάρια, bash σενάρια, Python, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Java, GNU awk, Pascal, wxWidgets (μέσω της wxLocale κλάσσης), YCP (η YaST2 γλώσσα), Tcl, Perl, PHP, Pike, and 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 γι'αυτή.


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


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


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -