Я пытаюсь использовать два языка на моем веб-сайте, мой родной и английский. Я следовал документации Django, откуда я скопировал код. У меня есть папки и файлы локали.
Когда я открываю сайт, он уже устанавливает язык по умолчанию на словенский, который должен быть английским, и я не знаю почему. main.html
выглядит так, когда я открываю сайт:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/html"
xmlns:height="http://www.w3.org/1999/xhtml"
lang="sl" >
Если я правильно понимаю, lang="sl"
должно быть lang="en"
, и я не знаю, почему это по умолчанию словенский. Даже когда я использую форму, она показывает мне оба варианта (английский и словенский), но когда я выбираю английский и нажимаю кнопку «Перейти», он просто обновляет страницу, но не меняет язык. Текущий язык (словенский) все еще остается выбранным, поэтому я предполагаю, что где-то правильный язык не будет выбран.
Меня также смущает, почему при запуске сервера по умолчанию не используется английский. Кто-нибудь может дать некоторое представление или указать мне правильное направление?
settings.py
LANGUAGE_CODE = 'en-gb'
TIME_ZONE = 'Europe/Ljubljana'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LOCALE_PATHS = [
os.path.join(BASE_DIR, "locale"),
]
ugettext = lambda s: s
LANGUAGES = (
('en', ugettext('English')),
('sl', ugettext('Slovenian')),
)
main.html
{% load i18n staticfiles bootstrap3 %}
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
<html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/html"
xmlns:height="http://www.w3.org/1999/xhtml"
lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
...
<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language">
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}" {% if lang.0 == LANGUAGE_CODE %} selected="selected"{% endif %}>
{{ lang.1 }} ({{ lang.0 }})
</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
Проект / urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^accounts/', include('allauth.urls')),
url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^l10n/', JavaScriptCatalog, js_info_dict),
url(r'^$', index, name="index"),
]
Сайт / urls.py
from django.conf.urls import include, url
from django.views.i18n import JavaScriptCatalog
from . import views
urlpatterns = [
url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
...
]