Merhabalar django ile web geliştirme yapmaya çalışıyorum. Dil değişikliği yaparken path inde translate edilmesi gerekiyor. Django dökümatasyonunda bunu form ile yapıyor. set_language adında bir fonksiyona gönderiyor (action ile) ben bunu ul yada li ile yapmam gerekiyor. Bunu nasıl yapabilirim?
<form action="{% url 'change_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 %}
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected{% endif %}>
{{ language.name_local }} ({{ language.code }})
</option>
{% endfor %}
</select>
<input type="submit" value="Go">
</form>
def change_language(request):
response = HttpResponseRedirect('/')
if request.method == 'POST':
language = request.POST.get('language')
if language:
if language != settings.LANGUAGE_CODE and [lang for lang in settings.LANGUAGES if lang[0] == language]:
redirect_path = f'/{language}/'
elif language == settings.LANGUAGE_CODE:
redirect_path = '/'
else:
return response
from django.utils import translation
translation.activate(language)
response = HttpResponseRedirect(redirect_path)
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language)
return response
urlpatterns = [
path('admin/', admin.site.urls),
path('change_language/',
change_language,
name='change_language'),
path('', include('Home.urls')),
path('haberler/',include('New.urls')),
path('i18n/', include('django.conf.urls.i18n')),
<div class="header__meta">
<div class="header__meta-request">{% get_current_language as LANGUAGE_CODE %}
<a href="{% url 'offer-request' %}" class="button button--uppercase button--black">{% translate 'Teklif İsteyin' %}</a>
</div>
<div class="header__lang-wrapper">
<div class="header__current-lang">
{% get_current_language as LANGUAGE_CODE %} {{LANGUAGE_CODE}}</div>
<div class="header__language-switcher-list">
<ul class="language-switcher language-switcher--white">
{% get_current_language as LANGUAGE_CODE %} {% get_available_languages as LANGUAGES %} {% get_language_info_list for LANGUAGES as languages %} {% for language in languages %}
<li translate="yes" class="language-switcher">
<a href="/{{ language.code }}/{{ request.full_path |slice:'4:'}}" {% if language.code == LANGUAGE_CODE %} class="selected" {% endif %}>
{{ language.code }}
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>