如何使用pybabel获得特定语言的翻译

时间:2018-09-21 13:33:48

标签: python babel gettext

在大多数情况下,使用Babel的gettext()_()在当前上下文中设置了当前语言环境,因此目标语言是隐式的,它不会作为参数传递给gettext( )。

但是,有没有一种方法可以将短语翻译成给定的目标语言,例如:

message = gettext('Hello there', language='es')

原始的gettext没有这种可能性,但是是否有其他API可以实现呢?

2 个答案:

答案 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!'), ...)