center screens
authorDr.Best <dr_best@users.schwerkraft.elitedvb.net>
Sat, 20 Jun 2009 12:59:42 +0000 (12:59 +0000)
committerDr.Best <dr_best@users.schwerkraft.elitedvb.net>
Sat, 20 Jun 2009 12:59:42 +0000 (12:59 +0000)
add support for custom localizations and german translation

configure.ac
partnerbox/CONTROL/control
partnerbox/Makefile.am
partnerbox/po/Makefile.am [new file with mode: 0644]
partnerbox/po/Partnerbox.pot [new file with mode: 0644]
partnerbox/po/de.po [new file with mode: 0644]
partnerbox/src/PartnerboxEPGSelection.py
partnerbox/src/PartnerboxSetup.py
partnerbox/src/RemoteTimerEntry.py
partnerbox/src/__init__.py
partnerbox/src/plugin.py

index 9168450..63edb7a 100644 (file)
@@ -202,6 +202,7 @@ partnerbox/Makefile
 partnerbox/src/Makefile
 partnerbox/src/servicewebts/Makefile
 partnerbox/src/icons/Makefile
+partnerbox/po/Makefile
 
 quickbutton/Makefile
 quickbutton/po/Makefile
index 09be7b1..026052b 100644 (file)
@@ -6,5 +6,5 @@ Section: extra
 Priority: optional
 Maintainer: Dr. Best <dr.best@dreambox-tools.info>
 Homepage: http://www.dreambox-tools.info
-Depends: enigma2, twisted-web
+Depends: enigma2(>2.6git20090615), twisted-web
 Source: http://enigma2-plugins.schwerkraft.elitedvb.net/
