cakephp 1.25 html image helper alt属性不能为汉字

今天用 cakephp 1.25遇到一个怪问题
好奇怪
<?php echo $html->image('qq.gif', array('alt' => '腾讯'))?>
//这句打印出来是
<img src="/img/qq.gif" alt="" />

<?php echo $html->image('qq.gif', array('alt' => 'qq'))?>
//这句打印出来是
<img src="/img/qq.gif" alt="qq" />

[color=red]alt 是汉字就显示不出来,大家都这样么?[/color]

------

[color=darkred]问题解决了,是多语言i18n 和 L10n的问题[/color]

//首先给模板设置好字符集
<?php echo $html->charset(); ?>
//然后,代码改为
<?php echo $html->image('qq.gif', array('alt' => __('qq', true)))?>
//在文件夹app\locale\chi\LC_MESSAGES\default.po(存为utf-8格式)中添加
msgid "qq"
msgstr "腾讯"
//完成!

ps
如果系统在eng和chi的语言包里都找不到名为 “qq” 的msgid,则会将 __('string') 函数中的 string 直接输出。

系统是根据 HTTP_ACCEPT_LANGUAGE 自动判别该翻译为何种语言。如果要手动指定语言,比如要指定翻译为德语,可以在 controller/config 中加入如下代码:
$language = 'deu'; // 要翻译为何种语言
Configure::write('Config.language', $language);
// $this->Session->write('Config.language', $language); // 或者是这句

语言编码在这里
[url]http://www.loc.gov/standards/iso639-2/php/code_list.php[/url]

官方文档
[url]http://book.cakephp.org/view/163/Localization-in-CakePHP[/url]

------

[color=darkred]又ps[/color]
刚刚发现和多语言无关,只需要将模板存为utf-8格式,默认或指定charset也为utf-8即可显示汉字属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值