Traduzione Rules Urlmanager

Buongiorno a tutti,

sono nuovo del forum e nuovo per "yii". A primo impatto un Framework fantastico, e i miei primi passi con il suo uso sono stati quasi naturali… cmq vengo al dunque sulla mia difficoltà:

il mio intento è quello tradurre le url delle mie pagine utilizzando le rules di urlManager. navigando sul forum ho trovato una soluzione bellissima, eccola:




	'urlManager'=>array(

			'urlFormat'=>'path',

			'urlSuffix'=>'.html',

			'showScriptName'=>true,  //Da cambiare in produzione

			'caseSensitive'=>false,

			'rules' => array(

				'/' => 'main/index',

				'/'. toAscii(Yii::t('rules','registrazione')) => 'main/registrazione',

			  	'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

			)



Dove ovviamanete la funzione t traduce in base la lingua. Il mio problema è che la funzione t in config sembra non funzionare perchè ancora non sono inizializzati i suoi componenti fondamentali. Come potrei rimediare?

Grazie

P.s. La funzione T in altre pagine funziona correttamente solo in /config/main.php non va

Antonio

Questo metodo non puo’ funzionare per diversi motivi, devi usare molte regole per esempio:


'/registrazione'=> array('main/registrazione', 'defaultParams'=>array('lang'=>'it')),

'/register'=> array('main/registrazione', 'defaultParams'=>array('lang'=>'en')),

Questo metodo porta ad aumentare le regole, con un conseguente calo di prestazioni.

Se puoi farne a meno e’ meglio, puoi usare l’inglese per tutte le lingue con regole piu’ semplici tipo:


'<lang:(it|en)>/register'=> 'main/registrazione',

Questo semplifica molto le cose.

Calcola che se hai anche solo 40 rules e 5 lingue sono 200 regole che devono essere testate per ogni link della tua applicazione, cerca di risparmiare il risparmiabile.

P.s: Benvenuto sul forum!

Perche non può funzionare, che motivi funzionali ha?

inoltre il framework quando carica le configurazioni? Ogni richiesta?

Grazie mille

Il framewrork carica ad ogni richiesta, php ad ogni richiesta ricomincia da capo.

Non puo’ funzionare perche’ prima carica la configurazione, dopo selezioni la lingua, poi guarda le regole.

Se per caricare le regole serve la lingua, ma per sapere che lingua usiamo servono le regole, e’ un circolo vizioso. (per esempio, se arriva l’indirizzio register, come fa a indovinare se deve usare l’inglese o l’italitano?)

Devi mettere tutte le regole nel config main.

Grande Zaccaria, hai ragione è un circolo vizioso che mi ha fatto venire un mal di testa ieri sera… ho trovato un’altra soluzione,

http://www.yiiframework.com/forum/index.php/topic/5178-dynamic-url-manager-routes/

che ne pensi?

creo le regole (meno possibili) nel get…

grazie anticipatamente

Secondo me lo puoi fare con le rules standard di Yii, senza inventare niente.

Se vuoi fare delle rules personalizzate adesso c’e’ una classe apposta