[kupfer: 3/13] plugin.google_translate: caching languages, correct string.
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer: 3/13] plugin.google_translate: caching languages, correct string.
- Date: Tue, 3 Nov 2009 12:00:12 +0000 (UTC)
commit 4d844855d536e3b3e3f94117fd70f6331eaa5110
Author: Karol BÄ?dkowski <karol bedkowsk+gh gmail com>
Date: Thu Oct 29 22:12:16 2009 +0100
plugin.google_translate: caching languages, correct string.
kupfer/plugin/google_translate.py | 32 +++++++++++++++++++++++---------
1 files changed, 23 insertions(+), 9 deletions(-)
---
diff --git a/kupfer/plugin/google_translate.py b/kupfer/plugin/google_translate.py
index 4d37344..1c79560 100644
--- a/kupfer/plugin/google_translate.py
+++ b/kupfer/plugin/google_translate.py
@@ -4,7 +4,7 @@ from kupfer import utils, pretty
__kupfer_name__ = _("Google Translate")
__kupfer_actions__ = ("Translate", )
-__description__ = _("Translate text in Google Translate")
+__description__ = _("Use Google to Translate Text.")
__version__ = ""
__author__ = "Karol BÄ?dkowski <karol bedkowski gmail com>"
@@ -43,21 +43,27 @@ def _translate(text, lang):
return _("Error connecting to Google Translate")
header = resp.getheader("Content-Type")
- charset= header[header.index("charset=")+8:]
+ charset = header[header.index("charset=")+8:]
if resp.status == 200:
data = resp.read().decode(charset)
if data[0] == "[":
data = data.strip('[]').split(',')
- return data[0].strip('"')
+ result = data[0].strip('"')
else:
- return data.strip('"')
+ result = data.strip('"')
else:
pretty.print_error(__name__, '_translate status error', repr(text),
lang, resp.status, resp.reason)
- return _("Error")
+ result = _("Error")
+ conn.close()
+ return result
def _load_languages():
+ ''' Load available languages from Google.
+ Generator: (lang_code, lang name)
+ '''
+ pretty.print_debug(__name__, '_load_languages')
url = urlparse(_GOOGLE_TRANS_LANG_URL)
data = {}
try:
@@ -77,10 +83,12 @@ def _load_languages():
if row:
yield (row[row.index('"')+1:row.rindex('"')],
row[row.index('>')+1:])
+ conn.close()
return
else:
pretty.print_error(__name__, '_load_languages status error',
repr(text), lang, resp.status, resp.reason)
+ conn.close()
yield 'en', 'English'
@@ -104,7 +112,7 @@ class Translate (Action):
return len(leaf.object.strip()) > 0
def get_description(self):
- return _("Use Google Translate")
+ return _("Translate in Google")
def get_icon_name(self):
return "accessories-dictionary"
@@ -121,7 +129,7 @@ class Translate (Action):
class _TransateQuerySource(Source):
def __init__(self, text, lang):
- Source.__init__(self, name=_("Translate for %s") % text)
+ Source.__init__(self, name=_("Translate into %s") % text)
self._text = text
self._lang = lang
@@ -137,12 +145,18 @@ class _Language(Leaf):
class _LangSource(Source):
+ _LANG_CACHE = None
+
def __init__(self):
Source.__init__(self, _("Languages"))
def get_items(self):
- for key, name in _load_languages():
- yield _Language(key, _("Translate to %s") % name)
+ if not self._LANG_CACHE:
+ self._LANG_CACHE = tuple((
+ _Language(key, _("Translate into %s") % name)
+ for key, name in _load_languages()
+ ))
+ return self._LANG_CACHE
def provides(self):
yield _Language
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]