[英]Django Translation Don't Work
Try to translate block this block and load i18n: 尝试翻译此块并加载i18n:
{% load i18n %}
<p>{% trans "Welcome to our page" %}</p>
{% language 'ru' %}
<p>{% trans "Welcome to our page" %}</p>
{% endlanguage %}
settings.py settings.py
SE_I18N = True
USE_L10N = True
LANGUAGES = (
('en', _('English')),
('ru', _('Russian')),
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
TEMPLATES = [ {
'context_processors': [
'django.template.context_processors.i18n',
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
.po .po
msgid "Welcome to our page"
msgstr "Приветствую вас!"
#: project/settings.py:172
msgid "English"
msgstr "Английский"
#: project/settings.py:173
msgid "Russian"
msgstr "Русский"
mo. 莫。
Report-Msgid-Bugs-To:
POT-Creation-Date: 2016-10-10 19:24+0000
PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE
Last-Translator: FULL NAME <EMAIL@ADDRESS>
Language-Team: LANGUAGE <LL@li.org>
Language:
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Английский Русский Приветствую вас!
urls.py urls.py
import os
from django.conf.urls import url, include
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
url(r'^', include('account_management.urls')),
url(r'^admin/', admin.site.urls),
url(r'^i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += staticfiles_urlpatterns()
But result is: 但是结果是:
Welcome to our page Welcome to our page 欢迎来到我们的页面欢迎来到我们的页面
I used this doc https://docs.djangoproject.com/en/1.10/topics/i18n/translation/ 我使用了这个文档https://docs.djangoproject.com/en/1.10/topics/i18n/translation/
Maybe I forgot something? 也许我忘记了什么?
So what is going on, is that you have just ordinary urls, when you needed i18n_patterns
, 所以发生的事情是,当您需要i18n_patterns
时,您只有普通的url,
So, change your urls to 因此,将您的网址更改为
import os
from django.conf.urls import url, include
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += i18n_patterns(
url(r'^', include('account_management.urls')), # put here urls that you need to translate
)
urlpatterns += staticfiles_urlpatterns()
The docs can be found here i18n_patterns
可以在这里找到文档i18n_patterns
You need to use {% get_current_language as LANGUAGE_CODE %}
tag which updates the LANGUAGE_CODE
setting. 您需要使用{% get_current_language as LANGUAGE_CODE %}
标记来更新LANGUAGE_CODE
设置。 See how-django-discovers-language-preference . 参见how-django-discovers-language-preference 。
{% load i18n %}
<p>{% trans "Welcome to our page" %}</p>
{% language 'ru' %}
{% get_current_language as LANGUAGE_CODE %}
<p>{% trans "Welcome to our page" %}</p>
{% endlanguage %}
Hope this helps. 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.