bugfix> django > 投稿

私はしばらくの間、問題に巻き込まれました。私はドキュメントとして行い、ローカル環境で望むように結果を得ます。 python3 manage runserver を使用するだけでなくまた、 uwsgi --http :8000 xxx.uwsgi 。しかし、ファイルをサーバーにアップロードした後、ローカル環境と同じ結果を得ることができません。

設定は次のとおりです。

LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]
# print(LOCALE_PATHS)
LANGUAGE_CODE = 'en-us'
LANGUAGES = [
    ('en-us', t_l('English')),
    ('zh-hans', t_l('Chinese'))
]
USE_TZ = True
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'util.middleware.MultipleDomainMiddleware',
    'util.middleware.VisitHistoryMiddleware',
    'django.middleware.gzip.GZipMiddleware',
    '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',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 'debug_toolbar.middleware.DebugToolbarMiddleware',
]

.mo、.poファイルのURLは「/project/locale/zh_hans/LC_MESSAGES/xxx.po」、「/project/locale/zh_hans/LC_MESSAGES/xxx.mo」です。

もちろん、 {% load i18n %} を追加します私のウェブページのトップへ。この機能はローカル環境では正常に機能しますが、サーバー環境では機能しません。

nginx + uwsgi + djangoを使用してサーバーを展開します。そして、サーバーが実際に request.LANGUAGE_CODE を取得することを確認できます 。 python3 manage runserver を使用しようとしましたおよび uwsgi --http サーバーでコードを実行して、翻訳が機能するかどうかを確認します。答えはいいえだ!

私のサーバーのシステムバージョンはUbantu 16.04で、私のサーバーのgettextのバージョンは0.19.7-2ubuntu3です。私は apt-get を使用しますgettextをインストールします。

そして、私の質問を解決する方法を知っているのは誰ですか?

回答 1 件
  • URL /project/locale/zh_hans/LC_MESSAGES/xxx.mo 'を/project/locale/zh/LC_MESSAGES/xxx.mo'に変更することにより、この問題を解決します。

あなたの答え