首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在django中转换语言--函数的模型翻译

如何在django中转换语言--函数的模型翻译
EN

Stack Overflow用户
提问于 2017-06-30 10:39:37
回答 2查看 2.3K关注 0票数 0

我正在使用django-modeltranslation翻译我的模型中的一些字段。这个包工作得很好,所有的东西都被翻译了。

但是没有简单的手动切换语言的方法。

从阅读访问翻译和翻译字段

由于使用模型翻译应用程序的全部目的是翻译动态内容,所以在访问这些内容时,标记为翻译的字段是特殊的。翻译后的字段返回的值取决于当前语言设置。“语言设置”指的是Django set_language视图和相应的get_lang函数。

使用文档中描述的set_language()不起作用。Got:

代码语言:javascript
复制
AttributeError: 'str' object has no attribute 'POST'

这可能是因为我运行的set_language()没有出现在视图中。

问题:如何在基本函数中转换django-modeltranslation语言?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-30 10:39:37

有一个名为activate()django.utils.translation方法,它非常简单:

代码语言:javascript
复制
>>> from django.utils.translation import activate
>>> activate('en')
>>> Model.objects.first()  # will fetch english version
>>> activate('fr')
>>> Model.objects.first()  # will fetch french version

这将在视图和普通函数中工作。

如果您只想为了一次获取并返回到当前语言而更改语言,则可以从django.utils.translation中使用django.utils.translation

代码语言:javascript
复制
>>> from django.utils.translation import get_language, activate
>>> current_language = get_language()
>>> activate('fr')
>>> Model.object.first()
>>> activate(current_language)
票数 2
EN

Stack Overflow用户

发布于 2020-12-03 18:07:24

也许为时已晚,但您可以在Settings文件中添加中间件

中间件+=‘django.medileware.locale.Locale中间件’,

在request header Key =Accept-Language Value= en中,现在Django将切换基于请求头的语言。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44844503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档