请教下标签中文化的问题 [ 新手入门 ]
请问 自动生成的_from.php中有
<?php echo $form->labelEx($model,'departmentID'); ?>
我希望是中文的名称,并且名称从一个统一的资源文件中取。
大概就是:
<?php echo $form->labelEx($model,getChineseName('departmentID')); ?>
getChineseName,大家有成熟的代码么?
或者getResourceName(),根据某个环境变量lang=zh(中文)读取对应的资源文件,并且在没有读取到这个名字的情况下,就直接显示 英文字符串(上例中就是显示departmentID)。
我想label中文化应该是个普遍的要求,大家是否有已经完善的功能模块提供啊。
共 4 条回复
-
明白你的意思了,就是应用国际化吧?
首先,在main.php中设置语言
'language'=>'zh_cn'
,
然后再messages目录下面新建一个zh_cn的目录,在zh_cn目录下面新建一个app.php
在你需要显示翻译文字的地方这样用
Yii::t('app','this is a test')//这里会显示为后面翻译的文字
在上面的app.php中插入以下语句:return array( 'this is a test'=>'这是一个测试', );
最后提下,你上面说道的
<?php echo $form->labelEx($model,getChineseName('departmentID')); ?>
里面不应该这样写
<?php echo $form->labelEx($model,'departmentID'); ?>
中的departmentID应该是$model实例的一个属性,或者是数据库当中$model所指表的一个字段,你要使用翻译的话,可以在$model对应的模型中修改,如public function attributeLabels() { return array( 'id' => Yii::t('app', 'ID'), 'title' => Yii::t('app', 'Title'), 'category_id' => Yii::t('app', 'Category'), 'uid' => Yii::t('app', 'Uid'), 'node_type' => Yii::t('app', 'Node Type'), 'status' => Yii::t('app', 'Status'), 'create_time' => Yii::t('app', 'Create Time'), 'update_time' => Yii::t('app', 'Update Time'), ); }
onunix china
注册时间:2012-03-19
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝2
- 金钱1145
- 威望0
- 积分1145