<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Localitzaci%C3%B3_%28suport_multiidioma%29</id>
	<title>Localització (suport multiidioma) - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Localitzaci%C3%B3_%28suport_multiidioma%29"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Localitzaci%C3%B3_(suport_multiidioma)&amp;action=history"/>
	<updated>2026-08-30T10:57:26Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Localitzaci%C3%B3_(suport_multiidioma)&amp;diff=249743&amp;oldid=prev</id>
		<title>Joan: /* 2. Instal.lar els locals */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Localitzaci%C3%B3_(suport_multiidioma)&amp;diff=249743&amp;oldid=prev"/>
		<updated>2012-09-28T23:15:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;2. Instal.lar els locals&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introducció. Exemple inicial=&lt;br /&gt;
Per a Ubuntu, està molt ben explicat a:&lt;br /&gt;
&lt;br /&gt;
http://www.sourcerally.net/regin/49-How-to-get-PHP-and-gettext-working-(ubuntu,-debian)&lt;br /&gt;
&lt;br /&gt;
'''Gettext''' és una llibreria que permet implementar una nova versió d'idioma en un projecte PHP de forma fàcil (no és necessari barallar-se amb centenars o milers de definicions). Bàsicament, cada vegada que tens una cadena de text que s'ha de traduir, en el codi PHP posaràs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    echo _('Text to be translated');&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1. Instal.lació del paquet gettext===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install php-gettext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2. Instal.lar els locals===&lt;br /&gt;
Per ''locals'' entenem els idiomes que s'han de traduir. Per fer una bona traducció necessites utilitzar funcions com ara strftime() per tal de visualitzar les dates en el idioma. gettext també el necessita.&lt;br /&gt;
&lt;br /&gt;
Per instal.lar els locals espanyol, anglès i català:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo locale-gen ca_ES&lt;br /&gt;
$ sudo locale-gen es_ES&lt;br /&gt;
$ sudo locale-gen en_GB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A Ubuntu es poden veure tots els locals instal.lats a la màquina a /usr/share/i18n/SUPPORTED&lt;br /&gt;
&lt;br /&gt;
===3. Una aplicació PHP senzilla===&lt;br /&gt;
&lt;br /&gt;
fitxer helloworld.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    bindtextdomain('messages', './locales/');&lt;br /&gt;
    textdomain('messages');&lt;br /&gt;
    switch ($_GET['l']) {&lt;br /&gt;
        case 'ca':&lt;br /&gt;
        setlocale(LC_ALL,'ca_ES');&lt;br /&gt;
        break;&lt;br /&gt;
        case 'es':&lt;br /&gt;
        setlocale(LC_ALL,'es_ES');&lt;br /&gt;
        break;&lt;br /&gt;
        case 'en':&lt;br /&gt;
        default:&lt;br /&gt;
        setlocale(LC_ALL,'en_GB');&lt;br /&gt;
        break;&lt;br /&gt;
    }&lt;br /&gt;
    echo _('Hello World');&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''locales'' és el directori on agruparem totes les traduccions&lt;br /&gt;
