Вывод переведенного сообщения при помощи jquery?

Всем привет. Создал форму приглосов на сайт с одним полей email. При помощи ajax отправляю данные, во вьюхе делаю проверки. Елси все ок оправляю письмо и ответ с сообщением, если неок просто сообщение. Хочу добавить перевод сообщений но когда все сделал сообщение не переводится. Помогите пжлста.
view.py
from django.utils.translation import ugettext_lazy as _

def invite(request):
    if request.method == 'POST':
        email = request.POST['email']
        msg = ''
        response_data = {}
        if User.objects.filter(email=email).exists():
            msg = _("User with this email are register")
        elif UserInvite.objects.filter(email=email).exists():
            msg = _("In this email Invite already sent")
        else:
            UserInvite.objects.create(
                user=request.user,
                email=email
                )
            send_mail('Hi! This your invite.',
                      'Hi! You can register in our web-site.' + '\n' +
                      request.build_absolute_uri(reverse('register')),
                      'admin@minisite.com', [email],
                      fail_silently=False)
            msg = _("Thank you for invite your friends!!!")
            response_data['msg'] = unicode(msg)
    return JsonResponse(response_data)


ajax:
$.ajax({
            method: "POST",
            url: '/invite/',
            data: {
            'email': email.val(),
            'csrfmiddlewaretoken': CSRF_TOKEN
            },
            success: function(response, status) {
              updateTips(response['msg'])
                },
            error: function(response) {
              updateTips("Error")
            }
          });
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
VladSkliar
@VladSkliar Автор вопроса
Решение простое: добавить код локализации в даные запроса, и во вьюхе его выбрать. Джанго автоматически выставляет англ язык в ответе на запроч
В скрипте:
var lang = $('html').attr('lang');

$.ajax({
            method: "POST",
            url: '/invite/',
            data: {
            'csrfmiddlewaretoken': CSRF_TOKEN,
            'language':lang
            },

Во вьюхе:
translation.activate(request.POST['language'])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
winordie
@winordie
Лучшая документация -- исходники
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы