Article View: es.comp.os.linux.programacion
Article #10910Re: gettext en php (largo)
From: Gran Buda
Date: Wed, 23 Jan 2002 17:52
Date: Wed, 23 Jan 2002 17:52
109 lines
3418 bytes
3418 bytes
Manuel, creo que la historia no va por ahí. Para detectar el idioma lo
que se suele hacer es lo siguiente:
1.- Cuando un navegador hace una peticion web, acompaña ésta de cierta
informacion: nombre de la aplicacion, version, y.... idioma(s)
preferidos, por orden de preferencia.
2.- En php se puede recoger esta información y utilizarla para mostrar
una página adecuada a cada idioma. Al respecto, prueba el siguiente
codigo:
<html>
<?
echo( $HTTP_ACCEPT_LANGUAGE );
?>
</html>
Puedes ver mas consultando la funcion phpinfo().
Manuel escribió:
>
> Hola.
>
> Estoy intentando crear una web en linux con apache y php4.
> Me gustaría que esta web fuera multi-idioma. Leyendo la
> documentación de php, me encotré con que este tenía soporte
> para gettext, pero no consigo hacerlo funcionar...
>
> sigo estos pasos:
>
> 1) he creado un directorio /var/www/locale/en/LC_MESSAGES,
> donde se supone que debe ir el .mo. (para el ingles).
>
> 2) en la pagina php (index.php):
>
> ...
> putenv("LANG=en");
> setlocale("LC_ALL", "en");
>
> bindTextDomain("index", "./locale");
> textDomain('index');
> ...
> $menusec->item(gettext("Proyectos"));
> ...
> 3) He creado el fichero messages.po, con:
> xgettext index.php
>
> y me ha salido esto (yo he puesto el "Projects"):
>
> # SOME DESCRIPTIVE TITLE.
> # Copyright (C) YEAR Free Software Foundation, Inc.
> # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
> #
> #, fuzzy
> msgid ""
> msgstr ""
> "Project-Id-Version: PACKAGE VERSION\n"
> "POT-Creation-Date: 2002-01-20 23:11+0100\n"
> "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
> "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
> "Language-Team: LANGUAGE <LL@li.org>\n"
> "MIME-Version: 1.0\n"
> "Content-Type: text/plain; charset=CHARSET\n"
> "Content-Transfer-Encoding: 8bit\n"
>
> #: index.php:47
> msgid "Proyectos"
> msgstr "Proyects"
>
>
> 4) Luego he generado el .mo con:
> msgfmt -o index.mo messages.po
>
> y lo he puesto en el directorio /var/www/locale/en/LC_MESSAGES
>
> Pero nada de nada. En la página siempre me aparece en
> español. Alguien puede orientarme?
>
> Un saludo y gracias con antelacion.
>
> #
> # Powered by Debian GNU/Linux 3.0
> # http://www.alteasystem.com
> #
Technical Details
Message-ID:
<3C4EF876.36857FCF@navegalia.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!npeer.kpnqwest.net!news.airtel.netReferences:
<a2ff2g$qoi$1@diana.bcn.ttd.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,c8e71cd97cfe0a75 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-01-23 09:52:42 PST Message-ID: <3C4EF876.36857FCF@navegalia.com> Date: Wed, 23 Jan 2002 18:52:54 +0100 From: Gran Buda <turing@navegalia.com> Organization: - X-Mailer: Mozilla 4.74 [es] (X11; U; Linux 2.2.16 i686) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: es.comp.os.linux.programacion Subject: Re: gettext en php (largo) References: <a2ff2g$qoi$1@diana.bcn.ttd.net> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable NNTP-Posting-Host: 212.73.36.224 X-Original-NNTP-Posting-Host: 212.73.36.224 X-Trace: news.airtel.net 1011808350 212.73.36.224 (23 Jan 2002 18:52:30 +0100) Lines: 109 Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!npeer.kpnqwest.net!news.airtel.net