Найти - Пользователи
Полная версия: не выводится кнопка выбора языка
Начало » Django » не выводится кнопка выбора языка
1
ivn
Добрый день.
Вставляю в шаблон следующие код:
 {% trans 'Change your locale' %}:
<form action="/i18n/setlang/" method="POST">
  {% csrf_token %}
  <input name="next" type="hidden" value="/accounts/profile/" /><br/>
  <select name="language">
    {% for lang in LANGUAGES %}
      <option value="{{ lang.0 }}">{{ lang.1 }}</option>
    {% endfor %}
  </select><br/>
  <input type="submit" value="{% trans 'change' %}" />
</form>

в шаблоне определен тег {% load i18n %}
в settings:
'django.middleware.locale.LocaleMiddleware',
LANGUAGE_CODE = ‘ru’

 LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = [
    ('en', _('English')),
    ('ru', _('Russian')),

и не выводится кнопка //??
ivn
надо вставить эту директиву {% get_available_languages as LANGUAGES %}
тогда появился выбор
не видел, что в документации про это было написано, если возможно показать где об этом пишут, был бы рад.
Спасибо
FishHook
ivn
Да, собственно, прямо в документации и пишут https://docs.djangoproject.com/en/1.11/topics/i18n/translation/#get-available-languages
ivn
FishHook
ivnДа, собственно, прямо в документации и пишут https://docs.djangoproject.com/en/1.11/topics/i18n/translation/#get-available-languages
Спасибо.

Сейчас сделал вот так и кнопка пока не пригодилась )):
 urlpatterns += i18n_patterns( .... )

Подскажите, а как сделать так что бы по умолчанию язык ‘ru’ не выводился в адресной строке?
т.е. если ru, то site.com/
если en, то site.com/en/
Спасибо.

и еще маленький вопросик )) как узнать текущий язык в шаблоне?
ответ:
{% get_current_language as LANGUAGE_CODE %}
-)
кнопка:
         <ul>
            {% get_current_language as LANGUAGE_CODE %}
            <li> {% ifequal LANGUAGE_CODE 'ru' %}<a href="/en/">en</a>{% else %}<a href="/">ru</a>{% endifequal %}</li>
        </ul>
ivn
Подскажите, а как сделать так что бы по умолчанию язык ‘ru’ не выводился в адресной строке?
т.е. если ru, то site.com/
если en, то site.com/en/
Спасибо.

решение:
https://docs.djangoproject.com/en/1.11/topics/i18n/translation/#language-prefix-in-url-patterns
или
https://github.com/st4lk/django-solid-i18n-urls
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB