我正在建立一个新的小项目来尝试在 Django 1.4.3(英语和荷兰语)中使用 i18n。但我认为我错过了一步,因为它没有翻译字符串。
谁能告诉我我需要做什么才能获得翻译后的字符串?我该如何调试?
设置.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/ nl /LC_MESSAGES/django. 宝
#: bday/views.py:16
msgid "Welcome!"
msgstr "Welkon in Nederlands"
/var/www/test/locale/ en /LC_MESSAGES/django. 宝
#: 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!]