Le numéro 119 du magazine Programmez vient de sortir.
Ce numéro spécial "Coder for fun" est très interressant car quelques articles touchant le PHP sont présents.
L'article que j'ai signé traite le sujet suivant : "Réaliser votre widget avec Yahoo ! Blueprint " en PHP
La traduction d'une application est un vrais problème car il faut une méthode qui rajoute peu de travail au développeur et qui permettent une traduction facile.
On peut bien sur bricoler un système personelle pour gérer ce problème mais il faudra aussi dévelloper les outils annexe permettant de maintenir à jours les différentes traduction
GetText est un outils très utilisé dans le monde de l'open source et disponible pour de nombreux languages. Il est très discret à utiliser puisqu'il suffit de remplacer :
par
La chaine hello world sera ensuite extraite automatiquement de votre code source par les outils de gettext. Les développeurs n'ont donc pas à se soucier de maintenir à jour le fichier de traduction.
Pour extraire les chaines à traduire de vos fichier php il suffit d'utiliser la commande :
Cela va vous générer un fichier messages.po.
Il faut ensuite le compiler en fichier .mo utilisable par gettext.
L'un des principeaux problème avec beaucoup de méthode est la mise à jour des fichier de traduction. Et c'est là où à mon gout gettext trouve tout son intêret.
Commencez par renommer le fichier messages.po en old.po.
Générez le fichier messages.po
Mergez les deux fichier grace à cette commande :
GetText est puissant et on pourrait penser que cette solution est plus lente que un $lang[$language]['welcome']. Et bien non l'extension gettext est écrite en C et ses performance sont meilleur que le simple tableau de string.
Un article intérressant sur gettext et php : http://www.onlamp.com/pub/a/php/200...
Le site de gettext : http://www.gnu.org/software/gettext/
L'évènement "DEMO IN PARIS", 2ème édition vient d'être lancé
Il va se dérouler le 15 mai 2009 à la cantine (Paris) avec la même équipe : Popsy team et hello / Sector One
Pour plus d'informations,rendez-vous sur le lien suivant : http://www.popsyteam.org/demoinparis2/index.php
Je vous renvoie directement vers la page de l'émission
Magento optimise ses performances et fait évoluer son offre auprès des professionnels. La communauté française organise le bargento, une rencontre autour de l'application.
Que va devenir MySQL avec le rachat de Sun par Oracle ? La communauté réagit.
Le point sur les deux frameworks les plus en vus du moment par le monde professionnel.
PHP Brésil avait dévoillé leur éléPHPant gonflable lors du rendez PHP en 2008.
Cette fois, ils l'ont ressorti pour montrer en vidéo son installation et comment il se lève
http://www.youtube.com/watch?v=IU6_vPpN0Fs&feature=player_embedded
Dans un post récent sur heredoc et newdoc
Je disais que pour HEREDOC et pour les guillemets doubles,
${variable}s; // fonctionne
{$variable}s"; // fonctionne
Donc
testé sur PHP_VERSION:5.2.5
<?php
echo '<hr />';
highlight_file ( __FILE__ );
echo '<hr />';
$salut = 'hello';
$salut_fr = 'bonjour';
$b_fr = 'yo man';
$b= 'salut';
printVar(${b} . "<br />${b}<br />{$b} ",'${b} . " ${b} {$b} "');
printVar("${$b}<br />$$b<br />" . $$b,'${$b} $$b " . $$b');
printVar("$b_fr<br />" . ${"b_fr"},'"$b_fr " . ${"b_fr"}');
printVar("${b}_fr<br />{$b}_fr",'${b}_fr {$b}_fr');
printVar("${$b}_fr",'${$b}_fr');
printVar(${$b."_fr"},'${$b."_fr"}');
//printVar("{${$b}_fr}",'${b}');
Mais depuis php 5.0
${uneFonction()} fonctionne aussi
function donneUnNomDeVariable()
{
return 'salut';
}
printVar(${donneUnNomDeVariable()},'${donneUnNomDeVariable()}');
// FATAL ERROR printVar("{$donneUnNomDeVariable()}",'"{$donneUnNomDeVariable()}"');
// FATAL ERROR printVar("${$donneUnNomDeVariable()}",'"${$donneUnNomDeVariable()}"');
printVar(${donneUnNomDeVariable()}."_fr",'${donneUnNomDeVariable()}."_fr"');
printVar(${donneUnNomDeVariable()."_fr"},'${donneUnNomDeVariable()."_fr"}');
/**
* Affiche le contenu de la variable
*
* @param mixed $var la variable dont il faut afficher le contenu
* @param string $varName le label
* @return boolean true
*/
function printVar($var, $varName = '@') {
static $varStaticInutile = '3';
$varStaticInutile = 5;
$bt = debug_backtrace ();
if (is_array ( $bt ))
$bt = array_reverse ( $bt );
else {
$bt = array (array ('line' => '' ) );
}
echo '<p>' . "\n" . '[' . $varName . '] (line:' . $bt [0] ['line'] . ') : ' . "\n" . '<pre style="color:red">' . "\n" . var_export ( $var, 1 ) . '</pre>' . "\n" . '</p>' . "\n";
return true;
}
?>
[${b} . " ${b} {$b} "] (line:12) :
'salut
salut
salut '
[${$b} $$b " . $$b] (line:13) :
'hello
$salut
hello'
["$b_fr " . ${"b_fr"}] (line:14) :
'yo man
yo man'
[${b}_fr {$b}_fr] (line:15) :
'salut_fr
salut_fr'
[${$b}_fr] (line:16) :
'hello_fr'
[${$b."_fr"}] (line:17) :
'bonjour'
[${donneUnNomDeVariable()}] (line:27) :
'hello'
[${donneUnNomDeVariable()}."_fr"] (line:30) :
'hello_fr'
[${donneUnNomDeVariable()."_fr"}] (line:31) :
'bonjour'
Cette nouvelle version est mieux intégrée au backoffice d'eZ Publish avec un nouveau lien dans le menu contextuel accessible en cliquant sur l'icône dans la vue full d'un noeud et un lien sur le nombre d'objets dans la vue class/view. Ces idées sont issues de la demande d'amélioration #14990 de Gaetano pour le backoffice eZ Publish.
Pour rappel, eZ Class Lists est une extension eZ Publish qui ajoute un onglet dans le backoffice où sont listés les objets de contenus en offrant la possibilité de filtrer par classe de contenu au lieu de la navigation arborescente.