管理员
主管站务
困扰很久的问题,就是在本机上安装WordPress2.0.2 中文版前后台很正常,而在虚拟主机上安装后,后台为默认的en文,参考下文后,方知是PHP的BUG问题: 如果你的 WordPress Language 是預設的 English, 就沒問題, 無論你用哪一版的 PHP. 但如果你中文化 WordPress, PHP 4.x 沒問題, 但 PHP 5.x 就不怎麼高興啦. Again, 用 PHP 4.x版鐵沒錯的啦. 如果你真的要是, 可以參考以下的解決方案. 但我沒試過, 不曉得行不行. http://www.fredfred.net/skriker/index.php?p=84 在 gettext.php 檔中: 重新定義 $MAGIC1 和 $MAGIC2 如下 // $MAGIC1 = (int)0×950412de; $MAGIC1 = (int)-1794895138; // $MAGIC2 = (int)0xde120495; $MAGIC2 = (int)-569244523; 打开gettext.php 后发现就是如此设置,后来按照如下方式修改,一切正常: // $MAGIC1 = (int)0×950412de; //bug in PHP 5 $MAGIC1 = 2500072158; // $MAGIC2 = (int)0xde120495; //bug $MAGIC2 = 3725722773;
查看详细资料
TOP
查看个人网站
WP 菜鸟
WP 学徒
Crazy Loong
版主
原帖由 逍遥云 于 2006-10-13 09:20 发表 server不是我个人的,本地没问题的,apache+php5 我想理解的是为为什么不直接做出wordpress的中文版本(后台),这样也免去了调用mo语言文件的问题。 用英文其实也行
原帖由 cqcrz 于 2006-11-9 03:45 AM 发表 一看就是没本地化过文件的,你做一次就知道它的痛苦了
In /wp-includes/gettext.php Chage this: // $MAGIC1 = (int)0x950412de; //bug in PHP 5 $MAGIC1 = (int) - 1794895138; // $MAGIC2 = (int)0xde120495; //bug $MAGIC2 = (int) - 569244523; For this // $MAGIC1 = (int)0x950412de; //bug in PHP 5 $MAGIC1 = 2500072158; // $MAGIC2 = (int)0xde120495; //bug $MAGIC2 = 3725722773;
Try this. Get your original gettext.php file, then find entry: if ($magic == ($MAGIC1 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms $this->BYTEORDER = 0; } elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) { Replace by: if ($magic == $MAGIC1) { $this->BYTEORDER = 0; } elseif ($magic == $MAGIC2) { The solution was described there: http://wordpress.dk/forum/topic/19 It is working for me. WordPress 2.1.3 php 5.2.1