10

我正在尝试在我的 Django 应用程序中设置 JavaScript 代码的国际化

我的 Django 应用程序有一个locale子目录,其中包含正确生成的djangojs.po文件。包定义如下:

# urls.py
js_info_dict = {
    'packages': ('my_project',),
} 

./manage.py makemessages运行良好,因为该.po文件包含所有要翻译的字符串,但网站上从未翻译过任何 JavaScript 字符串,并且目录始终为空。

4

2 回答 2

5

我也遇到了一些问题。这对我来说是这样的:

将此添加到您的根 urls.py:

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


urlpatterns = patterns('',                   

    #enable using translation strings in javascript
    #source: https://docs.djangoproject.com/en/dev/topics/i18n/translation/#module-django.views.i18n
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),

)

在 JS 文件中使用:

var somevar = gettext('Text to translate');

编译 django 翻译文件: 在从项目根目录运行的 shell/终端中(“应用程序”、“设置”等位于何处):

#for "normal django files" (.py, .html):
django-admin.py makemessages --locale=de
#for javascript files. source: http://stackoverflow.com/a/3571954/268125
django-admin.py makemessages -a -d djangojs --locale=de
#to compile the translation files to machine code
django-admin.py compilemessages --locale=de
于 2012-07-10T12:14:32.417 回答
3

i added my_project to INSTALLED APPS in settings.py and that seemed to do the trick

于 2010-07-28T20:09:59.093 回答