Next Previous Contents

4. Διαδικασία της μετάφρασης

4.1 Είναι επίπονη η εργασία της μετάφρασης των μηνυμάτων;

Δεν είναι αρκετά επίπονη. Το μόνο επίπονο μέρος είναι η αρχική μετάφραση όλου του όγκου των μηνυμάτων. Έπειτα, με την κυκλοφορία νέων εκδόσεων του ίδιου προγράμματος, αρκεί η μετάφραση των νέων μηνυμάτων, που είναι συνήθως λίγα στον αριθμό. Υπάρχουν ειδικά εργαλεία που βρίσκουν τα μηνύματα που έχουν αλλάξει μεταξύ των εκδόσεων και τα εμφανίζουν για μετάφραση.

4.2 Πληροφοριακά, ένα πρόγραμμα που υποστηρίζει NLS πως μοιάζει;

Ο προγραμματιστής γράφει τα μηνύματα ως εξής:


...
/* Μερικές γραμμές κώδικα για αρχικοποίηση του συστήματος NLS */
...

/* Second: Login with proper USER/PASS sequence.  */

printf( _("connected!\n") );

...

Δηλαδή περικλείει τα μηνύματα που απαιτούν μετάφραση με _( ). Σε όλο το διάστημα της ανάπτυξης του προγράμματος, ο προγραμματιστής δεν ασχολείται με το σύστημα NLS παρά μόνο να περικλείει με _() το μηνύματα που βλέπει ο χρήστης. Το πρόγραμμα δουλεύει ως έχει.

Έπειτα, ο προγραμματιστής τρέχει ένα βοηθητικό πρόγραμμα που συγκεντρώνει τα μηνύματα που περικλείονται σε _() σε ένα αρχείο. Στο αρχείο αυτό είναι που επεμβαίνει για να προσθέσει τη μετάφραση των μηνυμάτων. Έπειτα, με άλλο βοηθητικό πρόγραμμα, το πρώτο αρχείο μετατρέπεται σε μια δυαδική μορφή που μπορεί να χρησιμοποιηθεί από το εκτελέσιμο. Στην εκτέλεση του, το πρόγραμμα αναζητά μια μεταβλητή περιβάλλοντος για την επιλογή της γλώσσας εμφάνισης των μηνυμάτων. Βάση της γλώσσας, χρησιμοποιεί και τα ανάλογα μηνύματα. Αν τα μηνύματα δεν είναι παρόντα, τότε χρησιμοποιεί τα αγγλικά, τα οποία περιέχονται στο ίδιο το εκτελέσιμο πρόγραμμα.

4.3 Ποια είναι τα προγράμματα που βοηθούν τη μετάφραση και πως λειτουργούν;

Πακέτο gettext

Τα προγράμματα που βοηθούν την οργάνωση της μετάφρασης είναι από το πακέτο gettext, και θα το βρείτε σε όλα τα καλά GNU mirror sites. Τρέχουσα έκδοση: 0.10.XX και τη στιγμή που γράφεται αυτό ισχύει ΧΧ=35 και gettext-0.10.35.tar.gz

Τα περισσότερα προγράμματα υλοποιούν το NLS με το πακέτο gettext. Υπάρχουν κάποια άλλα που υποστηρίζουν μια παλιότερη τεχνική, την catgets. Θα μιλήσουμε μόνο για gettext.

Πρόγραμμα xgettext

Είσοδος: αρχεία *.c ή *.h με αλφαριθμητικά της μορφής _("blah blah").

Έξοδος: αρχείο κειμένου *.pot με τα αλφαριθμητικά προς μετάφραση.

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

Σε όλα τα πακέτα με υποστήριξη "gettext", υπάρχει ένας υποκατάλογος po/ που περιέχει το αρχείο υπόδειγμα "πρόγραμμα.pot", το οποίο είναι κενό από μεταφρασμένα μηνύματα. Ταυτόχρονα, για τις υποστηριζόμενες γλώσσες υπάρχουν αντίστοιχα αρχεία *.po, όπως de.po, fr.po, nl.po που είναι αντίγραφα του αρχικού αρχείου υποδείγματος .pot με συμπληρωμένες τις μεταφράσεις.

Πρόγραμμα msgfmt

Είσοδος: αρχεία *.po (portable object)

Έξοδος: αρχεία *.mo (machine object)

Το αρχείο .mo είναι εκείνο που θα τοποθετηθεί στο κατάλογο /usr/share/locale/el/LC_MESSAGES για να ολοκληρωθεί η εγκατάσταση.

Λοιπά προγράμματα

Άλλα προγράμματα του πακέτου gettext είναι


Next Previous Contents