在大多数情况下,使用Babel的gettext()
或_()
在当前上下文中设置了当前语言环境,因此目标语言是隐式的,它不会作为参数传递给gettext( )。
但是,有没有一种方法可以将短语翻译成给定的目标语言,例如:
message = gettext('Hello there', language='es')
原始的gettext没有这种可能性,但是是否有其他API可以实现呢?
答案 0 :(得分:0)
如果您使用普通的gettext API,请使用环境变量:
import os
os.environ['LANGUAGE'] = 'en'
message = gettext('Hello there')
对于OO gettext,它是这样的:
import gettext
fr = gettext.translation('yourdomain', languages=['fr'])
es = gettext.translation('yourdomain', languages=['es'])
fr.install()
// use French ...
es.install()
// use Spanish ...
答案 1 :(得分:0)
如果您使用的是Flask-Babel,则可以使用Low-Level API中的force_locale
:
from flask_babel import force_locale
with force_locale('en_US'):
send_email(gettext('Hello!'), ...)