[browser] update.
authorkos <kos@dev3>
Wed, 28 Nov 2012 02:50:14 +0000 (11:50 +0900)
committerkos <kos@dev3>
Wed, 28 Nov 2012 02:50:14 +0000 (11:50 +0900)
- add locale files.
- add webmanual start method (long press help).

lib/python/Plugins/Extensions/HbbTV/Makefile.am
lib/python/Plugins/Extensions/HbbTV/__init__.py
lib/python/Plugins/Extensions/HbbTV/keymap.xml [new file with mode: 0644]
lib/python/Plugins/Extensions/HbbTV/locale/HbbTV.pot [new file with mode: 0644]
lib/python/Plugins/Extensions/HbbTV/locale/Makefile.am [new file with mode: 0644]
lib/python/Plugins/Extensions/HbbTV/locale/de.po [new file with mode: 0644]
lib/python/Plugins/Extensions/HbbTV/locale/en.po [new file with mode: 0644]
lib/python/Plugins/Extensions/HbbTV/plugin.py

index 7449060..680a625 100644 (file)
@@ -1,8 +1,9 @@
 installdir = $(pkglibdir)/python/Plugins/Extensions/HbbTV
 
-SUBDIRS = meta 
+SUBDIRS = meta locale
 
 install_PYTHON = \
+       keymap.xml \
        __init__.py \
        bookmark.py \
        plugin.py 
