summaryrefslogtreecommitdiff
path: root/xml2po
diff options
context:
space:
mode:
authorDanilo Šegan <danilo@src.gnome.org>2006-04-01 18:47:47 +0000
committerDanilo Šegan <danilo@src.gnome.org>2006-04-01 18:47:47 +0000
commitdf6bf9a32cfb57c3b5ee144affbb30b9d12bee2a (patch)
tree3aa393d92d97f3e1187a600bbc0545e3ea676501 /xml2po
parentd5539eee56326e6db664c119a356d45856ba89a7 (diff)
downloadgnome-doc-utils-df6bf9a32cfb57c3b5ee144affbb30b9d12bee2a.tar.gz
Many bug-fixes and addition of Ubuntu mode.
Diffstat (limited to 'xml2po')
-rw-r--r--xml2po/ChangeLog26
-rw-r--r--xml2po/modes/Makefile.am2
-rw-r--r--xml2po/modes/ubuntu.py25
-rw-r--r--xml2po/tests/docbook.xml.out29
-rw-r--r--xml2po/tests/footnotes.xml.out5
-rw-r--r--xml2po/tests/relnotes/el/rnapplications.xml19
-rw-r--r--xml2po/tests/relnotes/el/rndesktop.xml6
-rw-r--r--xml2po/tests/relnotes/el/rni18n.xml37
-rw-r--r--xml2po/tests/relnotes/el/rnplatform.xml6
-rw-r--r--xml2po/tests/relnotes/el/rnsysadmin.xml12
-rwxr-xr-xxml2po/xml2po.py70
11 files changed, 219 insertions, 18 deletions
diff --git a/xml2po/ChangeLog b/xml2po/ChangeLog
index e2207cd..2679a85 100644
--- a/xml2po/ChangeLog
+++ b/xml2po/ChangeLog
@@ -1,5 +1,31 @@
2006-04-01 Danilo Šegan <danilo@gnome.org>
+ * tests/*: updated test cases.
+
+2006-04-01 Danilo Šegan <danilo@gnome.org>
+
+ Added Ubuntu mode supporting &language; entity replacement.
+
+ * modes/Makefile.am (common_DATA): Added ubuntu.py.
+ * modes/ubuntu.py: Added.
+
+2006-04-01 Danilo Šegan <danilo@gnome.org>
+
+ Fix #172459.
+
+ * xml2po.py (NoneTranslations): return None for all *gettext calls
+ as a fallback.
+ (getTranslation): make use of NoneTranslations.
+ (processElementTag): if mark_untranslated, node.setLang('C').
+
+2006-04-01 Danilo Šegan <danilo@gnome.org>
+
+ * xml2po.py (myAttributeSerialize): Added entity-non-expanding
+ serialization.
+ (startTagForNode): Use myAttributeSerialize.
+
+2006-04-01 Danilo Šegan <danilo@gnome.org>
+
Fix #317110.
* xml2po.py (startTagForNode): fix attribute handling.
diff --git a/xml2po/modes/Makefile.am b/xml2po/modes/Makefile.am
index 343d020..146c1b4 100644
--- a/xml2po/modes/Makefile.am
+++ b/xml2po/modes/Makefile.am
@@ -1,4 +1,4 @@
commondir = $(datadir)/xml2po
-common_DATA = docbook.py empty.py gs.py
+common_DATA = docbook.py empty.py gs.py ubuntu.py
EXTRA_DIST = $(common_DATA)
diff --git a/xml2po/modes/ubuntu.py b/xml2po/modes/ubuntu.py
new file mode 100644
index 0000000..05649f1
--- /dev/null
+++ b/xml2po/modes/ubuntu.py
@@ -0,0 +1,25 @@
+# Copyright (c) 2006 Danilo Segan <danilo@kvota.net>.
+
+import libxml2
+
+from docbook import docbookXmlMode
+
+class ubuntuXmlMode (docbookXmlMode):
+ """Special-casing Ubuntu DocBook website documentation."""
+ def postProcessXmlTranslation(self, doc, language, translators):
+ """Sets a language and translators in "doc" tree."""
+
+ # Call ancestor method
+ docbookXmlMode.postProcessXmlTranslation(self, doc, language, translators)
+
+ try:
+ child = doc.docEntity('language')
+ newent = doc.addDocEntity('my_internal_hacky_language_entity_decl', libxml2.XML_INTERNAL_GENERAL_ENTITY, None, None, language)
+ newent.setName('language')
+ child.replaceNode(newent)
+ except:
+ newent = doc.addDocEntity('language', libxml2.XML_INTERNAL_GENERAL_ENTITY, None, None, language)
+
+
+
+
diff --git a/xml2po/tests/docbook.xml.out b/xml2po/tests/docbook.xml.out
index ee4a7e8..e5dd78f 100644
--- a/xml2po/tests/docbook.xml.out
+++ b/xml2po/tests/docbook.xml.out
@@ -16,10 +16,35 @@
<title>Много измена у Брату буба</title>
<para><application>Брат буба</application> је недавно претрпео велики број измена.</para>
<para>Систем за лов на бубе у Гному се премешта са оног заснованог на е-пошти (какав је био изворно) на систему <ulink url="http://bugzilla.gnome.org/" type="http">Бубаждаји</ulink> заснованом на вебу. Разлог овоме је жеља да се ефикасније барата са грешкама. Ово значи да је <application>Брат буба</application> сада значајно измењен ради подршке Бубаждаји. Изглед и структура су и даље веома слични, али важно је знати да сада податке размењује са бубаждајама. Пријаве ће ићи у стари систем за праћење грешака у Гному једино ако бубаждаја не садржи категорију за грешку.</para>
- <para>Ово такође значи да је за сада <application>Брат буба</application> остао без могућности слања пријава грешака у системе за праћење у КДЕ-у и Дебијану. Приметите да и даље можете сачувати извештаје у датотеци и затим сами је послати. <figure id="rnscreenshot-applet-modem"><title>Ново управљачко програмче за модем</title><screenshot><mediaobject><imageobject><imagedata fileref="figure-applet-modem.png" format="PNG"/></imageobject><textobject><phrase>Ново управљачко програмче за модем</phrase></textobject></mediaobject></screenshot></figure></para>
+ <para>Ово такође значи да је за сада <application>Брат буба</application> остао без могућности слања пријава грешака у системе за праћење у КДЕ-у и Дебијану. Приметите да и даље можете сачувати извештаје у датотеци и затим сами је послати. <figure id="rnscreenshot-applet-modem">
+ <title>Ново управљачко програмче за модем</title>
+ <screenshot>
+ <mediaobject>
+ <imageobject><imagedata fileref="figure-applet-modem.png" format="PNG"/>
+ </imageobject>
+ <textobject><phrase>Ново управљачко програмче за модем</phrase></textobject>
+ </mediaobject>
+ </screenshot>
+ </figure></para>
</note>
- <para><application>Брат буба</application> се може покренути на више начина: <itemizedlist><listitem><para>Отворите <guimenu>главни мени Гнома</guimenu> и изаберите <menuchoice><guimenu>Програми</guimenu><guisubmenu>Програмирање</guisubmenu><guimenuitem>Пријава грешака</guimenuitem></menuchoice> .</para></listitem><listitem><para>Покрените <command>bug-buddy</command> у терминалу као што је <application>Гномов терминал</application> или <application>xterm</application>.</para></listitem><listitem><para>Ако користите <application>Наутилуса</application> можете двокликнути вашим мишем на датотеку меморије да га покренете.</para></listitem><listitem><para>Када програм из Гнома гадно прсне, приказује се <guilabel>прозорче за прсотине</guilabel>. Ако је <application>Брат буба</application> присутан на систему, онда је једна од могућности у прозорчету да пријавите грешку. Избор тога ће вас одвести у следеће прозорче које даље детаље о програму који је прснуо. Продужавање одавде ће покренути <application>Брата буба</application>.</para></listitem></itemizedlist></para>
+ <para><application>Брат буба</application> се може покренути на више начина: <itemizedlist>
+ <listitem>
+ <para>Отворите <guimenu>главни мени Гнома</guimenu> и изаберите <menuchoice><guimenu>Програми</guimenu><guisubmenu>Програмирање</guisubmenu><guimenuitem>Пријава грешака</guimenuitem></menuchoice> .</para>
+ </listitem>
+
+ <listitem>
+ <para>Покрените <command>bug-buddy</command> у терминалу као што је <application>Гномов терминал</application> или <application>xterm</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ако користите <application>Наутилуса</application> можете двокликнути вашим мишем на датотеку меморије да га покренете.</para>
+ </listitem>
+
+ <listitem>
+ <para>Када програм из Гнома гадно прсне, приказује се <guilabel>прозорче за прсотине</guilabel>. Ако је <application>Брат буба</application> присутан на систему, онда је једна од могућности у прозорчету да пријавите грешку. Избор тога ће вас одвести у следеће прозорче које даље детаље о програму који је прснуо. Продужавање одавде ће покренути <application>Брата буба</application>.</para>
+ </listitem>
+ </itemizedlist></para>
<para><application>Брат буба</application> је добро структуиран програм. На сваком кораку можете продужити даље, или се вратити назад и исправити претходно унете детаље, или можете кликнути на <guibutton>дугме за помоћ</guibutton> да прикажете овај документ.</para>
</sect1>
diff --git a/xml2po/tests/footnotes.xml.out b/xml2po/tests/footnotes.xml.out
index 050647c..f6e8296 100644
--- a/xml2po/tests/footnotes.xml.out
+++ b/xml2po/tests/footnotes.xml.out
@@ -5,7 +5,10 @@
<title>Увод</title>
<para>Ово је проба извлачења фуснота<footnote><para>Она кратка објашњења у дну стране</para></footnote>, пошто фусноте нису „финални“ (тј. директно извучени) елементи.</para>
- <para>Ово значи да ако има нешто занемарљивог садржаја унутар фусноте<footnote><para>Сећаш се?</para></footnote>, оне се и даље неће видети у излазу. Ово такође важи и за остале случајеве угњеждених тагова, али је првобитно пријављено за фусноте као грешка #172784.</para>
+ <para>Ово значи да ако има нешто занемарљивог садржаја унутар фусноте<footnote>
+ <para>Сећаш се?</para>
+
+ </footnote>, оне се и даље неће видети у излазу. Ово такође важи и за остале случајеве угњеждених тагова, али је првобитно пријављено за фусноте као грешка #172784.</para>
</sect1>
</article>
diff --git a/xml2po/tests/relnotes/el/rnapplications.xml b/xml2po/tests/relnotes/el/rnapplications.xml
index c82a04b..20d881b 100644
--- a/xml2po/tests/relnotes/el/rnapplications.xml
+++ b/xml2po/tests/relnotes/el/rnapplications.xml
@@ -43,7 +43,12 @@
<sect3 id="rnbrowser">
<title>Περιηγητής Ιστοσελίδων</title>
- <para>Ο περιηγητής ιστοσελίδων "Epiphany" είναι βασισμένος στο Mozilla και ενσωματώνεται πλήρως η λειτουργία του με το περιβάλλον της επιφάνειας εργασίας του GNOME. Οι βελτιώσεις του για το 2.10 περιλαμβάνουν <itemizedlist><listitem><para>Βελτιωμένη λειτουργία πλήρους οθόνης.</para></listitem><listitem><para>Η μπάρα τοποθεσίας τώρα περιέχει την ένδειξη αν ο τόπος είναι ασφαλής, και εμφανίζει και το λεγόμενο favicon του.</para></listitem><listitem><para>Μπορεί να γίνει εξαγωγή των σελιδοδεικτών.</para></listitem><listitem><para>Ένας διαχειριστής επεκτάσεων για πρόσθετες δυνατότητες.</para></listitem></itemizedlist></para>
+ <para>Ο περιηγητής ιστοσελίδων "Epiphany" είναι βασισμένος στο Mozilla και ενσωματώνεται πλήρως η λειτουργία του με το περιβάλλον της επιφάνειας εργασίας του GNOME. Οι βελτιώσεις του για το 2.10 περιλαμβάνουν <itemizedlist>
+ <listitem><para>Βελτιωμένη λειτουργία πλήρους οθόνης.</para></listitem>
+ <listitem><para>Η μπάρα τοποθεσίας τώρα περιέχει την ένδειξη αν ο τόπος είναι ασφαλής, και εμφανίζει και το λεγόμενο favicon του.</para></listitem>
+ <listitem><para>Μπορεί να γίνει εξαγωγή των σελιδοδεικτών.</para></listitem>
+ <listitem><para>Ένας διαχειριστής επεκτάσεων για πρόσθετες δυνατότητες.</para></listitem>
+ </itemizedlist></para>
<figure id="rnscreenshot-epiphany">
<title>Περιηγητής ιστοσελίδων.</title>
@@ -63,7 +68,11 @@
<para>Το Evolution είναι η εφαρμογή Αλληλογραφίας και Groupware που είναι ενσωματωμένη στο GNOME, υποστηρίζει τις παραδοσιακές λειτουργίες των λογαριασμών email, ενώ ταυτόχρονα υποστηρίζει τις εφαρμογές εταιρικής αλληλογραφίας Novell Groupwise και Microsoft Exchange.</para>
<para>Στο GNOME 2.10 είναι ακόμα πιο εύκολο να εργάζεστε χωρίς σύνδεση, με το email σας, το ημερολόγιο και τις επαφές σας αν χρησιμοποιείτε IMAP, LDAP, WebCal, Groupwise, ή Exchange. Οι αλλαγές σας θα επανασυγχρονιστούν όταν ξανασυνδεθείτε στο δίκτυο.</para>
- <para>Αυτή η νέα έκδοση προσφέρει και κάποιες άλλες βελτιώσεις στο ημερολόγιο: <itemizedlist><listitem><para>Είναι δυνατή η επισύναψη αρχείων σε γεγονότα.</para></listitem><listitem><para>Μπορεί να γίνουν εξαιρέσεις σε επαναλαμβανόμενα γεγονότα.</para></listitem><listitem><para>Το ημερολόγιο περιέχει πληροφορίες καιρού (μόνο για ΗΠΑ).</para></listitem></itemizedlist></para>
+ <para>Αυτή η νέα έκδοση προσφέρει και κάποιες άλλες βελτιώσεις στο ημερολόγιο: <itemizedlist>
+ <listitem><para>Είναι δυνατή η επισύναψη αρχείων σε γεγονότα.</para></listitem>
+ <listitem><para>Μπορεί να γίνουν εξαιρέσεις σε επαναλαμβανόμενα γεγονότα.</para></listitem>
+ <listitem><para>Το ημερολόγιο περιέχει πληροφορίες καιρού (μόνο για ΗΠΑ).</para></listitem>
+ </itemizedlist></para>
<figure id="rnscreenshot-evolution-weather">
<title>καθημερινές προγνώσεις καιρού</title>
@@ -75,7 +84,11 @@
</screenshot>
</figure>
- <para>Και ακόμα περισσότερες νέες λειτουργίες: <itemizedlist><listitem><para>Τώρα υποστηρίζονται κοινόχρηστοι φάκελοι Groupwise και επιλογές αποστολής.</para></listitem><listitem><para>Υποστηρίζονται μεγέθη φακέλων Exchange και προειδοποιήσεις λήξης κωδικών πρόσβασης.</para></listitem><listitem><para>Η διεπαφή της εφαρμογής ηλεκτρονικής αλληλογραφίας θα διαμορφωθεί κατάλληλα για χρήση για τις γλώσσες με γραφή από αριστερά στα δεξιά.</para></listitem></itemizedlist></para>
+ <para>Και ακόμα περισσότερες νέες λειτουργίες: <itemizedlist>
+ <listitem><para>Τώρα υποστηρίζονται κοινόχρηστοι φάκελοι Groupwise και επιλογές αποστολής.</para></listitem>
+ <listitem><para>Υποστηρίζονται μεγέθη φακέλων Exchange και προειδοποιήσεις λήξης κωδικών πρόσβασης.</para></listitem>
+ <listitem><para>Η διεπαφή της εφαρμογής ηλεκτρονικής αλληλογραφίας θα διαμορφωθεί κατάλληλα για χρήση για τις γλώσσες με γραφή από αριστερά στα δεξιά.</para></listitem>
+ </itemizedlist></para>
<figure id="rnscreenshot-evolution-mail">
<title>Εφαρμογή ηλεκτρονικής αλληλογραφίας</title>
diff --git a/xml2po/tests/relnotes/el/rndesktop.xml b/xml2po/tests/relnotes/el/rndesktop.xml
index f9e1f92..e572a96 100644
--- a/xml2po/tests/relnotes/el/rndesktop.xml
+++ b/xml2po/tests/relnotes/el/rndesktop.xml
@@ -12,7 +12,11 @@
<para>Λόγω των αλλαγών στην εσωτερική του αρχιτεκτονική, o διαχειριστής αρχείων, που είναι γνωστός και ως Ναυτίλος, έγινε ακόμα πιο γρήγορος και σταθερός στο GNOME 2.10. Αυτή η αλλαγή θα επιτρέψει μελλοντικά στους προγραμματιστές να τον επεκτείνουν και να τον βελτιώσουν πιο εύκολα.</para>
<para>Η μεταφορά και ρίψη (drag and drop) με άλλες εφαρμογές όπως Mozilla και Firefox τώρα λειτουργεί ακόμα πιο ομαλά.</para>
- <para>Ακόμα υπάρχουν πολλές μικρές βελτιώσεις που προβάλουν την σημασία που δίνει το GNOME στη λεπτομέρεια. Για παράδειγμα, <itemizedlist><listitem><para>Το κουμπί διαδρομής είναι πια ένα ευδιάκριτο κουμπί.</para></listitem><listitem><para>Όταν δημιουργείτε νέα αρχεία, η λειτουργία μετονομασίας ξεκινάει αυτόματα.</para></listitem><listitem><para>Όταν χρησιμοποιείτε πλοήγηση μέσω πληκτρολογίου για να ανοίξετε τον γονικό φάκελο (Alt-Up), θα επιλεχθεί ο τρέχων φάκελος.</para></listitem></itemizedlist></para>
+ <para>Ακόμα υπάρχουν πολλές μικρές βελτιώσεις που προβάλουν την σημασία που δίνει το GNOME στη λεπτομέρεια. Για παράδειγμα, <itemizedlist>
+ <listitem><para>Το κουμπί διαδρομής είναι πια ένα ευδιάκριτο κουμπί.</para></listitem>
+ <listitem><para>Όταν δημιουργείτε νέα αρχεία, η λειτουργία μετονομασίας ξεκινάει αυτόματα.</para></listitem>
+ <listitem><para>Όταν χρησιμοποιείτε πλοήγηση μέσω πληκτρολογίου για να ανοίξετε τον γονικό φάκελο (Alt-Up), θα επιλεχθεί ο τρέχων φάκελος.</para></listitem>
+ </itemizedlist></para>
<figure id="rnscreenshot-nautilus">
<title>Ο διαχειριστής αρχείων Ναυτίλος, όμορφος και ισχυρός</title>
diff --git a/xml2po/tests/relnotes/el/rni18n.xml b/xml2po/tests/relnotes/el/rni18n.xml
index 23685ca..4c48eb6 100644
--- a/xml2po/tests/relnotes/el/rni18n.xml
+++ b/xml2po/tests/relnotes/el/rni18n.xml
@@ -8,7 +8,42 @@
<!-- Translators: I have only changed language count in here: s/40/33/ --><para>Ευχαριστίες στους συντελεστές του παγκόσμιου <ulink url="http://developer.gnome.org/projects/gtp/">Έργου Μετάφρασης του GNOME</ulink>, το οποίο κάτω από την καθοδήγηση του Christian Rose και Kjartan Maraas, το GNOME 2.10 παρέχει υποστήριξη για 33 γλώσσες (με τουλάχιστον 80 τοις εκατό των μηνυμάτων μεταφρασμένα). Για την τοπικοποίηση του GNOME 2.10 στα ελληνικά εργάστηκαν οι Κώστας Παπαδήμας, Νίκος Χαρωνιτάκης, Πέτρος Βελώνης και Σίμος Ξενιτέλλης. Μπορείτε να έρθετε σε επαφή με την ελληνική ομάδα στο δικτυακό τόπο <ulink url="http://www.gnome.gr/">http://www.gnome.gr</ulink>.</para>
- <para>Υποστηριζόμενες γλώσσες: <itemizedlist><listitem><para>Αλβανικά (5 εκατομμύρια ομιλούντες)</para></listitem><listitem><para>Πορτογαλικά Βραζιλίας (175 εκατομμύρια)</para></listitem><listitem><para>Βουλγαρικά (9 εκατομμύρια)</para></listitem><listitem><para>Καταλανικά (7 εκατομμύρια)</para></listitem><listitem><para>Απλοποιημένά Κινέζικα (πάνω απο 1 δισεκατομμύριο)</para></listitem><listitem><para>Παραδοσιακά Κινέζικα (40 εκατομμύρια)</para></listitem><listitem><para>Τσέχικα (11 εκατομμύρια)</para></listitem><listitem><para>Δανικά (5.3 εκατομμύρια)</para></listitem><listitem><para>Ολλανδικά (πάνω από 21 εκατομμύρια)</para></listitem><listitem><para>Αγγλικά (341 εκατομμύρια)</para></listitem><listitem><para>Φινλαδικά (πάνω από 5 εκατομμύρια)</para></listitem><listitem><para>Γαλλικά (πάνω από 75 εκατομμύρια)</para></listitem><listitem><para>Γερμανικά (100 εκατομμύρια)</para></listitem><listitem><para>Ελληνικά (15 εκατομμύρια)</para></listitem><listitem><para>Γκουτζαράτι (46 εκατομμύρια)</para></listitem><listitem><para>Χίντι (370 εκατομμύρια)</para></listitem><listitem><para>Ουγγρικά (14.5 εκατομύρια)</para></listitem><listitem><para>Ιταλικά (60 εκατομμύρια)</para></listitem><listitem><para>Ιαπωνικά (πάνω από 125 εκατομμύρια)</para></listitem><listitem><para>Κορεάτικα (75 εκατομμύρια)</para></listitem><listitem><para>Λιθουανικά (4 εκατομμύρια)</para></listitem><listitem><para>Νορβηγικά Bookmal (5 εκατομμύρια)</para></listitem><listitem><para>Πουντζάμπι (60 εκατομμύρια)</para></listitem><listitem><para>Πολωνικά (44 εκατομμύρια)</para></listitem><listitem><para>Πορτογαλικά (43 εκατομμύρια)</para></listitem><listitem><para>Ρωσικά (170 εκατομμύρια)</para></listitem><listitem><para>Ρουμανικά (26 εκατομμύρια)</para></listitem><listitem><para>Σερβικά (10 εκατομμύρια)</para></listitem><listitem><para>Ισπανικά (πάνω από 350 εκατομμύρια)</para></listitem><listitem><para>Σουηδικά (9 εκατομμύρια)</para></listitem><listitem><para>Ταμίλ (61 εκατομμύρια)</para></listitem><listitem><para>Τουρκικά (61 εκατομμύρια)</para></listitem><listitem><para>Ουκρανικά (50 εκατομμύρια)</para></listitem><listitem><para>Ουαλικά (575.000)</para></listitem></itemizedlist></para>
+ <para>Υποστηριζόμενες γλώσσες: <itemizedlist>
+ <listitem><para>Αλβανικά (5 εκατομμύρια ομιλούντες)</para></listitem>
+ <listitem><para>Πορτογαλικά Βραζιλίας (175 εκατομμύρια)</para></listitem>
+ <listitem><para>Βουλγαρικά (9 εκατομμύρια)</para></listitem>
+ <listitem><para>Καταλανικά (7 εκατομμύρια)</para></listitem>
+ <listitem><para>Απλοποιημένά Κινέζικα (πάνω απο 1 δισεκατομμύριο)</para></listitem>
+ <listitem><para>Παραδοσιακά Κινέζικα (40 εκατομμύρια)</para></listitem>
+ <listitem><para>Τσέχικα (11 εκατομμύρια)</para></listitem>
+ <listitem><para>Δανικά (5.3 εκατομμύρια)</para></listitem>
+ <listitem><para>Ολλανδικά (πάνω από 21 εκατομμύρια)</para></listitem>
+ <listitem><para>Αγγλικά (341 εκατομμύρια)</para></listitem>
+ <listitem><para>Φινλαδικά (πάνω από 5 εκατομμύρια)</para></listitem>
+ <listitem><para>Γαλλικά (πάνω από 75 εκατομμύρια)</para></listitem>
+ <listitem><para>Γερμανικά (100 εκατομμύρια)</para></listitem>
+ <listitem><para>Ελληνικά (15 εκατομμύρια)</para></listitem>
+ <listitem><para>Γκουτζαράτι (46 εκατομμύρια)</para></listitem>
+ <listitem><para>Χίντι (370 εκατομμύρια)</para></listitem>
+ <listitem><para>Ουγγρικά (14.5 εκατομύρια)</para></listitem>
+ <listitem><para>Ιταλικά (60 εκατομμύρια)</para></listitem>
+ <listitem><para>Ιαπωνικά (πάνω από 125 εκατομμύρια)</para></listitem>
+ <listitem><para>Κορεάτικα (75 εκατομμύρια)</para></listitem>
+ <listitem><para>Λιθουανικά (4 εκατομμύρια)</para></listitem>
+ <listitem><para>Νορβηγικά Bookmal (5 εκατομμύρια)</para></listitem>
+ <listitem><para>Πουντζάμπι (60 εκατομμύρια)</para></listitem>
+ <listitem><para>Πολωνικά (44 εκατομμύρια)</para></listitem>
+ <listitem><para>Πορτογαλικά (43 εκατομμύρια)</para></listitem>
+ <listitem><para>Ρωσικά (170 εκατομμύρια)</para></listitem>
+ <listitem><para>Ρουμανικά (26 εκατομμύρια)</para></listitem>
+ <listitem><para>Σερβικά (10 εκατομμύρια)</para></listitem>
+ <listitem><para>Ισπανικά (πάνω από 350 εκατομμύρια)</para></listitem>
+ <listitem><para>Σουηδικά (9 εκατομμύρια)</para></listitem>
+ <listitem><para>Ταμίλ (61 εκατομμύρια)</para></listitem>
+ <listitem><para>Τουρκικά (61 εκατομμύρια)</para></listitem>
+ <listitem><para>Ουκρανικά (50 εκατομμύρια)</para></listitem>
+ <listitem><para>Ουαλικά (575.000)</para></listitem>
+ </itemizedlist></para>
<!-- These paragraphs are incorrect now.
<para>Note that Basque, Bulgarian, Gujarati, Hindi, Hungarian, Norwegian Nynorsk, Panjabi and Tamil
diff --git a/xml2po/tests/relnotes/el/rnplatform.xml b/xml2po/tests/relnotes/el/rnplatform.xml
index d493256..84f8407 100644
--- a/xml2po/tests/relnotes/el/rnplatform.xml
+++ b/xml2po/tests/relnotes/el/rnplatform.xml
@@ -5,6 +5,10 @@
]>
<sect2 id="rnplatform">
<title>Βελτιώσεις Πλατφόρμας</title>
- <para>Η πλατφόρμα ανάπτυξης εφαρμογών του GNOME 2.10 παρέχει μια σταθερή βάση για ανάπτυξη λογισμικού από τρίτους, καθώς και από το το ίδιο το GNOME. Το GNOME 2.10 προσθέτει μερικές βελτιώσεις ΑPI, και διατηρεί την προς τα πίσω συμβατότητα και την σταθερότητα των API. Συγκεκριμένα αυτή την περίοδο έχουμε: <itemizedlist><listitem><para>Το GTK+ 2.6 έχει νέους μηχανισμούς εμφάνισης κελιών, νέα κουμπιά, προβολή Εικονιδίων, και ένα νέο κουτί του διαλόγου Περί.</para></listitem><listitem><para>Το glib 2.6 έχει ένα ευκολότερο API ανάλυσης γραμμής εντολών.</para></listitem><listitem><para>Οι Συνδέσεις Πλατφόρμας (Platform Bindings) τώρα περιλαμβάνουν πλήρη Python API για την πλατφόρμα ανάπτυξης του GNOME, μέσω του gnome-python. Επιπρόσθετα υπάρχουν τα τρέχοντα bindings για C++, Java, Perl, και Python, μέσω των έργων <ulink url="http://www.gtkmm.org/">gtkmm</ulink>, <ulink url="http://java-gnome.sourceforge.net/">java-gnome</ulink>, <ulink url="http://gtk2-perl.sourceforge.net/">gtk2-perl</ulink> και <ulink url="http://www.pygtk.org/">pygtk</ulink>.</para></listitem></itemizedlist></para>
+ <para>Η πλατφόρμα ανάπτυξης εφαρμογών του GNOME 2.10 παρέχει μια σταθερή βάση για ανάπτυξη λογισμικού από τρίτους, καθώς και από το το ίδιο το GNOME. Το GNOME 2.10 προσθέτει μερικές βελτιώσεις ΑPI, και διατηρεί την προς τα πίσω συμβατότητα και την σταθερότητα των API. Συγκεκριμένα αυτή την περίοδο έχουμε: <itemizedlist>
+ <listitem><para>Το GTK+ 2.6 έχει νέους μηχανισμούς εμφάνισης κελιών, νέα κουμπιά, προβολή Εικονιδίων, και ένα νέο κουτί του διαλόγου Περί.</para></listitem>
+ <listitem><para>Το glib 2.6 έχει ένα ευκολότερο API ανάλυσης γραμμής εντολών.</para></listitem>
+ <listitem><para>Οι Συνδέσεις Πλατφόρμας (Platform Bindings) τώρα περιλαμβάνουν πλήρη Python API για την πλατφόρμα ανάπτυξης του GNOME, μέσω του gnome-python. Επιπρόσθετα υπάρχουν τα τρέχοντα bindings για C++, Java, Perl, και Python, μέσω των έργων <ulink url="http://www.gtkmm.org/">gtkmm</ulink>, <ulink url="http://java-gnome.sourceforge.net/">java-gnome</ulink>, <ulink url="http://gtk2-perl.sourceforge.net/">gtk2-perl</ulink> και <ulink url="http://www.pygtk.org/">pygtk</ulink>.</para></listitem>
+ </itemizedlist></para>
</sect2>
diff --git a/xml2po/tests/relnotes/el/rnsysadmin.xml b/xml2po/tests/relnotes/el/rnsysadmin.xml
index 5cacd9d..32d8a94 100644
--- a/xml2po/tests/relnotes/el/rnsysadmin.xml
+++ b/xml2po/tests/relnotes/el/rnsysadmin.xml
@@ -15,7 +15,11 @@
<para>Τα εργαλεία συστήματος σάς επιτρέπουν να ρυθμίσετε το ρολόι του συστήματος σας, την σύνδεση δικτύου αλλά και να διαχειριστείτε τους χρήστες και τις ομάδες στο συστήματος σας. Προς το παρόν, τα εργαλεία αυτά είναι σχεδιασμένα να δουλεύουν καλύτερα σε προσωπικούς υπολογιστές παρά σε μεγάλα δίκτυα υπολογιστών.</para>
- <para>Το GNOME 2.10 φέρνει αρκετές βελτιώσεις, όπως <itemizedlist><listitem><para>Δικτύωση: Βελτιωμένη υποστήριξη ασύρματων ευρυζωνικών συνδέσεων (εντοπισμός WEP και ESSID), καθώς και συνδέσεων ISDN.</para></listitem><listitem><para>Χρήστες και Ομάδες: Ευκολότερη επεξεργασία μελών ομάδας.</para></listitem><listitem><para>Οι αλλαγές έχουν άμεση εφαρμογή όπου αυτό είναι διαθέσιμο.</para></listitem></itemizedlist></para>
+ <para>Το GNOME 2.10 φέρνει αρκετές βελτιώσεις, όπως <itemizedlist>
+ <listitem><para>Δικτύωση: Βελτιωμένη υποστήριξη ασύρματων ευρυζωνικών συνδέσεων (εντοπισμός WEP και ESSID), καθώς και συνδέσεων ISDN.</para></listitem>
+ <listitem><para>Χρήστες και Ομάδες: Ευκολότερη επεξεργασία μελών ομάδας.</para></listitem>
+ <listitem><para>Οι αλλαγές έχουν άμεση εφαρμογή όπου αυτό είναι διαθέσιμο.</para></listitem>
+ </itemizedlist></para>
<figure id="rnscreenshot-sysadmin-systemtools">
<title>Τα εργαλεία Ρολόι, Δίκτυο και Χρήστες/Ομάδες</title>
@@ -33,7 +37,11 @@
<sect3 id="rnsysadmin-logviewer">
<title>Εφαρμογή Προβολής Καταγραφών Συστήματος</title>
- <para>Η εφαρμογή προβολής αρχείων καταγραφών συστήματος του GNOME έχει μια επιπρόσθετη λειτουργία εύρεσης, καθώς και μια βελτιωμένη λειτουργία παρακολούθησης. Ακόμα, μπορεί τώρα να <itemizedlist><listitem><para>Άνοιγμα πολλαπλών καταγραφών συστήματος σε ξεχωριστά παράθυρα.</para></listitem><listitem><para>Άνοιγμα αποθηκευμένων αρχείων καταγραφής και αρχείων καταγραφής σε δίσκους δικτύου.</para></listitem><listitem><para>Αντιγραφή αρχείων καταγραφής στο πρόχειρο.</para></listitem></itemizedlist></para>
+ <para>Η εφαρμογή προβολής αρχείων καταγραφών συστήματος του GNOME έχει μια επιπρόσθετη λειτουργία εύρεσης, καθώς και μια βελτιωμένη λειτουργία παρακολούθησης. Ακόμα, μπορεί τώρα να <itemizedlist>
+ <listitem><para>Άνοιγμα πολλαπλών καταγραφών συστήματος σε ξεχωριστά παράθυρα.</para></listitem>
+ <listitem><para>Άνοιγμα αποθηκευμένων αρχείων καταγραφής και αρχείων καταγραφής σε δίσκους δικτύου.</para></listitem>
+ <listitem><para>Αντιγραφή αρχείων καταγραφής στο πρόχειρο.</para></listitem>
+ </itemizedlist></para>
<figure id="rnscreenshot-sysadmin-logviewer">
<title>Εφαρμογή Προβολής Καταγραφών Συστήματος</title>
diff --git a/xml2po/xml2po.py b/xml2po/xml2po.py
index 72ab469..477bfc0 100755
--- a/xml2po/xml2po.py
+++ b/xml2po/xml2po.py
@@ -36,6 +36,27 @@ import gettext
import os
import re
+class NoneTranslations:
+ def gettext(self, message):
+ return None
+
+ def lgettext(self, message):
+ return None
+
+ def ngettext(self, msgid1, msgid2, n):
+ return None
+
+ def lngettext(self, msgid1, msgid2, n):
+ return None
+
+ def ugettext(self, message):
+ return None
+
+ def ungettext(self, msgid1, msgid2, n):
+ return None
+
+
+
class MessageOutput:
def __init__(self, with_translations = 0):
self.messages = []
@@ -223,11 +244,34 @@ def getTranslation(text, spacepreserve = 0):
return text
file = open(mofile, "rb")
if file:
+ myfallback = NoneTranslations()
gt = gettext.GNUTranslations(file)
+ gt.add_fallback(myfallback)
if gt:
- return gt.ugettext(text.decode('utf-8'))
+ res = gt.ugettext(text.decode('utf-8'))
+ return res
+
return text
+def myAttributeSerialize(node):
+ result = ''
+ if node.children:
+ child = node.children
+ while child:
+ if child.type=='text':
+ result += doc.encodeEntitiesReentrant(child.content)
+ elif child.type=='entity_ref':
+ if not expand_entities:
+ result += '&' + child.name + ';'
+ else:
+ result += child.content.decode('utf-8')
+ else:
+ result += myAttributeSerialize(child)
+ child = child.next
+ else:
+ result = node.serialize('utf-8')
+ return result
+
def startTagForNode(node):
if not node:
return 0
@@ -241,7 +285,7 @@ def startTagForNode(node):
nsprop = p.ns().name + ":" + p.name
except:
nsprop = p.name
- params += " %s=\"%s\"" % (nsprop, p.doc.encodeEntitiesReentrant(p.content))
+ params += " %s=\"%s\"" % (nsprop, myAttributeSerialize(p))
return result+params
def endTagForNode(node):
@@ -342,6 +386,7 @@ def replaceNodeContentsWithText(node,text):
return
newelem = newnode.getRootElement()
+
if newelem and newelem.children:
free = node.children
while free:
@@ -425,17 +470,23 @@ def processElementTag(node, replacements, restart = 0):
translation = getTranslation(outtxt, isSpacePreserveNode(node))
else:
translation = outtxt
+
starttag = startTagForNode(node)
endtag = endTagForNode(node)
- if restart or worthOutputting(node):
+ worth = worthOutputting(node)
+ if not translation:
+ translation = outtxt.decode('utf-8')
+ if worth and mark_untranslated: node.setLang('C')
+
+ if restart or worth:
i = 0
while i < len(myrepl):
replacement = '<%s>%s</%s>' % (myrepl[i][0], myrepl[i][3], myrepl[i][2])
i += 1
translation = translation.replace('<placeholder-%d/>' % (i), replacement)
- if worthOutputting(node):
+ if worth:
if mode == 'merge':
replaceNodeContentsWithText(node, translation)
else:
@@ -521,9 +572,10 @@ def read_ignoredtags(filelist):
def tryToUpdate(allargs, lang):
# Remove "-u" and "--update-translation"
+ print >>sys.stderr, "OVDI!"
command = allargs[0]
args = allargs[1:]
- opts, args = getopt.getopt(args, 'avhmket:o:p:u:',
+ opts, args = getopt.getopt(args, 'avhm:ket:o:p:u:',
['automatic-tags','version', 'help', 'keep-entities', 'extract-all-entities', 'merge', 'translation=',
'output=', 'po-file=', 'update-translation=' ])
for opt, arg in opts:
@@ -604,6 +656,7 @@ translationlanguage = ''
mode = 'pot' # 'pot' or 'merge'
automatic = 0
expand_entities = 1
+mark_untranslated = 0
expand_all_entities = 0
output = '-' # this means to stdout
@@ -629,7 +682,10 @@ OPTIONS may be some of:
-r --reuse=FILE Specify translated XML file with the same structure
-t --translation=FILE Specify MO file containing translation, and merge
-u --update-translation=LANG.po Updates a PO file using msgmerge program
+
-l --language=LANG Set language of the translation to LANG
+ --mark-untranslated Set 'xml:lang="C"' on untranslated tags
+
-v --version Output version of the xml2po program
-h --help Output this message
@@ -651,7 +707,7 @@ if len(sys.argv) < 2: usage()
args = sys.argv[1:]
try: opts, args = getopt.getopt(args, 'avhkem:t:o:p:u:r:l:',
['automatic-tags','version', 'help', 'keep-entities', 'expand-all-entities', 'mode=', 'translation=',
- 'output=', 'po-file=', 'update-translation=', 'reuse=', 'language=' ])
+ 'output=', 'po-file=', 'update-translation=', 'reuse=', 'language=', 'mark-untranslated' ])
except getopt.GetoptError: usage(True)
for opt, arg in opts:
@@ -661,6 +717,8 @@ for opt, arg in opts:
automatic = 1
elif opt in ('-k', '--keep-entities'):
expand_entities = 0
+ elif opt in ('--mark-untranslated',):
+ mark_untranslated = 1
elif opt in ('-e', '--expand-all-entities'):
expand_all_entities = 1
elif opt in ('-l', '--language'):