Re: [team-gnome-gr] Μνεία μεταφρασ τών





2010/11/16 Εμμανουήλ Καπερνάρος <manolis kapcom gr>
Στις 16/11/2010 08:33 μμ, ο/η Simos Xenitellis έγραψε:
2010/11/16 Εμμανουήλ Καπερνάρος <manolis kapcom gr>:
Στις 16/11/2010 05:55 μμ, ο/η Simos Xenitellis έγραψε:

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

Στις 15/11/2010 11:19 μμ, ο/η Εμμανουήλ Καπερνάρος έγραψε:

Στις 15/11/2010 10:56 μμ, ο/η Simos Xenitellis έγραψε:

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

Παρατήρησα στο Banshee πηγαίνοντας "Βοήθεια>Περί>Μνεία>Μετάφραση από>", ότι
κάποια ονόματα μεταφραστών όπως και της ελληνικής γλώσσας, τα βγάζει με
ερωτηματικά "?????? ?????". Σε τι οφείλεται; Μπορούμε να το διορθώσουμε;

Μανώλη,
Το αρχείο με τα ονόματα των μεταφραστών είναι το
http://git.gnome.org/browse/banshee/tree/src/Core/Banshee.Core/Resources/translators.xml
Το αρχείο είναι σωστά σε UTF-8, οπότε το πρόβλημα είναι στο κώδικα και
στο πως διαβάζει το .xml.

Οι εντολές που διαβάζουν το translators.xml είναι
            XmlDocument doc = new XmlDocument ();
            doc.LoadXml (AssemblyResource.GetFileContents
("translators.xml"));

Δε φαίνεται κάτι στραβό.
Οπότε, μπορείς να ελέγξεις στο
https://bugzilla.gnome.org/browse.cgi?product=banshee
αν το πρόβλημα έχει ήδη αναφερθεί; Αν όχι, τότε κάνε μια αναφορά σφάλματος.
Το πρόβλημα είναι ότι ο κώδικας του Banshee εμφανίζει τους μεταφραστές
ως κείμενο ASCII, αντί για UTF-8.

Σίμος

ΟΚ το ελέγχω και θα ενημερώσω.

--
Μανώλης

Συγκεκριμένα το xml αρχείο που βλέπουμε εμείς με ερωτηματικά είναι το
http://git.gnome.org/browse/banshee/tree/src/Core/Banshee.Core/Resources/translators.xml?h=stable-1.8
μιας και στο 10.10 έχουμε το Banshee 1.8.

Βρήκα ένα παλιό bug report και έκανα ένα σχόλιο.
https://bugzilla.gnome.org/show_bug.cgi?id=506556

Πριν κάνω το σχόλιο δοκίμασα το Banshee σε Ubuntu 9.10, 10.04, Linux Mint
Debian Edition και openSUSE.
Όλα έχουν την 1.6 του Banshee.
Το openSUSE όμως δεν είχε πρόβλημα και εμφάνιζε κανονικά τους χαρακτήρες.

Στο bug report λένε πως το έχουν λύσει με μια τροποποίηση σε ένα Makefile.
Μήπως δε γίνεται με το σωστό τρόπο το compile στο Ubuntu και στο Mint?
Παρεμπίπτοντος η κάθε διανομή κάνει μόνη της compile και packaging ή τα
παίρνουν πακεταρισμένα από το Debian?

Προσπάθησα να το κάνω compile μόνος μου αλλά είχα σφάλματα.. θα το
ξαναπροσπαθήσω..

Μπορείς να δεις τον πηγαίο κώδικα του εγκατεστημένου banshee με

apt-get source banshee

Από το επίραμμα/'patch',
http://bugzilla-attachments.gnome.org/attachment.cgi?id=114732
μπορούμε να διαπιστώσουμε αν η έκδοση του Debian/Ubuntu διαθέτει την
προσθήκη.
Δοκίμασέ το.

Για τη μεταγλώττιση του banshee, πρέπει να βάλεις τις εξαρτήσεις για
μεταγλώττιση.
Αυτό το κάνεις με μια εντολή,

