Django语言国际化-我无法进行翻译

时间:2018-10-04 19:40:39

标签: django internationalization

我试图根据用户选择来弄清楚如何获得不同的语言以显示在Django中。我不知道自己缺少什么,所以我想知道是否有人可以解释我哪里出了问题。

这是我的 urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^i18n/', include('django.conf.urls.i18n')),
]

urlpatterns += i18n_patterns(
    url(r'^', TemplateView.as_view(template_name="lang_test/index.html"))
)

settings.py 中,我添加了:

MIDDLEWARE = [
    ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
]
from django.utils.translation import ugettext_lazy as _
LANGUAGES = (
    ('en', _('English')),
    ('fr', _('French')),
    ('el', _('Greek')),
)
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
USE_I18N = True

USE_L10N = True

USE_TZ = True

我跑了

manage.py makemessages -fr
manage.py makemessages -el

并添加了我已经运行的消息

manage.py compilemessages

然后我得到了这个简单的模板,由于已经设置了语言,我希望看到显示的3种不同语言。

{% load i18n %}

<html>
    <head>

    </head>
    <body>
        {{ LANGUAGE_CODE|language_name }}
        <h1>{% trans "Welcome to my website" %}</h1>

        {% with 'fr' as LANGUAGE_CODE %}
            {{ LANGUAGE_CODE|language_name }}
            <!-- Current language: {{ LANGUAGE_CODE }} -->
            <h1>{% trans "Welcome to my website" %}</h1>
        {% endwith %}

        {% with 'el' as LANGUAGE_CODE %}
            {{ LANGUAGE_CODE|language_name }}
            <!-- Current language: {{ LANGUAGE_CODE }} -->
            <h1>{% trans "Welcome to my website" %}</h1>
        {% endwith  %}

    </body>

</html>

The output is
English
Welcome to my website
French
Welcome to my website
Greek
Welcome to my website

很显然,这不是测试我是否正确设置的方法。我该如何测试翻译是否正常?

1 个答案:

答案 0 :(得分:1)

参考this,您可以使用//original list is called x x = ['A', '1', '3', '6', 'B', '3', '5', 'C', '6', '7', '3'] finallist = [] newList = [] addtolist = False for i in range (len(x)): if x[i].isalpha(): if len(newList) != 0: finallist.append(newList) newList = [] newList.append(x[i]) finallist.append(newList) print (finallist) 模板标签:

language