2010-07-27 2 views
9

Я пытаюсь настроить Internationalization of JavaScript code in my Django application.Пустой каталог при интернационализации кода JavaScript

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

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

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

ответ

3

я добавил my_project к APPS в УСТАНАВЛИВАЕМЫЙ settings.py и что, казалось, сделать трюк

+0

у меня уже есть «my_project» в APPS my_project УСТАНАВЛИВАЕМОГО в в settings.py и все еще каталог пуст. Возможно, у вас есть идея, что еще нужно сделать? – urig

+0

Я выяснил, что пошло не так для меня. Я поместил свои файлы po в /conf/locale, когда он должен был быть /locale. – urig

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'); 

Для компиляции файлов Джанго перевода: В оболочке/терминал запуска от корня проекта (где «приложения», «настройки», и т.д.) лежат:

#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 
+0

Мне все равно пришлось добавить свой проект в INSTALLED_APPS. (что мне не нравится) – bjunix

+0

Это все еще не работает для меня. И кажется, что djangojs является доменом по умолчанию. Не нужно писать это явно. – azmeuk