| Package | system.i18n | 
|---|---|
| Inheritance | class CLocale » CComponent | 
| Since | 1.0 | 
| Source Code | framework/i18n/CLocale.php | 
| Property | Type | Description | Defined By | 
|---|---|---|---|
| aMName | string | the AM name | CLocale | 
| currencyFormat | string | the currency format | CLocale | 
| dataPath | string | the directory that contains the locale data. | CLocale | 
| dateFormat | string | date format | CLocale | 
| dateFormatter | CDateFormatter | the date formatter for this locale | CLocale | 
| dateTimeFormat | string | datetime format, i.e., the order of date and time. | CLocale | 
| decimalFormat | string | the decimal format | CLocale | 
| id | string | the locale ID (in canonical form) | CLocale | 
| localeDisplayName | string | Gets a localized name from i18n data file (one of framework/i18n/data/ files). | CLocale | 
| monthNames | array | Returns the month names in the specified width. | CLocale | 
| numberFormatter | CNumberFormatter | the number formatter for this locale | CLocale | 
| orientation | string | the character orientation, which is either 'ltr' (left-to-right) or 'rtl' (right-to-left) | CLocale | 
| pMName | string | the PM name | CLocale | 
| percentFormat | string | the percent format | CLocale | 
| pluralRules | array | plural forms expressions | CLocale | 
| scientificFormat | string | the scientific format | CLocale | 
| timeFormat | string | date format | CLocale | 
| weekDayNames | array | Returns the week day names in the specified width. | CLocale | 
| Method | Description | Defined By | 
|---|---|---|
| __call() | Calls the named method which is not a class method. | CComponent | 
| __get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent | 
| __isset() | Checks if a property value is null. | CComponent | 
| __set() | Sets value of a component property. | CComponent | 
| __unset() | Sets a component property to be null. | CComponent | 
| asa() | Returns the named behavior object. | CComponent | 
| attachBehavior() | Attaches a behavior to this component. | CComponent | 
| attachBehaviors() | Attaches a list of behaviors to the component. | CComponent | 
| attachEventHandler() | Attaches an event handler to an event. | CComponent | 
| canGetProperty() | Determines whether a property can be read. | CComponent | 
| canSetProperty() | Determines whether a property can be set. | CComponent | 
| detachBehavior() | Detaches a behavior from the component. | CComponent | 
| detachBehaviors() | Detaches all behaviors from the component. | CComponent | 
| detachEventHandler() | Detaches an existing event handler. | CComponent | 
| disableBehavior() | Disables an attached behavior. | CComponent | 
| disableBehaviors() | Disables all behaviors attached to this component. | CComponent | 
| enableBehavior() | Enables an attached behavior. | CComponent | 
| enableBehaviors() | Enables all behaviors attached to this component. | CComponent | 
| evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent | 
| getAMName() | Returns the AM name | CLocale | 
| getCanonicalID() | Converts a locale ID to its canonical form. | CLocale | 
| getCurrencyFormat() | Returns the currency format | CLocale | 
| getCurrencySymbol() | Returns the localized currency symbol. Null if the symbol does not exist. | CLocale | 
| getDateFormat() | Returns date format | CLocale | 
| getDateFormatter() | Returns the date formatter for this locale | CLocale | 
| getDateTimeFormat() | Returns datetime format, i.e., the order of date and time. | CLocale | 
| getDecimalFormat() | Returns the decimal format | CLocale | 
| getEraName() | Returns the era name | CLocale | 
| getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent | 
| getId() | Returns the locale ID (in canonical form) | CLocale | 
| getInstance() | Returns the instance of the specified locale. | CLocale | 
| getLanguage() | Returns the local display name for the language. Null if the language code does not exist. | CLocale | 
| getLanguageID() | Converts a locale ID to a language ID. | CLocale | 
| getLocaleDisplayName() | Gets a localized name from i18n data file (one of framework/i18n/data/ files). | CLocale | 
| getLocaleIDs() | Returns IDs of the locales which the framework can recognize | CLocale | 
| getMonthName() | Returns the month name | CLocale | 
| getMonthNames() | Returns the month names in the specified width. | CLocale | 
| getNumberFormatter() | Returns the number formatter for this locale | CLocale | 
| getNumberSymbol() | Returns symbol | CLocale | 
| getOrientation() | Returns the character orientation, which is either 'ltr' (left-to-right) or 'rtl' (right-to-left) | CLocale | 
| getPMName() | Returns the PM name | CLocale | 
| getPercentFormat() | Returns the percent format | CLocale | 
| getPluralRules() | Returns plural forms expressions | CLocale | 
| getScientificFormat() | Returns the scientific format | CLocale | 
| getScript() | Returns the local display name for the script. Null if the script code does not exist. | CLocale | 
| getScriptID() | Converts a locale ID to a script ID. | CLocale | 
| getTerritory() | Returns the local display name for the territory. Null if the territory code does not exist. | CLocale | 
| getTerritoryID() | Converts a locale ID to a territory ID. | CLocale | 
| getTimeFormat() | Returns date format | CLocale | 
| getWeekDayName() | Returns the weekday name | CLocale | 
| getWeekDayNames() | Returns the week day names in the specified width. | CLocale | 
| hasEvent() | Determines whether an event is defined. | CComponent | 
| hasEventHandler() | Checks whether the named event has attached handlers. | CComponent | 
| hasProperty() | Determines whether a property is defined. | CComponent | 
| raiseEvent() | Raises an event. | CComponent | 
| Method | Description | Defined By | 
|---|---|---|
| __construct() | Constructor. | CLocale | 
the AM name
the currency format
the directory that contains the locale data. If this property is not set, the locale data will be loaded from 'framework/i18n/data'.
date format
the date formatter for this locale
datetime format, i.e., the order of date and time.
the decimal format
the locale ID (in canonical form)
Gets a localized name from i18n data file (one of framework/i18n/data/ files).
Returns the month names in the specified width.
the number formatter for this locale
the character orientation, which is either 'ltr' (left-to-right) or 'rtl' (right-to-left)
the PM name
the percent format
plural forms expressions
the scientific format
date format
Returns the week day names in the specified width.
| 
 
