패키지fl.lang
클래스public class Locale
상속Locale Inheritance EventDispatcher Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

fl.lang.Locale 클래스를 사용하면 SWF 파일에 다국어 텍스트가 표시되는 방법을 제어할 수 있습니다. Flash [문자열] 패널에서는 동적 텍스트 필드에 문자열 리터럴 대신 문자열 ID를 사용할 수 있습니다. 따라서 언어별 XML 파일에서 로드된 텍스트를 표시하는 SWF 파일을 만들 수 있습니다. XML 파일은 XLIFF(XML Localization Interchange File Format)를 사용해야 합니다. XLIFF 파일에 포함된 언어별 문자열을 표시하는 데는 세 가지 방법이 있습니다.

"런타임에 ActionScript를 사용하여" 문자열 ID를 바꾸려는 경우 이 클래스의 속성과 메서드를 사용할 수 있습니다.

사용 가능한 속성과 메서드는 모두 정적 요소이므로, 클래스 인스턴스가 아닌 fl.lang.Locale 클래스 자체를 통해 액세스할 수 있습니다.

참고: Locale 클래스는 Flash 제작 클래스 경로에 설치되어 있으며 자동으로 SWF 파일로 컴파일됩니다. 따라서 Locale 클래스를 사용하면 이 Locale 클래스가 SWF로 컴파일되므로 SWF 파일의 크기가 조금 커집니다.

참고 사항

flash.system.Capabilities.language


Public 속성
 속성다음에 의해 정의됨
  autoReplace : Boolean
[정적] XML 파일을 로드한 후 문자열을 자동으로 바꿀지 여부를 결정합니다.
Locale
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  languageCodeArray : Array
[정적] [읽기 전용] 지정되었거나 FLA 파일로 로드된 언어의 언어 코드가 포함된 배열입니다.
Locale
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
  stringIDArray : Array
[정적] [읽기 전용] FLA 파일의 모든 문자열 ID가 포함된 배열입니다.
Locale
Public 메서드
 메서드다음에 의해 정의됨
  
addDelayedInstance(instance:Object, stringID:String):*
[정적] 나중에 사용할 수 있도록 내부 배열에 {instance, string ID} 쌍을 추가합니다.
Locale
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
EventDispatcher
  
addXMLPath(langCode:String, path:String):void
[정적] 나중에 사용할 수 있도록 내부 배열에 {languageCode 및 languagePath} 쌍을 추가합니다.
Locale
  
[정적] XML 파일이 로드되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
Locale
 Inherited
이벤트를 이벤트 흐름으로 전달합니다.
EventDispatcher
  
[정적] [문자열] 패널 대화 상자에서 설정했거나 setDefaultLang() 메서드를 호출하여 얻은 기본 언어 코드입니다.
Locale
 Inherited
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
  
[정적] 사용할 언어를 자동으로 결정하고 XML 언어 파일을 로드합니다.
Locale
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
  
loadLanguageXML(xmlLanguageCode:String, customXmlCompleteCallback:Function = null):void
[정적] 지정한 XML 언어 파일을 로드합니다.
Locale
  
[정적] 현재 언어의 지정된 문자열 ID와 관련된 문자열 값을 반환합니다.
Locale
  
loadStringEx(stringID:String, languageCode:String):String
[정적] 지정된 문자열 ID 및 언어 코드와 관련된 문자열 값을 반환합니다.
Locale
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher 객체에서 리스너를 제거합니다.
EventDispatcher
  
[정적] 기본 언어 코드를 설정합니다.
Locale
  
setLoadCallback(loadCallback:Function):*
[정적] XML 파일을 로드한 후 호출할 콜백 함수를 설정합니다.
Locale
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
  
setString(stringID:String, languageCode:String, stringValue:String):void
[정적] 지정된 문자열 ID 및 언어 코드의 새로운 문자열 값을 설정합니다.
Locale
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
 Inherited
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
이벤트
 이벤트 요약 다음에 의해 정의됨
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다.EventDispatcher
속성 정보
autoReplace속성
autoReplace:Boolean  [읽기/쓰기]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

XML 파일을 로드한 후 문자열을 자동으로 바꿀지 여부를 결정합니다. true로 설정된 경우 텍스트 대체 방법은 [문자열] 패널의 "automatically at runtime" 설정과 동일합니다. 따라서 Flash Player에서는 호스트 환경의 기본 언어를 파악하여 자동으로 해당 언어로 텍스트를 표시합니다. false로 설정된 경우 텍스트 대체 방법은 [문자열] 패널의 "via ActionScript at runtime" 설정과 동일합니다. 따라서 텍스트를 표시하려면 해당 XML 파일을 직접 로드해야 합니다.

