我正在研究python GAE(帶有jijna2)項目。這個想法是讓模板根據我的請求國際化值繼承自己。
比如我有一個模板目錄樹:基於語言的Jinja2模板繼承
templates
---- base.html
---- site_nav.html
---- CA
-------- site_nav.html
-------- fr
------------ site_nav.html
現在,當加拿大/法國用戶請求一個模板,我想Jijna2尋找它在templates/CA/fr
目錄,如果沒有找到看在templates/CA
如果沒有在templates
然後最終提出TemplateDoesNotExist
。像templates/CA/fr/site_nav.html
更深的模板將只有:
{% extends site_nav.html %} # to extend the templates/CA/site_nav.html
{% block logged_in %}
Canadian French content
{% endblock logged_in %}
由於templates/CA/site_nav.html
是不存在的,我們從templates/site_nav.html
包含延長:
{% block logged_in %}
American content
{% endblock logged_in %}
我想從任何地方包括它利用{% include 'site_nav.html' %}
並有適當的(更深)的模板,如果我的國籍需要它。
這只是我在這一刻起牀的解決方案。我知道這可能是不可能的,尤其是{% extends site_nav.html %}
,它不應該試圖擴展自己,但最終是父母。
這只是一個例子,我希望有一個很好的Pythonic這樣做的方式。
爲什麼不使用i18n模塊? http://mikeshilkov.wordpress.com/2012/07/26/enable-jinja2-and-i18n-translations-on-google-appengine/ –