仅出于特定目的临时加载语言文件

2024-06-02 07:04:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是gettext(),根据登录用户的偏好,它工作得非常好。目前,有法语和英语。应用程序是django 1.11和python 3.4

现在,为用户A加载了一个英语。但他想向用户B发送一条预定义的消息,用户B表示法语是他的首选语言。在不重新加载加载的语言的情况下,是否有一种简单的方法可以加载该特定任务的法语,通过其msgid获取所需的消息并从内存中销毁它

现有系统中的当前解决方案是为此类任务读取Json文件。但是我希望每种语言有一个语言文件(.po),而不是Json和po文件


Tags: 文件django方法内存用户语言json应用程序
1条回答
网友
1楼 · 发布于 2024-06-02 07:04:46

如果任务位于视图中,则可以使用以下代码临时更改语言:

translation.activate(lang)

别忘了导入“翻译”:

from django.utils import translation

例如:

user_A_lang = translations.get_language()
user_B_lang = "en"
# activate the new language
translation.activate(user_B_lang)
# the way you use to translate
my_translated_string = _("String to be translated")
# activate the original language
translation.activate(user_A_lang)

相关问题 更多 >