이 속성의 기본값은 [문자열] 패널 대화 상자에서 선택한 [문자열 바꾸기] 설정에 따라 결정됩니다. "automatically at runtime"(기본 설정)인 경우에는 true가, "via ActionScript at runtime"인 경우에는 false가 됩니다.



구현
    public static function get autoReplace():Boolean
    public function set autoReplace(value:Boolean):void

예제
다음 예제에서는 Locale.autoReplace 속성을 사용하여 영어 XML 파일의 IDS_GREETING 문자열 내용으로 스테이지의 동적으로 만든 greeting_txt 텍스트 필드를 채웁니다. [문자열] 패널에서 [설정] 버튼을 클릭하여 [설정] 대화 상자를 엽니다. [설정] 대화 상자를 사용하여 두 개의 활성 언어(예: 영어(en) 및 프랑스어(fr))를 추가하고 문자열 바꾸기 라디오 옵션을 "via ActionScript at runtime"로 설정한 다음 [확인]을 클릭합니다. 마지막으로 [문자열] 패널에 IDS_GREETING라는 문자열 ID를 입력한 다음 각 활성 언어에 대한 텍스트를 추가합니다.
var greeting_txt:TextField = new TextField();
     greeting_txt.x = 40;
     greeting_txt.y = 40;
     greeting_txt.width = 200;
     greeting_txt.height = 20;
     greeting_txt.autoSize = TextFieldAutoSize.LEFT;
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.loadLanguageXML("en");
languageCodeArray속성 
languageCodeArray:Array  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

지정되었거나 FLA 파일로 로드된 언어의 언어 코드가 포함된 배열입니다. 이 언어 코드는 알파벳순으로 정렬되지 않습니다.



구현
    public static function get languageCodeArray():Array

예제
다음 예제에서는 ComboBox 구성 요소의 현재 값을 기준으로 XML 언어 파일을 로드합니다. ComboBox 구성 요소를 스테이지로 드래그하고 인스턴스 이름을 lang_cb로 지정합니다. [텍스트] 도구를 사용하여 동적 텍스트 필드를 만들고 인스턴스 이름을 greeting_txt로 지정합니다. [문자열] 패널에서 두 개 이상의 활성 언어를 추가하고 문자열 바꾸기 라디오 옵션을 "via ActionScript at runtime"로 설정한 다음 [확인]을 클릭합니다. 그런 다음, IDS_GREETING의 문자열 ID를 추가하고 각 활성 언어에 대한 텍스트를 입력합니다. 마지막으로, 다음 ActionScript 코드를 기본 타임라인의 프레임 1에 추가합니다.
Locale.setLoadCallback(localeListener);
     lang_cb.dataProvider = Locale.languageCodeArray.sort();
     lang_cb.addEventListener("change", langListener);
     
     function langListener(eventObj:Object):void {
      Locale.loadLanguageXML(eventObj.target.value);
     }
     function localeListener(success:Boolean):void {
      if (success) {
          greeting_txt.text = Locale.loadString("IDS_GREETING");
      } else {
          greeting_txt.text = "unable to load language XML file.";
      }
     }
stringIDArray속성 
stringIDArray:Array  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

FLA 파일의 모든 문자열 ID가 포함된 배열입니다. 문자열 ID는 알파벳순으로 정렬되지 않습니다.



구현
    public static function get stringIDArray():Array

예제
다음 예제에서는 현재 로드되어 있는 XML 언어 파일의 Locale.stringIDArray 속성을 추적합니다. [문자열] 패널의 [설정] 버튼을 클릭하여 [설정] 대화 상자를 엽니다. 그런 다음 두 개의 활성 언어(예: 영어(en) 및 프랑스어(fr))를 추가하고 문자열 바꾸기 라디오 컨트롤을 "via ActionScript at runtime"로 설정한 다음 [확인]을 클릭합니다. [문자열] 패널에서 IDS_GREETING이라는 문자열 ID를 추가한 다음 각 활성 언어에 대한 텍스트를 추가합니다.
Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("fr");
     function localeCallback(success:Boolean) {
      trace(success);
      trace(Locale.stringIDArray); // IDS_GREETING
      trace(Locale.loadStringEx("IDS_GREETING", "fr")); // bonjour
     }
메서드 정보
addDelayedInstance()메서드
public static function addDelayedInstance(instance:Object, stringID:String):*

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

나중에 사용할 수 있도록 내부 배열에 {instance, string ID} 쌍을 추가합니다. 이 메서드는 문자열 대체 방법이 "automatically at runtime"인 경우 Flash에서 기본적으로 사용됩니다.

매개 변수

instance:Object — 채울 텍스트 필드의 인스턴스 이름입니다.
 
stringID:String — 언어 문자열 ID입니다.

반환값
*

예제
다음 예제에서는 autoReplace 속성과 addDelayedInstance() 메서드를 사용하여 영어 XML 언어 파일의 IDS_GREETING 문자열로 스테이지의 텍스트 필드를 채웁니다.
greeting_txt.autoSize = TextFieldAutoSize.LEFT;
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.loadLanguageXML("en");
addXMLPath()메서드 
public static function addXMLPath(langCode:String, path:String):void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

나중에 사용할 수 있도록 내부 배열에 {languageCode 및 languagePath} 쌍을 추가합니다. 이 메서드는 문자열 바꾸기 방법이 "automatically at runtime" 또는 "via ActionScript at runtime"인 경우 Flash에서 기본적으로 사용됩니다.

매개 변수

langCode:String — 언어 코드입니다.
 
path:String — 추가할 XML 경로입니다.


예제
다음 예제에서는 setInterval() 메서드를 사용하여 XML 언어 파일이 성공적으로 로드되었는지 확인합니다.
Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
checkXMLStatus()메서드 
public static function checkXMLStatus():Boolean

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

XML 파일이 로드되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

반환값
Boolean — XML 파일이 로드되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예제
다음 예제에서는 간격을 사용하여 10밀리초마다 언어 파일이 성공적으로 로드되었는지 확인합니다. XML 파일이 로드되면 스테이지의 greeting_txt 텍스트 필드 인스턴스가 해당 XML 언어 파일의 IDS_GREETING 문자열로 채워집니다.
Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
getDefaultLang()메서드 
public static function getDefaultLang():String

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

[문자열] 패널 대화 상자에서 설정했거나 setDefaultLang() 메서드를 호출하여 얻은 기본 언어 코드입니다.

반환값
String — 기본 언어 코드를 반환합니다.

참고 사항


예제
다음 예제에서는 Flash 문서의 초기 기본 언어를 유지하는 데 사용되는 defLang이라는 변수를 만듭니다. [문자열] 패널의 [설정] 버튼을 클릭하여 [설정] 대화 상자를 시작합니다. 그런 다음 두 개의 활성 언어(예: 영어(en) 및 프랑스어(fr))를 추가하고 문자열 바꾸기 라디오 컨트롤을 "via ActionScript at runtime"로 설정한 다음 [확인]을 클릭합니다. [문자열] 패널에서 IDS_GREETING이라는 문자열 ID를 추가한 다음 각 활성 언어에 대한 텍스트를 추가합니다.
var defLang:String = "fr";
     Locale.setDefaultLang(defLang);
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML(Locale.getDefaultLang());
     function localeCallback(success:Boolean) {
      if (success) {
          trace(Locale.stringIDArray); // IDS_GREETING
          trace(Locale.loadString("IDS_GREETING"));
      } else {
          trace("unable to load XML");
      }
     }
initialize()메서드 
public static function initialize():void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

사용할 언어를 자동으로 결정하고 XML 언어 파일을 로드합니다. 이 메서드는 문자열 대체 방법이 "automatically at runtime"인 경우 Flash에서 기본적으로 사용됩니다.


예제
이 예제에서는 initialize() 메서드를 사용하여 사용자의 현재 운영 체제 언어로 스테이지의 greeting_txt 텍스트 필드를 자동으로 채우는 방법을 보여 줍니다. initialize() 메서드를 직접 사용하는 대신 문자열 바꾸기 방법으로 "automatically at runtime"를 사용합니다.
trace(System.capabilities.language);
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.initialize();
loadLanguageXML()메서드 
public static function loadLanguageXML(xmlLanguageCode:String, customXmlCompleteCallback:Function = null):void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

지정한 XML 언어 파일을 로드합니다.

매개 변수

xmlLanguageCode:String — 로드할 XML 언어 파일의 언어 코드입니다.
 
customXmlCompleteCallback:Function (default = null) — XML 언어 파일이 로드될 때 호출할 사용자 정의 콜백 함수입니다.


예제
다음 예제에서는 loadLanguageXML() 메서드를 사용하여 영어(en) XML 언어 파일을 로드합니다. 언어 파일이 로드되면 localeCallback() 메서드가 호출되어 XML 파일의 IDS_GREETING 문자열 내용으로 스테이지의 greeting_txt 텍스트 필드를 채웁니다.
Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
loadString()메서드 
public static function loadString(id:String):String

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

