Я создаю новый небольшой проект, чтобы попробовать 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 sizes/LC_MESSAGES/django.< sizespo
#: bday/views.py:16
msgid "Welcome!"
msgstr "Welkon in Nederlands"
/var/www/test/locale/<▪ru sizes/LC_MESSAGES/django.<▪po
#: 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!]