我有以下模板:Django的国际化问题
{% load i18n %}
{% trans "Welcome to my site!" %}
我用的RequestContext,呼吁makemessages,编辑.po文件和编译的消息,但一切都没有翻译,我只看到了同样的消息,即使我加载页面。从.po文件
msgid "Welcome to my site!"
msgstr "blahblah"
我有以下模板:Django的国际化问题
{% load i18n %}
{% trans "Welcome to my site!" %}
我用的RequestContext,呼吁makemessages,编辑.po文件和编译的消息,但一切都没有翻译,我只看到了同样的消息,即使我加载页面。从.po文件
msgid "Welcome to my site!"
msgstr "blahblah"
提取要获得翻译模板显示:
你settings.py
应具备以下条件:
USE_I18N = True
USE_L10N = True # optional, but recommended
LANGUAGE_CODE = 'en-us' # Or whatever language you want as default
你应该有'django.core.context_processors.i18n'
在TEMPLATE_CONTEXT_PROCESSORS
你应该添加'django.middleware.locale.LocaleMiddleware'
您MIDDLEWARE_CLASSES
(后'django.contrib.sessions.middleware.SessionMiddleware'
)
确保你的模板有{% load i18n %}
顶部附近的某个地方。
一旦你翻译和编译了消息,要真正得到翻译显示,你需要告诉django你需要哪种语言。要做到这一点,请执行以下操作之一:
django_language
在会话中键入所需的语言代码。django_language
的cookie设置为所需的语言。如果毕竟以上,你没有得到任何翻译显示 - 然后django无法找到你的消息文件。
是的,问题是中间件类的顺序。 – aemdy
也许你有多种语言定义 – szaman
是的,我有两个,我已经为他们俩调用了makemessages。 – aemdy