////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package mx.resources
{
import mx.managers.ISystemManager;
/**
* The Locale class can be used to parse a locale String such as "en_US_MAC"
* into its three parts: a language code, a country code, and a variant.
*
*
The localization APIs in the IResourceManager and IResourceBundle * interfaces use locale Strings rather than Locale instances, * so this class is seldom used in an application.
* * @see mx.resources.IResourceBundle * @see mx.resources.IResourceManager * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class Locale { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Class variables // //-------------------------------------------------------------------------- /** * @private */ private static var currentLocale:Locale; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. * * @param localeString A 1-, 2-, or 3-part locale String, * such as"en", "en_US", or "en_US_MAC".
* The parts are separated by underscore characters.
* The first part is a two-letter lowercase language code
* as defined by ISO-639, such as "en" for English.
* The second part is a two-letter uppercase country code
* as defined by ISO-3166, such as "US" for the United States.
* The third part is a variant String, which can be used
* to optionally distinguish multiple locales for the same language and country.
* It is sometimes used to indicate the operating system
* that the locale should be used with, such as "MAC", "WIN", or "UNIX".
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function Locale(localeString:String)
{
super();
this.localeString = localeString;
var parts:Array = localeString.split("_");
if (parts.length > 0)
_language = parts[0];
if (parts.length > 1)
_country = parts[1];
if (parts.length > 2)
_variant = parts.slice(2).join("_");
}
//--------------------------------------------------------------------------
//
// Variables
//
//--------------------------------------------------------------------------
/**
* @private
*/
private var localeString:String;
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// language
//----------------------------------
/**
* @private
* Storage for the language property.
*/
private var _language:String;
[Inspectable(category="General", defaultValue="null")]
/**
* The language code of this Locale instance. [Read-Only]
*
*
* var locale:Locale = new Locale("en_US_MAC");
* trace(locale.language); // outputs "en"
*
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get language():String
{
return _language;
}
//----------------------------------
// country
//----------------------------------
/**
* @private
* Storage for the country property.
*/
private var _country:String;
[Inspectable(category="General", defaultValue="null")]
/**
* The country code of this Locale instance. [Read-Only]
*
*
* var locale:Locale = new Locale("en_US_MAC");
* trace(locale.country); // outputs "US"
*
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get country():String
{
return _country
}
//----------------------------------
// variant
//----------------------------------
/**
* @private
* Storage for the variant property.
*/
private var _variant:String;
[Inspectable(category="General", defaultValue="null")]
/**
* The variant part of this Locale instance. [Read-Only]
*
*
* var locale:Locale = new Locale("en_US_MAC");
* trace(locale.variant); // outputs "MAC"
*
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get variant():String
{
return _variant;
}
//--------------------------------------------------------------------------
//
// Methods
//
//--------------------------------------------------------------------------
/**
* Returns the locale String that was used to construct
* this Locale instance. For example:
*
*
* var locale:Locale = new Locale("en_US_MAC");
* trace(locale.toString()); // outputs "en_US_MAC"
*
*
* @return Returns the locale String that was used to
* construct this Locale instance.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function toString():String
{
return localeString;
}
}
}