Re: [team-gnome-gr] προγραμματισμ ός και απορία με localization




2010/11/3 Εμμανουήλ Καπερνάρος <manolis kapcom gr>
Στις 3 Νοεμβρίου 2010 9:14 μ.μ., ο χρήστης Simos Xenitellis <simos lists googlemail com> έγραψε:


2010/11/3 Εμμανουήλ Καπερνάρος <manolis kapcom gr>

Γειά σας,
η απορία μου δεν είναι και τόσο σχετική με τη λίστα, αλλά είπα να δοκιμάσω.

Φτιάχνω μία εφαρμογή περισσότερο για να μάθω python και είπα να προσθέσω υποστήριξη l10n :) με το σωστό τρόπο.
Έκανα τις απαραίτητες αλλαγές στο κώδικά μου (https://github.com/kapcom01/statusYzer/commit/e1c0cabecf5280006b79462f19783f593d44723d) και με την εντολή pygettext παρήγαγα το .pot αρχείο.
Χρησιμοποιώντας το .pot δημιούργησα χειροκίνητα 2 αντίγραφα με κατάληξη .po αυτή τη φορά, ένα για τα αγγλικά και ένα για τα ελληνικά.

Όλα πήγαν ρολόι και τώρα θέλω να προσθέσω περισσότερα strings προς localization. Ξέρει κανείς αν γίνεται κάπως αυτοματοποιημένα;
Αν δημιουργήσω καινούριο .pot φαίνεται ότι αλλάζει πολύ από τα προηγούμενα .po.. Μπορώ να μεταφέρω κάπως τις μεταφράσεις από τα παλιά .po στα καινούρια?


Εδώ χρησιμοποιείς τα εργαλεία του πακέτου gettext, http://bugs.python.org/issue8502
Με το 'xgettext' μπορείς να παράγεις κάθε φορά το ενημερωμένο .pot.
Τις υπάρχουσες μεταφράσεις τις ενημερώνεις με το msgmerge, οπότε έτσι γίνεται η μεταφορά που ρωτάς.
Δεν χρειάζεται μετάφραση για en_US μιας και είναι η πρωταρχική γλώσσα.

Σε ευχαριστώ πάρα πολύ!
Αρχικά είχα δοκιμάσει το xgettext αλλά δεν αναγνώριζε την .pyw κατάληξη. Γιαυτό κατέληξα στο pygettext. Αλλά τελικά ήταν απλή η λύση, χρησιμοποιώντας την παράμετρο -L (xgettext app.pyw -L Python).
Με το msgmerge λύθηκε η απορία μου ενημερώνοντας τα παλιά .po επιτυχώς!


Το ... μπορείς να το γράψεις και … (ellipsis).

Υπάρχει χαρακτήρας Unicode για … (είναι ένας χαρακτήρας, όχι 3 τελείες). Στα μηνύματα της εφαρμογής σου μπορείς να βάλεις … αντί για τις 3 τελείες. Δεν είναι πολύ σημαντικό, είναι κάτι εύκολο όμως και η εφαρμογή φαίνεται πιο όμορφη. Στις μεταφράσεις που κάνουμε εδώ βάζουμε '…'.
 
 
Εδώ δεν κατάλαβα τι εννοείς. Κάτι για τα αποσιωπητικά λογικά αλλά τι?

Μπορείς να δεις σχετικά πακέτα στο git.gnome.org, γραμμένα σε Python, για το πως δουλεύει εκεί η μετάφραση. Ειδικά για τα πακέτα στο git.gnome.org, χρησιμοποιούν το 'intltool' που κάνει τη δουλειά ακόμα πιο εύκολη.
Έτσι, για να φτιάξω ένα ενημερωμένο .po σε τέτοιο πακέτο στο git.gnome.org, μπαίνω στον υποκατάλογο po/, εκτελώ 'intltool-update el' και ενημερώνει αυτόματα το el.po. Αν φιλοξενήσεις στο μέλλον το πακέτο σου στο git.gnome.org, τότε μπαίνει στη σελίδα http://l10n.gnome.org/languages/el/gnome-extras/ui/ για να μεταφραστεί από κάθε μια από τις 100+ μεταφραστικές ομάδες του GNOME.

Σίμος

Το intltool δεν το έψαξα ακόμα.. μπορώ να χρησιμοποιήσω αυτό εναλλακτικά των xgettext και msgmerge?

Ναι, το intltool αντικαθιστά τα xgettext, msgmerge. Στην περίπτωσή σου που για τώρα το πρόγραμμά σου είναι απλό, μπορείς να αναφέρεις στην τεκμηρίωση τις γραμμές με τα xgettext, msgmerge όπως τις χρησιμοποίησες και να αφοσιωθείς στην ανάπτυξη του προγράμματος.

Στο locale αναφέρεις 'el_GR' για τα ελληνικά. Τώρα βάζουμε πια 'el', οπότε οι μεταφράσεις που κάνουμε είναι κοινές για Ελλάδα και Κύπρο.


Και μιάς και ανέφερες το git.gnome.org, μπορώ να το χρησιμοποιήσω όπως χρησιμοποιώ τώρα το github? Ουσιαστικά δηλαδή να κάνω τα commits μου και όποιος θέλει να με κάνει fork.. κτλ...


Το πιο σημαντικό προσόν του git.gnome.org είναι η πρόσβαση στις μεταφραστικές ομάδες. Κοιτώντας ξανά το αποθετήριό σου, βλέπω ότι έκανες την καλύτερη επιλογή να το βάλεις στο github, λόγω της δυνατότητας για συμμετοχική ανάπτυξη του λογισμικού.

Δες τον κώδικα του logari81, http://sourceforge.net/projects/pdfshuffler/
Είναι εφαρμογή σε Python (αλλά gtk+) και δείχνει πως ενεργοποιείς τις μεταφράσεις. Ακόμα, δείχνει και τη δομή των αρχείων.

Σίμος



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]