sudo apt-get build-dep banshee

Δοκιμάζεις να μεταγλωττίσεις. Για τη δημιουργία του translators.xml το
Banshee τρέχει ένα μικρό
αυτόνομο πρόγραμμα C#. Κατά το επίραμμα, είναι το TranslatorExtractor.cs.

Σίμος

Σίμο χάρη στη βοήθειά σου εντόπισα το πρόβλημα!

Το Makefile δεν ήταν ακριβώς ίδιο στο κώδικα που έχει το Ubuntu.
Έβαλα σε σχόλιο τη γραμμή που ήταν λάθος και πρόσθεσα αυτή από το patch:

$(TRANSLATOR_EXTRACTOR_ASSEMBLY): TranslatorExtractor.cs
    if [ "x$(top_srcdir)" = "x$(top_builddir)" ]; then \
#        $(MCS) -out:$@ $< && LC_ALL=en_US.UTF-8 $(MONO) $@
$(top_builddir)/po > \
        $(MCS) -out:$@ $< && LC_ALL=en_US.utf8 $(MONO) $@ $(top_builddir)/po
\
            $(top_srcdir)/src/Core/Banshee.Core/Resources/translators.xml; \
    fi;

Έκανα μεταγλώττιση και  τα ονόματα εμφανίστηκαν σωστά στη Μνεία! :)
Το περίεργο είναι ότι το πρόγραμμα δεν ήταν εξελληνισμένο μετά.. ίσως είναι
άσχετο αυτό οκ..

Όπως καταλαβαίνω, η αλλαγή που έκανες είναι από en_US.UTF-8 σε
en_US.utf8. Έτσι δεν είναι;
ναι αυτό έκανα

Παλαιότερα οι διανομές χρησιμοποιούσαν τη μορφή '.UTF-8' και τώρα
βλέπω στο Ubuntu το '.utf8'.
Πάντως, όταν θέτω

export LANG el_GR.UTF-8
gedit

ή

export LANG el_GR.utf8
gedit

έχω το ελληνικό gedit, οπότε και τα δύο λειτουργούν. Είναι πιθανό με
το mono να μην καταλαβαίνει ότι αυτά τα δύο είναι ίδια;

και το banshee ελληνικό εμφανίζεται και με el_GR.UTF-8 και με el_GR.utf8 όταν τρέχω το εγκατεστημένο όπως έκανες με το gedit.
απλώς όταν τρέχω το ~/banshee/bin/Banshee.exe που μεταγλώττισα εγώ, βγαίνει αγγλικό.. κάτι κάνω εγώ λάθος μάλλον.

Για να βγαίνει το Banshee που μεταγλώττισες αγγλικό, τότε είναι πιθανό για κάποιο λόγο να μη βρίσκει τις μεταφράσεις. Μπορείς να τρέξεις το Banshee με π.χ.

strace -f -o output.txt ./Banshee.exe

Στο output.txt θα καταγραφούν οι προσπάθειες για άνοιγμα αρχείων, οπότε με π.χ.

grep '^open(' output.txt
ή
grep locale output.txt

μπορείς να δεις αν ψάχνει πραγματικά για την ελληνική μετάφραση, και που ψάχνει.

      
Πώς γίνεται όμως να μην υπάρχει το patch?
Δεν κάνω σχόλιο ακόμα στο bugzilla γιατί νομίζω πως το Ubuntu φταίει που δεν
πήρε το patch..

Για να φτιάξεις τη διόρθωσή σου σε patch, αυτό που πρέπει να κάνεις είναι
1. Λήψη του αποθετηρίου του banshee

sudo apt-get install git-core          # σε περίπτωση που δεν το έχεις ήδη
git clone git://git.gnome.org/banshee

Έπειτα μπαίνεις στο 'banshee' και κάνεις την αλλαγή σου. Τέλος, για να
λάβεις το επίραμμα (patch),
εκτελείς

git diff

