web-dev-qa-db-fra.com

Comment installer gettext sur Mac OS X

Comment installer gettext sur mac?

Je reçois cette erreur sur une de mes pages php:

Fatal error: Call to undefined function bindtextdomain()

et c'est parce que je n'ai pas installé gettext.

Je ne trouve pas de bonnes instructions pour l'installer. J'ai essayé d'utiliser:

brew install gettext

et il met quelques fichiers ici:

/usr/local/Cellar/gettext/0.18.2

mais je ne sais pas quoi faire avec ça.

Mise à jour: Au lieu d'essayer d'utiliser homebrew, j'ai maintenant essayé cette méthode sans succès en utilisant wget:

Télécharger avec 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 est facultatif pour exécuter des autotests

make check

Erreurs que j'ai eues:

make [3]: *** [check-TESTS] Erreur 1

make [2]: *** [check-am] Erreur 2

make [1]: *** [check-récursif] Erreur 1

Sudo make install

Cela l'installe ici: /Usr/local/share/gettext

Et la documentation ici: /Usr/local/share/doc/gettext

mais comment faire en sorte que mes pages php puissent utiliser gettext et la fonction bindtextdomain ()?

21
aharris88

Je l'ai finalement eu. Vous devez reconfigurer php, alors j'ai fini par passer de 5.3.15 à 5.4.12. Ces sites ont été très utiles:

http://mac.tutsplus.com/tutorials/server/upgrade-the-native-php-installation-on-os-x-mountain-lion/

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
8
aharris88

Vous pouvez utiliser brew pour lier gettext après l'avoir installé.

brew install gettext
brew link --force gettext
70

J'ai trouvé une solution de travail plus simple, qui fonctionne toujours sur des francs-tireurs. La voici: https://stackoverflow.com/a/11792640/512504

0
mbritto

Si réinstaller php est acceptable, essayez de télécharger et d'installer la version de php que vous voulez depuis ici .

Dans mon cas, j'ai utilisé la version 7.0. Étapes à suivre pour réinstaller:

  1. Ouvrez le terminal et lancez curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0
  2. Le php installé résidera à /usr/local/php5-7.0.31-20180903-120321/lib (je ne sais pas pourquoi le nom du répertoire est php5-7xxxx, alors que la version de php installée est la 7.0)

  3. Éditez la configuration Apache2 à /private/etc/Apache2/httpd.conf (faites une sauvegarde si nécessaire)

  4. Remplacez LoadModule php7_module libexec/Apache2/libphp7.so par LoadModule php7_module /usr/local/php5-7.0.31-20180903-120321/libphp7.so (n'oubliez pas de ne pas commenter le symbole "#"), puis enregistrez et quittez.

  5. Enfin, exécutez apachectl restart pour redémarrer votre serveur Apache.

 enabled_gettext

0
Francis