index a103e92..c7f59be 100644 (file)
@@ -1 +1,22 @@
-#dumy
+from Components.Language import language
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
+import os,gettext
+
+lang = 'en'
+def localeInit():
+       global lang
+       lang = language.getLanguage()[:2]
+       os.environ["LANGUAGE"] = lang
+       gettext.bindtextdomain("enigma2", resolveFilename(SCOPE_LANGUAGE))
+       gettext.textdomain("enigma2")
+       gettext.bindtextdomain(lang, '/usr/lib/enigma2/python/Plugins/Extensions/HbbTV/locale')
+
+def _(txt):
+       global lang
+       t = gettext.dgettext(lang, txt)
+       if t == txt:
+               t = gettext.gettext(txt)
+       return t
+
+localeInit()
+language.addCallback(localeInit)
diff --git a/lib/python/Plugins/Extensions/HbbTV/keymap.xml b/lib/python/Plugins/Extensions/HbbTV/keymap.xml
new file mode 100644 (file)
index 0000000..56b7cf8
--- /dev/null
@@ -0,0 +1,6 @@
+<keymap>
+<map context="HelpbuttonActions">
+       <key id="KEY_HELP" mapto="help_b" flags="b" />
+       <key id="KEY_HELP" mapto="help_l" flags="l" />
+</map>
+</keymap>
diff --git a/lib/python/Plugins/Extensions/HbbTV/locale/HbbTV.pot b/lib/python/Plugins/Extensions/HbbTV/locale/HbbTV.pot
new file mode 100644 (file)
index 0000000..8aebac2
--- /dev/null
@@ -0,0 +1,347 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-11-20 18:20+KST\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=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+
+#: plugin.py:856
+msgid "HbbTV Plugin"
+msgstr ""
+
+#: plugin.py:969
+msgid ""
+"HbbTV Browser was not running.\n"
+"Please running browser before start HbbTV Application."
+msgstr ""
+
+#: plugin.py:1041
+msgid "No detected HbbTV applications."
+msgstr ""
+
+#: plugin.py:1042
+msgid "Please choose an HbbTV application."
+msgstr ""
+
+#: plugin.py:1053
+msgid "Stop"
+msgstr ""
+
+#: plugin.py:1054
+msgid "Start"
+msgstr ""
+
+#: plugin.py:1055
+msgid "Please choose one."
+msgstr ""
+
+#: plugin.py:1165 plugin.py:1280
+msgid "Cancel"
+msgstr ""
+
+#: plugin.py:1166 plugin.py:1281
+msgid "Save"
+msgstr ""
+
+#: plugin.py:1178 plugin.py:1693 plugin.py:1922
+msgid "Preference"
+msgstr ""
+
+#: plugin.py:1197
+msgid ""
+"Invalid URL!!(Empty)\n"
+"Please, Input to the URL."
+msgstr ""
+
+#: plugin.py:1214 plugin.py:1870
+msgid "Please enter URL here"
+msgstr ""
+
+#: plugin.py:1226
+msgid "Start Page"
+msgstr ""
+
+#: plugin.py:1228
+msgid "Current Page"
+msgstr ""
+
+#: plugin.py:1229
+msgid "Direct Input"
+msgstr ""
+
+#: plugin.py:1231
+msgid "Startpage"
+msgstr ""
+
+#: plugin.py:1295 plugin.py:1446 plugin.py:1693 plugin.py:1921
+msgid "Bookmark"
+msgstr ""
+
+#: plugin.py:1300 plugin.py:1382
+msgid "Name"
+msgstr ""
+
+#: plugin.py:1303 plugin.py:1389
+msgid "Title"
+msgstr ""
+
+#: plugin.py:1305 plugin.py:1390
+msgid "Url"
+msgstr ""
+
+#: plugin.py:1309
+msgid ""
+"!!(Empty)\n"
+"Please, Input to the "
+msgstr ""
+
+#: plugin.py:1309
+msgid "Invalid "
+msgstr ""
+
+#: plugin.py:1333 plugin.py:1344 plugin.py:1435 plugin.py:1516 plugin.py:1519
+msgid "Add"
+msgstr ""
+
+#: plugin.py:1336 plugin.py:1340
+msgid "Category Name"
+msgstr ""
+
+#: plugin.py:1349 plugin.py:1357
+msgid "Bookmark Title"
+msgstr ""
+
+#: plugin.py:1352 plugin.py:1360
+msgid "Bookmark URL"
+msgstr ""
+
+#: plugin.py:1434 plugin.py:1581 plugin.py:1692 plugin.py:1916
+msgid "Exit"
+msgstr ""
+
+#: plugin.py:1436 plugin.py:1527 plugin.py:1528
+msgid "Edit"
+msgstr ""
+
+#: plugin.py:1437
+msgid "Delete"
+msgstr ""
+
+#: plugin.py:1438
+msgid "Set as Startpage"
+msgstr ""
+
+#: plugin.py:1485
+msgid "Invalid URL. Please check again!!"
+msgstr ""
+
+#: plugin.py:1493
+msgid "Do you want to set selected url to the Startpage?"
+msgstr ""
+
+#: plugin.py:1508
+msgid "Current page is already exist."
+msgstr ""
+
+#: plugin.py:1521 plugin.py:1522
+msgid "Direct Input(Bookmark)"
+msgstr ""
+
+#: plugin.py:1521 plugin.py:1522
+msgid "Direct Input(Category)"
+msgstr ""
+
+#: plugin.py:1522
+msgid "Currentpage(Bookmark)"
+msgstr ""
+
+#: plugin.py:1523
+msgid "Please choose."
+msgstr ""
+
+#: plugin.py:1538
+msgid "Do you want to delete the category and the bookmarks?"
+msgstr ""
+
+#: plugin.py:1539
+msgid "Do you want to delete the bookmark?"
+msgstr ""
+
+#: plugin.py:1547
+msgid ""
+"Can't open selected bookmark.\n"
+"   - URL data is empty!!"
+msgstr ""
+
+#: plugin.py:1582
+msgid "Global"
+msgstr ""
+
+#: plugin.py:1583
+msgid "Mouse"
+msgstr ""
+
+#: plugin.py:1584
+msgid "Keyboard"
+msgstr ""
+
+#: plugin.py:1602
+msgid "Browser Help"
+msgstr ""
+
+#: plugin.py:1612
+msgid "Exit the Opera browser."
+msgstr ""
+
+#: plugin.py:1615
+msgid "Show the Menu window."
+msgstr ""
+
+#: plugin.py:1618 plugin.py:1649
+msgid "Enter Key"
+msgstr ""
+
+#: plugin.py:1619
+msgid "Show the Virtual keyboard window."
+msgstr ""
+
+#: plugin.py:1620
+msgid "Backspace Key"
+msgstr ""
+
+#: plugin.py:1623
+msgid "Switch to keyboard/mouse mode."
+msgstr ""
+
+#: plugin.py:1628
+msgid "It will move the mouse pointer up."
+msgstr ""
+
+#: plugin.py:1629
+msgid "It will move the mouse pointer down."
+msgstr ""
+
+#: plugin.py:1630
+msgid "It will move the mouse pointer left."
+msgstr ""
+
+#: plugin.py:1631
+msgid "It will move the mouse pointer right."
+msgstr ""
+
+#: plugin.py:1634
+msgid "Left Mouse Button"
+msgstr ""
+
+#: plugin.py:1637
+msgid "Right Mouse Button"
+msgstr ""
+
+#: plugin.py:1638 plugin.py:1645
+msgid "Left Key"
+msgstr ""
+
+#: plugin.py:1639 plugin.py:1646
+msgid "Right Key"
+msgstr ""
+
+#: plugin.py:1643
+msgid "Up Key"
+msgstr ""
+
+#: plugin.py:1644
+msgid "Down Key"
+msgstr ""
+
+#: plugin.py:1652
+msgid "PageUp Key"
+msgstr ""
+
+#: plugin.py:1653
+msgid "PageDown Key"
+msgstr ""
+
+#: plugin.py:1654
+msgid "Go to previous page."
+msgstr ""
+
+#: plugin.py:1655
+msgid "Go to next page."
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1919
+msgid "Open URL"
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1920
+msgid "Start/Stop"
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1924
+msgid "Open Startpage"
+msgstr ""
+
+#: plugin.py:1694 plugin.py:1743 plugin.py:1917
+msgid "Help"
+msgstr ""
+
+#: plugin.py:1694 plugin.py:1918
+msgid "About"
+msgstr ""
+
+#: plugin.py:1741
+msgid "File"
+msgstr ""
+
+#: plugin.py:1742
+msgid "Tools"
+msgstr ""
+
+#: plugin.py:1748 plugin.py:1872
+msgid "Opera Web Browser Plugin v1.0"
+msgstr ""
+
+#: plugin.py:1749
+msgid "BrowserMain"
+msgstr ""
+
+#: plugin.py:1768 plugin.py:1923
+msgid "Return"
+msgstr ""
+
+#: plugin.py:1817
+msgid "Opera Browser"
+msgstr ""
+
+#: plugin.py:1867 plugin.py:1896
+msgid ""
+"Opera Browser was not running.\n"
+"Please running browser using [File]>[Start/Stop] menu."
+msgstr ""
+
+#: plugin.py:2083
+msgid "HbbTV Applications"
+msgstr ""
+
+#: plugin.py:2084
+msgid "Browser Start/Stop"
+msgstr ""
+
+#: plugin.py:2085
+msgid "Opera Web Browser"
+msgstr ""
+
+#: plugin.py:2085
+msgid "start opera web browser"
+msgstr ""
+
diff --git a/lib/python/Plugins/Extensions/HbbTV/locale/Makefile.am b/lib/python/Plugins/Extensions/HbbTV/locale/Makefile.am
new file mode 100644 (file)
index 0000000..112e08c
--- /dev/null
@@ -0,0 +1,28 @@
+PLUGIN = HbbTV
+LANGS = en de
+
+CATEGORY ?= "Extensions"
+
+plugindir = $(libdir)/enigma2/python/Plugins/$(CATEGORY)/$(PLUGIN)
+
+LANGMO = $(LANGS:=.mo)
+LANGPO = $(LANGS:=.po)
+
+.po.mo:
+       $(MSGFMT) -o $@ $<
+
+BUILT_SOURCES = $(LANGMO)
+CLEANFILES = $(LANGMO) $(PLUGIN)-py.pot $(PLUGIN)-xml.pot $(PLUGIN).pot
+
+dist-hook: $(LANGPO)
+
+install-data-local: $(LANGMO)
+       for lang in $(LANGS); do \
+               $(mkinstalldirs) $(DESTDIR)$(plugindir)/locale/$$lang/LC_MESSAGES; \
+               $(INSTALL_DATA) $$lang.mo $(DESTDIR)$(plugindir)/locale/$$lang/LC_MESSAGES/$$lang.mo; \
+       done
+
+uninstall-local:
+       for lang in $(LANGS); do \
+               $(RM) $(DESTDIR)$(plugindir)/locale/$$lang/LC_MESSAGES/$$lang.mo; \
+       done
diff --git a/lib/python/Plugins/Extensions/HbbTV/locale/de.po b/lib/python/Plugins/Extensions/HbbTV/locale/de.po
new file mode 100644 (file)
index 0000000..8aebac2
--- /dev/null
@@ -0,0 +1,347 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-11-20 18:20+KST\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=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+
+#: plugin.py:856
+msgid "HbbTV Plugin"
+msgstr ""
+
+#: plugin.py:969
+msgid ""
+"HbbTV Browser was not running.\n"
+"Please running browser before start HbbTV Application."
+msgstr ""
+
+#: plugin.py:1041
+msgid "No detected HbbTV applications."
+msgstr ""
+
+#: plugin.py:1042
+msgid "Please choose an HbbTV application."
+msgstr ""
+
+#: plugin.py:1053
+msgid "Stop"
+msgstr ""
+
+#: plugin.py:1054
+msgid "Start"
+msgstr ""
+
+#: plugin.py:1055
+msgid "Please choose one."
+msgstr ""
+
+#: plugin.py:1165 plugin.py:1280
+msgid "Cancel"
+msgstr ""
+
+#: plugin.py:1166 plugin.py:1281
+msgid "Save"
+msgstr ""
+
+#: plugin.py:1178 plugin.py:1693 plugin.py:1922
+msgid "Preference"
+msgstr ""
+
+#: plugin.py:1197
+msgid ""
+"Invalid URL!!(Empty)\n"
+"Please, Input to the URL."
+msgstr ""
+
+#: plugin.py:1214 plugin.py:1870
+msgid "Please enter URL here"
+msgstr ""
+
+#: plugin.py:1226
+msgid "Start Page"
+msgstr ""
+
+#: plugin.py:1228
+msgid "Current Page"
+msgstr ""
+
+#: plugin.py:1229
+msgid "Direct Input"
+msgstr ""
+
+#: plugin.py:1231
+msgid "Startpage"
+msgstr ""
+
+#: plugin.py:1295 plugin.py:1446 plugin.py:1693 plugin.py:1921
+msgid "Bookmark"
+msgstr ""
+
+#: plugin.py:1300 plugin.py:1382
+msgid "Name"
+msgstr ""
+
+#: plugin.py:1303 plugin.py:1389
+msgid "Title"
+msgstr ""
+
+#: plugin.py:1305 plugin.py:1390
+msgid "Url"
+msgstr ""
+
+#: plugin.py:1309
+msgid ""
+"!!(Empty)\n"
+"Please, Input to the "
+msgstr ""
+
+#: plugin.py:1309
+msgid "Invalid "
+msgstr ""
+
+#: plugin.py:1333 plugin.py:1344 plugin.py:1435 plugin.py:1516 plugin.py:1519
+msgid "Add"
+msgstr ""
+
+#: plugin.py:1336 plugin.py:1340
+msgid "Category Name"
+msgstr ""
+
+#: plugin.py:1349 plugin.py:1357
+msgid "Bookmark Title"
+msgstr ""
+
+#: plugin.py:1352 plugin.py:1360
+msgid "Bookmark URL"
+msgstr ""
+
+#: plugin.py:1434 plugin.py:1581 plugin.py:1692 plugin.py:1916
+msgid "Exit"
+msgstr ""
+
+#: plugin.py:1436 plugin.py:1527 plugin.py:1528
+msgid "Edit"
+msgstr ""
+
+#: plugin.py:1437
+msgid "Delete"
+msgstr ""
+
+#: plugin.py:1438
+msgid "Set as Startpage"
+msgstr ""
+
+#: plugin.py:1485
+msgid "Invalid URL. Please check again!!"
+msgstr ""
+
+#: plugin.py:1493
+msgid "Do you want to set selected url to the Startpage?"
+msgstr ""
+
+#: plugin.py:1508
+msgid "Current page is already exist."
+msgstr ""
+
+#: plugin.py:1521 plugin.py:1522
+msgid "Direct Input(Bookmark)"
+msgstr ""
+
+#: plugin.py:1521 plugin.py:1522
+msgid "Direct Input(Category)"
+msgstr ""
+
+#: plugin.py:1522
+msgid "Currentpage(Bookmark)"
+msgstr ""
+
+#: plugin.py:1523
+msgid "Please choose."
+msgstr ""
+
+#: plugin.py:1538
+msgid "Do you want to delete the category and the bookmarks?"
+msgstr ""
+
+#: plugin.py:1539
+msgid "Do you want to delete the bookmark?"
+msgstr ""
+
+#: plugin.py:1547
+msgid ""
+"Can't open selected bookmark.\n"
+"   - URL data is empty!!"
+msgstr ""
+
+#: plugin.py:1582
+msgid "Global"
+msgstr ""
+
+#: plugin.py:1583
+msgid "Mouse"
+msgstr ""
+
+#: plugin.py:1584
+msgid "Keyboard"
+msgstr ""
+
+#: plugin.py:1602
+msgid "Browser Help"
+msgstr ""
+
+#: plugin.py:1612
+msgid "Exit the Opera browser."
+msgstr ""
+
+#: plugin.py:1615
+msgid "Show the Menu window."
+msgstr ""
+
+#: plugin.py:1618 plugin.py:1649
+msgid "Enter Key"
+msgstr ""
+
+#: plugin.py:1619
+msgid "Show the Virtual keyboard window."
+msgstr ""
+
+#: plugin.py:1620
+msgid "Backspace Key"
+msgstr ""
+
+#: plugin.py:1623
+msgid "Switch to keyboard/mouse mode."
+msgstr ""
+
+#: plugin.py:1628
+msgid "It will move the mouse pointer up."
+msgstr ""
+
+#: plugin.py:1629
+msgid "It will move the mouse pointer down."
+msgstr ""
+
+#: plugin.py:1630
+msgid "It will move the mouse pointer left."
+msgstr ""
+
+#: plugin.py:1631
+msgid "It will move the mouse pointer right."
+msgstr ""
+
+#: plugin.py:1634
+msgid "Left Mouse Button"
+msgstr ""
+
+#: plugin.py:1637
+msgid "Right Mouse Button"
+msgstr ""
+
+#: plugin.py:1638 plugin.py:1645
+msgid "Left Key"
+msgstr ""
+
+#: plugin.py:1639 plugin.py:1646
+msgid "Right Key"
+msgstr ""
+
+#: plugin.py:1643
+msgid "Up Key"
+msgstr ""
+
+#: plugin.py:1644
+msgid "Down Key"
+msgstr ""
+
+#: plugin.py:1652
+msgid "PageUp Key"
+msgstr ""
+
+#: plugin.py:1653
+msgid "PageDown Key"
+msgstr ""
+
+#: plugin.py:1654
+msgid "Go to previous page."
+msgstr ""
+
+#: plugin.py:1655
+msgid "Go to next page."
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1919
+msgid "Open URL"
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1920
+msgid "Start/Stop"
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1924
+msgid "Open Startpage"
+msgstr ""
+
+#: plugin.py:1694 plugin.py:1743 plugin.py:1917
+msgid "Help"
+msgstr ""
+
+#: plugin.py:1694 plugin.py:1918
+msgid "About"
+msgstr ""
+
+#: plugin.py:1741
+msgid "File"
+msgstr ""
+
+#: plugin.py:1742
+msgid "Tools"
+msgstr ""
+
+#: plugin.py:1748 plugin.py:1872
+msgid "Opera Web Browser Plugin v1.0"
+msgstr ""
+
+#: plugin.py:1749
+msgid "BrowserMain"
+msgstr ""
+
+#: plugin.py:1768 plugin.py:1923
+msgid "Return"
+msgstr ""
+
+#: plugin.py:1817
+msgid "Opera Browser"
+msgstr ""
+
+#: plugin.py:1867 plugin.py:1896
+msgid ""
+"Opera Browser was not running.\n"
+"Please running browser using [File]>[Start/Stop] menu."
+msgstr ""
+
+#: plugin.py:2083
+msgid "HbbTV Applications"
+msgstr ""
+
+#: plugin.py:2084
+msgid "Browser Start/Stop"
+msgstr ""
+
+#: plugin.py:2085
+msgid "Opera Web Browser"
+msgstr ""
+
+#: plugin.py:2085
+msgid "start opera web browser"
+msgstr ""
+
diff --git a/lib/python/Plugins/Extensions/HbbTV/locale/en.po b/lib/python/Plugins/Extensions/HbbTV/locale/en.po
new file mode 100644 (file)
index 0000000..8aebac2
--- /dev/null
@@ -0,0 +1,347 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-11-20 18:20+KST\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=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+
+
+#: plugin.py:856
+msgid "HbbTV Plugin"
+msgstr ""
+
+#: plugin.py:969
+msgid ""
+"HbbTV Browser was not running.\n"
+"Please running browser before start HbbTV Application."
+msgstr ""
+
+#: plugin.py:1041
+msgid "No detected HbbTV applications."
+msgstr ""
+
+#: plugin.py:1042
+msgid "Please choose an HbbTV application."
+msgstr ""
+
+#: plugin.py:1053
+msgid "Stop"
+msgstr ""
+
+#: plugin.py:1054
+msgid "Start"
+msgstr ""
+
+#: plugin.py:1055
+msgid "Please choose one."
+msgstr ""
+
+#: plugin.py:1165 plugin.py:1280
+msgid "Cancel"
+msgstr ""
+
+#: plugin.py:1166 plugin.py:1281
+msgid "Save"
+msgstr ""
+
+#: plugin.py:1178 plugin.py:1693 plugin.py:1922
+msgid "Preference"
+msgstr ""
+
+#: plugin.py:1197
+msgid ""
+"Invalid URL!!(Empty)\n"
+"Please, Input to the URL."
+msgstr ""
+
+#: plugin.py:1214 plugin.py:1870
+msgid "Please enter URL here"
+msgstr ""
+
+#: plugin.py:1226
+msgid "Start Page"
+msgstr ""
+
+#: plugin.py:1228
+msgid "Current Page"
+msgstr ""
+
+#: plugin.py:1229
+msgid "Direct Input"
+msgstr ""
+
+#: plugin.py:1231
+msgid "Startpage"
+msgstr ""
+
+#: plugin.py:1295 plugin.py:1446 plugin.py:1693 plugin.py:1921
+msgid "Bookmark"
+msgstr ""
+
+#: plugin.py:1300 plugin.py:1382
+msgid "Name"
+msgstr ""
+
+#: plugin.py:1303 plugin.py:1389
+msgid "Title"
+msgstr ""
+
+#: plugin.py:1305 plugin.py:1390
+msgid "Url"
+msgstr ""
+
+#: plugin.py:1309
+msgid ""
+"!!(Empty)\n"
+"Please, Input to the "
+msgstr ""
+
+#: plugin.py:1309
+msgid "Invalid "
+msgstr ""
+
+#: plugin.py:1333 plugin.py:1344 plugin.py:1435 plugin.py:1516 plugin.py:1519
+msgid "Add"
+msgstr ""
+
+#: plugin.py:1336 plugin.py:1340
+msgid "Category Name"
+msgstr ""
+
+#: plugin.py:1349 plugin.py:1357
+msgid "Bookmark Title"
+msgstr ""
+
+#: plugin.py:1352 plugin.py:1360
+msgid "Bookmark URL"
+msgstr ""
+
+#: plugin.py:1434 plugin.py:1581 plugin.py:1692 plugin.py:1916
+msgid "Exit"
+msgstr ""
+
+#: plugin.py:1436 plugin.py:1527 plugin.py:1528
+msgid "Edit"
+msgstr ""
+
+#: plugin.py:1437
+msgid "Delete"
+msgstr ""
+
+#: plugin.py:1438
+msgid "Set as Startpage"
+msgstr ""
+
+#: plugin.py:1485
+msgid "Invalid URL. Please check again!!"
+msgstr ""
+
+#: plugin.py:1493
+msgid "Do you want to set selected url to the Startpage?"
+msgstr ""
+
+#: plugin.py:1508
+msgid "Current page is already exist."
+msgstr ""
+
+#: plugin.py:1521 plugin.py:1522
+msgid "Direct Input(Bookmark)"
+msgstr ""
+
+#: plugin.py:1521 plugin.py:1522
+msgid "Direct Input(Category)"
+msgstr ""
+
+#: plugin.py:1522
+msgid "Currentpage(Bookmark)"
+msgstr ""
+
+#: plugin.py:1523
+msgid "Please choose."
+msgstr ""
+
+#: plugin.py:1538
+msgid "Do you want to delete the category and the bookmarks?"
+msgstr ""
+
+#: plugin.py:1539
+msgid "Do you want to delete the bookmark?"
+msgstr ""
+
+#: plugin.py:1547
+msgid ""
+"Can't open selected bookmark.\n"
+"   - URL data is empty!!"
+msgstr ""
+
+#: plugin.py:1582
+msgid "Global"
+msgstr ""
+
+#: plugin.py:1583
+msgid "Mouse"
+msgstr ""
+
+#: plugin.py:1584
+msgid "Keyboard"
+msgstr ""
+
+#: plugin.py:1602
+msgid "Browser Help"
+msgstr ""
+
+#: plugin.py:1612
+msgid "Exit the Opera browser."
+msgstr ""
+
+#: plugin.py:1615
+msgid "Show the Menu window."
+msgstr ""
+
+#: plugin.py:1618 plugin.py:1649
+msgid "Enter Key"
+msgstr ""
+
+#: plugin.py:1619
+msgid "Show the Virtual keyboard window."
+msgstr ""
+
+#: plugin.py:1620
+msgid "Backspace Key"
+msgstr ""
+
+#: plugin.py:1623
+msgid "Switch to keyboard/mouse mode."
+msgstr ""
+
+#: plugin.py:1628
+msgid "It will move the mouse pointer up."
+msgstr ""
+
+#: plugin.py:1629
+msgid "It will move the mouse pointer down."
+msgstr ""
+
+#: plugin.py:1630
+msgid "It will move the mouse pointer left."
+msgstr ""
+
+#: plugin.py:1631
+msgid "It will move the mouse pointer right."
+msgstr ""
+
+#: plugin.py:1634
+msgid "Left Mouse Button"
+msgstr ""
+
+#: plugin.py:1637
+msgid "Right Mouse Button"
+msgstr ""
+
+#: plugin.py:1638 plugin.py:1645
+msgid "Left Key"
+msgstr ""
+
+#: plugin.py:1639 plugin.py:1646
+msgid "Right Key"
+msgstr ""
+
+#: plugin.py:1643
+msgid "Up Key"
+msgstr ""
+
+#: plugin.py:1644
+msgid "Down Key"
+msgstr ""
+
+#: plugin.py:1652
+msgid "PageUp Key"
+msgstr ""
+
+#: plugin.py:1653
+msgid "PageDown Key"
+msgstr ""
+
+#: plugin.py:1654
+msgid "Go to previous page."
+msgstr ""
+
+#: plugin.py:1655
+msgid "Go to next page."
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1919
+msgid "Open URL"
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1920
+msgid "Start/Stop"
+msgstr ""
+
+#: plugin.py:1692 plugin.py:1924
+msgid "Open Startpage"
+msgstr ""
+
+#: plugin.py:1694 plugin.py:1743 plugin.py:1917
+msgid "Help"
+msgstr ""
+
+#: plugin.py:1694 plugin.py:1918
+msgid "About"
+msgstr ""
+
+#: plugin.py:1741
+msgid "File"
+msgstr ""
+
+#: plugin.py:1742
+msgid "Tools"
+msgstr ""
+
+#: plugin.py:1748 plugin.py:1872
+msgid "Opera Web Browser Plugin v1.0"
+msgstr ""
+
+#: plugin.py:1749
+msgid "BrowserMain"
+msgstr ""
+
+#: plugin.py:1768 plugin.py:1923
+msgid "Return"
+msgstr ""
+
+#: plugin.py:1817
+msgid "Opera Browser"
+msgstr ""
+
+#: plugin.py:1867 plugin.py:1896
+msgid ""
+"Opera Browser was not running.\n"
+"Please running browser using [File]>[Start/Stop] menu."
+msgstr ""
+
+#: plugin.py:2083
+msgid "HbbTV Applications"
+msgstr ""
+
+#: plugin.py:2084
+msgid "Browser Start/Stop"
+msgstr ""
+
+#: plugin.py:2085
+msgid "Opera Web Browser"
+msgstr ""
+
+#: plugin.py:2085
+msgid "start opera web browser"
+msgstr ""
+
index 8bdbaf8..ab36038 100644 (file)
@@ -28,6 +28,8 @@ from bookmark import BookmarkManager, BookmarkData, CategoryData
 
 import os, struct, threading, stat, select, time, socket, select
 
