对于某些链接,亚马逊会根据其网站的顶级域名以本地语言显示URL。 http://www.amazon.de/bücher-buch-literatur/ (de:books => bücher) http://www.amazon.fr/Nouveautés-paraître-Livres/(fr:books => Livres)
http://www.amazon.co.jp/和書-ユーズドブッ-英語学習/ (jp:书籍 => 和书)
(链接不完整,仅为示例。)
在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>。