6

我已经在en-gb语言代码方面开发了一段时间。现在接近发布日期,我打算将默认语言切换为en-us,但无论我做什么,初始request.LANGUAGE_CODE设置都设置为en-gb即使对于未注册的用户也是如此。

仅供参考,我实际上想将 time_zone 保留为伦敦,只需将默认语言更改为美式英语。现在我已经改变了两者只是为了让它工作,但仍然没有快乐。

#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

3 回答 3

9

LANGUAGE_CODE仅当 Django 找不到要使用的语言时才默认。您的会话中可能已经有en-gbDjango 获取的 cookie。

阅读Django 如何发现语言首选项,以获取有关 Django 确定请求语言所采取的步骤的更多信息。

于 2013-01-28T13:07:53.227 回答
1

看看Django 如何发现语言偏好

在您的情况下,我敢打赌您已经LocaleMiddleware启用,它会从Accept-Language您的浏览器随每个请求发送的标头中获取您的语言。您可以在浏览器的首选项中更改该标题,尽管许多用户不知道这一点,并保持在他们系统上的默认值。例如,在 Firefox 中,您可以在“首选项”、“内容”、“选择”(在“语言”下)进行更改。

于 2015-12-31T13:54:46.997 回答
0

有一段时间有这个问题...我后来发现我的 settings.py 文件中缺少一个中间件...那就是->'django.middleware.locale.LocaleMiddleware',

Django 如何发现语言偏好

中间件的放置位置

于 2021-05-24T21:40:45.837 回答