+from __init__ import _
+
 strIsEmpty = lambda x: x is None or len(x) == 0
 
 HBBTVAPP_PATH = "/usr/local/hbb-browser"
@@ -521,8 +523,6 @@ class HandlerHbbTV(Handler):
                tsid = dataItems[1]
                if not _g_helper.doChangeChannel(sid, tsid):
                        return (0, "NOK")
-
-
                return (0, "OK")
 
        def _cb_handleBrowserMenuReq(self, opcode, data):
@@ -853,6 +853,7 @@ class HbbTVWindow(Screen, InfoBarNotifications):
                self._currentServicePositionTimer.stop()
 
        def _layoutFinished(self):
+               self.setTitle(_('HbbTV Plugin'))
                command_util = getCommandUtil()
                profile = self._profile
                (sid, onid, tsid, name, orgid) = getChannelInfos()
@@ -965,7 +966,7 @@ class HbbTVHelper(Screen):
 
        def _cb_hbbtv_activated(self, title=None, url=None):
                if not self._is_browser_running():
-                       message = "HbbTV Browser was not running.\nPlease running browser before start HbbTV Application."
+                       message = _("HbbTV Browser was not running.\nPlease running browser before start HbbTV Application.")
                        self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
                        return
                service = self._session.nav.getCurrentlyPlayingServiceReference()
