Nov 24

Gettext es la biblioteca GNU de internacionalización (i18n). Comúnmente se usa junto con PHP para ofrecer páginas web en múltiples idiomas.

En este tutorial veremos cómo compilar e instalar la librería en Mac OS X 10.6 y después añadiremos gettext como una librería dinámica a PHP, de esta forma no habrá que recompilar PHP.

Para poder compilar Gettext hace falta tener instalado Xcode.

Lo primero es abrir Terminal y ejecutar los siguientes comandos como root (o usar sudo antes de cada instrucción).

mkdir -p /SourceCache
cd /SourceCache
curl -O http://ftp.gnu.org/pub/gnu/gettext/gettext-0.17.tar.gz
tar xzf gettext-0.17.tar.gz
cd gettext-0.17
MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch i386 -arch x86_64 -bind_at_load" ./configure
make
make install

Con esto ya tenemos Gettext instalada en el sistema operativo, pero PHP aún no sabe cómo hacer uso de esta librería. Para ello tenemos dos opciones, recompilar PHP con soporte para Gettext o añadir el soporte como una librería dinámica. En este tutorial veremos cómo hacer lo segundo, la opción más sencilla.

De nuevo en Terminal ejecutamos las intrucciones como root (o usamos sudo)

cd /SourceCache
curl -O http://www.opensource.apple.com/source/apache_mod_php/apache_mod_php-53/php-5.3.0.tar.bz2
tar xjf php-5.3.0.tar.bz2
cd /SourceCache/php-5.3.0/ext/gettext
phpize
MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch i386 -arch x86_64 -bind_at_load" ./configure
make
make install

Con esto tenemos la librería gettext para PHP compilada e instalada, ahora sólo queda añadirla a php.ini. Crea o edita el fichero /etc/php.ini con tu editor favorito y añadie esta linea:

extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.so

Ya sólo queda reiniciar el servidor Apache.

sudo apachectl graceful

Con un poco de suerte todo estará en marcha.

Dejar una Respuesta

preload preload preload