php-gettext 於 x86_64 的 Bug

之前我發表了一篇在 Lyceum 上的 Language plugin - Lyceum Language Plugin。我也把他用在我的 Blog 上面,不過因為最近把 Blog 從我自已的電腦搬到 slicehost 的 vps 上,從原先的 32bit 環境轉換至 64bit 的環境下。不過在把 blog 搬過去後,發現該 plugin 竟然無法使用了。查了一下,原來是因為 php 在 64bit 環境上的 bug (特色?),造成 gettext 存取語系檔後,無法分析他。

這個問題的解決方法很簡單,你可以去 php-gettext 的官方網站下載最新的 source ,解壓縮至 wp-includes 底下取代掉原先的 gettext.php 即可。

靠下面的 MAGIC number 來協助處理此 Bug ,可參考 php-gettext 的原始檔。 [code lang=”php”] // $MAGIC1 = (int)0x950412de; //bug in PHP 5.0.2, see https://sa vannah.nongnu.org/bugs/?func=detailitem&item_id=10565 $MAGIC1 = (int) - 1794895138; // $MAGIC2 = (int)0xde120495; //bug $MAGIC2 = (int) - 569244523; // 64-bit fix $MAGIC3 = (int) 2500072158; [/code]

PS. 不過我比較偷懶,直接拿 wordpress 最新板本的 gettext.php 來使用。