【发布时间】:2014-04-07 18:25:13
【问题描述】:
我正在开发一个 python GAE(使用 jijna2)项目。这个想法是让模板根据我的请求国际化值继承自己。
例如我有一个模板目录树:
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 模块? mikeshilkov.wordpress.com/2012/07/26/…
标签: python google-app-engine templates jinja2