Davide Gullo, Consulente web

08.02.2012
07:00 (+00:00)
06a settimana
38o giorno

  "E il mare il web concederà ad ogni uomo nuove speranze, come il sonno i sogni..." Cristoforo Colombo

Zend_Validate, traduzione messaggi di errore

venerdì, 28 maggio 2010

Come Adapter per Zend_Translate prediligo gettext, con Poedit si lavora molto bene!

In fase di deploy di un’applicazione, dopo aver tradotto i miei file, mi sono accorto che mancavano le traduzioni dei messaggi di errore di Zend_Validate (Alpha, EmailAddress, StringLength, ecc.). Dopo un po’ di ricerche ho scoperto che esiste una directory resources/languages (solo nella versione full di ZF) in cui risiedono tutti i file con le traduzioni dei suddetti messaggi di errore.

Il file però presenta le traduzioni in un array e quindi ho dovuto generare un testo da integrare nel file .po
Per fare ciò ho utilizzato queste semplici 2 righe di codice:

foreach($myAr AS $en => $it)
{
echo ‘msgid “‘ . $en . “\”\n”;
echo ‘msgstr “‘ . $it . “\”\n”;
echo “\n”;
}

Dove ovviamente $myAr è l’array che trovate nei vari file di traduzioni (i file si chiamano Zend_Validate.php).
Ho creato così un nuovo Catalogo di Poedit, poi l’ho aperto con un Editor di testo e ho incollato dentro il risultato visualizzato nel browser dalla suddetta procedura. Aprendolo con Poedit e salvando il gioco è fatto!

Potreste incontrare problemi (a seconda del SO e dell’Editor che usate) sulla codifica dei file. A me, ad esempio, Poedit è andato in errore perchè il file, una volta salvato con l’Editor, aveva perso la codifica UTF-8. Per fortuna l’editor del Mac (TextEdit) permette di scegliere la codifica in fase di salvataggio. Ripristinato l’UTF-8 tutto è filato liscio.

Esistono diversi metodi comunque per convertire la codifica dei file di testo (UTF-8).

2 commenti

Non credo sia necessaria l’estrazione delle stringhe da mettere poi nel file po.
Basta creare un nuovo adapter per la lingua specifico per Zend_Validate ed indicarlo con setDefaultTranslator.

Vero. Quando scrissi questo post però era da poco uscita la release 1.10.3 (Aprile 2010), quella in cui aggiunsero proprio la possibilità di gestire più Translators. Arrivai leggermente dopo :-/

Scrivi un commento
Istruzioni e suggerimenti

A capo e la separazione tra i paragrafi sono automatici.
L'indirizzo e-mail non verrà mai mostrato.
Il codice HTML permesso è:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">
I campi con * sono obbligatori.





TrackBack

TrackBack URI per questo articolo

 

Pinguino imperatore

Aptenodytes forsteri,
descritto da G. R. Gray nel 1844, Mari Antartici.

Tux è la mascotte ufficiale del kernel Linux. Creato da Larry Ewing nel 1996, è un pinguino paffuto dall'aria contenta. L'idea che la mascotte di Linux dovesse essere un pinguino venne da Linus Torvalds, il creatore del kernel Linux.
[FSF Associate Member]
Free Software Foundation
Associate Member
Join!
Davide Gullo
   Crea il tuo badge