本文整理匯總了Python中r2.lib.translation.Translator類的典型用法代碼示例。如果您正苦於以下問題:Python Translator類的具體用法?Python Translator怎麽用?Python Translator使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Translator類的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: POST_edit
def POST_edit(self, lang, post, try_trans):
if lang and not Translator.exists(lang):
return self.redirect("/admin/i18n")
if lang:
tr = get_translator(locale=lang)
else:
tr = TranslatorTemplate()
enabled = set()
for k, val in request.post.iteritems():
if k.startswith("trans_"):
k = k.split("_")
val = val.replace("\n", " ").replace("\r", " ")
# check if this is a translation string
if k[1:] and tr.get(k[1]):
tr.set(k[1], val, indx=int(k[2] if k[2:] else -1))
# check if this is an admin editing the source/comment lines
elif c.user_is_admin and tr.sources.get(k[1]):
source = tr.sources.get(k[1])
tr.source_trans[source] = val
elif c.user_is_admin and k.startswith("enabled_"):
k = k.split("_")
enabled.add(k[1])
# update the enabled state of the buttons
if c.user_is_admin and enabled:
strings = set(tr.string_dict.keys())
disabled = strings - enabled
for s in strings:
tr.set_enabled(s, True)
for s in disabled:
tr.set_enabled(s, False)
if request.post.get("nplurals"):
try:
tr.plural_names = [request.post.get("pluralform_%d" % i) for i in xrange(tr.nplurals)]
tr.nplurals = int(request.post.get("nplurals"))
except ValueError:
pass
if request.post.get("langname"):
tr.name = request.post["langname"]
if request.post.get("enlangname"):
tr.en_name = request.post["enlangname"]
tr.save(compile=bool(try_trans))
if try_trans:
tran_keys = _translations.keys()
for key in tran_keys:
if key.endswith(tr._out_file("mo")):
del _translations[key]
return self.redirect("http://%s/?lang=%s" % (g.domain, lang))
whereto = request.post.get("bttn_num", "")
if whereto:
whereto = "bttn_num_%s" % whereto
return self.redirect("/admin/i18n/edit/%s#%s" % (lang or "", whereto))
return res
示例2: GET_edit
def GET_edit(self, lang):
if not lang and c.user_is_admin:
content = Wrapped(TranslatorTemplate())
elif Translator.exists(lang):
content = Wrapped(get_translator(locale=lang))
else:
content = UnfoundPage()
res = AdminPage(content=content, title="translate proddit", show_sidebar=False).render()
return res
示例3: POST_adduser
def POST_adduser(self, lang, a):
from r2.lib.db import queries
if a and Translator.exists(lang):
tr = get_translator(locale = lang)
tr.author.add(a.name)
tr.save()
# send the user a message
body = Translator_Message(lang, a).render("html")
subject = "Thanks for offering to help translate!"
m, inbox_rel = Message._new(c.user, a, subject, body, request.ip)
queries.new_message(m, inbox_rel)
return self.redirect("/admin/i18n")
示例4: run
def run(self, param):
from r2.lib.translation import Translator
if Translator.exists(param):
return Translator(locale = param)
示例5: POST_new
def POST_new(self, lang):
if lang and not Translator.exists(lang):
tr = get_translator(locale = lang)
tr.save()
return self.redirect("/admin/i18n")
示例6: run
def run(self, lang):
if (not c.user_is_admin and
(not c.user_is_loggedin or not lang or
c.user.name not in Translator.get_author(lang))):
abort(404, 'page not found')
示例7: POST_enable_lang
def POST_enable_lang(self, res, lang):
if lang and Translator.exists(lang):
tr = Translator(locale = lang)
tr._is_enabled = True
示例8: POST_deltranslator
def POST_deltranslator(self, res, l):
lang, a = l.split('_')
if a and Translator.exists(lang):
tr = Translator(locale = lang)
tr.author.remove(a)
tr.save()
示例9: POST_adduser
def POST_adduser(self, lang, a):
if a and Translator.exists(lang):
tr = get_translator(locale = lang)
tr.author.add(a.name)
tr.save()
return self.redirect("/admin/i18n")