わかりました、私はこれを狂ったように探していました。私は単純な問題だと思います。
Django1.4を使用しています
問題は、djangoがテンプレート内の単純な{%trans "work"%}を変換しないことです。
これは私がしたことです:
Settings.py:
LANGUAGE_CODE = 'en-us'
USE_I18N = True
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.request",
)
LOCALE_PATHS = (
'/home/m00p/PycharmProjects/astrid/locale'
)
これは私のマップ構造です:
/
myproject/
apps/
locale/
template/
だから私は走った
django-admin.py makemessages -l nl -i settings.py
ロケールフォルダnl/LC_MESSAGES / django.poで正常に作成されたので、django.poで見つかった翻訳を編集します
#: templates/base.html:22
msgid "work"
msgstr "ddddddddddddd"
次に、コンパイルコマンドを実行します
django-admin.py compilemessages
また、正しいフォルダーにdjango.moファイルを正常に作成しました
これをmyproject/urls.pyにも追加しました
urlpatterns = patterns('',
url(r'^i18n/', include('django.conf.urls.i18n')),
)
urlpatterns += i18n_patterns('',
url(r'^$', 'front.views.home', name='home'),
)
言語を変更できるように、これをbase.htmlファイルに追加しました
<form action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="/" />
<select name="language">
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
したがって、WebサイトにアクセスするとURLに127.0.0.1:8000/en/が含まれますが、これは正しいです。英語がデフォルトの言語であるため、フォームをNLに変更すると、127.0.0.1:8000にリダイレクトされます。 / nl /しかし、私が翻訳したテキストは変更されませんでした。また、{{LANGUAGE_CODE}}を表示するとNLと表示されるため、言語はNLであると確信しています。
なぜ変わらないのか誰か知っていますか?
ありがとうm00p
問題が解決しました
動作するのを忘れたものを追加するプロセス中に、デプロイメントサーバーを再起動しましたが、ブラウザーのキャッシュをクリアしなかったため、古いページを使用していました。そのため、Chromeでブラウザーデータをクリアすると、ページを再確認し、正しく翻訳された言語を変更しました。とにかく提案をありがとう!