@@ -1037,7 +1038,7 @@ class HbbTVHelper(Screen):
                if self.getStartHbbTVUrl():
                        for x in self._urls:
                                applications.append((x[1], x))
-               else: applications.append(("No detected HbbTV applications.", None))
+               else: applications.append((_("No detected HbbTV applications."), None))
                self._session.openWithCallback(self._application_selected, ChoiceBox, title=_("Please choose an HbbTV application."), list=applications)
 
        def _application_selected(self, selected):
@@ -1049,15 +1050,15 @@ class HbbTVHelper(Screen):
        def showBrowserConfigBox(self):
                start_stop_mode = []
                if self._is_browser_running():
-                       start_stop_mode.append(('Stop',None))
-               else:   start_stop_mode.append(('Start',None))
+                       start_stop_mode.append((_('Stop'),'Stop'))
+               else:   start_stop_mode.append((_('Start'),'Start'))
                self._session.openWithCallback(self._browser_config_selected, ChoiceBox, title=_("Please choose one."), list=start_stop_mode)
 
        def _browser_config_selected(self, selected):
                if selected is None:
                        return
                try:
-                       mode = selected[0]
+                       mode = selected[1]
                        if mode == 'Start':
                                if not self._is_browser_running():
                                        self._start_opera()
@@ -1174,6 +1175,7 @@ class OperaBrowserPreferenceWindow(ConfigListScreen, Screen):
                self.onLayoutFinish.append(self.layoutFinished)
 
        def layoutFinished(self):