protected void __construct(string $id) 
 | ||
| $id | string | the locale ID (e.g. en_US) | 
protected function __construct($id)
{
    $this->_id=self::getCanonicalID($id);
    $dataPath=self::$dataPath===null ? dirname(__FILE__).DIRECTORY_SEPARATOR.'data' : self::$dataPath;
    $dataFile=$dataPath.DIRECTORY_SEPARATOR.$this->_id.'.php';
    if(is_file($dataFile))
        $this->_data=require($dataFile);
    else
        throw new CException(Yii::t('yii','Unrecognized locale "{locale}".',array('{locale}'=>$id)));
}
Constructor. Since the constructor is protected, please use getInstance to obtain an instance of the specified locale.
| 
 
public string getAMName() 
 | ||
| {return} | string | the AM name | 
public function getAMName()
{
    return $this->_data['amName'];
}
| 
 
public static string getCanonicalID(string $id) 
 | ||
| $id | string | the locale ID to be converted | 
| {return} | string | the locale ID in canonical form | 
public static function getCanonicalID($id)
{
    return strtolower(str_replace('-','_',$id));
}
Converts a locale ID to its canonical form. In canonical form, a locale ID consists of only underscores and lower-case letters.
| 
 
public string getCurrencyFormat() 
 | ||
| {return} | string | the currency format | 
public function getCurrencyFormat()
{
    return $this->_data['currencyFormat'];
}
| 
 
public string getCurrencySymbol(string $currency) 
 | ||
| $currency | string | 3-letter ISO 4217 code. For example, the code "USD" represents the US Dollar and "EUR" represents the Euro currency. | 
| {return} | string | the localized currency symbol. Null if the symbol does not exist. | 
public function getCurrencySymbol($currency)
{
    return isset($this->_data['currencySymbols'][$currency]) ? $this->_data['currencySymbols'][$currency] : null;
}
| 
 
public string getDateFormat(string $width='medium') 
 | ||
| $width | string | date format width. It can be 'full', 'long', 'medium' or 'short'. | 
| {return} | string | date format | 
public function getDateFormat($width='medium')
{
    return $this->_data['dateFormats'][$width];
}
| 
 
