2

我目前正在为我的项目使用 django 1.3。我正在对项目进行本地化。我能够本地化 python 代码和模板,但我在 javascript 本地化方面遇到了问题。我收到 TemplateSyntaxError 消息,说“渲染时捕获 NoReverseMatch:''django.views.i18n.javascript_catalog'' 的反向参数'()'和关键字参数'{}'未找到。” 我将部分 url.py 和模板 home.html 代码放在下面。我使用 python manage.py shell 检查了 django.views.i18n.javascript_catalog,这很好。

你能告诉我我做错了什么吗?

模板中的 url 函数不应该导致 http:///jsi18n/ 吗?

谢谢!

=== urls.py ===

js_info_dict = {
    'domain': 'djangojs',
    'packages': ('messages',),
}

urlpatterns = patterns('',

    url(r'^$', 'messages.views.home', name='home'),
    url(r'^messages/$', include('messages.urls')),

    # Localization
    url(r'^i18n/', include('django.conf.urls.i18n')),
    url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
)

=== 结束 ===

=== home.html ===

<body>
    <script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' %}"></script>
</body>

=== 结束 ===

4

2 回答 2

7

我终于找到了这个错误的原因。该错误与本地化无关。如果你改变

<script... {% url 'django.views.i18n.javascript_catalog' %}"></script>

<script... {% url django.views.i18n.javascript_catalog %}"></script>

错误消失了。

请注意,在 中urls.py,它是

url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),

简而言之,在 html 模板文件中,没有引号,django.views.i18n.javascript_catalogurls.py文件,在django.views.i18n.javascript_catalog. 在此之后,我能够让 javascript 翻译工作。

于 2012-11-12T22:04:41.017 回答
0

有同样的错误,但发现我有这个:

url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog',js_info_dict),
url(r'^i18n/', include('django.conf.urls.i18n')),

而不是这个:

url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
于 2015-10-11T15:49:35.913 回答