+               self.setTitle(_('Preference'))
                try:
                        d = OperaBrowserSetting().getData()
                        self._startPageUrl = d['start']
@@ -1192,7 +1194,7 @@ class OperaBrowserPreferenceWindow(ConfigListScreen, Screen):
        def keyGreen(self):
                url = self["url"].getText()
                if strIsEmpty(url):
-                       self.session.open(MessageBox, 'Invalid URL!!(Empty)\nPlease, Input to the URL.', type = MessageBox.TYPE_INFO)
+                       self.session.open(MessageBox, _('Invalid URL!!(Empty)\nPlease, Input to the URL.'), type = MessageBox.TYPE_INFO)
                        return
                mode = 0
                if url.find('/usr/local/manual') > 0:
@@ -1209,7 +1211,7 @@ class OperaBrowserPreferenceWindow(ConfigListScreen, Screen):
                                return
                        self["url"].setText(data)
                if self.menuItemStartpage.value == "direct":
-                       self.session.openWithCallback(_cb_directInputUrl, VirtualKeyBoard, title=("Please enter URL here"), text='http://')
+                       self.session.openWithCallback(_cb_directInputUrl, VirtualKeyBoard, title=(_("Please enter URL here")), text='http://')
 
        def keyLeft(self):
                ConfigListScreen.keyLeft(self)