public CDateFormatter getDateFormatter() 
 | ||
| {return} | CDateFormatter | the date formatter for this locale | 
public function getDateFormatter()
{
    if($this->_dateFormatter===null)
        $this->_dateFormatter=new CDateFormatter($this);
    return $this->_dateFormatter;
}
| 
 
public string getDateTimeFormat() 
 | ||
| {return} | string | datetime format, i.e., the order of date and time. | 
public function getDateTimeFormat()
{
    return $this->_data['dateTimeFormat'];
}
| 
 
public string getDecimalFormat() 
 | ||
| {return} | string | the decimal format | 
public function getDecimalFormat()
{
    return $this->_data['decimalFormat'];
}
| 
 
public string getEraName(integer $era, string $width='wide') 
 | ||
| $era | integer | era (0,1) | 
| $width | string | era name width. It can be 'wide', 'abbreviated' or 'narrow'. | 
| {return} | string | the era name | 
public function getEraName($era,$width='wide')
{
    return $this->_data['eraNames'][$width][$era];
}
| 
 
public string getId() 
 | ||
| {return} | string | the locale ID (in canonical form) | 
| 
 
public static CLocale getInstance(string $id) 
 | ||
| $id | string | the locale ID (e.g. en_US) | 
| {return} | CLocale | the locale instance | 
public static function getInstance($id)
{
    static $locales=array();
    if(isset($locales[$id]))
        return $locales[$id];
    else
        return $locales[$id]=new CLocale($id);
}
Returns the instance of the specified locale. Since the constructor of CLocale is protected, you can only use this method to obtain an instance of the specified locale.
| 
 
public string getLanguage(string $id) 
 | ||
| $id | string | Unicode language identifier from IETF BCP 47. For example, the code "en_US" represents U.S. English and "en_GB" represents British English. | 
| {return} | string | the local display name for the language. Null if the language code does not exist. | 
public function getLanguage($id)
{
    $id = $this->getLanguageID($id);
    return $this->getLocaleDisplayName($id, 'languages');
}
| 
 
public string getLanguageID(string $id) 
 | ||
| $id | string | the locale ID to be converted | 
| {return} | string | the language ID | 
public function getLanguageID($id)
{
    // normalize id
    $id = self::getCanonicalID($id);
    // remove sub tags
    if(($underscorePosition=strpos($id, '_'))!== false)
    {
        $id = substr($id, 0, $underscorePosition);
    }
    return $id;
}
Converts a locale ID to a language ID. A language ID consists of only the first group of letters before an underscore or dash.
| 
 
public string getLocaleDisplayName(string $id=NULL, string $category='languages') 
 | ||
| $id | string | array key from an array named by $category. | 
| $category | string | data category. One of 'languages', 'scripts' or 'territories'. | 
| {return} | string | the localized name for the id specified. Null if data does not exist. | 
public function getLocaleDisplayName($id=null, $category='languages')
{
    $id = self::getCanonicalID((string)$id);
    if (($category == 'languages') && (isset($this->_data[$category][$id])))
    {
        return $this->_data[$category][$id];
    }
    elseif (($category == 'scripts') && ($val=$this->getScriptID($id)) && (isset($this->_data[$category][$val])))
    {
        return $this->_data[$category][$val];
    }
    elseif (($category == 'territories') && ($val=$this->getTerritoryID($id)) && (isset($this->_data[$category][$val])))
    {
        return $this->_data[$category][$val];
    }
    elseif (isset($this->_data[$category][$id]))
    {
        return $this->_data[$category][$id];
    }
    else {
        return null;
    }
}
Gets a localized name from i18n data file (one of framework/i18n/data/ files).
| 
 
public static array getLocaleIDs() 
 | ||
| {return} | array | IDs of the locales which the framework can recognize | 
public static function getLocaleIDs()
{
    static $locales;
    if($locales===null)
    {
        $locales=array();
        $dataPath=self::$dataPath===null ? dirname(__FILE__).DIRECTORY_SEPARATOR.'data' : self::$dataPath;
        $folder=@opendir($dataPath);
        while(($file=@readdir($folder))!==false)
        {
            $fullPath=$dataPath.DIRECTORY_SEPARATOR.$file;
            if(substr($file,-4)==='.php' && is_file($fullPath))
                $locales[]=substr($file,0,-4);
        }
        closedir($folder);
        sort($locales);
    }
    return $locales;
}
| 
 
