Django: 无法更改默认语言
我已经用en-gb
这个语言代码开发了一段时间。现在离发布的日期越来越近,我打算把默认语言切换到en-us
,但是无论我怎么做,初始的request.LANGUAGE_CODE
总是设置为en-gb
,即使是未注册的用户也是如此。
顺便说一下,我其实想保持时区在伦敦,只是把默认语言改成美式英语。现在我把两者都改了,只是为了让它能工作,但还是没有成功。
#TIME_ZONE = 'Europe/London'
TIME_ZONE = 'US/Eastern'
LANGUAGE_CODE = 'en-us'
#LANGUAGE_CODE = 'en-gb'
ugettext = lambda s: s
LANGUAGES = (
('en', ugettext('American English')),
('en-gb', ugettext('British English'))
)
USE_I18N = True
USE_L10N = True
USE_TZ = True
我可能遗漏了什么呢?谢谢!
4 个回答
1
我之前遇到了一些问题,后来发现我的settings.py文件里缺少了一个中间件...就是这个 -> 'django.middleware.locale.LocaleMiddleware',
2
你可以看看Django是如何发现语言偏好的。
在你的情况中,我猜测你启用了LocaleMiddleware
,它会从浏览器每次发送的请求中获取Accept-Language
这个头信息来判断你的语言。你可以在浏览器的设置中更改这个头信息,不过很多用户并不知道这一点,通常就保持系统默认的设置。例如,在Firefox浏览器中,你可以在设置里找到“内容”,然后在“语言”下选择更改。
13
LANGUAGE_CODE
只是当 Django 找不到应该使用什么语言时的默认设置。你可能已经在你的会话或 cookie 中有 en-gb
,而 Django 会根据这些信息来判断。
可以看看 Django 如何发现语言偏好,了解 Django 是如何确定请求语言的步骤。