@@ -1290,21 +1292,21 @@ class BookmarkEditWindow(ConfigListScreen, Screen):
                self.onLayoutFinish.append(self.layoutFinished)
 
        def layoutFinished(self):
-               self.setTitle('Bookmark ' + self.mMode)
+               self.setTitle(_('Bookmark') + ' ' + self.mMode)
 
        def selectedItem(self):
                currentPosition = self["config"].getCurrent()
                if self.mType == BookmarkEditWindow.CATEGORY:
-                       return ("Name", self.menuItemName)
+                       return (_("Name"), self.menuItemName)
                else:
                        if currentPosition == self.menuEntryTitle:
-                               return ("Title", self.menuItemTitle)
+                               return (_("Title"), self.menuItemTitle)
                        elif currentPosition == self.menuEntryUrl:
-                               return ("Url", self.menuItemUrl)
+                               return (_("Url"), self.menuItemUrl)
                return None
 
        def showMessageBox(self, text):
-               msg = "Invalid " + text + "!!(Empty)\nPlease, Input to the " + text + "."
+               msg = _("Invalid ") + text + _("!!(Empty)\nPlease, Input to the ") + text + "."
                self.mSession.openWithCallback(self.showVKeyWindow, MessageBox, msg, MessageBox.TYPE_INFO)
                return False
 
@@ -1328,34 +1330,34 @@ class BookmarkEditWindow(ConfigListScreen, Screen):
 
        def saveData(self):
                if self.mType == BookmarkEditWindow.CATEGORY:
-                       if self.mMode == 'Add':
+                       if self.mMode == _('Add'):
                                categoryName = self.menuItemName.value
                                if strIsEmpty(categoryName):
-                                       return self.showMessageBox("Category Name")
+                                       return self.showMessageBox(_("Category Name"))
                                self.mBookmarkManager.addCategory(categoryName)
                        else:
                                if strIsEmpty(self.menuItemName.value):
-                                       return self.showMessageBox("Category Name")
+                                       return self.showMessageBox(_("Category Name"))
                                self.mData.mName = self.menuItemName.value
                                self.mBookmarkManager.updateCategory(self.mData)
                else:
-                       if self.mMode == 'Add':
+                       if self.mMode == _('Add'):
                                bookmarkTitle = self.menuItemTitle.value
                                bookmarkUrl   = self.menuItemUrl.value
                                if strIsEmpty(bookmarkTitle):
                                        self["config"].setCurrentIndex(0)
-                                       return self.showMessageBox("Bookmark Title")
+                                       return self.showMessageBox(_("Bookmark Title"))
                                if strIsEmpty(bookmarkUrl):
                                        self["config"].setCurrentIndex(1)
-                                       return self.showMessageBox("Bookmark URL")
+                                       return self.showMessageBox(_("Bookmark URL"))
                                self.mBookmarkManager.addBookmark(bookmarkTitle, bookmarkUrl, self.mData.mParent, 0)
                        else:
                                if strIsEmpty(self.menuItemTitle.value):
                                        self["config"].setCurrentIndex(0)
-                                       return self.showMessageBox("Bookmark Title")
+                                       return self.showMessageBox(_("Bookmark Title"))
                                if strIsEmpty(self.menuItemUrl.value):
                                        self["config"].setCurrentIndex(1)
-                                       return self.showMessageBox("Bookmark URL")
+                                       return self.showMessageBox(_("Bookmark URL"))
                                self.mData.mTitle = self.menuItemTitle.value
                                self.mData.mUrl   = self.menuItemUrl.value
                                self.mBookmarkManager.updateBookmark(self.mData)
@@ -1438,6 +1440,11 @@ class OperaBrowserBookmarkWindow(Screen):
                self.mBookmarkList = self.setBookmarkList()
                self["bookmarklist"] = MenuList(self.mBookmarkList)
 
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(_('Bookmark'))
+
        def setBookmarkList(self):
                l = []
                #self.mBookmarkManager.dump()
@@ -1475,7 +1482,7 @@ class OperaBrowserBookmarkWindow(Screen):
        def keyNumber(self):
                data = self["bookmarklist"].getCurrent()[1]
                if strIsEmpty(data.mUrl):
-                       msg = "Invalid URL. Please check again!!"
+                       msg = _("Invalid URL. Please check again!!")
                        self.mSession.open(MessageBox, msg, MessageBox.TYPE_INFO)
                        return
                def cbSetStartpage(ret=None):
@@ -1483,7 +1490,7 @@ class OperaBrowserBookmarkWindow(Screen):
                        if ret:
                                data = self["bookmarklist"].getCurrent()[1]
                                OperaBrowserSetting().setData(data.mUrl, data.mType)
-               msg = "Do you want to set selected url to the Startpage?"
+               msg = _("Do you want to set selected url to the Startpage?")
                self.mSession.openWithCallback(cbSetStartpage, MessageBox, msg, MessageBox.TYPE_YESNO, default=True)
 
        def keyGreen(self):
@@ -1498,7 +1505,7 @@ class OperaBrowserBookmarkWindow(Screen):
                                        return
                                retAdd = self.mBookmarkManager.addBookmark(self.mTitle, self.mUrl, parent.mId, 0)
                                if not retAdd:
-                                       msg = "Current page is already exist."
+                                       msg = _("Current page is already exist.")
                                        self.mSession.open(MessageBox, msg, MessageBox.TYPE_INFO)
                                self.cbEditWindow(True)
                        elif data[1] == 2:
@@ -1506,19 +1513,19 @@ class OperaBrowserBookmarkWindow(Screen):
                                if parent is None:
                                        return
                                b = BookmarkData(0, '', '', parent.mId, 0)
-                               self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Add', BookmarkEditWindow.BOOKMARK, b, self.mBookmarkManager)
+                               self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Add'), BookmarkEditWindow.BOOKMARK, b, self.mBookmarkManager)
                        elif data[1] == 3:
                                c = CategoryData(0, '')
-                               self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Add', BookmarkEditWindow.CATEGORY, c, self.mBookmarkManager)
+                               self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Add'), BookmarkEditWindow.CATEGORY, c, self.mBookmarkManager)
                if strIsEmpty(self.mUrl):
-                       l = [('Direct Input(Bookmark)',2,), ('Direct Input(Category)',3,)]
-               else:   l = [('Currentpage(Bookmark)',1,), ('Direct Input(Bookmark)',2,), ('Direct Input(Category)',3,)]
+                       l = [(_('Direct Input(Bookmark)'),2,), (_('Direct Input(Category)'),3,)]
+               else:   l = [(_('Currentpage(Bookmark)'),1,), (_('Direct Input(Bookmark)'),2,), (_('Direct Input(Category)'),3,)]
                self.mSession.openWithCallback(cbGreen, ChoiceBox, title=_("Please choose."), list=l)
        def keyYellow(self):
                data = self["bookmarklist"].getCurrent()[1]
                if self.isCategoryItem():
