2012-11-08 135 views
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,這很好。django javascript本地化問題

你能告訴我我做錯了什麼嗎?

不應該在模板中的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> 

===結束===

回答

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_catalog而沒有引號的urls.py文件,引號django.views.i18n.javascript_catalog。 在此之後,我能夠獲得JavaScript翻譯工作。

+2

這取決於你是否已經寫了'{%負載來自未來%}的網址位於您模板的頂部。我建議包括該片段並引用所有視圖路徑。請參閱['url'標籤](https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#url)文檔下的「前向兼容性」邊欄。 –

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),