我有一个django应用程序,其默认语言设置为法语。 代码和html页面中的所有翻译字符串都是法文的。在不同的语言之间切换正常。 但现在我需要隐藏法语,所以我将LANGUAGE_CODE更改为'en-us',但默认页面始终以法语显示,我错过了什么吗?Django默认语言
感谢
我有一个django应用程序,其默认语言设置为法语。 代码和html页面中的所有翻译字符串都是法文的。在不同的语言之间切换正常。 但现在我需要隐藏法语,所以我将LANGUAGE_CODE更改为'en-us',但默认页面始终以法语显示,我错过了什么吗?Django默认语言
感谢
我遇到了一些麻烦,这也一度......这是因为大多数现代网络浏览器在发送请求的区域设置,和Django的自动使用的语言,而不是它是否能。
不幸的是我不记得我做了什么来解决这个问题,但是我希望它能给你一些指导去寻找或搜索。
谢谢,这是问题,通过改变浏览器语言的语言解决 – ark42
在您的settings.py文件中,您有一个LANGUAGES
元组。
LANGUAGES = (
('en', gettext('English')),
('sv', gettext('Swedish')),
('no', gettext('Norwegian')),
)
如果您使用Django Multilingual,您还可以设置DEFAULT_LANGUAGE
设置:
DEFAULT_LANGUAGE = 1 # the first one in the list
我刚刚遇到这个问题,这里是我怎么能设法解决它在不改变任何浏览器的语言环境的语言:
的想法是创建一个中间件基础上,LANGUAGE_CODE设置强制语言翻译,这里的中间件如何可能看起来像:
from django.conf import settings
from django.utils import translation
class ForceLangMiddleware:
def process_request(self, request):
request.LANG = getattr(settings, 'LANGUAGE_CODE', settings.LANGUAGE_CODE)
translation.activate(request.LANG)
request.LANGUAGE_CODE = request.LANG
保存此片段在你的主应用程序middleware.py(我假定这就是所谓的主),然后添加main.middleware.ForceLangMiddleware到您的MIDDLEWARE_CLASSES
,我发现这个https://gist.github.com/vstoykov/1366794。它强制I18N机器选择settings.LANGUAGE_CODE作为默认的初始语言。
试图改变自己的浏览器本地语言,可能是它帮助 – Ahsan