The default CFormatter (accessible through Yii::app()->format) is not locale aware, unfortunately. Until it is, here is a quick and easy way to localize it, by extending the default class.
Put this file in your protected/components.
class LocalizedFormatter extends CFormatter { /** * Initializes this class. */ public function init() { switch (Yii::app()->language) { case 'nl': $this->dateFormat = 'd-m-Y'; $this->timeFormat = 'H:i:s'; $this->datetimeFormat = 'd-m-Y H:i:s'; $this->numberFormat = array( 'decimals'=>null, 'decimalSeparator'=>',', 'thousandSeparator'=>'.' ); $this->booleanFormat = array('Nee', 'Ja'); break; // Add more language cases according to your needs } } }
And set the following in your config/main.php
'components' => array( (...) 'format' => array( 'class' => 'LocalizedFormatter', ), (...) ),
Total 2 comments
Combining CFormatter with CLocale is probably a solution that will make it's way into the core. This is for those with less time on their hands. ;)
subj.
Leave a comment
Please login to leave your comment.