Пустой каталог при интернационализации кода JavaScript - PullRequest
9 голосов
/ 28 июля 2010

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

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

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

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

Ответы [ 2 ]

5 голосов
/ 10 июля 2012

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

Добавьте это в свой корневой каталог 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://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
3 голосов
/ 29 июля 2010

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

...