Skip to main content
 首页 » 编程设计

python之多语言网站之不同语言需要唯一的 URL(以防止缓存)

2025年05月04日17sharpest

我开发了一个 AppEngine/Python/Django 应用程序,目前使用西类牙语,我正在通过多语言支持实现国际化。它基本上是一个约会网站,人们可以在其中浏览其他个人资料并发送消息。查看不同语言的个人资料将导致某些文本(菜单等)以所选语言显示,但用户生成的内容(即用户个人资料或消息)将以编写它的原始语言显示.

我的问题是:是否有必要(或一个好主意)为以不同语言显示的同一页面使用唯一的 URL,或者是否可以为以不同语言显示的给定页面重载相同的 URL。特别是,我担心如果我对多种语言使用相同的 URL,那么某些页面可能会被缓存(由 Google 或我可能不知道的其他代理),这可能会导致不正确的语言被缓存显示给用户。

有谁知道这是否是一个合理的担忧,或者我是否在担心不会发生的事情?

请您参考如下方法:

原则上可以使用Content-Language和 Vary响应 header 和 Accept-Language请求 header 以控制缓存的行为方式并防止它们向用户提供错误的语言。

然而,在实践中,Accept-Language 在浏览器中经常设置不正确,这就是为什么大多数网站不依赖它,或者至少不提供辅助机制的原因。缓存在尊重 Vary header 方面可能同样不可靠,但我不确定。使用特定于语言的 URL 无疑是一种实用的方法,并且可以避免任何潜在的缓存问题。