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