&lt;br /&gt;
La comanda _ és un àlies de la funció gettext(). Podríem haver escrit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo gettext('Hello World');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4. Extreure les cadenes i fer la traducció===&lt;br /&gt;
&lt;br /&gt;
Ara hem de començar a traduir l'aplicació a partir de les cadenes que hem marcat per a ser traduides.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xgettext helloworld.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
o millor: (protesta si hi ha accents)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xgettext --from-code=UTF-8 configuration.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es genera un fitxer anomenat message.po.&lt;br /&gt;
&lt;br /&gt;
Ara hem de crear els directoris on gettext anirà a mirar els fitxers de traduccions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir -p locales/ca/LC_MESSAGES&lt;br /&gt;
$ mkdir -p locales/en/LC_MESSAGES&lt;br /&gt;
$ mkdir -p locales/es/LC_MESSAGES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i movem el fitxer de traduccions al destí correcte&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mv messages.po locales/en/LC_MESSAGES&lt;br /&gt;
$ cp locales/en/LC_MESSAGES/messages.po locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
$ cp locales/en/LC_MESSAGES/messages.po locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ara editem els fitxers a traduir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ joe locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
# SOME DESCRIPTIVE TITLE.&lt;br /&gt;
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER&lt;br /&gt;
# This file is distributed under the same license as the PACKAGE package.&lt;br /&gt;
# FIRST AUTHOR &amp;lt;EMAIL@ADDRESS&amp;gt;, YEAR.&lt;br /&gt;
#&lt;br /&gt;
#, fuzzy&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: PACKAGE VERSION\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: \n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: 2007-10-26 13:40+0200\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: FULL NAME &amp;lt;EMAIL@ADDRESS&amp;gt;\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: LANGUAGE &amp;lt;LL@li.org&amp;gt;\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=CHARSET\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#: example.php:15&lt;br /&gt;
msgid &amp;quot;Hello World&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hem de fer dues coses. Primer, dir el charset que utilitzarem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=CHARSET\n&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
canviar-ho per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=UTF-8\n&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i fer la traducció pròpiament dita&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msgid &amp;quot;Hello World&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
canviar-ho per:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msgid &amp;quot;Hello World&amp;quot;&lt;br /&gt;
msgstr &amp;quot;Hola mundo!&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i el mateix per al fitxer català&lt;br /&gt;
&lt;br /&gt;
Ara finalment hem de compilar les traduccions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ msgfmt locales/es/LC_MESSAGES/messages.po -o locales/es/LC_MESSAGES/messages.mo&lt;br /&gt;
$ msgfmt locales/ca/LC_MESSAGES/messages.po -o locales/ca/LC_MESSAGES/messages.mo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ja està, podem veure com canvia el missatge en els diferents idiomes:&lt;br /&gt;
*http://localhost/{directory}/helloworld.php?l=en&lt;br /&gt;
*http://localhost/{directory}/helloworld.php?l=ca&lt;br /&gt;
*http://localhost/{directory}/helloworld.php?l=es&lt;br /&gt;
&lt;br /&gt;
Altra informació:&lt;br /&gt;
&lt;br /&gt;
*http://mel.melaxis.com/devblog/2005/08/06/localizing-php-web-sites-using-gettext/&lt;br /&gt;
*http://savannah.nongnu.org/projects/php-gettext/&lt;br /&gt;
&lt;br /&gt;
=Millores. Automatització=&lt;br /&gt;
http://www.codelog.net/tips/playing-with-xgettext&lt;br /&gt;
&lt;br /&gt;
En la introducció anterior s'ha posat de manifest el funcionament de gettext, però calen unes millores. La primera és que volem fer un sol fitxer per a tots els fitxers php que hi puguin haver en l'aplicació. La segona és que, evidentment, hem de conservar les parts que ja estan traduides.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mv locales/es/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
$ find . -type f -iname &amp;quot;*.php&amp;quot; | xgettext --keyword=__ --keyword=_e -j -f -&lt;br /&gt;
$ mv messages.po locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Explicació: movem el fitxer castellà al directori principal de l'aplicació. Busquem tots els fitxers php, i aplicant-los gettext amb les opcions adequades, aconseguim fer un ''merge'' conservant les parts que ja estan traduïdes. Tornem a copiar el fitxer messages.po al seu directori.&lt;br /&gt;
&lt;br /&gt;
No cal dir que aquest procés es pot automatitzar fàcilment amb un script executable, que faci el procés per a tots els idiomes a traduir. &lt;br /&gt;
&lt;br /&gt;
'''traductor.sh''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#castellà&lt;br /&gt;
mv locales/es/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
find . -type f -iname &amp;quot;*.php&amp;quot; | xgettext --keyword=__ --keyword=_e -j -f -&lt;br /&gt;
mv messages.po locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
#català&lt;br /&gt;
mv locales/ca/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
find . -type f -iname &amp;quot;*.php&amp;quot; | xgettext --keyword=__ --keyword=_e -j -f -&lt;br /&gt;
mv messages.po locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo chmod a+x traductor.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Millores. Automatització II=&lt;br /&gt;
Basant-me en el punt anterior, aquí hi ha els apunts per a un cas real (arthropoda.joanillo.org): (fitxer localitzacio.txt del projecte)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Resum de comandes per fer la localització&lt;br /&gt;
===========================================&lt;br /&gt;
Primer comencem pel cas senzill de canviar un fitxer&lt;br /&gt;
xgettext --from-code=UTF-8 configuration.php&lt;br /&gt;
&lt;br /&gt;
cp messages.po locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
cp messages.po locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
cp messages.po locales/en/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
joe locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/en/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
msgfmt locales/ca/LC_MESSAGES/messages.po -o locales/ca/LC_MESSAGES/messages.mo&lt;br /&gt;
msgfmt locales/es/LC_MESSAGES/messages.po -o locales/es/LC_MESSAGES/messages.mo&lt;br /&gt;
msgfmt locales/en/LC_MESSAGES/messages.po -o locales/en/LC_MESSAGES/messages.mo&lt;br /&gt;
&lt;br /&gt;
Ja funciona. Continuem fent modificacions que s'han de tornar a traduir: (de moment només modifico el fitxer configuration.php)&lt;br /&gt;
&lt;br /&gt;
cp locales/ca/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
xgettext --from-code=UTF-8 -j configuration.php&lt;br /&gt;
cp messages.po locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
cp locales/es/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
xgettext --from-code=UTF-8 -j configuration.php&lt;br /&gt;
cp messages.po locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
cp locales/en/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
xgettext --from-code=UTF-8 -j configuration.php&lt;br /&gt;
cp messages.po locales/en/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/en/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
Ara si vull veure els resultats he de compilar (veure més avall)&lt;br /&gt;
&lt;br /&gt;
Ara vaig a mirar ja tots els fitxers modificats en la carpeta. (Aquí comença el codi real)&lt;br /&gt;
&lt;br /&gt;
cp locales/ca/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
find . -type f -iname &amp;quot;*.php&amp;quot; | xgettext --from-code=UTF-8 -j -f -&lt;br /&gt;
cp messages.po locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/ca/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
cp locales/es/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
find . -type f -iname &amp;quot;*.php&amp;quot; | xgettext --from-code=UTF-8 -j -f -&lt;br /&gt;
cp messages.po locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/es/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
cp locales/en/LC_MESSAGES/messages.po messages.po&lt;br /&gt;
find . -type f -iname &amp;quot;*.php&amp;quot; | xgettext --from-code=UTF-8 -j -f -&lt;br /&gt;
cp messages.po locales/en/LC_MESSAGES/messages.po&lt;br /&gt;
joe locales/en/LC_MESSAGES/messages.po&lt;br /&gt;
&lt;br /&gt;
I ara compilem:&lt;br /&gt;
msgfmt locales/es/LC_MESSAGES/messages.po -o locales/es/LC_MESSAGES/messages.mo&lt;br /&gt;
msgfmt locales/ca/LC_MESSAGES/messages.po -o locales/ca/LC_MESSAGES/messages.mo&lt;br /&gt;
msgfmt locales/en/LC_MESSAGES/messages.po -o locales/en/LC_MESSAGES/messages.mo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Eines. poEdit=&lt;br /&gt;
poEdit és una eina gràfica per mantenir les traduccions d'un projecte.&lt;br /&gt;
&lt;br /&gt;
A Ubuntu: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install poedit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Està disponible a Aplicacions &amp;gt; Programació &amp;gt; poEdit&lt;br /&gt;
&lt;br /&gt;
==Traduir un fitxer *.po==&lt;br /&gt;
Amb el script vist anteriorment, ./traductor.sh, actualitzo els meus catàlegs. Ara ja tinc els fitxers messages.po de les traduccions catalna i anglesa en les últimes versions. poEdit m'ajuda a fer la traducció amb un entorn gràfic, i compila automàticament creant els respectius fitxers messages.mo.&lt;br /&gt;
&lt;br /&gt;
Fitxer &amp;gt; obrir catàleg, i escullo el meu fitxer *.po&lt;br /&gt;
&lt;br /&gt;
Poso el meu nom i mail, i en la pestanya Analitzadors escullo PHP. Tot lo altre ho deixo igual.&lt;br /&gt;
&lt;br /&gt;
==Crear un nou catàleg (de moment, no)==&lt;br /&gt;
La idea és que quan modifiqui els meus fitxers font (*.php) amb noves frases per traduir, s'actualitzin els catàlegs. És a dir, dins l'entorn de poEdit fer la feina que fa el script traductor.sh&lt;br /&gt;
&lt;br /&gt;
Configuració de l'analitzador: és important perquè recorrerem tots els fitxers PHP a la cerca de les cadenes a traduir&lt;br /&gt;
*idioma: PHP&lt;br /&gt;
*extensions: *.php&lt;br /&gt;
*invocació: xgettext --force-po -o %o %C %K %F&lt;br /&gt;
*element en el llistat de paraules clau: -k%k&lt;br /&gt;
*element en els fitxers d'entrada del llistat: %f&lt;br /&gt;
*joc de caràcters de codi font: --from-code=%c&lt;br /&gt;
&lt;br /&gt;
aquí veig com s'invoca a ''xgettext'' i que d'alguna manera s'assembla a com s'invoca en el fitxer traductor.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
find . -type f -iname &amp;quot;*.php&amp;quot; | xgettext --keyword=__ --keyword=_e -j -f -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per fer la traducció a l'anglès des de zero hem de crear un nou catàleg: (aquesta part no m'ha sortit...)&lt;br /&gt;
&lt;br /&gt;
Fitxer &amp;gt; nou catàleg&lt;br /&gt;
&lt;br /&gt;
Fico les dades del traductor, idioma i país (en_US)&lt;br /&gt;
&lt;br /&gt;
Ruta base: /home/joan/web_empresalibre&lt;br /&gt;
&lt;br /&gt;
i anomeno el fitxer com a messages.po en la ruta adequada: ~/web_empresalibre/locales/en/LC_MESSAGES/&lt;br /&gt;
&lt;br /&gt;
Per defecte, veig que poEdit utilitza aspell (interactive spell checker) per revisar els fonts originals a la cerca de les sentències a traduir&lt;br /&gt;
&lt;br /&gt;
=Gettext a Windows=&lt;br /&gt;
http://www.aota.net/forums/showthread.php?threadid=10615&lt;br /&gt;
&lt;br /&gt;
Aquest exemple s'ha fet amb el EasyPHP.&lt;br /&gt;
&lt;br /&gt;
fitxer index.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?php&lt;br /&gt;
    echo &amp;quot;&amp;amp;lt;h2&amp;amp;gt;Exemple de localització&amp;amp;lt;/h2&amp;amp;gt;&amp;quot;;&lt;br /&gt;
    echo _('Text to be translated');&lt;br /&gt;
?&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
falla perquè no troba la funció _().&lt;br /&gt;
&lt;br /&gt;
Puc descarregar-me '''gettext''', que és un projecte GNU, de http://gnuwin32.sourceforge.net/packages/gettext.htm. Agafo l'opció ''Complete package, except sources'' (tamany 4Mb).&lt;br /&gt;
&lt;br /&gt;
Queda instal.lat a C:\Archivos de programa\GnuWin32\, i veig que entre d'altres utilitats hi ha el binari xgettext.exe (xgettext és part de gettext):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Archivos de programa\GnuWin32\bin\xgettext.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el fitxer ''php.ini'' del EasyPHP descomento l'opció&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extension=php_gettext.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i reinicio el EasyPHP&lt;br /&gt;
&lt;br /&gt;
Puc provar que funciona fent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; cd C:\Archivos de programa\GnuWin32\bin&lt;br /&gt;
...bin\&amp;gt; xgettext --default-domain=C:\Archiv~1\GnuWin32\bin\traduir -k_ C:\Archiv~1\EasyPHP1-8\www\localitzacio\index.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i en el directori del xgettext es genera el fitxer ''traduir.po'', que té per contingut:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# SOME DESCRIPTIVE TITLE.&lt;br /&gt;
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER&lt;br /&gt;
# This file is distributed under the same license as the PACKAGE package.&lt;br /&gt;
# FIRST AUTHOR &amp;lt;EMAIL@ADDRESS&amp;gt;, YEAR.&lt;br /&gt;
#&lt;br /&gt;
#, fuzzy&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: PACKAGE VERSION\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: \n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: 2009-04-24 13:30-0300\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: FULL NAME &amp;lt;EMAIL@ADDRESS&amp;gt;\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: LANGUAGE &amp;lt;LL@li.org&amp;gt;\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=CHARSET\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#: C:\Archiv~1\EasyPHP1-8\www\localitzacio\index.php:3&lt;br /&gt;
msgid &amp;quot;Text to be translated&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
creem els directoris que han d'incloure les traduccions catalana i castellana:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locales/ca_ES/LC_MESSAGES/&lt;br /&gt;
locales/es_ES/LC_MESSAGES/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generem el fitxer .mo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...bin\&amp;gt; msgfmt -o traduir.mo traduir.po&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i per veure que funciona, modifiquem el fitxer index.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
putenv(&amp;quot;LANG=ca_ES&amp;quot;);&lt;br /&gt;
setlocale(LC_ALL,'ca_ES');&lt;br /&gt;
bindtextdomain(&amp;quot;traduir&amp;quot;, &amp;quot;./locales/&amp;quot;); &lt;br /&gt;
textdomain(&amp;quot;traduir&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;&amp;amp;lt;h2&amp;amp;gt;exemple de localitzacióbr&amp;amp;lt;/h2&amp;amp;gt;&amp;quot;;&lt;br /&gt;
echo _('Text to be translated');&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i veiem com efectivament es mostra la informació traduida al català&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PoEdit a Windows==&lt;br /&gt;
http://www.mclibre.org/consultar/php/lecciones/php_gettext.html&lt;br /&gt;
&lt;br /&gt;
La versió de PoEdit per a Windows (poedit-1.4.2-setup.exe) es pot descarregar de: http://www.poedit.net/download.php#win32&lt;br /&gt;
&lt;br /&gt;
Instal.lem l'executable. La primera vegada haurem de configurar l'aplicació. Posem el nostre nom i mail, mirem quin editor per defecte hi ha posat, i com a analitzador mirem quines opcions tenim per al llenguatge PHP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Idioma: PHP&lt;br /&gt;
extensió: *.php&lt;br /&gt;
invocació de l'analitzador: xgettext --force-po -o %o %C %K %F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, març 2009&lt;br /&gt;
[[Categoria: Programació PHP]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>