Для интернационализации моего проекта django я использую i18n django, и мне это нравится.
Для установки языка в шаблоне вместо использования форм, как в этом примере:
<form action="{{site_url}}i18n/setlang/" method="post">
<input name="next" type="hidden" value="" />
<select name="language">
{% for language in languages %}
<option value="{{language.0}}">{{language.1}}</option>
{% endfor %}
</select>
<input type="submit" value="Ok" />
</form>
Я хотел бы использовать простые текстовые ссылки; как то так:
{% for language in languages %}
{% ifnotequal language.0 lang %}
<a href="{{site_url}}i18n/setlang/" >{{language.1}}</a>{% else %}{{language.1}}
{% endifnotequal %}
...
{% endfor %}
Чтобы позволить предыдущему фрагменту шаблона выполнить свою работу, я создал следующую функцию jQuery:
var languageLink = $('#language-choser > a');
languageLink.click(function(e){
var languageURL = languageLink.attr('href');
var languageNow = languageLink.text();
var lang = (languageNow=='English') ? 'en' : 'es';
$.post(languageURL, {next: "", language:lang});
});
Эта функция работает с Firefox, но не с Chrome: она просто перезагрузит страницу без изменения языка.
Кто-то может сказать мне, что не так? Я долго играл с этим, не находя выхода.
EDIT
Похоже, это может быть проблема кеширования . В моей функции щелчка я должен очистить кэшированную страницу. Но как? Или я должен отключить кеширование браузера для всего сайта? Я так не думаю ...