简体   繁体   English

Django翻译不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM