Django国际化i18n的JavaScript目录视图

3 投票
1 回答
3442 浏览
提问于 2025-04-17 22:49

我正在尝试让javascript_catalog在国际化(i18n)中正常工作,但一直没有成功。

我按照官方指南这里的步骤操作。

在运行时,我遇到了以下问题:

./manage.py makemessages -d djangojs -l fr_CA --settings=settings.local

"CommandError: errors happened while running msguniq".
msguniq: error while opening "/webapps/.../djangojs.pot" for reading: No such file or directory

在我的项目的urls.py文件中有这个内容。

js_info_dict = {
    'packages': ('project_name',),
}

urlpatterns += patterns('',
   (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
)

我在我的基础模板中添加了这个。

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

我的INSTALLED_APPS里也有project_name。

我尝试过从包的层级和单独应用的层级来操作,创建locale目录并把应用放在'packages'里等等。但普通的makemessages可以正常工作,只有djangojs域的js目录不行。

请帮帮我。

1 个回答

5

好的,我原以为包含'script'标签的html文件也会被JavaScript目录处理。其实,从我观察到的情况来看,只有.js文件会被扫描。当我把

gettext('Text to translate');

放在一个.js文件里时,它就能正常工作了。上面的错误信息说明没有内容可以翻译。

撰写回答