python - 如何确定国际化参数的优先级

标签 python django google-app-engine internationalization nlp

假设这些都有不同的值:

  • HTTP 浏览器接受语言 header 参数

  • HTTP GET 人类语言参数,例如。 hl=en 或 hl=fr

  • 语言选择的 Cookie 值

如果根据这些值来决定,我们应该如何决定以哪种语言显示页面?还可以考虑将用户的首选语言保存到数据层,作为让代理和用户决定语言的第四种方式。 预先感谢您的回答和评论

最佳答案

如果您在某处保存了首选项,那么那将是首选。

cookie 值大概是他们上次在附近时选择的值,因此这将是首先要检查的内容。

hl 参数是 Google 发现的,他们可能知道自己在做什么,所以这似乎是一个明智的第三选择。

然后我们有了 HTTP header 或最终的默认 header ,因此接下来检查接受语言 header 。最后,准备好默认语言以防万一一切都失败了。

所以,按顺序:

  1. 保存的偏好。
  2. Cookie。
  3. hl 参数。
  4. HTTP 接受语言 header 。
  5. 默认内置。

理想情况下,一旦您从某个地方获得一种语言,您就会回溯列表,这样您在下一个请求时就可以减少工作量。例如,如果您最终从 accept language header 获取语言,您需要:设置 hl(可能重定向),将其存储在 cookie 中,并将首选项保存在他们的用户设置中(如果你有这样的永久商店和亲自签名)。

关于python - 如何确定国际化参数的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006839/

相关文章:

python - NDB 查询返回零结果。数据存储显示结果

python - Django - 无效的过滤漂白剂

python - 如何在 DRF 中对密码进行哈希处理?

django - 从 DetailView 获取 pk 以进行 lte/gte 比较 (Django)

java - 将 Google App Engine 项目迁移到更新版本(使用 Eclipse)

在 Google App Engine 标准上运行 Spring Boot 应用程序时出现 javax.el.E​​xpressionFactory 错误

python - 在python中将查询结果转换为DataFrame

python - Python 中的子进程超时

用于桌面数据库应用程序的 Python 框架

python - Django mod_wsgi : Exception occurred processing wsgi script