我正在运行OS X Lion
,我的部分代码使用gettext
的{{1}}别名,但我收到此错误
_()
这是我的环境
Fatal error: Call to undefined function _()
我尝试使用php选项PHP 5.3.6 with Suhosin-Patch (cli) (built: Jun 25 2011 10:41:21)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with Xdebug v2.1.1, Copyright (c) 2002-2011, by Derick Rethans
,但这并没有改变任何东西,所以它似乎不是Suhosin-Patch。
答案 0 :(得分:7)
有关记录......这是gettext
添加到OS X Lion
运行这些命令
tar xzvf icu4c-4_8_1-src.tgz
cd icu/source
./runConfigureICU MacOSX
make
sudo make install
运行这些命令
tar -zxf php-5.3.6.tar.gz
cd ext/intl
phpize
./configure --enable-intl
make
sudo cp modules/intl.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
使用
将其放入php.ini文件中extension=intl.so
运行这些命令
tar -zxf gettext-0.18.1.1.tar.gz
cd gettext-0.18.1.1
Apple不会发送Gettext和Intl,问题在于Gettext显然定义了Stpncpy函数,就像Lion中的内容一样。
您需要打开gettext-tools/gnulib-lib/stpncpy.c
并将stpncpy
的所有引用更改为stpncpy2
然后运行这些命令
./configure
make
sudo make install
返回PHP源目录:
运行这些命令
cd ext/gettext
phpize
./configure --with-gettext
make
sudo cp modules/gettext.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
并将其添加到php.ini文件中:
extension=gettext.so
参考文献: http://www.ittreats.com/os/php/php-with-intl-and-gettext-on-osx-lion-bertrand-mansion.html
答案 1 :(得分:0)
在brew的帮助下,我可以稍微简单一点地安装gettext。
export PATH = $ PATH:/ usr / local / opt / icu4c / bin
./ configure --enable-intl LDFLAGS =' - L / usr / local / opt / icu4c / lib'CPPFLAGS =' - I / usr / local / opt / icu4c / include'
可能不需要LD / CPPFLAGS设置。
./ configure --enable-gettext
将模块复制到php库目录(/ usr / lib / php / extensions / no-debug-non-zts-XXXXX)。
sudo apachectl restart