ドキュメントに従って i18n を実行しましたが、単語はまだ英語で表示されます。
設定.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@ADDRESS>, 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@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ファイルが作成されます。アプリを実行すると、すべてが平易な英語のままです。私は何が欠けていますか?
更新 2:
私は今、新しいアプローチを試みました:
私が追加しました
'django.middleware.locale.LocaleMiddleware',
settings.py の MIDDLEWARE_CLASSES に
次に、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 で抽出したら、データベースへの絶対パスを変更する必要があります)
再現できるか教えてください。ありがとうございました