-                       self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Edit', BookmarkEditWindow.CATEGORY, data, self.mBookmarkManager)
-               else:   self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Edit', BookmarkEditWindow.BOOKMARK, data, self.mBookmarkManager)
+                       self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Edit'), BookmarkEditWindow.CATEGORY, data, self.mBookmarkManager)
+               else:   self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, _('Edit'), BookmarkEditWindow.BOOKMARK, data, self.mBookmarkManager)
        def keyBlue(self):
                def cbBlue(ret=None):
                        if not ret: return
@@ -1528,8 +1535,8 @@ class OperaBrowserBookmarkWindow(Screen):
                        else:   self.mBookmarkManager.deleteBookmark(data.mId)
                        self.updateBookmarkList()
                if self.isCategoryItem():
-                       msg = "Do you want to delete the category and the bookmarks?"
-               else:   msg = "Do you want to delete the bookmark?"
+                       msg = _("Do you want to delete the category and the bookmarks?")
+               else:   msg = _("Do you want to delete the bookmark?")
                self.mSession.openWithCallback(cbBlue, MessageBox, msg, MessageBox.TYPE_YESNO, default=True)
        def keyOK(self):
                if self.isCategoryItem(): return
@@ -1537,7 +1544,7 @@ class OperaBrowserBookmarkWindow(Screen):
                data = self["bookmarklist"].getCurrent()[1]
                url = data.mUrl.strip()
                if len(url) == 0:
-                       self.session.open(MessageBox, "Can't open selected bookmark.\n   - URL data is empty!!", type = MessageBox.TYPE_INFO)
+                       self.session.open(MessageBox, _("Can't open selected bookmark.\n   - URL data is empty!!"), type = MessageBox.TYPE_INFO)
                        return
                mode = data.mType
                if mode:
@@ -1552,7 +1559,6 @@ class OperaBrowserBookmarkWindow(Screen):
        def keyCancel(self):
                self.close()
 
-
 class BrowserHelpWindow(Screen, HelpableScreen):
        MODE_GLOBAL,MODE_KEYBOARD,MODE_MOUSE = 1,2,3
         skin = """
@@ -1590,6 +1596,11 @@ class BrowserHelpWindow(Screen, HelpableScreen):
                self.showHelpTimer.callback.append(self.cbShowHelpTimerClosed)
                self.showHelpTimer.start(500)
 
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(_('Browser Help'))
+
        def cbShowHelpTimerClosed(self):
                self.showHelpTimer.stop()
                self.setHelpModeActions(self.MODE_GLOBAL)
@@ -1678,10 +1689,10 @@ class OperaBrowser(Screen):
                </screen>
                """ % (MENUBAR_ITEM_HEIGHT+30, SUBMENULIST_WIDTH, SUBMENULIST_WIDTH+50+SUBMENULIST_NEXT, MENUBAR_ITEM_HEIGHT+30, SUBMENULIST_WIDTH)# modify menu
 
