Я следил за документацией, как делать i18n, но слова все еще отображаются на английском языке.Интернационализация в Django не активируется
Settings.py:
USE_I18N = True
LANGUAGES = (
('en', 'English'),
('de', 'German'),
)
LANGUAGE_CODE = 'de'
Просмотров:
from django.utils.translation import ugettext as _
...
messages.set_level(request, messages.SUCCESS)
messages.success(request, _(u'An invitation was sent to %s.') % invitation.email)
Я разрабатываю на Ubuntu и устанавливается Gettext. В командной строке я ввожу эти:
django-admin.py makemessages -l de
я получаю файл .po и редактировать его соответствующим образом:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <[email protected]>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-01 17:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <[email protected]>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: MyBookmarks/templates/friend_invite.html:3
#: MyBookmarks/templates/friend_invite.html:4
msgid "Invite A Friend"
msgstr "hhhhh"
#: MyBookmarks/templates/friend_invite.html:11
msgid "send invite"
msgstr "gggggggggg"
#: MyBookmarksApp/forms.py:8
msgid "Friend's Name"
msgstr "ffffffffff"
#: MyBookmarksApp/forms.py:9
msgid "Friend's Email"
msgstr "ddddddddd"
#: MyBookmarksApp/views.py:123
#, python-format
msgid "An invitation was sent to %s."
msgstr "ssssssssssss %s"
#: MyBookmarksApp/views.py:127
msgid "An error happened when sending the invitation."
msgstr "aaaaaaa"
Затем я запускаю эту команду:
django-admin.py compilemessages
и тому. Создается mo-файл. Я запустил приложение, и все по-прежнему на английском. Что мне не хватает?
Update 2:
я сейчас попробовал новый подход:
я добавил
'django.middleware.locale.LocaleMiddleware',
к MIDDLEWARE_CLASSES в settings.py
Затем я добавил на адрес: url.py:
# i18n
(r'^i18n/', include('django.conf.urls.i18n')),
И в моем шаблоне base.html я добавил это:
{% load i18n %}
...
<div id="footer">
<form action="/i18n/setlang/" method="post">
<select name="language">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}">{{ lang.1 }}</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
</div>
Теперь я могу увидеть выпадающее меню на моей странице, чтобы изменить язык. Даже после изменения языка на немецкий язык ничего не меняется. Что-то, кажется, сломана в 1,4 ...
обновление 3:
Я создал новый простой тестовый проект, чтобы продемонстрировать эту проблему.
Это очень простой проект, и вы можете переключаться между немецкими & на главной странице. Вы видите, что выбранный код языка действительно изменяется, что является хорошим знаком, но перевода просто не происходит. Интересно, если это ошибка, о которой нужно сообщить. Ваше сотрудничество высоко ценится.
Вы можете скачать здесь: http://www.chasebot.com/TestProject.zip
(После извлечения в settings.py вам необходимо изменить абсолютный путь к базе данных)
Пожалуйста, дайте мне знать, если вы можете воспроизвести его. Спасибо
У вас установлено языковое промежуточное ПО? –
Я вижу. Пожалуйста, посмотрите мое обновление в вопросе. Спасибо за помощь – Houman