Forzare rigenerazione cache CDbMessageSource

Ciao ho finito di gestire l’internazionalizzazione tramite db con uno schema personalizzato.

La configurazione in main.php è questa:




		'cache' => array(

			'class' => 'system.caching.CFileCache',

		),

		'messages' => array(

			'class' => 'PrCDbMessageSource',

			'language' => 'xx_xx',

			'categoriesMessageTable' => 'yiitsm_categories',

			'sourceMessageTable' => 'yiitsm_source_message',

			'translatedMessageTable' => 'yiitm_message',

			'cachingDuration' => 10000, //portare a 3600

			'onMissingTranslation' => array(

				'PrCMissingTranslationEvent',

				'handleMissingTranslation',

			),

		),



Per minimizzare l’accesso al database ho attivato la cache attivando nella sezione messages del config l’opzione cachingDuration.

Il problema è che se aggiorno la traduzione di un messaggio nel database questa non si riflette subito nella view fin quando non viene aggiornata in base al valore di cachingDuration.

Sapete come posso forzare la rigenerazione della cache in modo che avvena al save/update/delete di un messaggio?

ciao

Scusa il ritardo di questa risposta. Potresti dirci come mai hai utilizzato una gestione personalizzata per la lingua? Per la questione della cache?

Ciao ho rivisto la logica per una serie di motivi:

-volevo che il message source fosse una chiave non legata a nessuna lingua. Nella versione standard ‘ciao’ ad esempio lo metti nel source italian e metti il corrispondete ‘hello’ su english, non mi piaceva questo tipo di gestione nel caso di traduzioni di testi lunghi ‘oggi è una bella giornata e vado a spasso’… invece di usare l’intera frase come chiave uso un codice riferito alla pagina.

-Mi serviva aggiungere attributi aggiuntivi nelle tabelle (traduzione umana/automatica, tabella categoria in tabella separata, pagina appartenenza traduzione ecc)

-Volevo che in caso di assenza di traduzione proponesse la traduzione di default

La cache invece funziona benissimo anche sulla versione standard, a parte il problema che non riesco runtime a forzare la rigenerazione della cache… mi serve perchè ho creato un’interfaccia web per editare le traduzioni quindi ad ogni modifica devo forzare la rigenerazione della cache altrimenti non vedo subito le modifiche