如何在 Django 中根据域名或 TLD 设置 urlpatterns?
对于某些链接,亚马逊会根据其网站 tld 以母语显示 url。
http://www.amazon.de/bücher-buch-literatur/(de :书籍=> bücher)
http://www.amazon.fr/Nouveautés-paraître-Livres/(fr :书籍=> Livres)
http://www.amazon.co.jp/和书-ユーズドブッ-英语学习/ ( jp : books => 和书 )
(链接不完整,仅显示为示例。)
是否可以在 urls.py 中获取主机名?(请求对象在 urls.py 中不可用)或者可能在中间件的 process_request 中并在 urls.py 中使用它(如何???)
任何替代建议如何实现这一目标?
#---------- pseudocode ----------
website_tld = get_host(request).split(".")[-1]
#.fr French : Books : Livres
#.de German : Books : Bücher
if website_tld == "fr":
lang_word = "Livres"
elif website_tld == "de":
lang_word = "Bücher"
else:
lang_word = "books"
urlpatterns = patterns('',
url(r'^%s/$' % lang_word,books_view, name="books"),
)
url 模式需要在模板中基于 tld 和更高版本构建,<a href="{% url books %}" >{% trans "books" %}</a>
以将 html 呈现为<a href="Bücher">Bücher</a>
或<a href="Livres">Livres</a>