我在后端有一些字符串,在使用它们之前,我偶尔需要翻译成其他语言。我计划将用户语言选择保存到数据库中,这样就可以很容易地从那里获得它。但是,我不清楚的是,如果我实现本地化并有几个不同的语言文件,我如何使用正确的语言版本?我无法读取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((将停用当前活动的翻译对象,以便再次针对默认翻译对象解析进一步的_调用。