public function tableName()
{
return '{{tabella_'.Yii::app()->language}}';
}
per il nome campo è più corposa la faccenda…
di primo acchito ti direri di farti delle funzioni get:
poniamo che tu hai i campi
testo_it
testo_en
puoi costruirti due funzioni: una setTesto() e una getTesto()
/** funzione per settare il campo testo_lang */
function setTesto($value){
$campo='testo_'.Yii::app()->language;
$this->$campo=$value;
}
/** funzione per ottenere il campo testo_lang */
function getTesto(){
$campo='testo_'.Yii::app()->language;
return $this->$campo;
}
che richiamerai così:
$this->testo='blabla'; //richiama il setTesto
echo $this->testo; //richiama il getTesto
Temo però che in fase di form devi passare il valore a mano, e non come model->attributes=…
Forse mi sfugge qualche cosa, ma con Yii la localizzazione è già gestita nativamente. La logica è quella di scrivere nel codice nella lingua del programmatore, a rendere la stringa tradotta ci pensa Yii.
Yii::t('messaggio.da.tradurre', 'Messaggio da tradurre');
Tutto quello che devi fare, è cambiare la lingua dell’utente. Pescarla dalla querystring, dalla sessione, dove ti pare. Ci pensa Yii.
Senza contare il fatto che puoi interecettare le traduzioni mancanti: