Ciao a tutti,
ho iniziato da un paio di giorni con Yii e sto seguendo la strada del "imparare facendo" sviluppando un progetto "vero".
Una delle problematiche che ho affrontato immediatamente è stata l’internazionalizzazione; di conseguenza è sorto il problema di come generare in modo automatico i file per le traduzioni. Problema risolto in modo egregio dal comando
yiic message
Questo comando effettua il parsing di tutti i sorgenti della nostra applicazione alla ricerca delle stringhe di traduzione ovvero Yii::t(‘categoria’, ‘stringa da tradurre’)
Fatto questo crea automaticamente i file di traduzione nella directory protected/message/<codice>/<categoria>.php
dove <codice> è il codice della lingua (ad esempio: it o en) e <categoria> è il primo parametro della funzione Yii:t
Su questo forum non ho trovato niente in merito quindi scrivo come ho risolto, magari può essere utile ad altri
I passi da seguire sono semplicemente due:
- Creare un file all’interno di protected/messages/config_translation.php
<?php
return array(
'sourcePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'messagePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'messages',
/** qui vanno specificate le lingue: per il mio progetto sto usando al momento solo inglese ed italiano */
'languages'=>array('it', 'en'),
/** se utilizzate file con estensioni diverse da .php, potete aggiungerle qui*/
'fileTypes'=>array('php'),
'overwrite'=>true,
'exclude'=>array(
'.svn',
'yiilite.php',
'yiit.php',
'/i18n/data',
'/messages',
'/vendors',
'/web/js',
/** la riga gii è molto importante se avete creato dei crud custom per il generatore */
'/gii'
),
);
- posizionarsi nella root dell’applicazione e lanciare il comando
php protected/yiic.php message protected/messages/config_translation.php
(se non avete php nel PATH potete usare il percorso assoluto ad esempio /usr/bin/php)
yiic creerà automaticamente le directory e i file all’interno di protected/messages/
Per aggiornare i file di traduzione (ad esempio perchè avete aggiunto nuove funzionalità alla vostra applicazione) è sufficiente lanciare nuovamente il comando,
yiic manterrà le traduzioni esistenti ed aggiungerà le nuove.
Spero sia utile a qualcun’altro, suggerimenti e correzioni sono ben accette