Пустой каталог при интернационализации кода JavaScript

Я пытаюсь настроить Интернационализацию кода JavaScript в моем приложении Django.

В моем приложении Django есть locale подкаталог с правильно сгенерированным djangojs.po файл. Определение пакета следующее:

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

./manage.py makemessages работал хорошо как .po Файл содержит все строки для перевода, но ни одна строка JavaScript никогда не переводится на веб-сайте, а каталог всегда пуст.

2 ответа

У меня также были некоторые проблемы с. Вот как это работает для меня:

Добавьте это к вашему корневому каталогу 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: В оболочке / терминале запустите из корня проекта (где лежат "приложения", "настройки" и т. Д.):

#for "normal django files" (.py, .html):
django-admin.py makemessages --locale=de
#for javascript files. source: http://stackru.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

Я добавил my_project к УСТАНОВЛЕННЫМ ПРИЛОЖЕНИЯМ в settings.py, и это, похоже, помогло

Другие вопросы по тегам