Как установить gettext на mac?
Я получаю эту ошибку на одной из моих страниц php:
Fatal error: Call to undefined function bindtextdomain()
и это потому, что у меня нет gettext.
Я не могу найти хорошие инструкции по его установке. Я пробовал использовать:
brew install gettext
и здесь он помещает несколько файлов:
/usr/local/Cellar/gettext/0.18.2
но я не знаю, что с этим делать.
Обновление: вместо того, чтобы пытаться использовать доморощенный, теперь я попробовал этот метод с помощью wget:
Загрузить с помощью wget
cd ~/Downloads wget http://ftp.gnu.org/gnu/gettext/gettext-0.18.2.tar.gz tar -zxvf gettext-0.18.2.tar.gz cd gettext-0.18.2 ./configure make
make check является необязательным для проведения самотестирования
make check
Ошибки, которые я получил:
make [3]: *** [check-TESTS] Ошибка 1
make [2]: *** [check-am] Ошибка 2
make [1]: *** [check-recursive] Ошибка 1
sudo make install
Это устанавливает его здесь: / usr / local / share / gettext
И документация здесь: / usr / local / share / doc / gettext
но как заставить мои страницы php использовать функцию gettext и bindtextdomain ()?
Вы можете использовать brew
чтобы связать gettext после его установки
brew install gettext brew link --force gettext
Я, наконец, понял. Вы должны перенастроить php, поэтому я закончил обновление с 5.3.15 до 5.4.12. Эти веб-сайты были очень полезны:
http://mansion.im/2011/php-with-intl-and-gettext-on-osx-lion/
#Install dependencies brew install libjpeg brew install pcre brew install libxml2 brew install mcrypt #Get autoconf just because brew install autoconf #Install Intl extension #Install ICU #Download from http://site.icu-project.org/download/48#ICU4C-Download cd ~/Downloads tar xzvf icu4c-4_8_1-src.tgz cd icu/source ./runConfigureICU MacOSX make sudo make install cd ~/Downloads/php-5.4.12/ext/intl phpize ./configure --enable-intl make sudo cp modules/intl.so /usr/lib/php/extensions/no-debug-non-zts-20090626/ #Install gettext #Download from http://ftp.gnu.org/gnu/gettext/ cd ~/Downloads tar xzvf gettext-0.18.1.1.tar.gz cd gettext-0.18.1.1 ./configure make sudo make install cd ~/Downloads/php-5.4.12/ext/gettext phpize ./configure make sudo cp modules/gettext.so /usr/lib/php/extensions/no-debug-non-zts-20090626/ #Add intl and get text to php.ini cd ~/Downloads/php-5.4.12 nano php.ini-development #Add these lines extension=intl.so extension=gettext.so #Download PHP source files from php.net cd ~/Downloads tar xzvf php-5.4.12.tar.bz2 cd php-5.4.12 ./configure \ --prefix=/usr \ --with-gettext \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --sysconfdir=/private/etc \ --with-apxs2=/usr/sbin/apxs \ --enable-cli \ --with-config-file-path=/etc \ --with-libxml-dir=/usr \ --with-openssl=/usr \ --with-kerberos=/usr \ --with-zlib=/usr \ --enable-bcmath \ --with-bz2=/usr \ --enable-calendar \ --with-curl=/usr \ --enable-dba \ --enable-exif \ --enable-ftp \ --with-gd \ --enable-gd-native-ttf \ --with-icu-dir=/usr \ --with-iodbc=/usr \ --with-ldap=/usr \ --with-ldap-sasl=/usr \ --with-libedit=/usr \ --enable-mbstring \ --enable-mbregex \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --without-pear \ --with-pdo-mysql=mysqlnd \ --with-mysql-sock=/var/mysql/mysql.sock \ --with-readline=/usr \ --enable-shmop \ --with-snmp=/usr \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --with-tidy \ --enable-wddx \ --with-xmlrpc \ --with-iconv-dir=/usr \ --with-xsl=/usr \ --enable-zip \ --with-imap=/usr/local/imap-2007 \ --with-kerberos \ --with-imap-ssl \ --enable-intl \ --with-pcre-regex \ --with-pgsql=/usr \ --with-pdo-pgsql=/usr \ --with-freetype-dir=/usr/X11 \ --with-jpeg-dir=/usr \ --with-png-dir=/usr/X11 make test sudo make install #Restart Apache sudo apachectl restart
См. Это, кажется, небольшой трюк, чтобы получить работу: https://gist.github.com/mbillard/1647940
Я нашел самое легкое рабочее решение, которое все еще работает на mavericks. Вот он: https://stackoverflow.com/a/11792640/512504