PHP使用gettext国际化的问题(解决了给分500) 确认你的po是不是utf-8编码吧, 我遇到同样的问题后来直接拿了一个已经是UTF-8的po文件,修改内容就能解决问题了.现在我的多语言是存到数据库里, 再用php导出写成po,自动编译成mo的,就再没有这个问题了.(我的php当然都是utf-8了) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /** * 语言编译,生成po和mo文件 * * @param 语言编码 $LangCode * @return bool */ public function complie($LangCode){ $fileName = $LangCode . '.po'; $LangRoot = LOCALE_PATH; if (!is_dir($LangRoot . $LangCode)){ mkdir($LangRoot . $LangCode); mkdir($LangRoot . $LangCode . '/' . 'LC_MESSAGES'); } $LangFullPath = $LangRoot . $LangCode . '/' . 'LC_MESSAGES/'; if (!is_writeable($LangFullPath)){ throw new Exception($LangFullPath . ' can not be write'); } $data = $this->listTran($LangCode); $fp = fopen($LangFullPath.$fileName,'w+'); flock($fp,LOCK_EX); foreach ($data as $row){ if (isset($row['F_TEXT']) && $row['F_TEXT'] != ''){ fputs($fp,"msgid \"".str_replace("\\'","'",$row['F_CODE_DICT'])."\"\n"); fputs($fp,"msgstr \"".str_replace("\\'","'",$row['F_TEXT'])."\"\n"); fputs($fp,"\n"); } } flock($fp,LOCK_UN); fclose($fp); $ComplieCmd = $this->_msgfmt . ' -o ' . $LangFullPath . $LangCode . '.mo ' . $LangFullPath . $fileName; exec($ComplieCmd); return true; } 利用phpmailer发送邮件时,显示不能连接到smtp服务器 mysql 添加数据后在数据库里的排序 php和fastcgi问题 php如何得到客房端的外网地址?? Apache重写URL——在线求教 为什么语法错误啊??? 数据库连接之前!!! PHP+MySQL存储多张图片的问题 关于select对象, php 查询出现致命错误: Call to a member function fetch_array() on a non-objec 如何最快的删除记录到只保留最后50条。 +30为什么我从hzk16文件读出来的数据是空白的
* 语言编译,生成po和mo文件
*
* @param 语言编码 $LangCode
* @return bool
*/
public function complie($LangCode){
$fileName = $LangCode . '.po';
$LangRoot = LOCALE_PATH;
if (!is_dir($LangRoot . $LangCode)){
mkdir($LangRoot . $LangCode);
mkdir($LangRoot . $LangCode . '/' . 'LC_MESSAGES');
}
$LangFullPath = $LangRoot . $LangCode . '/' . 'LC_MESSAGES/';
if (!is_writeable($LangFullPath)){
throw new Exception($LangFullPath . ' can not be write');
}
$data = $this->listTran($LangCode);
$fp = fopen($LangFullPath.$fileName,'w+');
flock($fp,LOCK_EX);
foreach ($data as $row){
if (isset($row['F_TEXT']) && $row['F_TEXT'] != ''){
fputs($fp,"msgid \"".str_replace("\\'","'",$row['F_CODE_DICT'])."\"\n");
fputs($fp,"msgstr \"".str_replace("\\'","'",$row['F_TEXT'])."\"\n");
fputs($fp,"\n");
}
}
flock($fp,LOCK_UN);
fclose($fp);
$ComplieCmd = $this->_msgfmt . ' -o ' . $LangFullPath . $LangCode . '.mo ' . $LangFullPath . $fileName;
exec($ComplieCmd);
return true;
}