Почему псевдоним gettext _ () отсутствует в OS X? - PullRequest
3 голосов
/ 17 августа 2011

Я использую OS X Lion, и часть моего кода использует псевдоним gettext _(), но я получаю эту ошибку

Fatal error: Call to undefined function _() 

Вот мой env

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

Я попытался использовать опцию php suhosin.simulation = On, но это ничего не изменило, так что это не похоже на Suhosin-Patch.

Ответы [ 2 ]

7 голосов
/ 17 августа 2011

Для записи ... Вот как вы добавляете gettext к OS X Lion

Установка ICU

Скачать ICU

Выполнить эти команды

tar xzvf icu4c-4_8_1-src.tgz
cd icu/source
./runConfigureICU MacOSX
make
sudo make install

Загрузить источники PHP 5.3.6

Выполнить эти команды

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

Установка Gettext

Загрузить Gettext

Выполнить эти команды

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

0 голосов
/ 16 января 2014

Я мог бы установить gettext немного проще с помощью brew.

Установка ICU

  • brew install icu4c

Установка gettext

  • brew install gettext

Сборка модулей

Сборка модуля ICU

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 не нужны.

Сборка модуля gettext

. / Configure --enable-gettext

Скопировать сгенерированные модули

скопировать модули в каталог библиотек php(/ USR / Lib / PHP / удлинители / не-отладочные-не-ЗТС-XXXXX).

Перезапустить apache

sudo apachectl restart

...