2015-02-21 1 views
1
  1. Я включил следующие в settings.py:set_language не работает в Джанго интернационализации

    LANGUAGES = (
        ('en', 'English'), 
        ('ru', 'Russian'), 
    ) 
    
    LANGUAGE_CODE = 'en-us' 
    
    USE_I18N = True 
    
  2. отмечены строки для перевода

    _('Enterprise')  # _ is lazy translate 
    
  3. включил это в моей привязок:

    url(r'^i18n/', include('django.conf.urls.i18n')) 
    
  4. создал папку локали и сделал это:

    python manage.py makemessages -l ru 
    
  5. перевел строк и сделал это:

    python manage.py compilemessages 
    
  6. написал эту форму:

    <form action="/i18n/setlang/" method="post"> 
         {% csrf_token %} 
         <input name="next" type="hidden" value="/" /> 
         <select name="language"> 
          {% for lang in LANGUAGES %} 
          <option value="{{ lang.0 }}">{{ lang.1 }}</option> 
          {% endfor %} 
         </select> 
         <input type="submit" value="Translate" /> 
    </form> 
    

Я думаю, что я сделал все шаги, чтобы заставить его работать, но похоже, что я делаю что-то неправильно или что-то не хватает.

При использовании формы и попробуйте перевести и распечатать request.LANGUAGE_CODE, это покажет мне ожидаемое значение. Но строки остаются на том же языке, что и они

Что здесь не так?

+0

Это пахнет неправильной проблемой пути ... Проверьте мой ответ на этот вопрос http://stackoverflow.com/questions/20518783/django-1-5-5-displays-original-en-strings-always-does -не-перевести – Serafeim

+0

@Serafeim, спасибо, что указал мне в правильном направлении. – Jorj

+0

Нет проблем! вы также можете ответить +1 :) :) – Serafeim

ответ

0

Вы должны определить свой LOCALE_PATHS в файле settings.py как этот

LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale/'), 
) 

Джанго не взглядом по умолчанию для локали директории в корне проекта.