Google app engine URL中区域设置的webapp2路由

Google app engine URL中区域设置的webapp2路由,google-app-engine,internationalization,locale,webapp2,Google App Engine,Internationalization,Locale,Webapp2,webapp2 i18n文档中有一个在参数中指定区域设置的示例,例如: www.example.com?locale=en_US 但谷歌搜索控制台说这是一个错误 我想改为将区域设置放在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 Route(r'/pag

webapp2 i18n文档中有一个在参数中指定区域设置的示例,例如:

www.example.com?locale=en_US
但谷歌搜索控制台说这是一个错误

我想改为将区域设置放在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
Route(r'/page', views.PageHandler),
Route(r'/<locale:\w\w>/page', views.PageHandler),

设置webapp2路由并将区域设置作为参数传递给处理程序的好方法是什么?

如果您想尝试我的方法:设置正则表达式(
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 %}

我最终使用了Dj Dac答案的变体。我将每条路线替换为如下两条路线:

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
Route(r'/page', views.PageHandler),
Route(r'/<locale:\w\w>/page', views.PageHandler),
Route(r'/page',views.PageHandler),
路由(r'//page',views.PageHandler),

不带区域设置的路由提供默认值,也用于x-default hreflang标记。

FWIW-该链接中的“不推荐”可能是错误的-它位于
Pros
列上(也缺少解释)。如果我不喜欢这个想法,我可能会忽略它。@DanCornilescu,我在其他地方也看到过同样的建议,所以我不认为这是一个错误。无论如何,我都很想这么做,因为这是一个非常简单的解决方案,但另一方面,如果我需要……是的,我知道你的意思。一个解释会很痛苦帮助做出决定。在另一个地方有吗?@DanCornilescu,是的,尽管我不完全理解。这涉及到谷歌索引,能够理解你有一个多语言网站,并且能够通过分析工具跟踪网站不同语言版本的流量。鉴于谷歌搜索结果的重要性s、 我想遵循他们的最佳实践!啊,我现在明白了。是的,这可能很重要。