You are viewing revision #2 of this wiki article.
This version may not be up to date with the latest version.
You may want to view the differences to the latest version or see the changes made in this revision.
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',
),
(...)
),
May be needed use CLocale (date, time, number) for extending CFormatter?
subj.
Re: May be needed use CLocale (date, time, number) for extending CFormatter?
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. ;)
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.