特定区域设置的gettext

时间:2013-12-05 17:32:45

标签: python django internationalization

我可以使用。

获取当前语言环境中的翻译
from django.utils.translation import ugettext as _
_("password")

然而,在我的代码(特定形式)中,我希望以特定语言进行翻译。我希望能够说出来。

ugettext_magic("de", "password")

我已经用我需要的语言翻译了字符串。

2 个答案:

答案 0 :(得分:6)

有一种解决方法:

from django.utils import translation
from django.utils.translation import ugettext

def get_translation_in(string, locale):
    translation.activate(locale)
    val = ugettext(string)
    translation.deactivate()

print get_translation_in('text', 'de')

或者简单地说:

gettext.translation('django', 'locale', ['de'], fallback=True).ugettext('text')

答案 1 :(得分:0)

上下文管理器django.utils.translation.override在回车时激活一种新语言,并在退出时重新激活以前的活动语言

from django.utils import translation

def get_translation_in(language, s):
    with translation.override(language):
        return translation.gettext(s)

print(get_translation_in('de', 'text'))