Αν για κάποιο λόγο θέλεις να αναιρέσεις τις αλλαγές σου, εκτελείς 'git
reset --hard'.
Μπορείς ακόμα να μεταγλωττίσεις την έκδοση αυτή (ονομάζεται έκδοση git).

Σίμος
Λοιπόν μπερδεύτηκα εντελώς! :)
(όχι με αυτά που είπες)

Το git clone git://git.gnome.org/banshee κατεβάζει την 1.9 έκδοση στην οποία (όπως και στις άλλες τελικά) φαίνεται πως το patch δεν είναι περασμένο.
αυτό το διαπιστώνω κοιτώντας στο tree και αλλάζοντας το branch από master σε stable-1.8 και stable-1.6

http://git.gnome.org/browse/banshee/tree/build/Makefile.am (master)
http://git.gnome.org/browse/banshee/tree/build/Makefile.am?h=stable-1.8
http://git.gnome.org/browse/banshee/tree/build/Makefile.am?h=stable-1.6

Άρα δεν είναι ότι το ubuntu δεν το πέρασε.

To patch το βλέπω περασμένο και στα 3 από τα παραπάνω. Το ότι κάνει αναφορά στο LC_ALL=en_US.UTF-8 σημαίνει ότι το patch είναι περασμένο.

Έτρεξα την εντολή  apt-get source banshee (λαμβάνει το 1.6) και είδα ότι υπάρχει το «LC_ALL=en_US.UTF-8».
Μπορείς να επιβεβαιώσεις ότι δεν υπάρχει αναφορά για LC_ALL=en_US.UTF-8 στο δικό σου apt-get source;
Κανονικά, UTF-8 == utf8.


Από περιέργεια λοιπόν μεταγλωττίζω το 1.9 χωρίς να διορθώσω το λάθος και λειτουργεί κανονικά!
Το δοκίμασα και με την αλλαγή σε utf8 και έπαιξε πάλι.. αλλά τέλοσπάντων δεν χρειάζεται..

Το ζήτημα με το en_US.utf8 / en_US.UTF-8 είναι ότι πρέπει να έχει το locale ο 'build server' του Debian ή Ubuntu για να δουλέψει σωστά. Κατά τη μεταγλώττιση πρέπει να υπάρχει το συγκεκριμένο locale.
 
Οπότε κατέβασα και το 1.8 από το git για να συγκρίνουμε όμοια πράγματα και παίζει και εκεί χωρίς να κάνω τη διόρθωση!

Συγκεκριμένα τη μεταγλώττιση την κάνω ως εξής:
  • Για το πηγαίο κώδικα από το ubuntu:
    apt-get source banshee
    cd banshee-1.8.0
    ./configure --disable-ipod #πετάει σφάλματα με το ipod
    make
  • Για το πηγαίο κώδικα από το git:

    git clone git://git.gnome.org/banshee
    cd banshee
    git checkout origin/stable-1.8
    ./autogen.sh --disable-ipod
    ./configure --disable-ipod
    make -i #βάζω -i για να αγνοεί κάτι σφάλματα του mono που δεν καταλαβαίνω :P
και τρέχω όπως είπα παραπάνω το bin/Banshee.exe

Δύο ίδιες εκδόσεις λοιπόν (1.8) η μία από το git.gnome και η άλλη από το ubuntu συμπεριφέρονται διαφορετικά.
Πως συνεχίζουμε;

Αν κατάλαβα καλά, όταν εσύ μεταγλωττίζεις το translators.xml είναι μια χαρά. Το πακέτο που μεταγλωττίστηκε από το Debian/Ubuntu έχει το πρόβλημα. Οπότε το πιο πιθανό είναι ο build server να μην έχει το locale 'en_US.UTF-8'.

Σίμος

υ.γ.
Με 'git blame build/Makefile.am' μπορείς να δεις πότε μπήκε η διόρθωση με το locale.
Συγκεκριμένα,

7d736c2a (Iain Lane      2009-10-10 21:39:48 +0100 22)          $(MCS) -out:$@ $< && LC_ALL=en_US.UTF-8 $(MONO) $@ $(top_builddir)/po



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