-       MENUITEMS_LIST =[[('Open Startpage', None), ('Open URL', None), ('Start/Stop',None), ('Exit', None)],
-                        [('Bookmark', None), ('Preference', None)],
-                        [('About', None), ('Help', None)]]
-       def __init__(self, session):
+       MENUITEMS_LIST =[[(_('Open Startpage'), None), (_('Open URL'), None), (_('Start/Stop'),None), (_('Exit'), None)],
+                        [(_('Bookmark'), None), (_('Preference'), None)],
+                        [(_('About'), None), (_('Help'), None)]]
+       def __init__(self, session, url=None):
                Screen.__init__(self, session)
                self["actions"] = ActionMap(["DirectionActions", "MenuActions", "OkCancelActions"], {
                         "cancel"      : self.keyCancel
@@ -1721,23 +1732,29 @@ class OperaBrowser(Screen):
                self._onCloseTimer = eTimer()
                self._onCloseTimer.callback.append(self._cb_onClose)
 
+               self.paramUrl = url
+
        def enableRCMouse(self, mode): #mode=[0|1]|[False|True]
                rcmouse_path = "/proc/stb/fp/mouse"
                if os.path.exists(rcmouse_path):
                        os.system("echo %d > %s" % (mode, rcmouse_path))
 
        def layoutFinished(self):
-               self["menuitemFile"].setText("File")# modify menu
-               self["menuitemTool"].setText("Tools")
-               self["menuitemHelp"].setText("Help")
+               self["menuitemFile"].setText(_("File"))# modify menu
+               self["menuitemTool"].setText(_("Tools"))
+               self["menuitemHelp"].setText(_("Help"))
 
                self["menulist"].hide()
                self["submenulist"].hide()
 
-               self["bottomArea"].setText("Opera Web Browser Plugin v1.0")
-               self.setTitle("BrowserMain")
+               self["bottomArea"].setText(_("Opera Web Browser Plugin v1.0"))
+               self.setTitle(_("BrowserMain"))
                self.selectMenuitem()
 
+               if self.paramUrl is not None:
+                       self.keyMenu()
+                       self.cbUrlText(self.paramUrl, 1)
+
        def selectMenuitem(self):
                tmp = [self["menuitemFile"], self["menuitemTool"], self["menuitemHelp"]]# modify menu
                self["menuitemFile"].setForegroundColorNum(0)
@@ -1754,7 +1771,7 @@ class OperaBrowser(Screen):
        def setListOnView(self):
                l = self.MENUITEMS_LIST[self.menubarCurrentIndex]
                if not self._terminatedBrowser and self.menubarCurrentIndex == 0: # running
-                       l = [('Return', None)]
+                       l = [(_('Return'), None)]
                self.lvMenuItems = l #self.MENUITEMS_LIST[self.menubarCurrentIndex]     
                return self.lvMenuItems
 
@@ -1803,7 +1820,7 @@ class OperaBrowser(Screen):
                        if self._on_setPageTitle in command_server.onSetPageTitleCB:
                                command_server.onSetPageTitleCB.remove(self._on_setPageTitle)
                except Exception, ErrMsg: pass
-               self._on_setPageTitle('Opera Browser')
+               self._on_setPageTitle(_('Opera Browser'))
                self.enableRCMouse(False)
                self.toggleMainScreen()
                fbClass.getInstance().unlock()
@@ -1813,8 +1830,11 @@ class OperaBrowser(Screen):
                #if not self.toggleListViewFlag:
                #       self.keyDown()
                self._currentPageUrl = ''
-               self.keyRight()
-               self.keyLeft()
+               if self.paramUrl is not None:
+                       self.keyCancel()
+               else:
+                       self.keyRight()
+                       self.keyLeft()
 
        def _on_setPageTitle(self, title=None):
                print "Title :",title
@@ -1853,12 +1873,12 @@ class OperaBrowser(Screen):
        def _cmd_on_OpenUrl(self):
                global _g_helper
                if not _g_helper._is_browser_running():
-                       message = "Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu."
+                       message = _("Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu.")
                        self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
                        return
-               self.session.openWithCallback(self.cbUrlText, VirtualKeyBoard, title=("Please enter URL here"), text='http://')
+               self.session.openWithCallback(self.cbUrlText, VirtualKeyBoard, title=(_("Please enter URL here")), text='http://')
        def _cmd_on_About(self):
-               self.session.open(MessageBox, 'Opera Web Browser Plugin v1.0', type = MessageBox.TYPE_INFO)
+               self.session.open(MessageBox, _('Opera Web Browser Plugin v1.0'), type = MessageBox.TYPE_INFO)
        def _cmd_on_Exit(self):
                self.close()
        def _cmd_on_StartStop(self):
@@ -1882,7 +1902,7 @@ class OperaBrowser(Screen):
        def _cmd_on_OpenStartpage(self):
                global _g_helper
                if not _g_helper._is_browser_running():
-                       message = "Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu."
+                       message = _("Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu.")
                        self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
                        return
                mode = 0
@@ -1900,17 +1920,17 @@ class OperaBrowser(Screen):
                self.session.open(BrowserHelpWindow)
 
        def doCommand(self, command):
-               cmd_map = {# modify menu
-                        'Exit'         :self._cmd_on_Exit
-                       ,'Help'         :self._cmd_on_Help
-                       ,'About'        :self._cmd_on_About
-                       ,'Open URL'     :self._cmd_on_OpenUrl
-                       ,'Start/Stop'   :self._cmd_on_StartStop
-                       ,'Bookmark'     :self._cmd_on_Bookmark
-                       ,'Preference'   :self._cmd_on_Preference
-                       ,'Return'       :self._cmd_on_ReturnToBrowser
-                       ,'Open Startpage' :self._cmd_on_OpenStartpage
-               }
+               # modify menu
+               cmd_map = {}
+               cmd_map[_('Exit')] = self._cmd_on_Exit
+               cmd_map[_('Help')] = self._cmd_on_Help
+               cmd_map[_('About')] = self._cmd_on_About
+               cmd_map[_('Open URL')] = self._cmd_on_OpenUrl
+               cmd_map[_('Start/Stop')] = self._cmd_on_StartStop
+               cmd_map[_('Bookmark')] = self._cmd_on_Bookmark
+               cmd_map[_('Preference')] = self._cmd_on_Preference
+               cmd_map[_('Return')] = self._cmd_on_ReturnToBrowser
+               cmd_map[_('Open Startpage')] = self._cmd_on_OpenStartpage
                try:
                        cmd_map[command]()
                except Exception, ErrMsg: print ErrMsg
@@ -2027,20 +2047,52 @@ class OperaBrowser(Screen):
                self.currentListView.pageUp()
                self.keyUp()
 
-
-
 def auto_start_main(reason, **kwargs):
        if reason:
                command_server = getCommandServer()
                command_server.stop()
 
+from  Screens.HelpMenu import HelpableScreen
 def session_start_main(session, reason, **kwargs):
        fbClass.getInstance().unlock()
        eRCInput.getInstance().unlock()
        global _g_helper
        _g_helper = session.open(HbbTVHelper)
 
+       HelpableScreen.__init__ = HelpableScreen__init__
+       HelpableScreen.session = session
+
+def HelpableScreen__init__(self):
+       if isinstance(self, HelpableScreen):
+               HelpableScreen.showManual = showManual
+
+               self["helpActions"] = ActionMap(["HelpbuttonActions"], {
+                       "help_b" : self.showHelp,
+                       "help_l" : self.showManual, 
+               }, -2)
+
 _g_clearBrowserDataTimer = eTimer()
+def showManual(self):
+       if not os.path.exists('/usr/local/manual'):
+               return
+
+       url = 'file:///usr/local/manual/main.html'
+       lang = language.getLanguage()
+       if lang == 'ru_RU' and os.path.exists('/usr/local/manual/ru_RU'):
+               url = 'file:///usr/local/manual/ru_RU/main.html'
+       elif lang == 'de_DE' and os.path.exists('/usr/local/manual/de_DE'):
+               url = 'file:///usr/local/manual/de_DE/main.html'
+
+       def _do_clean():
+               _g_clearBrowserDataTimer.stop()
+               try:    _g_clearBrowserDataTimer.callback.remove(_do_clean)
+               except: pass
+               setPluginBrowser(None)
+       def clearBrowserData():
+               _g_clearBrowserDataTimer.callback.append(_do_clean)
+               _g_clearBrowserDataTimer.start(50)
+       setPluginBrowser(self.session.openWithCallback(clearBrowserData, OperaBrowser, url))
+
 def plugin_start_main(session, **kwargs):
        #session.open(OperaBrowser)
        def _do_clean():
@@ -2066,11 +2118,12 @@ def plugin_extension_browser_config(session, **kwargs):
        _g_helper.showBrowserConfigBox()
 
 def Plugins(path, **kwargs):
-       return  [
-               PluginDescriptor(where=PluginDescriptor.WHERE_AUTOSTART, fnc=auto_start_main),
-               PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART, needsRestart=True, fnc=session_start_main, weight=-10),
-               PluginDescriptor(name="HbbTV Applications", where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_start_application),
-               PluginDescriptor(name="Browser Start/Stop", where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_browser_config),
-               PluginDescriptor(name="Opera Web Browser", description="start opera web browser", where=PluginDescriptor.WHERE_PLUGINMENU, needsRestart=True, fnc=plugin_start_main),
-               ]
+       l = []
+       l.append(PluginDescriptor(where=PluginDescriptor.WHERE_AUTOSTART, fnc=auto_start_main))
+       l.append(PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART, needsRestart=True, fnc=session_start_main, weight=-10))
+       l.append(PluginDescriptor(name=_("HbbTV Applications"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_start_application))
+       l.append(PluginDescriptor(name=_("Browser Start/Stop"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart=True, fnc=plugin_extension_browser_config))
+       l.append(PluginDescriptor(name=_("Opera Web Browser"), description=_("start opera web browser"), where=PluginDescriptor.WHERE_PLUGINMENU, needsRestart=True, fnc=plugin_start_main))
+
+       return l