Μετάφραση Inline Strings στο WP
Σήμερα θέλουμε να περιγράψουμε πως χρησιμοποιούμε τα .po και .mo αρχεία σε μία εγκατάσταση WordPress για να διαχειριστούμε τις μεταφράσεις μας σε inline string που υπάρχουν δηλαδή μέσα στον κώδικα είτε σε Plugins είτε σε Themes με Get text. Στα παρακάτω υποθέτουμε ότι χρησιμοποιείτε το plugin WPML.
Το WPML String Translation προτιμούμε να μην χρησιμοποιείται σε production για την μετάφραση των themes/plugins και να διατηρούμε τις μεταφράσεις μας μέσω .po και .mo αρχείων καθώς επιβαρύνει πολύ τον σέρβερ. Για την επεξεργασία των αρχείων αυτών θα χρησιμοποιήσουμε το Poedit.
Για να πάρουμε λοιπόν τα .po και .mo ενός text-domain (στο οποίο χρειάζεται να εντάσσονται συμβολοσειρές για να μπορούμε να τις μεταφράσουμε) χρησιμοποιούμε το WPML. Συγκεκριμένα, στη “Μετάφραση συμβολοσειρών” έχουμε την επιλογή (κάτω δεξιά at the time of writing) “Εξαγωγή συμβολοσειρών σε αρχείο .po/.pot”. Εκεί διαλέγουμε για ποιο text-domain θέλουμε να γίνει export. Η ολοκλήρωση της διαδικασίας μας δίνει ένα αρχείο .po.
Αυτή η διαδικασία είναι πολύ χρήσιμη για string που έχουμε προσθέσει εμείς καθώς για πολλά plugin μπορεί να βρείς κανείς έτοιμα τα αρχεία po τους ή να φτιάξει νέα από το αρχείο pot τους (το πηγαίο δηλαδή αρχείο μετάφρασης) με το poedit. Μπορεί επίσης να γίνει μετάφραση και μέσα στο WPML και οι μεταφράσεις θα διατηρηθούν στην εξαγωγή.
Να έχετε στο νού σας ότι για να βρεί τα string το WPML πρέπει κυριολεκτικά να τα δεί. Δηλαδή να εκτελεστεί το php αρχείο που τα περιέχει στον browser και να είναι ενεργοποιημένη η αναζήτηση στο συγκεκριμένο text domain (κάτω αριστέρα at the time of writing).
Για να ανοίξουμε αυτό το αρχείο θα χρειαστούμε το Poedit. Το interface είναι αρκετά απλό. Υπάρχουν όλες οι συμβολοσειρές και οι μεταφράσεις τους. Κάνουμε search για τη συμβολοσειρά που θέλουμε να μεταφράσουμε, την επιλέγουμε, γράφουμε τη μετάφραση και απλώς αποθηκεύουμε. Η διαδικασία της αποθήκευσης ενός .po (portable object) δημιουργεί (ή ανανεώνει αν το έχουμε ήδη) το αντίστοιχο .mo (machine object) αρχείο.
Τωρα αρκεί να ανεβάσουμε με (s)ftp τα καινούργεια .po .mo στο site με χρήση κάποιου ftp client (π.χ. FileZilla). Θα τα βάλουμε στο αντιστοιχο directory του wp-content/languages, theme ή plugin με όνομα αρχείου το slug αυτού που μεταφράζουμε και τον κωδικό γλώσσας χωρισμένο με παύλα (πχ. woocommerce-el) . Σημείωση: Μπορεί να μη γίνει αντιληπτή η ανανέωση αν κάνουμε upload and replace. Σε αυτή την περίπτωση, κάνουμε backup τα .po/.mo που αλλάξαμε, τα διαγράφουμε (προσέχουμε να διαγράψουμε τα σωστά!) και κάνουμε upload τις καινούργιες τους εκδόσεις που μόλις δημιουργήσαμε τοπικά.
Τώρα έχουμε τις μεταφράσεις μας έτοιμες! Αυτά!