您的位置:首页 > 编程语言 > PHP开发

YiiBooster使用:中文语言问题

2016-01-08 09:41 721 查看
YiiBooster使用bootstrap的datepicker时,中文语言处理上存在问题,经过如下fix,可以解决。在TbDatePicker.php的init()中进行fix:

public function init() {

$this->htmlOptions['type'] = 'text';
$this->htmlOptions['autocomplete'] = 'off';

if (!isset($this->options['language'])) {
$languageInfo = explode('_', Yii::app()->getLanguage());
if($languageInfo[0] == 'zh') {
$this->options['language'] = 'zh-'.strtoupper($languageInfo[1]);
} else
$this->options['language'] = substr(Yii::app()->getLanguage(), 0, 2);
}
parent::init();
}


因为bootstrap中简体中文对应的js为 xxx.zh-CN.js,而YiiBooster的处理是去找 xxx.zh.js 了(即对语言设置只取前2个字符)

经过上述处理,form中使用TbDatePicker能够显示中文了

但对于TbEditableColumn,如果是日期形式的列,要显示中文,一方面,要把语言设置传递给组件,另一方面,头部标题等中文语言工作,需要处理Yii的国际化问题

array(
'class' => 'booster.widgets.TbEditableColumn',
'name'  => 'mktbltime',
'headerHtmlOptions' => array('style' => 'width: 100px'),
'editable' => array(
'type'          => 'date',
'viewformat'    => 'yyyy-mm-dd',
'options' => array(
'clear' => 'x 清除',
'datepicker' => array('language'=>'zh-CN'),
),
'url'           => $this->createUrl('updateField'),
'placement'     => 'right',
)
),


在Booster/widgets目录下新建目录messages/zh_cn,然后在该目录下放上editable.php文件(因为TbEditableColumn是利用了TbEditable的),在此文本翻译文件中放入类似如下的一个数组:

<?php
return array(
'Enter'=>'输入', 'Select'=>'选择',
);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: