2010-05-09 8 views
1

Я создал строки перевода в шаблоне и в представлении приложения.django интернационализация не работает

Тогда я побежал:

django-admin.py makemessages -l it 

и файл он/LC_MESSAGES/django.po был создан

Я теперь переведённые строки в файле django.po, а потом я побежал:

django-admin.py compilemessages 

И я получаю:

processing file django.po in /home/jobber/Desktop/library/books/locale/it/LC_MESSAGES 

Мой settings.py выглядит следующим образом:

LANGUAGE_CODE = 'it' 
TEMPLATE_CONTEXT_PROCESSORS = ("django.core.context_processors.auth", 
"django.core.context_processors.debug", 
"django.core.context_processors.i18n", 
"django.core.context_processors.media",) 
USE_I18N = True 
MIDDLEWARE_CLASSES = ('django.middleware.common.CommonMiddleware', 
'django.middleware.locale.LocaleMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
) 

, но я до сих пор всегда видеть текст на английском языке. Зачем?

ответ

9

Возможно, ваш язык браузера - английский. LocaleMiddleware пытается определить язык на основе this algorithm (т. Е. HTTP-заголовок Accept-Language).
Таким образом, вы можете либо удалить LocaleMiddleware, чтобы избежать этого, либо использовать set_language redirect view.

+0

haha ​​вы правыйttttt !! Спасибо :) – xRobot

2

В дополнение к принятому ответу: если вы используете Firefox, вы можете установить Quick Locale Switcher, чтобы протестировать ваше приложение на разных языках (на основе языка браузера). Он добавляет кнопку внизу экрана, где вы можете легко изменить свой язык браузера.

Смежные вопросы