我开发了一个AppEngine / Python / Django应用程序,目前使用西班牙语,我正在使用多语言支持进行国际化。它基本上是一个约会网站,人们可以在其中浏览其他个人资料并发送消息。查看不同语言的配置文件将导致某些文本(菜单等)以选择的任何语言显示,但用户生成的内容(即用户配置文件或消息)将以其编写的原始语言显示
我的问题是:是否有必要(或一个好主意)为不同语言显示的同一页面使用唯一的URL,或者可以为不同语言显示的给定页面重载相同的URL。特别是,我担心如果我对多种语言使用相同的URL,那么某些页面可能会被缓存(由Google或我可能不知道的其他代理),这可能导致语言不正确显示给用户。
有谁知道这是合法的问题,还是我担心不会发生的事情?
答案 0 :(得分:4)
原则上,您可以使用Content-Language和Vary响应标头以及Accept-Language请求标头来控制缓存的行为方式,并防止它们向用户提供错误的语言。< / p>
但实际上,在浏览器中,Accept-Language经常被错误地设置,这就是大多数网站不依赖它,或者至少提供辅助机制的原因。关于Vary标题,缓存可能同样不可靠,但我不确定。拥有特定于语言的URL肯定是一种实用的方法,并且避免了缓存的任何潜在问题。
答案 1 :(得分:3)
我不知道django是如何工作的,但从一般的网络开发角度来看,你可以:
使用查询参数来确定语言(例如/foo/bar/page.py?lang=en
)
将语言代码添加到url路径(例如/foo/bar/en/page.py
),并可选择使用mod_rewrite,以便路径的该部分作为查询参数传递给您的脚本。