public string getMonthName(integer $month, string $width='wide', boolean $standAlone=false) 
 | ||
| $month | integer | month (1-12) | 
| $width | string | month name width. It can be 'wide', 'abbreviated' or 'narrow'. | 
| $standAlone | boolean | whether the month name should be returned in stand-alone format | 
| {return} | string | the month name | 
public function getMonthName($month,$width='wide',$standAlone=false)
{
    if($standAlone)
        return isset($this->_data['monthNamesSA'][$width][$month]) ? $this->_data['monthNamesSA'][$width][$month] : $this->_data['monthNames'][$width][$month];
    else
        return isset($this->_data['monthNames'][$width][$month]) ? $this->_data['monthNames'][$width][$month] : $this->_data['monthNamesSA'][$width][$month];
}
| 
 
public array getMonthNames(string $width='wide', boolean $standAlone=false) 
 | ||
| $width | string | month name width. It can be 'wide', 'abbreviated' or 'narrow'. | 
| $standAlone | boolean | whether the month names should be returned in stand-alone format | 
| {return} | array | month names indexed by month values (1-12) | 
public function getMonthNames($width='wide',$standAlone=false)
{
    if($standAlone)
        return isset($this->_data['monthNamesSA'][$width]) ? $this->_data['monthNamesSA'][$width] : $this->_data['monthNames'][$width];
    else
        return isset($this->_data['monthNames'][$width]) ? $this->_data['monthNames'][$width] : $this->_data['monthNamesSA'][$width];
}
Returns the month names in the specified width.
| 
 
public CNumberFormatter getNumberFormatter() 
 | ||
| {return} | CNumberFormatter | the number formatter for this locale | 
public function getNumberFormatter()
{
    if($this->_numberFormatter===null)
        $this->_numberFormatter=new CNumberFormatter($this);
    return $this->_numberFormatter;
}
| 
 
public string getNumberSymbol(string $name) 
 | ||
| $name | string | symbol name | 
| {return} | string | symbol | 
public function getNumberSymbol($name)
{
    return isset($this->_data['numberSymbols'][$name]) ? $this->_data['numberSymbols'][$name] : null;
}
| 
 
public string getOrientation() 
 | ||
| {return} | string | the character orientation, which is either 'ltr' (left-to-right) or 'rtl' (right-to-left) | 
public function getOrientation()
{
    return isset($this->_data['orientation']) ? $this->_data['orientation'] : 'ltr';
}
| 
 
public string getPMName() 
 | ||
| {return} | string | the PM name | 
public function getPMName()
{
    return $this->_data['pmName'];
}
| 
 
public string getPercentFormat() 
 | ||
| {return} | string | the percent format | 
public function getPercentFormat()
{
    return $this->_data['percentFormat'];
}
| 
 
public array getPluralRules() 
 | ||
| {return} | array | plural forms expressions | 
public function getPluralRules()
{
    return isset($this->_data['pluralRules']) ? $this->_data['pluralRules'] : array(0=>'true');
}
| 
 
public string getScientificFormat() 
 | ||
| {return} | string | the scientific format | 
public function getScientificFormat()
{
    return $this->_data['scientificFormat'];
}
| 
 
public string getScript(string $id) 
 | ||
| $id | string | Unicode script identifier from IETF BCP 47. For example, the code "en_US" represents U.S. English and "en_GB" represents British English. | 
| {return} | string | the local display name for the script. Null if the script code does not exist. | 
public function getScript($id)
{
    return $this->getLocaleDisplayName($id, 'scripts');
}
| 
 
public string getScriptID(string $id) 
 | ||
| $id | string | the locale ID to be converted | 
| {return} | string | the script ID | 
public function getScriptID($id)
{
    // normalize id
    $id = self::getCanonicalID($id);
    // find sub tags
    if(($underscorePosition=strpos($id, '_'))!==false)
    {
        $subTag = explode('_', $id);
        // script sub tags can be distinguished from territory sub tags by length
        if (strlen($subTag[1])===4)
        {
            $id = $subTag[1];
        }
        else
        {
            $id = null;
        }
    }
    else
    {
        $id = null;
    }
    return $id;
}
Converts a locale ID to a script ID. A script ID consists of only the last four characters after an underscore or dash.
| 
 
