2015-08-28 3 views
0

Я использую (CJui) datepicker в представлении и для него скин, с языком по умолчанию, установленным на «это». Если я визуализирую свое представление со стандартной функцией рендеринга, он работает хорошо, с полным макетом. Если я сделаю свое представление с renderPartial("viewName",$data,false,true), язык будет установлен на японский. Зачем??? (другие параметры кожи остаются правильными)yii 1.1 язык датпикера

PS: Анализируя выходной код, я заметил, что в случае метода renderPartial функция javascript, которая задает параметры по умолчанию для datepicker, не инкапсулирована в методе jQuery(function($) { ... }) ...

EDIT: рассматриваемый вид - это вид администратора, сгенерированный с помощью модуля Gii, я заметил, что для datepickers в расширенный поиск нет параметров работы с кожей !!

+0

Есть ли у вас какие-либо ошибки JavaScript? – Bfcm

+0

@bfcm Нет ошибок –

ответ

0

Проблема в том, что вам необходимо зарегистрировать свою локаль (ы) в частично обработанном виде.

Для простого решения попробуйте следующее:

Перед renderPartial добавить следующий код:

Yii::app()->clientScript->scriptMap['jquery.js'] = false; 

(или другой .js файл, который вы используете для DatePicker).

Вы также можете отремонтировать его вручную. Откройте файл локализации jquery-ui-i18n.min.js или получите его с сайта jquery-ui.

Например, французский экземпляр будет выглядит следующим образом:

Yii::app()->clientScript->registerScript('frDatepicker.js', " 
$(document).ready(function(){ 
     $.datepicker.regional['fr']={ 
       closeText:'Fermer',prevText:'Précédent',nextText:'Suivant',currentText:'Aujourd\'hui', 
       monthNames:['Janvier','Février','Mars','Avril','Mai','Juin', 
         'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], 
       monthNamesShort:['Janv.','Févr.','Mars','Avril','Mai','Juin', 
         'Juil.','Août','Sept.','Oct.','Nov.','Déc.'], 
       dayNames:['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], 
       dayNamesShort:['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'], 
       dayNamesMin:['D','L','M','M','J','V','S'], 
       weekHeader:'Sem.',dateFormat:'dd/mm/yy',firstDay:1,isRTL:false, 
       showMonthAfterYear:false,yearSuffix:''}; 
     $.datepicker.setDefaults($.datepicker.regional['fr']); 
}); 
", CClientScript::POS_READY); 
+0

Если я добавляю первую строку кода перед renderPartial, ничего не работает ... Я хотел бы знать, есть ли решение для настройки yii правильно, без добавления кода вручную. Другие параметры кожи хорошо работают в частично визуализированном виде: -/ –

+0

Вы пробовали и второе решение? – Bfcm

+0

Нет, но в выходном коде уже есть код javascript, который инициализирует язык datepicker: 'jQuery.datepicker.setDefaults ({'changeMonth': true, 'changeYear': true, 'maxDate': '0', 'altFormat': 'дд/мм/гг', 'yearRange': '1900: с', 'showButtonPanel': истинный}); jQuery ('# Attivita_dataCreazione'). Datepicker (jQuery.extend ({showMonthAfterYear: false}, jQuery.datepicker.regional ['it'], [])); jQuery ('# Attivita_dataModifica'). Datepicker (jQuery.extend ({showMonthAfterYear: false}, jQuery.datepicker.regional ['it'], [])); ' проблема в том, что она не инкапсулирована в 'jQuery (функция ($) {...})' метод –

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