webapp2 i18n文档中有一个在参数中指定语言环境的示例,例如:
www.example.com?locale=en_US
但谷歌搜索控制台表示这是not recommended。
我想将语言环境放在URL中,如下所示:
www.example.com
www.example.com/about
www.example.com/contact
www.example.com/fr
www.example.com/fr/about
www.example.com/fr/contact
设置webapp2路由并将区域设置作为参数传递给处理程序有什么好方法?
答案 0 :(得分:1)
如果您想尝试我的方式:设置一个正则表达式(app = webapp2.WSGIApplication([('/([^/]+)/?([^/]*)', RegionSearch)], config=settings.w2config, debug=settings.DEBUG)
,然后将参数“传递”到模板,您可以在该模板中为许多不同的区域设置,时区和货币任意设置位置,例如
{% if request.... == "..." %} # depend on values in the request
{% set currency = "SEK" %}
{% set format = "sv_SE" %}
{% set timezoneinfo = 'Europe/Stockholm' %}
{% set locale = "se" %}
{% endif %}
答案 1 :(得分:1)
我最终使用了Dj Dac答案的变体。我用两条路线替换每条路线:
Route(r'/page', views.PageHandler),
Route(r'/<locale:\w\w>/page', views.PageHandler),
没有语言环境的路由提供默认值,也用于x-default hreflang标记。