rulururu

post Gestion des langues avec Prado

novembre 28th, 2007

Catégorie: Prado — 23unit @ 18:45

Voici un petit tutorial pour mettre en place un site en français et anglais avec Prado.

Tout d’abord, nous allons configurer le fichier application.xml pour mettre en place la gestion de l’Internationalization (I18N).

Nous lui rajoutons donc le module concerné ayant pour langue par défaut : fr

<module id=”globalization” class=”TGlobalizationAutoDetect” Culture=”fr”>

<translation type=”XLIFF” source=”Application.lang” autosave=”false” cache=”false” />

</module>

Application.lang signifiant que les fichiers xml des langues seront dans le répertoire lang de l’application : protected/lang par défaut.

Ensuite nous modifions le fichier index.php de l’application en lui ajoutant une nouvelle classe héritant de TApplication.

On remplace donc :

$application=new TApplication;
$application->run();

Par :

class MyApplication extends TApplication
{

public function OnLoadStateComplete()
{

parent::OnLoadStateComplete();// If the culture has changed
if (isset($this->Request[’lang’])) {

$this->setGlobalState(’lang’, $this->Request[’lang’]);

}

// This changes the Culture if the GlobalState variable ‘lang’ is set.
if ($this->getGlobalState(’lang’) != “”) {

$this->getGlobalization()->setCulture($this->getGlobalState(’lang’));

}

$this->getGlobalization()->Charset = “UTF-8″; //change the charset

}

}

$application=new MyApplication;
$application->run();

Vous pouvez bien entendu mettre autre chose que UTF-8 pour le Charset.

Nous rajoutons ensuite des liens pour passer de français à anglais et vise et versa :

<a href=”index.php?page=<%= $this->Request->ServiceParameter %>〈=fr”>FR</a>
<a href=”index.php?page=<%= $this->Request->ServiceParameter %>〈=en”>EN</a>

Il ne vous reste plus qu’à mettre <%[Welcome]%> à la place de Welcome par exemple, et Prado va créer automatiquement les fichiers xml : lang/fr/messages.xml et lang/en/messages.xml

Ensuite à vous de rentrer les traductions dans les fichiers xml comme ceci :

<trans-unit id=”1″>

<source>Bienvenue</source>
<target>
Welcome</target>

</trans-unit>

<trans-unit id=”2″>

<source><![CDATA[Propulsé par]]></source>
<target>Powered by</target>

</trans-unit>

Pour le deuxième exemple : <%[Propulsé par]%>

Pour toute question, critique ou suggestion, n’hésitez pas.

3 commentaires »

  1. Bonjour,

    Après plusieurs tests de framework PHP (symphony, zend, etc…) je me suis mis à PRADO qui il est vrai, est complétement différent des autres, mais apporte pas mal de solutions toutes prêtes et fiables à beaucoup des soucis que l’on a en développement ! Mais le soucis avec Prado, c’est la notice complête mais basic, et les tutos en Français pas assez nombreux, et c’est super de trouver un blog qui en parle !!! Il faut continuer :) Bravo

    JY

    Commentaire par jyl — 11 décembre 2008 @ 13:57

  2. Merci.

    Le fait est que maintenant je me tourne vers des framework PHP plus léger comme kohana par exemple, qui sont plus adaptés aux sites de de taille moyenne.

    Gaëtan.

    Commentaire par 23unit — 11 décembre 2008 @ 18:13

  3. bonjour,

    A la recherche d’une solution pour un projet, j’ai lu votre article sur l’internationalisation avec Prado, j’apprecie cette initiative d’autant plus que je m’interesse à ce framework mais la doc est moins fourni en français.J’ai bien suivi votre article, mais la derniere partie je la trouve pas claire(au niveau des liens FR et EN pour la traduction, il me semble qu’il manque quelque chose mais je ne sais)

    en tout cas la derniere partie n’est pas du tout explicite. j’ai essayé de creer les fichiers lang/fr/messages.xml et lang/en/messages.xml manuelement mais rien ne marche.

    ce code a peut etre un probleme d’encodage…

    <a href=”index.php?page=Request->ServiceParameter %>〈=fr”>FR
    <a href=”index.php?page=Request->ServiceParameter %>〈=en”>EN

    Merci d’avance pour votre reponse

    Commentaire par gil78 — 19 mars 2010 @ 4:17

RSS des commentaires pour cet article. TrackBack URI

Laisser un commentaire

ruldrurd