Перевод Django возвращает те же строки

Я создаю новый небольшой проект, чтобы попробовать i18n в Django 1.4.3 (английский и голландский). Но я думаю, что мне не хватает шага, потому что он не переводит строки.

Кто подскажет, что мне нужно сделать, чтобы получить переведенные строки? Как я могу отлаживать?

settings.py:

gettext = lambda s: s
LANGUAGES = (
  ('nl', gettext('Dutch')),
  ('en', gettext('English')),
)

LOCALE_PATH= (
  '/var/www/test/locale',
)
# django.middleware.locale.LocaleMiddleware is also included @ MIDDLEWARE_CLASSES

Файл urls.py:

urlpatterns = i18n_patterns('',
    #home
    url(r'^$','bday.views.home',name="index"),
)

views.py в проекте:

from django.utils.translation import ugettext as _
def home(request):
  text=_("Welcome!")
  return HttpResponse("LANG[{}], TEXT[{}]".format( request.LANGUAGE_CODE, text ) ) 

/var/www/test/locale/< sizesnl

#: bday/views.py:16
msgid "Welcome!"
msgstr "Welkon in Nederlands"

/var/www/test/locale/<▪ru

#: bday/views.py:16
msgid "Welcome!"
msgstr "Welcome in English"

Сообщения компилируются, я получаю:

./manage.py compilemessages
processing file django.po in /var/www/test/locale/nl/LC_MESSAGES
processing file django.po in /var/www/test/locale/en/LC_MESSAGES

Но в моем приложении я получаю:

$ curl "http://www.host.com:8000/nl/" 
LANG[nl], TEXT[Welcome!]
$ curl "http://www.host.com:8000/en/" 
LANG[en], TEXT[Welcome!]

person Karlo    schedule 15.01.2013    source источник
comment
Вам нужно установить текущий язык с помощью django.utils.translation.activate   -  person Rickard Zachrisson    schedule 15.01.2013
comment
Спасибо за ответ. Я думаю, что это делается автоматически с помощью urlconf. Добавление его в код (сразу после импорта) ничего не меняет.   -  person Karlo    schedule 15.01.2013
comment
$ mv locale {, old} / $ mkdir locale $ ./manage.py makemessages -l en $ vim locale / en / LC_MESSAGES / django.po $ ./manage.py compilemessages Без изменений   -  person Karlo    schedule 15.01.2013


Ответы (1)


Вы установили LOCALE_PATHS в settings.py?

Это применимо только в том случае, если у вас есть переводы в каталоге проекта.

person bmihelac    schedule 15.01.2013
comment
Спасибо. Я установил LOCALE_PATH вместо LOCALE_PATHS. Глупая опечатка. Спасибо за помощь. - person Karlo; 16.01.2013