1

我正在建立一个新的小项目来尝试在 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!]
4

1 回答 1

1

你设置了LOCALE_PATHSsettings.py

这仅适用于您在项目目录中有翻译的情况。

于 2013-01-15T18:00:25.003 回答