index af437a6..dd6709f 100755 (executable)
@@ -1 +1 @@
-SUBDIRS = src
+SUBDIRS = src po
diff --git a/partnerbox/po/Makefile.am b/partnerbox/po/Makefile.am
new file mode 100644 (file)
index 0000000..edc66aa
--- /dev/null
@@ -0,0 +1,57 @@
+#
+# to use this for the localisation of other plugins,
+# just change the DOMAIN to the name of the Plugin.
+# It is assumed, that the domain ist the same as
+# the directory name of the plugin.
+#
+
+DOMAIN=Partnerbox
+installdir = /usr/lib/enigma2/python/Plugins/Extensions/$(DOMAIN)
+#GETTEXT=./pygettext.py
+GETTEXT=xgettext
+
+#MSGFMT = ./msgfmt.py
+MSGFMT = msgfmt
+
+LANGS := de
+LANGPO := $(foreach LANG, $(LANGS),$(LANG).po)
+LANGMO := $(foreach LANG, $(LANGS),$(LANG).mo)
+
+default: $(DOMAIN).pot $(LANGPO) merge $(LANGMO)
+       for lang in $(LANGS); do \
+               mkdir -p $$lang/LC_MESSAGES; \
+               cp $$lang.mo $$lang/LC_MESSAGES/$(DOMAIN).mo; \
+       done
+
+merge:
+       for lang in $(LANGS); do \
+               msgmerge --no-location -s -N -U $$lang.po $(DOMAIN).pot; \
+       done
+
+
+# the TRANSLATORS: allows putting translation comments before the to-be-translated line.
+$(DOMAIN).pot:
+       $(GETTEXT) -L python --add-comments="TRANSLATORS:" -d $(DOMAIN) -s -o $(DOMAIN).pot ../src/*.py
+       msguniq -o $(DOMAIN)uniq.pot $(DOMAIN).pot
+       $(RM) $(DOMAIN).pot
+       mv $(DOMAIN)uniq.pot $(DOMAIN).pot
+
+.PHONY: $(DOMAIN).pot
+
+
+%.mo: %.po
+       $(MSGFMT) -o $@ $<
+
+%.po:
+       msginit -l $@ -o $@ -i $(DOMAIN).pot --no-translator
+
+CLEANFILES = $(foreach LANG, $(LANGS),$(LANG).mo)
+
+clean-local:
+       $(RM) -r $(LANGS)
+
+install-data-am: default
+       for lang in $(LANGS); do \
+               mkdir -p $(DESTDIR)$(installdir)/locale/$$lang/LC_MESSAGES; \
+               cp $$lang.mo $(DESTDIR)$(installdir)/locale/$$lang/LC_MESSAGES/$(DOMAIN).mo; \
+       done
diff --git a/partnerbox/po/Partnerbox.pot b/partnerbox/po/Partnerbox.pot
new file mode 100644 (file)
index 0000000..69ce954
--- /dev/null
@@ -0,0 +1,394 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-06-20 14:39+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/RemoteTimerEntry.py:135 ../src/RemoteTimerEntry.py:414
+msgid "%d.%B %Y"
+msgstr ""
+
+#: ../src/plugin.py:1234 ../src/plugin.py:1239 ../src/plugin.py:1291
+#: ../src/plugin.py:1296
+msgid "(ZAP)"
+msgstr ""
+
+#: ../src/plugin.py:1255 ../src/plugin.py:1319 ../src/plugin.py:1321
+msgid "<unknown>"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:127
+msgid "Add"
+msgstr ""
+
+#: ../src/plugin.py:944 ../src/plugin.py:1003
+msgid "Add timer"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:176 ../src/RemoteTimerEntry.py:178
+#: ../src/RemoteTimerEntry.py:463 ../src/RemoteTimerEntry.py:465
+msgid "After event"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:68 ../src/PartnerboxSetup.py:234
+#: ../src/RemoteTimerEntry.py:73
+msgid "Cancel"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:170 ../src/RemoteTimerEntry.py:457
+msgid "Channel"
+msgstr ""
+
+#: ../src/plugin.py:236
+msgid "Clean up"
+msgstr ""
+
+#: ../src/plugin.py:318
+msgid "Cleaning up finished timer entries..."
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:132 ../src/RemoteTimerEntry.py:411
+msgid "DVR"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:157 ../src/RemoteTimerEntry.py:444
+msgid "Date"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:129 ../src/PartnerboxSetup.py:236
+#: ../src/plugin.py:233
+msgid "Delete"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:154 ../src/RemoteTimerEntry.py:441
+msgid "Description"
+msgstr ""
+
+#: ../src/PartnerboxEPGSelection.py:111 ../src/plugin.py:337
+#: ../src/plugin.py:1152
+#, python-format
+msgid ""
+"Do you really want to delete the timer \n"
+"%s ?"
+msgstr ""
+
+#: ../src/plugin.py:235 ../src/plugin.py:507 ../src/plugin.py:651
+msgid "EPG Selection"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:128
+msgid "Edit"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:78
+msgid "Enable Partnerbox-Function in EPGList"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:77
+msgid "Enable Partnerbox-Function in TimerEvent"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:163 ../src/RemoteTimerEntry.py:168
+#: ../src/RemoteTimerEntry.py:450 ../src/RemoteTimerEntry.py:455
+msgid "EndTime"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:40
+msgid "Enigma 1"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:40
+msgid "Enigma 2"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:126 ../src/PartnerboxSetup.py:249
+msgid "Enigma Type"
+msgstr ""
+
+#: ../src/plugin.py:1311
+msgid "Error: No space left"
+msgstr ""
+
+#: ../src/plugin.py:1317
+msgid "Error: Outdated"
+msgstr ""
+
+#: ../src/plugin.py:1313
+msgid "Error: User aborted"
+msgstr ""
+
+#: ../src/plugin.py:1315
+msgid "Error: Zap failed"
+msgstr ""
+
+#: ../src/plugin.py:1222 ../src/plugin.py:1279 ../src/plugin.py:1395
+msgid "Fri"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:143 ../src/RemoteTimerEntry.py:422
+msgid "Friday"
+msgstr ""
+
+#: ../src/plugin.py:512
+msgid "Getting Channel Information..."
+msgstr ""
+
+#: ../src/plugin.py:948
+msgid "Getting EPG Information..."
+msgstr ""
+
+#: ../src/plugin.py:400
+msgid "Getting Partnerbox Bouquet Information..."
+msgstr ""
+
+#: ../src/plugin.py:237
+msgid "Getting Partnerbox Information..."
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:124 ../src/PartnerboxSetup.py:247
+msgid "IP"
+msgstr ""
+
+#: ../src/plugin.py:510 ../src/plugin.py:652 ../src/plugin.py:947
+#: ../src/plugin.py:998
+msgid "Info"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:173 ../src/RemoteTimerEntry.py:460
+msgid "Location"
+msgstr ""
+
+#: ../src/plugin.py:127 ../src/plugin.py:135
+msgid "Manage timer for other dreamboxes in network"
+msgstr ""
+
+#: ../src/plugin.py:1222 ../src/plugin.py:1279 ../src/plugin.py:1395
+msgid "Mon"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:143 ../src/RemoteTimerEntry.py:422
+msgid "Monday"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:132 ../src/RemoteTimerEntry.py:411
+msgid "NGRAB"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:123 ../src/PartnerboxSetup.py:246
+#: ../src/RemoteTimerEntry.py:153 ../src/RemoteTimerEntry.py:440
+msgid "Name"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:289
+msgid "No"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:69 ../src/PartnerboxSetup.py:235
+#: ../src/RemoteTimerEntry.py:72
+msgid "OK"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:523 ../src/RemoteTimerEntry.py:533
+#, python-format
+msgid ""
+"Partnerbox Answer: \n"
+"%s"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:70
+msgid "Partnerbox Entries"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:220
+msgid "Partnerbox: Edit Entry"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:118
+msgid "Partnerbox: List of Entries"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:250
+msgid "Password"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:125 ../src/PartnerboxSetup.py:248
+msgid "Port"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:168 ../src/PartnerboxSetup.py:274
+msgid "Really delete this Partnerbox Entry?"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:312
+msgid "Remote Timer"
+msgstr ""
+
+#: ../src/PartnerboxEPGSelection.py:159 ../src/plugin.py:1007
+msgid "Remove timer"
+msgstr ""
+
+#: ../src/plugin.py:1222 ../src/plugin.py:1279 ../src/plugin.py:1395
+msgid "Sat"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:143 ../src/RemoteTimerEntry.py:422
+msgid "Saturday"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:251
+msgid "Servicelists/EPG"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:75
+msgid "Show 'RemoteTV Player' in E-Menu"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:74
+msgid "Show 'RemoteTimer' in E-Menu"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:76
+msgid "Show 'Stream current Service' in E-Menu"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:159 ../src/RemoteTimerEntry.py:446
+msgid "StartTime"
+msgstr ""
+
+#: ../src/plugin.py:138
+msgid "Stream TV from your Partnerbox"
+msgstr ""
+
+#: ../src/plugin.py:140
+msgid "Stream current service from partnerbox"
+msgstr ""
+
+#: ../src/plugin.py:1222 ../src/plugin.py:1279 ../src/plugin.py:1395
+msgid "Sun"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:143 ../src/RemoteTimerEntry.py:422
+msgid "Sunday"
+msgstr ""
+
+#: ../src/plugin.py:1222 ../src/plugin.py:1279 ../src/plugin.py:1395
+msgid "Thu"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:143 ../src/RemoteTimerEntry.py:422
+msgid "Thursday"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:155 ../src/RemoteTimerEntry.py:442
+msgid "Timer Type"
+msgstr ""
+
+#: ../src/plugin.py:1222 ../src/plugin.py:1279 ../src/plugin.py:1395
+msgid "Tue"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:143 ../src/RemoteTimerEntry.py:422
+msgid "Tuesday"
+msgstr ""
+
+#: ../src/plugin.py:1222 ../src/plugin.py:1279 ../src/plugin.py:1395
+msgid "Wed"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:143 ../src/RemoteTimerEntry.py:422
+msgid "Wednesday"
+msgstr ""
+
+#: ../src/plugin.py:111
+msgid "You have to restart Enigma2 to activate your new preferences!"
+msgstr ""
+
+#: ../src/plugin.py:504
+msgid "Zap"
+msgstr ""
+
+#: ../src/plugin.py:1246
+msgid "about to start"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:129 ../src/RemoteTimerEntry.py:407
+msgid "auto"
+msgstr ""
+
+#: ../src/plugin.py:1258
+msgid "disabled"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:129 ../src/RemoteTimerEntry.py:133
+#: ../src/RemoteTimerEntry.py:407 ../src/RemoteTimerEntry.py:412
+msgid "do nothing"
+msgstr ""
+
+#: ../src/plugin.py:1253 ../src/plugin.py:1308
+msgid "done!"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:129 ../src/RemoteTimerEntry.py:133
+#: ../src/RemoteTimerEntry.py:407 ../src/RemoteTimerEntry.py:412
+msgid "go to deep standby"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:129 ../src/RemoteTimerEntry.py:133
+#: ../src/RemoteTimerEntry.py:407 ../src/RemoteTimerEntry.py:412
+msgid "go to standby"
+msgstr ""
+
+#: ../src/plugin.py:807 ../src/plugin.py:879 ../src/plugin.py:1236
+#: ../src/plugin.py:1241 ../src/plugin.py:1293 ../src/plugin.py:1296
+#: ../src/plugin.py:1298 ../src/plugin.py:1382 ../src/plugin.py:1579
+msgid "mins"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:128 ../src/RemoteTimerEntry.py:406
+msgid "record"
+msgstr ""
+
+#: ../src/plugin.py:1251 ../src/plugin.py:1306
+msgid "recording..."
+msgstr ""
+
+#: ../src/plugin.py:133
+msgid "setup for partnerbox"
+msgstr ""
+
+#: ../src/plugin.py:1564
+msgid "unknown service"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:42
+msgid "use external"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:42
+msgid "use internal"
+msgstr ""
+
+#: ../src/plugin.py:1244 ../src/plugin.py:1301
+msgid "waiting"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:128 ../src/RemoteTimerEntry.py:132
+#: ../src/RemoteTimerEntry.py:406 ../src/RemoteTimerEntry.py:411
+msgid "zap"
+msgstr ""
+
+#: ../src/plugin.py:1249 ../src/plugin.py:1304
+msgid "zapped"
+msgstr ""
diff --git a/partnerbox/po/de.po b/partnerbox/po/de.po
new file mode 100644 (file)
index 0000000..0c3760b
--- /dev/null
@@ -0,0 +1,473 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Partnerbox\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-06-20 13:51+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Dr.Best <dr.best@dreambox-tools.info>\n"
+"Language-Team: Dr. Best <dr.best@dreambox-tools.info>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: Germany\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../src/RemoteTimerEntry.py:135
+#: ../src/RemoteTimerEntry.py:414
+msgid "%d.%B %Y"
+msgstr ""
+
+#: ../src/plugin.py:1234
+#: ../src/plugin.py:1239
+#: ../src/plugin.py:1291
+#: ../src/plugin.py:1296
+msgid "(ZAP)"
+msgstr ""
+
+#: ../src/plugin.py:1255
+#: ../src/plugin.py:1319
+#: ../src/plugin.py:1321
+msgid "<unknown>"
+msgstr "<unbekannt>"
+
+#: ../src/PartnerboxSetup.py:127
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: ../src/plugin.py:944
+#: ../src/plugin.py:1003
+msgid "Add timer"
+msgstr "Hinzufügen"
+
+#: ../src/RemoteTimerEntry.py:176
+#: ../src/RemoteTimerEntry.py:178
+#: ../src/RemoteTimerEntry.py:463
+#: ../src/RemoteTimerEntry.py:465
+msgid "After event"
+msgstr "Nach dem Ereignis"
+
+#: ../src/PartnerboxSetup.py:68
+#: ../src/PartnerboxSetup.py:234
+#: ../src/RemoteTimerEntry.py:73
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ../src/RemoteTimerEntry.py:170
+#: ../src/RemoteTimerEntry.py:457
+msgid "Channel"
+msgstr "Sender"
+
+#: ../src/plugin.py:236
+msgid "Clean up"
+msgstr "Aufräumen"
+
+#: ../src/plugin.py:318
+msgid "Cleaning up finished timer entries..."
+msgstr "Vollendete Timer aufräumen..."
+
+#: ../src/RemoteTimerEntry.py:132
+#: ../src/RemoteTimerEntry.py:411
+msgid "DVR"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:157
+#: ../src/RemoteTimerEntry.py:444
+msgid "Date"
+msgstr "Datum"
+
+#: ../src/PartnerboxSetup.py:129
+#: ../src/PartnerboxSetup.py:236
+#: ../src/plugin.py:233
+msgid "Delete"
+msgstr "Löschen"
+
+#: ../src/RemoteTimerEntry.py:154
+#: ../src/RemoteTimerEntry.py:441
+msgid "Description"
+msgstr "Beschreibung"
+
+#: ../src/PartnerboxEPGSelection.py:111
+#: ../src/plugin.py:337
+#: ../src/plugin.py:1152
+#, python-format
+msgid ""
+"Do you really want to delete the timer \n"
+"%s ?"
+msgstr ""
+"Soll der Timereintrag\n"
+"%s\n"
+" wirklich gelöscht werden?"
+
+#: ../src/plugin.py:235
+#: ../src/plugin.py:507
+#: ../src/plugin.py:651
+msgid "EPG Selection"
+msgstr "EPG Auswahl"
+
+#: ../src/PartnerboxSetup.py:128
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: ../src/PartnerboxSetup.py:78
+msgid "Enable Partnerbox-Function in EPGList"
+msgstr "Partnerbox-Funktion in EPG Liste aktivieren"
+
+#: ../src/PartnerboxSetup.py:77
+msgid "Enable Partnerbox-Function in TimerEvent"
+msgstr "Partnerbox-Funktion in TimerEvent aktivieren"
+
+#: ../src/RemoteTimerEntry.py:163
+#: ../src/RemoteTimerEntry.py:168
+#: ../src/RemoteTimerEntry.py:450
+#: ../src/RemoteTimerEntry.py:455
+msgid "EndTime"
+msgstr "Endzeit"
+
+#: ../src/PartnerboxSetup.py:40
+msgid "Enigma 1"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:40
+msgid "Enigma 2"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:126
+#: ../src/PartnerboxSetup.py:249
+msgid "Enigma Type"
+msgstr "Enigma Typ"
+
+#: ../src/plugin.py:1311
+msgid "Error: No space left"
+msgstr "Fehler: Kein Platz frei"
+
+#: ../src/plugin.py:1317
+msgid "Error: Outdated"
+msgstr "Fehler: Veraltet"
+
+#: ../src/plugin.py:1313
+msgid "Error: User aborted"
+msgstr "Fehler: Vom Benutzer abgebrochen"
+
+#: ../src/plugin.py:1315
+msgid "Error: Zap failed"
+msgstr "Fehler: Umschalten fehlgeschlagen"
+
+#: ../src/plugin.py:1222
+#: ../src/plugin.py:1279
+#: ../src/plugin.py:1395
+msgid "Fri"
+msgstr "Frei"
+
+#: ../src/RemoteTimerEntry.py:143
+#: ../src/RemoteTimerEntry.py:422
+msgid "Friday"
+msgstr "Freitag"
+
+#: ../src/plugin.py:512
+msgid "Getting Channel Information..."
+msgstr "Hole Sender Informationen..."
+
+#: ../src/plugin.py:948
+msgid "Getting EPG Information..."
+msgstr "Hole EPG Informationen..."
+
+#: ../src/plugin.py:400
+msgid "Getting Partnerbox Bouquet Information..."
+msgstr "Hole Partnerbox Bouquet Informationen"
+
+#: ../src/plugin.py:237
+msgid "Getting Partnerbox Information..."
+msgstr "Hole Partnerbox Infomationen..."
+
+#: ../src/PartnerboxSetup.py:124
+#: ../src/PartnerboxSetup.py:247
+msgid "IP"
+msgstr ""
+
+#: ../src/plugin.py:510
+#: ../src/plugin.py:652
+#: ../src/plugin.py:947
+#: ../src/plugin.py:998
+msgid "Info"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:173
+#: ../src/RemoteTimerEntry.py:460
+msgid "Location"
+msgstr "Ort"
+
+#: ../src/plugin.py:127
+#: ../src/plugin.py:135
+msgid "Manage timer for other dreamboxes in network"
+msgstr "Verwaltung der Timer für andere Dreamboxen im Netzwerk"
+
+#: ../src/plugin.py:1222
+#: ../src/plugin.py:1279
+#: ../src/plugin.py:1395
+msgid "Mon"
+msgstr "Mo"
+
+#: ../src/RemoteTimerEntry.py:143
+#: ../src/RemoteTimerEntry.py:422
+msgid "Monday"
+msgstr "Montag"
+
+#: ../src/RemoteTimerEntry.py:132
+#: ../src/RemoteTimerEntry.py:411
+msgid "NGRAB"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:123
+#: ../src/PartnerboxSetup.py:246
+#: ../src/RemoteTimerEntry.py:153
+#: ../src/RemoteTimerEntry.py:440
+msgid "Name"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:289
+msgid "No"
+msgstr "Nein"
+
+#: ../src/PartnerboxSetup.py:69
+#: ../src/PartnerboxSetup.py:235
+#: ../src/RemoteTimerEntry.py:72
+msgid "OK"
+msgstr ""
+
+#: ../src/RemoteTimerEntry.py:523
+#: ../src/RemoteTimerEntry.py:533
+#, python-format
+msgid ""
+"Partnerbox Answer: \n"
+"%s"
+msgstr ""
+"Antwort der Partnerbox:\n"
+"%s"
+
+#: ../src/PartnerboxSetup.py:70
+msgid "Partnerbox Entries"
+msgstr "Partnerbox Einträge"
+
+#: ../src/PartnerboxSetup.py:220
+msgid "Partnerbox: Edit Entry"
+msgstr "Partnerbox: Eintrag bearbeiten"
+
+#: ../src/PartnerboxSetup.py:118
+msgid "Partnerbox: List of Entries"
+msgstr "Liste der Partnerboxen"
+
+#: ../src/PartnerboxSetup.py:250
+msgid "Password"
+msgstr "Passwort"
+
+#: ../src/PartnerboxSetup.py:125
+#: ../src/PartnerboxSetup.py:248
+msgid "Port"
+msgstr ""
+
+#: ../src/PartnerboxSetup.py:168
+#: ../src/PartnerboxSetup.py:274
+msgid "Really delete this Partnerbox Entry?"
+msgstr "Soll der Partnerbox-Eintrag wirklich gelöscht werden?"
+
+#: ../src/RemoteTimerEntry.py:312
+msgid "Remote Timer"
+msgstr ""
+
+#: ../src/PartnerboxEPGSelection.py:159
+#: ../src/plugin.py:1007
+msgid "Remove timer"
+msgstr "Timer entfernen"
+
+#: ../src/plugin.py:1222
+#: ../src/plugin.py:1279
+#: ../src/plugin.py:1395
+msgid "Sat"
+msgstr "Sa"
+
+#: ../src/RemoteTimerEntry.py:143
+#: ../src/RemoteTimerEntry.py:422
+msgid "Saturday"
+msgstr "Samstag"
+
+#: ../src/PartnerboxSetup.py:251
+msgid "Servicelists/EPG"
+msgstr "Servicelisten/EPG"
+
+#: ../src/PartnerboxSetup.py:75
+msgid "Show 'RemoteTV Player' in E-Menu"
+msgstr "'RemoteTV Player' im E-Menu anzeigen"
+
+#: ../src/PartnerboxSetup.py:74
+msgid "Show 'RemoteTimer' in E-Menu"
+msgstr "'RemoteTimer' im E-Menu anzeigen"
+
+#: ../src/PartnerboxSetup.py:76
+msgid "Show 'Stream current Service' in E-Menu"
+msgstr "'Aktuellen Sender Streamen' in E-Menu anzeigen"
+
+#: ../src/RemoteTimerEntry.py:159
+#: ../src/RemoteTimerEntry.py:446
+msgid "StartTime"
+msgstr "Startzeit"
+
+#: ../src/plugin.py:138
+msgid "Stream TV from your Partnerbox"
+msgstr "TV-Bild der Partnerbox anzeigen"
+
+#: ../src/plugin.py:140
+msgid "Stream current service from partnerbox"
+msgstr "Aktuelles TV-Bild der Partnerbox anzeigen"
+
+#: ../src/plugin.py:1222
+#: ../src/plugin.py:1279
+#: ../src/plugin.py:1395
+msgid "Sun"
+msgstr "So"
+
+#: ../src/RemoteTimerEntry.py:143
+#: ../src/RemoteTimerEntry.py:422
+msgid "Sunday"
+msgstr "Sonntag"
+
+#: ../src/plugin.py:1222
+#: ../src/plugin.py:1279
+#: ../src/plugin.py:1395
+msgid "Thu"
+msgstr "Do"
+
+#: ../src/RemoteTimerEntry.py:143
+#: ../src/RemoteTimerEntry.py:422
+msgid "Thursday"
+msgstr "Donnerstag"
+
+#: ../src/RemoteTimerEntry.py:155
+#: ../src/RemoteTimerEntry.py:442
+msgid "Timer Type"
+msgstr "Timer-Art"
+
+#: ../src/plugin.py:1222
+#: ../src/plugin.py:1279
+#: ../src/plugin.py:1395
+msgid "Tue"
+msgstr "Di"
+
+#: ../src/RemoteTimerEntry.py:143
+#: ../src/RemoteTimerEntry.py:422
+msgid "Tuesday"
+msgstr "Dienstag"
+
+#: ../src/plugin.py:1222
+#: ../src/plugin.py:1279
+#: ../src/plugin.py:1395
+msgid "Wed"
+msgstr "Mi"
+
+#: ../src/RemoteTimerEntry.py:143
+#: ../src/RemoteTimerEntry.py:422
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+#: ../src/plugin.py:111
+msgid "You have to restart Enigma2 to activate your new preferences!"
+msgstr "Enigma2 muß neu getartet werden damit die Einstellungen wirksam werden!"
+
+#: ../src/plugin.py:504
+msgid "Zap"
+msgstr "Umschalten"
+
+#: ../src/plugin.py:1246
+msgid "about to start"
+msgstr "startet gleich"
+
+#: ../src/RemoteTimerEntry.py:129
+#: ../src/RemoteTimerEntry.py:407
+msgid "auto"
+msgstr ""
+
+#: ../src/plugin.py:1258
+msgid "disabled"
+msgstr "abgeschaltet"
+
+#: ../src/RemoteTimerEntry.py:129
+#: ../src/RemoteTimerEntry.py:133
+#: ../src/RemoteTimerEntry.py:407
+#: ../src/RemoteTimerEntry.py:412
+msgid "do nothing"
+msgstr "Nichts tun"
+
+#: ../src/plugin.py:1253
+#: ../src/plugin.py:1308
+msgid "done!"
+msgstr "erledigt!"
+
+#: ../src/RemoteTimerEntry.py:129
+#: ../src/RemoteTimerEntry.py:133
+#: ../src/RemoteTimerEntry.py:407
+#: ../src/RemoteTimerEntry.py:412
+msgid "go to deep standby"
+msgstr "Box abschalten"
+
+#: ../src/RemoteTimerEntry.py:129
+#: ../src/RemoteTimerEntry.py:133
+#: ../src/RemoteTimerEntry.py:407
+#: ../src/RemoteTimerEntry.py:412
+msgid "go to standby"
+msgstr "schalte in Standby"
+
+#: ../src/plugin.py:807
+#: ../src/plugin.py:879
+#: ../src/plugin.py:1236
+#: ../src/plugin.py:1241
+#: ../src/plugin.py:1293
+#: ../src/plugin.py:1296
+#: ../src/plugin.py:1298
+#: ../src/plugin.py:1382
+#: ../src/plugin.py:1579
+msgid "mins"
+msgstr "Minuten"
+
+#: ../src/RemoteTimerEntry.py:128
+#: ../src/RemoteTimerEntry.py:406
+msgid "record"
+msgstr "Aufnahme"
+
+#: ../src/plugin.py:1251
+#: ../src/plugin.py:1306
+msgid "recording..."
+msgstr "nimmt auf..."
+
+#: ../src/plugin.py:133
+msgid "setup for partnerbox"
+msgstr "Setup für Partnerbox"
+
+#: ../src/plugin.py:1564
+msgid "unknown service"
+msgstr "Unbekannter Service"
+
+#: ../src/PartnerboxSetup.py:42
+msgid "use external"
+msgstr "extern"
+
+#: ../src/PartnerboxSetup.py:42
+msgid "use internal"
+msgstr "intern"
+
+#: ../src/plugin.py:1244
+#: ../src/plugin.py:1301
+msgid "waiting"
+msgstr "wartend"
+
+#: ../src/RemoteTimerEntry.py:128
+#: ../src/RemoteTimerEntry.py:132
+#: ../src/RemoteTimerEntry.py:406
+#: ../src/RemoteTimerEntry.py:411
+msgid "zap"
+msgstr "umschalten"
+
+#: ../src/plugin.py:1249
+#: ../src/plugin.py:1304
+msgid "zapped"
+msgstr "umgeschaltet"
+
index 432bcfe..692a668 100644 (file)
@@ -27,6 +27,9 @@ from Tools.BoundFunction import boundFunction
 from PartnerboxFunctions import  SetPartnerboxTimerlist, isInTimerList, sendPartnerBoxWebCommand, FillE1TimerList, FillE2TimerList
 import PartnerboxFunctions as partnerboxfunctions
 
+# for localized messages
+from . import _
+
 baseEPGSelection__init__ = None
 baseEPGSelection_zapTo = None
 baseonSelectionChanged = None
index 2f40c28..fc2d09d 100644 (file)
@@ -28,6 +28,9 @@ from Components.ActionMap import ActionMap, NumberActionMap
 from Components.ConfigList import ConfigList, ConfigListScreen
 from Components.config import ConfigSubsection, ConfigSubList, ConfigIP, ConfigInteger, ConfigSelection, ConfigText, ConfigYesNo, getConfigListEntry, configfile
 
+# for localized messages
+from . import _
+
 def initPartnerboxEntryConfig():
        config.plugins.Partnerbox.Entries.append(ConfigSubsection())
        i = len(config.plugins.Partnerbox.Entries) -1
@@ -49,7 +52,7 @@ def initConfig():
 
 class PartnerboxSetup(ConfigListScreen, Screen):
        skin = """
-               <screen position="100,100" size="550,400" title="Partnerbox Setup" >
+               <screen position="center,center" size="550,400" title="Partnerbox Setup" >
                        <widget name="config" position="20,10" size="510,330" scrollbarMode="showOnDemand" />
                        <widget name="key_red" position="0,350" size="140,40" valign="center" halign="center" zPosition="5" transparent="1" foregroundColor="white" font="Regular;18"/>
                        <widget name="key_green" position="140,350" size="140,40" valign="center" halign="center" zPosition="5" transparent="1" foregroundColor="white" font="Regular;18"/>
@@ -99,7 +102,7 @@ class PartnerboxSetup(ConfigListScreen, Screen):
 
 class PartnerboxEntriesListConfigScreen(Screen):
        skin = """
-               <screen position="100,100" size="550,400" title="%s" >
+               <screen position="center,center" size="550,400" title="%s" >
                        <widget name="name" position="5,0" size="150,50" font="Regular;20" halign="left"/>
                        <widget name="ip" position="120,0" size="50,50" font="Regular;20" halign="left"/>
                        <widget name="port" position="270,0" size="100,50" font="Regular;20" halign="left"/>
@@ -205,7 +208,7 @@ class PartnerboxEntryList(MenuList):
 
 class PartnerboxEntryConfigScreen(ConfigListScreen, Screen):
        skin = """
-               <screen name="PartnerboxEntryConfigScreen" position="100,100" size="550,400" title="%s">
+               <screen name="PartnerboxEntryConfigScreen" position="center,center" size="550,400" title="%s">
                        <widget name="config" position="20,10" size="520,330" scrollbarMode="showOnDemand" />
                        <ePixmap name="red"     position="0,350" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
                        <ePixmap name="green" position="140,350" zPosition="4" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
index c9defe8..43169ef 100644 (file)
@@ -46,10 +46,13 @@ from Components.ActionMap import ActionMap
 from PartnerboxFunctions import PlaylistEntry, SetPartnerboxTimerlist, sendPartnerBoxWebCommand
 import PartnerboxFunctions as partnerboxfunctions
 
+# for localized messages
+from . import _
+
 
 class RemoteTimerEntry(Screen, ConfigListScreen):
        skin = """
-               <screen name="RemoteTimerEntry" position="90,95" size="560,430" title="Timer entry">
+               <screen name="RemoteTimerEntry" position="center,center" size="560,430" title="Timer entry">
                        <widget name="cancel" pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
                        <widget name="ok" pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
                        <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on" />
index e69de29..2fcab90 100644 (file)
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+from Components.Language import language
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
+from os import environ as os_environ
+import gettext
+
+def localeInit():
+       lang = language.getLanguage()[:2] # getLanguage returns e.g. "fi_FI" for "language_country"
+       os_environ["LANGUAGE"] = lang # Enigma doesn't set this (or LC_ALL, LC_MESSAGES, LANG). gettext needs it!
+       gettext.bindtextdomain("Partnerbox", resolveFilename(SCOPE_PLUGINS, "Extensions/Partnerbox/locale"))
+
+def _(txt):
+       t = gettext.dgettext("Partnerbox", txt)
+       if t == txt:
+               print "[Partnerbox] fallback to default translation for", txt
+               t = gettext.gettext(txt)
+       return t
+
+localeInit()
+language.addCallback(localeInit)
+
index 671b337..7323184 100644 (file)
@@ -60,6 +60,9 @@ from Screens.ChannelSelection import service_types_tv
 from Components.ConfigList import ConfigList, ConfigListScreen
 from Components.config import ConfigSubsection, ConfigSubList, ConfigIP, ConfigInteger, ConfigSelection, ConfigText, ConfigYesNo, getConfigListEntry, configfile
 
+# for localized messages
+from . import _
+
 
 config.plugins.Partnerbox = ConfigSubsection()
 config.plugins.Partnerbox.showremotetvinextensionsmenu= ConfigYesNo(default = True)
@@ -151,7 +154,7 @@ def FillLocationList(xmlstring):
        
 class CurrentRemoteTV(Screen):
        skin = """
-               <screen name="CurrentRemoteTV" position="210,160" size="300,240" title="Remote Player">
+               <screen name="CurrentRemoteTV" position="center,center" size="300,240" title="Remote Player">
                <widget name="text" position="10,10" zPosition="1" size="290,225" font="Regular;20" halign="center" valign="center" />
        </screen>"""
        def __init__(self, session, partnerboxentry):
@@ -209,7 +212,7 @@ class CurrentRemoteTV(Screen):
 class RemoteTimer(Screen):
        global CurrentParnerBoxName
        skin = """
-               <screen name="RemoteTimer" position="90,95" size="560,430" title="RemoteTimer Timerlist">
+               <screen name="RemoteTimer" position="center,center" size="560,430" title="RemoteTimer Timerlist">
                        <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on"/>
                        <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on"/>
                        <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on"/>
@@ -385,7 +388,7 @@ class RemoteTimer(Screen):
 
 class RemoteTimerBouquetList(Screen):
        skin = """
-               <screen name="RemoteTimerBouquetList" position="210,160" size="300,240" title="Choose bouquet">
+               <screen name="RemoteTimerBouquetList" position="center,center" size="300,240" title="Choose bouquet">
                <widget name="text" position="10,10" zPosition="1" size="290,225" font="Regular;20" halign="center" valign="center" />
                <widget name="bouquetlist" position="10,10" zPosition="2" size="290,225" scrollbarMode="showOnDemand" />
        </screen>"""
@@ -480,7 +483,7 @@ class RemoteTimerChannelList(Screen):
        REMOTE_TIMER_MODE = 0
        REMOTE_TV_MODE = 1
        skin = """
-               <screen name="RemoteTimerChannelList" position="90,95" size="560,430" title ="Bouquet List">
+               <screen name="RemoteTimerChannelList" position="center,center" size="560,430" title ="Bouquet List">
                        <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
                        <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
                        <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on" />
@@ -919,7 +922,7 @@ class RemoteTimerEPGList(Screen):
        ADD_TIMER = 1
        REMOVE_TIMER = 2
        skin = """
-               <screen name="RemoteTimerEPGList" position="90,95" size="560,430" title ="EPG Selection">
+               <screen name="RemoteTimerEPGList" position="center,center" size="560,430" title ="EPG Selection">
                        <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
                        <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
                        <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on" />
@@ -1506,7 +1509,7 @@ class RemoteTimerEventView(Screen):
        ADD_TIMER = 1
        REMOVE_TIMER = 2
        skin = """
-               <screen name="RemoteTimerEventView" position="90,95" size="560,430" title="Eventview">
+               <screen name="RemoteTimerEventView" position="center,center" size="560,430" title="Eventview">
                        <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
                        <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
                        <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on" />