我可以手动将语言代码提供给Django gettext()吗



我在后端有一些字符串,在使用它们之前,我偶尔需要翻译成其他语言。我计划将用户语言选择保存到数据库中,这样就可以很容易地从那里获得它。但是,我不清楚的是,如果我实现本地化并有几个不同的语言文件,我如何使用正确的语言版本?我无法读取Cookie、url、用户会话等中的语言选择。我可以使用数据库中的语言代码来选择要使用的翻译吗?

您可以使用activate手动激活语言。这里有一个例子,假设用户有一个带有有效语言代码的语言属性:

from django.utils.translation import activate, deactivate
from django.utils.translation import gettext as _
user = MyUserModel.objects.get(username=username)
activate(user.language)
my_string_translated_into_users_language = _("Hello")
deactivate()

这样,您可以覆盖当前会话语言。然后deactivate((将停用当前活动的翻译对象,以便再次针对默认翻译对象解析进一步的_调用。

相关内容

  • 没有找到相关文章

最新更新