【问题标题】:Multi-language website - unique URLs required for different languages (to prevent caching)?多语言网站 - 不同语言所需的唯一 URL(以防止缓存)?
【发布时间】:2023-03-09 07:15:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: python django google-app-engine caching internationalization


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我不知道这如何与 django 一起工作,但从一般 Web 开发的角​​度来看,您可以:

      • 使用查询参数来确定语言(例如/foo/bar/page.py?lang=en

      • 将语言代码添加到 url 路径(例如 /foo/bar/en/page.py),并可选择使用 mod_rewrite,以便将路径的一部分作为查询参数传递给您的脚本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-21
        • 2012-05-02
        • 1970-01-01
        • 2016-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多