在Django中本地化JavaScript内容时出错
我遇到了以下错误:
ReferenceError: 找不到变量: gettext
我在我的 urls.py
文件中添加了以下内容:
js_info_dict = { 'domain': 'djangojs', 'packages': ('my_project_name',), }
urlpatterns += patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
我把这个字符串标记为需要本地化:
var lingualText = gettext("Are you sure you want to delete the photo?");
var statusConfirm = confirm(lingualText);
我在我的模板中添加了以下行:
<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
为了生成包含在 JavaScript 文件中的文本的语言文件,我使用了以下命令:
python /usr/bin/django-admin.py makemessages -d djangojs -l de
我成功生成了所需语言的 djangojs.po
文件,并且也得到了所有在 JS 文件中标记的字符串。当我在 Firebug
中查看输出时,我看到了上面的错误,也就是:
ReferenceError: 找不到变量: gettext
有没有人能告诉我哪里出错了?我是不是在 jsi18n
的路径上有问题?
提前谢谢大家。
1 个回答
0
getext()
是由 {% url django.views.i18n.javascript_catalog %}
这个脚本提供的,所以在你自己的代码之前,一定要确保它被包含进来,比如:
<html>
<head>
<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
<!-- gettext() is now available -->
<script src="{{ STATIC_URL }}my_script_using_gettext.js"></script>
...