我正在开发一个多语言的 Django 网站。它有两种语言,英语和希伯来语。我希望每个首次访问者的默认语言都是希伯来语,无论他的浏览器Accept-Language
是什么。
当然,如果他将语言更改为英语(从而获得语言 cookie 或会话中的密钥),它应该保持为英语。
我想我可以自己编程这个算法,但是我在哪里“插入”呢?如何让我的项目使用它?
我正在开发一个多语言的 Django 网站。它有两种语言,英语和希伯来语。我希望每个首次访问者的默认语言都是希伯来语,无论他的浏览器Accept-Language
是什么。
当然,如果他将语言更改为英语(从而获得语言 cookie 或会话中的密钥),它应该保持为英语。
我想我可以自己编程这个算法,但是我在哪里“插入”呢?如何让我的项目使用它?
从阅读以下内容开始:http: //docs.djangoproject.com/en/1.1/topics/i18n/#topics-i18n
每个 RequestContext 都可以访问三个特定于翻译的变量:
LANGUAGES 是一个元组列表,其中第一个元素是语言代码,第二个元素是语言名称(翻译成当前活动的语言环境)。
LANGUAGE_CODE 是当前用户的首选语言,为字符串。示例:en-us。(请参阅 Django 如何发现语言偏好。)
LANGUAGE_BIDI 是当前语言环境的方向。如果为 True,则为从右到左的语言,例如:希伯来语、阿拉伯语。如果为 False,则为从左到右的语言,例如:英语、法语、德语等。
如果您不使用 RequestContext 扩展,则可以使用三个标签获取这些值:
这是你要问的吗?
也许你不必覆盖任何东西。如果用户已经有一个语言 cookie,您可以只检查第一页(或者可能是每一页),否则将他重定向到 set_language 重定向视图。这样,您可以将语言强制为希伯来语。
如果用户决定改回英语,他可以很容易地做到这一点。