2

プロジェクトで複数の翻訳を使用しています

そのために、設定ファイルを次のように更新しました

    LANGUAGE_CODE = 'en-us'

    gettext = lambda s: s


    LANGUAGES = (

        ('es', gettext('Spanish')),
        ('en', gettext('English')),
    )


    LOCALE_PATHS = (
        '/mnt/aviesta/pythondev/django/locale',
    )

    USE_I18N = True
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.locale.LocaleMiddleware',


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",
)

そして、私のテンプレートファイルは次のとおりです。

{% load i18n %}

{% trans "Hello" %}


<p>Already a user <a href="/login/"><b>{% trans "login here" %}</b></a></p>

その後、アプリと並行してロケールフォルダーを作成し、その中に特定の言語フォルダーを作成します: django-admin.py makemessages -l es .po ファイルを作成し、この .po ファイルを次のように更新します。

#: customer_reg/customer_register.html:14
msgid "Hello"
msgstr "¡Hola"

#: customer_reg/customer_register.html:17
msgid "login here"
msgstr "ingresa aquí"

そして最後に、メッセージ django-admin.py compilemessagesをコンパイルしました

しかし、私の文字列 "hello" と "login here" は英語のままで、翻訳されていません。

4

1 に答える 1

1

あなたのコードではすべてが見栄えがします。私が見たことのない唯一のものLOCALE_PATHSsettings.py

Mabye this answer、私はしばらく前に、あなたを助けることができます:複数の言語の問題

編集 // コメントへの回答

from django.utils import translation
translation.activate('es')
于 2012-10-16T05:21:57.237 に答える