public string getTerritory(string $id) 
 | ||
| $id | string | Unicode territory identifier from IETF BCP 47. For example, the code "en_US" represents U.S. English and "en_GB" represents British English. | 
| {return} | string | the local display name for the territory. Null if the territory code does not exist. | 
public function getTerritory($id)
{
    return $this->getLocaleDisplayName($id, 'territories');
}
| 
 
public string getTerritoryID(string $id) 
 | ||
| $id | string | the locale ID to be converted | 
| {return} | string | the territory ID | 
public function getTerritoryID($id)
{
    // normalize id
    $id = self::getCanonicalID($id);
    // find sub tags
    if (($underscorePosition=strpos($id, '_'))!== false)
    {
        $subTag = explode('_', $id);
        // territory sub tags can be distinguished from script sub tags by length
        if (isset($subTag[2]) && strlen($subTag[2])<4)
        {
            $id = $subTag[2];
        }
        elseif (strlen($subTag[1])<4)
        {
            $id = $subTag[1];
        }
        else
        {
            $id = null;
        }
    }
    else
    {
        $id = null;
    }
    return $id;
}
Converts a locale ID to a territory ID. A territory ID consists of only the last two to three letter or digits after an underscore or dash.
| 
 
public string getTimeFormat(string $width='medium') 
 | ||
| $width | string | time format width. It can be 'full', 'long', 'medium' or 'short'. | 
| {return} | string | date format | 
public function getTimeFormat($width='medium')
{
    return $this->_data['timeFormats'][$width];
}
| 
 
public string getWeekDayName(integer $day, string $width='wide', boolean $standAlone=false) 
 | ||
| $day | integer | weekday (0-7, 0 and 7 means Sunday) | 
| $width | string | weekday name width. It can be 'wide', 'abbreviated' or 'narrow'. | 
| $standAlone | boolean | whether the week day name should be returned in stand-alone format | 
| {return} | string | the weekday name | 
public function getWeekDayName($day,$width='wide',$standAlone=false)
{
    $day=$day%7;
    if($standAlone)
        return isset($this->_data['weekDayNamesSA'][$width][$day]) ? $this->_data['weekDayNamesSA'][$width][$day] : $this->_data['weekDayNames'][$width][$day];
    else
        return isset($this->_data['weekDayNames'][$width][$day]) ? $this->_data['weekDayNames'][$width][$day] : $this->_data['weekDayNamesSA'][$width][$day];
}
| 
 
public array getWeekDayNames(string $width='wide', boolean $standAlone=false) 
 | ||
| $width | string | weekday name width. It can be 'wide', 'abbreviated' or 'narrow'. | 
| $standAlone | boolean | whether the week day name should be returned in stand-alone format | 
| {return} | array | the weekday names indexed by weekday values (0-6, 0 means Sunday, 1 Monday, etc.) | 
public function getWeekDayNames($width='wide',$standAlone=false)
{
    if($standAlone)
        return isset($this->_data['weekDayNamesSA'][$width]) ? $this->_data['weekDayNamesSA'][$width] : $this->_data['weekDayNames'][$width];
    else
        return isset($this->_data['weekDayNames'][$width]) ? $this->_data['weekDayNames'][$width] : $this->_data['weekDayNamesSA'][$width];
}
Returns the week day names in the specified width.
Example for retrieving currency symbol
This component is registered in the application and can thus be called as follows:
echo Yii::app()->locale->getCurrencySymbol('EUR');This example shows how to retrieve the currency symbol for the Euro.
If you need Sunday to be the last week-day:
public static function getWeekDay_listData($sundayLast = true) { $weekDays = Yii::app()->locale->getWeekDayNames('wide', true); if ($sundayLast) { $sunday = $weekDays[0]; unset($weekDays[0]); $weekDays[0] = $sunday; } return $weekDays; }Signup or Login in order to comment.