Es mostren els missatges amb l'etiqueta de comentaris Zend Framework. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris Zend Framework. Mostrar tots els missatges

dissabte, 29 d’agost del 2009

Aplicacions multiidioma amb valors de programa.

A Corretgé.com fa temps que vam apostar per a la utilització de gettext per a la internacionalització de les nostres aplicacions.

La facilitat a l'hora de distribuir les cadenes de l'aplicació a traductors, amb arxius .po que personal no informàtic pot traduir, ha estat determinant.

El mòdul Zend_Translate del Zend Framework ha simplificat moltíssim la configuració del sistema multiidioma, llegint el arxius .mo, la compilació dels .po creats amb poEdit, sense haver d'instal·lar rés al sistema, i el que és més important, sense haver de respectar l'arbre de carpetes que requeria el mòdul gettext de php.

Amb la següent tècnica, podrem a més a més indicar valors variables a les cadenes a traduir:

/**
* certifiquem en fase de construcció que el control existeixi.
*/
if (!method_exists($this, $this->control))
{
throw new UbqException(sprintf($this->strl->_("*UBQ0002 - No existeix el controlador %s."), $this->control));
}


En aquest cas concret, la classe Zend_Transalte està instanciada a la propietat strl de la classe mestre de l'aplicació. El mètode gettext es pot cridar com a gettext o com a _. El poEdit recupera les cadenes automàticament emprant els dos mètodes.

La funció sprintf és l'encarregada de les substitucions, actua com pritf però retornant la cadena enlloc de posar-la al buffer de sortida.

Els paràmetres de sprintf, en aquest cas la propietat control, substitueixen els valors de substitució, en aquest cas %s.

Així, la cadena quedarà traduida d'aquesta manera dins l'arxiu .po :

#: app/app.abstract.php:65
#, php-format
msgid "*UBQ0002 - No existeix el controlador %s."
msgstr "*UBQ0002 - Controller %s does not exist."


gettext té una gestió de plurals per als valors de substitució numèrics molt complerta i amb suport amb plurals complexos com els de les llengües eslaves.

divendres, 28 d’agost del 2009

Instal·lant llibreries per a projectes web

Per a optimtizar l'espai en disc dels servidors, instal·larem totes les llibreries PHP en una carpeta única anomenada NetStudio.


mkdir /var/www/NetStudio


I procedirem a instal·lar diferents llibreries d'ús comú:

- crtphpfwk. Framework que modela les etiquetes HTML en objectes PHP.

svn co http://crtphpfwk.googlecode.com/svn/branches/2.0 crtphpfwk


- zajaj. Crida a mètodes de classes PHP desde JavaScript.

svn co http://zajaj.googlecode.com/svn/trunk zajaj


- jQuery. Llibreria de productivitat JavaScript.

svn co http://jqueryjs.googlecode.com/svn/trunk jquery-svn
cd /var/www/NetStudio/jquery-svn/jquery
make jquery
make pack


- jQuery-UI. Llibreria User Interface de jQuery

svn co http://jquery-ui.googlecode.com/svn/tags/latest jqueryUI-svn



- jsTree. Llibreria jQuery tree plugin (afegit maig del 2010)

svn checkout http://jstree.googlecode.com/svn/trunk/ jstree-svn



Tots els sevidors virtuals que emprin jQuery tindran aquesta instrucció

Alias /jquery /var/www/NetStudio/jquery-svn
Alias /jqueryUI /var/www/NetStudio/jqueryUI-svn
Alias /jstree /var/www/NetStudio/jstree-svn



- ZendFramework. Framework de Zend.

svn co http://framework.zend.com/svn/framework/standard/trunk ZendFramework


Afegirem aquest path al php.ini

include_path = ".:/var/www/NetStudio/ZendFramework/library"