YiiBooster使用:中文语言问题

本文详细介绍了在使用YiiBooster的TbDatePicker时遇到的中文显示问题,并提供了解决方案。同时,针对TbEditableColumn在日期列显示中文时的国际化处理进行了补充说明,包括语言设置的正确传递和头部标题中文语言的调整。通过在Booster/widgets目录下创建消息文件并翻译关键类属性,实现了日期picker和日期编辑功能的中文化显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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'=>'选择',
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值