2015-07-29 1 views
0

Я использую FullCalendar для реализации многоязычного приложения. Я хочу, чтобы календарь был многоязычным, но я хочу сохранить запрос JSON на английском языке. При переключении языков запрос JSON отправляется на языке я перешел на, пример показан ниже:Держите запрос JSON на английском языке с помощью FullCalendar

English:

http://localhost:8000/Application/calendarApi/?start=2015-06-28&end=2015-08-09 

Переключить на арабский язык:

http://localhost:8000/Application/calendarApi/?start=%D9%A2%D9%A0%D9%A1%D9%A5-%D9%A0%D9%A6-%D9%A2%D9%A7&end=%D9%A2%D9%A0%D9%A1%D9%A5-%D9%A0%D9%A8-%D9%A0%D9%A8 

Я хочу, чтобы сохранить все запросы на английском языке, но для просмотра календаря имеются разные языки. Вот соответствующий код приложения:

$(document).ready(function() { 

    var currentLangCode = "en"; 

    $.each($.fullCalendar.langs, function(langCode) { 
     $('#lang-selector').append(
      $('<option/>') 
       .attr('value', langCode) 
       .prop('selected', langCode == currentLangCode) 
       .text(langCode) 
     ); 
    }); 

    // rerender the calendar when the selected option changes 
    $('#lang-selector').on('change', function() { 
     if (this.value) { 
      currentLangCode = this.value; 
      $('#calendar').fullCalendar('destroy'); 
      renderCalendar(); 
     } 
    }); 

    function renderCalendar() { 
     $("#calendar").fullCalendar({ 
      header: { 
       left: 'prev,next,today', 
       center:'title', 
       right: 'month,basicWeek' 
      }, 
      lang: currentLangCode, 
      eventLimit:true, 
      eventSources: { 
       url: "getEvents/", 
       cache: true 
      }, 
      lazyFetching:true, 
      dayClick: function() { alert($("#calendar").fullCalendar("getView").start);} 

     }); 
    } 

    renderCalendar(); 
}); 

ответ

0

Один хак для достижения этой цели является использование только английские цифры (1,2,3,4,5,6,7,8,9,0). Большинство языков используют эти цифры, и они по большей части понимаются на международном уровне. Если вы используете lang-all.js (http://fullcalendar.io/js/fullcalendar-2.3.2/lang-all.js), то вы хотите заменить все цифры на английские цифры. Это может быть сделано в возвышенном, выполнив следующие действия:

  1. Открыть Заменить

  2. Выбрать регулярки

  3. Типа этого в находку:

    var c=\{1\:(.)(.)(.),2\:(.)(.)(.),3\:(.)(.)(.),4\:(.)(.)(.),5\:(.)(.)(.),6\:(.)(.)(.),7\:(.)(.)(.),8\:(.)(.)(.),9\:(.)(.)(.),0\:(.)(.)(.)\} 
    
  4. И это в замене :

    var c={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"} 
    

Для каждого языка, который имеет цифры, отличающиеся от [0-9] и массив следующего формата используется для представления этого массива:

var c={1:"<1 in that language>", 2:"<2 in that language>" ... 

Так что регулярное выражение делает это найти все вхождения, что и вместо этого замените его цифрами [0-9].

Смежные вопросы