Używam i18n_patterns
do tworzenia prefiksów języka w aplikacji Django.Szablony Django: Pobierz bieżący adres URL w innym języku
Moi URL wyglądać tak:
/de/contact/
/fr/contact/
/it/contact/
W moim szablonu bazowego, mam pętli na wszystkich dostępnych językach pokazanie powiązań zmienić język.
{% get_available_languages as languages %}
<nav id="language_chooser">
<ul>
{% for lang_code, lang_name in languages %}
{% language lang_code %}
<li><a href="{% url 'home' %}" alt="{{ lang_name }}" title="{{ lang_name }}">{{ lang_code }}</a></li
{% endlanguage %}
{% endfor %}
</ul>
</nav>
W tym przypadku cofam adres URL "macierzystego". Czy istnieje sposób, aby zamiast tego uzyskać przetłumaczony adres URL bieżącej strony?
Jeśli jestem w niemieckiej wersji strony "kontakt", chcę, aby link "fr" wskazywał na francuską wersję strony "kontakt", a nie na stronę "domową".
Dzięki, twoje rozwiązanie działa dla mnie z niewielką poprawą. Używam prostego znacznika wewnątrz forloop ... '@ register.simple_tag (name = '') translate_url def do_translate_url (language): powrót TranslatedURL (język)' ... Następnie w szablonie ... '{% get_language_info_list dla JĘZYKÓW jako języków%} {% dla języka w językach%} {{ language.name_local }} {% endfor%}' – pista329
Wydaje się to nie działać, jeśli kwargs są zależne od języka - na przykład z zależnym od języka karetką 'Parametr w adresie URL powoduje, że ten sam program działa we wszystkich językach. – Flash
@Flash wymyśliłeś sposób na pracę z parametrami ślimaka? Mam też ten problem :( –