sha*_*bda 1 python django internationalization
我可以使用当前语言环境获得翻译.
from django.utils.translation import ugettext as _
_("password")
Run Code Online (Sandbox Code Playgroud)
但是在我的代码中(一种特定的形式)我想用特定的语言进行翻译.我希望能够说出来.
ugettext_magic("de", "password")
Run Code Online (Sandbox Code Playgroud)
我已经用我需要的语言翻译了字符串.
小智 11
上下文管理器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'))
Run Code Online (Sandbox Code Playgroud)
有一个解决方法:
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')
Run Code Online (Sandbox Code Playgroud)
或者干脆:
gettext.translation('django', 'locale', ['de'], fallback=True).ugettext('text')
Run Code Online (Sandbox Code Playgroud)