현재 언어의 지정된 문자열 ID와 관련된 문자열 값을 반환합니다.

매개 변수

id:String — 로드할 문자열의 식별(ID) 번호입니다.

반환값
String — 현재 언어의 지정된 문자열 ID와 관련된 문자열 값입니다.

참고 사항


예제
다음 예제에서는 간격을 사용하여 10밀리초마다 언어 파일이 성공적으로 로드되었는지 확인합니다. XML 파일이 로드되면 스테이지의 greeting_txt 텍스트 필드 인스턴스가 해당 XML 언어 파일의 IDS_GREETING 문자열로 채워집니다.
Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
loadStringEx()메서드 
public static function loadStringEx(stringID:String, languageCode:String):String

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

지정된 문자열 ID 및 언어 코드와 관련된 문자열 값을 반환합니다. 원치 않는 XML 파일이 로드되지 않도록 XML 파일이 아직 로드되지 않은 경우 loadStringEx()는 해당 XML 언어 파일을 로드하지 않습니다. XML 언어 파일을 로드하려면 loadLanguageXML() 메서드를 호출할 적당한 시기를 결정해야 합니다.

매개 변수

stringID:String — 로드할 문자열의 식별(ID) 번호입니다.
 
languageCode:String — 언어 코드입니다.

반환값
StringlanguageCode 매개 변수에 의해 지정된 언어의 해당 문자열 ID와 관련된 문자열 값입니다.

참고 사항


예제
다음 예제에서는 loadStringEx() 메서드를 사용하여 현재 로드된 프랑스어 XML 언어 파일의 IDS_GREETING 문자열 값을 추적합니다.
Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("fr");
     function localeCallback(success:Boolean) {
      trace(success);
      trace(Locale.stringIDArray); // IDS_GREETING
      trace(Locale.loadStringEx("IDS_GREETING", "fr")); // bonjour
     }
setDefaultLang()메서드 
public static function setDefaultLang(langCode:String):void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

기본 언어 코드를 설정합니다.

매개 변수

langCode:String — 언어 코드를 나타내는 문자열입니다.

참고 사항


예제
다음 예제에서는 Flash 문서의 초기 기본 언어를 유지하는 데 사용되는 defLang이라는 변수를 만듭니다. [문자열] 패널의 [설정] 버튼을 클릭하여 [설정] 대화 상자를 엽니다. 그런 다음 두 개의 활성 언어(예: 영어(en) 및 프랑스어(fr))를 추가하고 문자열 바꾸기 라디오 컨트롤을 "via ActionScript at runtime"로 설정한 다음 [확인]을 클릭합니다. [문자열] 패널에서 IDS_GREETING이라는 문자열 ID를 추가한 다음 각 활성 언어에 대한 텍스트를 추가합니다.
var defLang:String = "fr";
     Locale.setDefaultLang(defLang);
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML(Locale.getDefaultLang());
     function localeCallback(success:Boolean) {
      if (success) {
          trace(Locale.stringIDArray); // IDS_GREETING
          trace(Locale.loadString("IDS_GREETING"));
      } else {
          trace("unable to load XML");
      }
     }
setLoadCallback()메서드 
public static function setLoadCallback(loadCallback:Function):*

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

XML 파일을 로드한 후 호출할 콜백 함수를 설정합니다.

매개 변수

loadCallback:Function — XML 언어 파일이 로드될 때 호출할 함수입니다.

반환값
*

예제
다음 예제에서는 간격을 사용하여 10밀리초마다 언어 파일이 성공적으로 로드되었는지 확인합니다. XML 파일이 로드되면 스테이지의 greeting_txt 텍스트 필드 인스턴스가 해당 XML 언어 파일의 IDS_GREETING 문자열로 채워집니다.
Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
setString()메서드 
public static function setString(stringID:String, languageCode:String, stringValue:String):void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

지정된 문자열 ID 및 언어 코드의 새로운 문자열 값을 설정합니다.

매개 변수

stringID:String — 설정할 문자열의 식별(ID) 번호입니다.
 
languageCode:String — 언어 코드입니다.
 
stringValue:String — 문자열 값입니다.


예제
다음 예제에서는 setString() 메서드를 사용하여 영어(en)와 프랑스어(fr) 둘 다에 대해 IDS_WELCOME 문자열을 설정합니다.
Locale.setString("IDS_WELCOME", "en", "hello");
     Locale.setString("IDS_WELCOME", "fr", "bonjour");
     trace(Locale.loadStringEx("IDS_WELCOME", "en")); // hello