Джанго проблемы интернационализации - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть шаблон со следующим:

{% load i18n %}
  {% trans "Welcome to my site!" %}

Я использую RequestContext, вызвал makemessages, отредактировал .po файлы и скомпилированные сообщения, но все не переведено, я просто вижу то же сообщение, даже когда загружаю страницу.

Извлечение из .po файла

msgid "Welcome to my site!"

msgstr "blahblah"

1 Ответ

1 голос
/ 03 декабря 2011

Чтобы переводы отображались в шаблонах:

Ваш settings.py должен иметь следующее:

USE_I18N = True
USE_L10N = True # optional, but recommended
LANGUAGE_CODE = 'en-us' # Or whatever language you want as default

Вы должны иметь 'django.core.context_processors.i18n' в вашем TEMPLATE_CONTEXT_PROCESSORS

Вы должны добавить 'django.middleware.locale.LocaleMiddleware' в свой MIDDLEWARE_CLASSES (после 'django.contrib.sessions.middleware.SessionMiddleware')

Убедитесь, что ваши шаблоны имеют {% load i18n %} где-то в верхней части.

После того, как вы перевели и скомпилировали сообщения, чтобы фактически отобразить перевод, вам нужно указать django, какой язык вам нужен. Для этого выполните одно из следующих действий:

  1. Установите django_language, введите в сеансе нужный вам код языка.
  2. Установите файл cookie с именем django_language на нужный вам язык.

Если после всего вышеперечисленного у вас нет перевода для отображения - тогда django не может найти файлы ваших сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...