Пакетfl.lang
Классpublic class Locale
НаследованиеLocale Inheritance EventDispatcher Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Класс fl.lang.Locale позволяет управлять отображением многоязыкового текста в SWF-файле. Панель "Строки" позволяет использовать в программе Flash идентификаторы строк вместо строковых литералов в динамических текстовых полях. Благодаря этому, можно создать SWF-файл, показывающий текст на том или ином языке, который загружается из XML-файла. XML-файл должен иметь формат XLIFF (расширяемый платформенно-независимый стандарт для обмена данными локализации). Существует три способа показа строк на определенном языке, содержащихся в XLIFF-файлах:

Свойства и методы этого класса можно использовать, если требуется заменить идентификаторы строк "с помощью ActionScript при исполнении".

Все доступные свойства и методы являются статическими. Это означает, что они могут быть доступны благодаря классу fl.lang.Locale как таковому, а не экземпляру этого класса.

Примечание. Подкаталоги класса Locale определяются путем в средстве разработки Flash и автоматически компилируются в SWF-файлы пользователя. Применение класса Locale немного увеличивает размер SWF-файла, поскольку этот класс компилируется в него.

См. также

flash.system.Capabilities.language


Общедоступные свойства
 СвойствоОпределено
  autoReplace : Boolean
[статические] Определяет, должны ли строки заменяться автоматически после загрузки XML-файла.
Locale
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  languageCodeArray : Array
[статические] [только для чтения] Массив, содержащий коды для языков, указанных или загруженных в FLA-файл.
Locale
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  stringIDArray : Array
[статические] [только для чтения] Массив, содержащий все идентификаторы строк в FLA-файле.
Locale
Общедоступные методы
 МетодОпределено
  
addDelayedInstance(instance:Object, stringID:String):*
[статические] Добавляет пару {экземпляр, идентификатор строки} во внутренний массив для дальнейшего использования.
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
  
[статические] Возвращает значение true, если загружен XML-файл, в противном случае возвращает значение 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
  
[статические] Возвращает строковое значение, связанное с заданным идентификатором строки, на текущем языке.
Locale
  
loadStringEx(stringID:String, languageCode:String):String
[статические] Возвращает строковое значение, связанное с заданным идентификатором строки и кодом языка.
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
[статические] Задает новое строковое значение заданного идентификатора строки и кода языка.
Locale
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
Сведения о свойстве
autoReplaceсвойство
autoReplace:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Определяет, должны ли строки заменяться автоматически после загрузки XML-файла. Если выбрано значение true, метод замены текста эквивалентен параметру панели "Строки" "автоматически при исполнении". Это значит, что Flash Player определит язык по умолчанию для среды узла и автоматически покажет текст на этом языке. Если выбрано значение false, метод замены текста эквивалентен параметру панели "Строки" "с использованием ActionScript при исполнении". Это значит, что соответствующий XML-файл, который необходим для показа текста, загружается самим пользователем.

Значение по умолчанию для этого свойства отражает параметр, выбранный в разделе "Заменить строки" диалогового окна панели "Строки": значение true означает выбор варианта "автоматически при исполнении" (по умолчанию), а значение false — выбор варианта "с использованием ActionScript при исполнении".


Реализация
    public static function get autoReplace():Boolean
    public function set autoReplace(value:Boolean):void

Пример
В следующем примере свойство Locale.autoReplace используется для заполнения динамически созданного текстового поля greeting_txt в рабочей области с содержимым строки IDS_GREETING из XML-файла для английского языка. На панели "Строки" нажмите кнопку "Параметры", чтобы открыть одноименное диалоговое окно. Здесь можно добавить два активных языка: английский (en) и французский (fr), задать с помощью переключателя вариант замены строк "с использованием ActionScript при исполнении" и нажать кнопку OK. И, наконец, необходимо ввести идентификатор строки IDS_GREETING на панели "Строки" и добавить текст для каждого активного языка.
     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

Пример
В следующем примере загружается языковой XML-файл, который основан на текущем значении компонента ComboBox. Компонент ComboBox необходимо перетащить в рабочую область, а затем присвоить этому экземпляру имя lang_cb. С помощью инструмента "Текст" создается динамическое текстовое поле, и этому экземпляру присваивается имя greeting_txt. На панели "Строки" необходимо добавить, по меньшей мере, два активных языка, выбрать с помощью переключателя вариант замены строк "с использованием ActionScript при исполнении" и нажать OK. Затем следует добавить идентификатор строки IDS_GREETING и ввести текст для каждого активного языка. В конце концов, в Кадр 1 основной временной шкалы добавляется следующий код ActionScript:
     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-файле. Идентификаторы строк не сортируются в алфавитном порядке.


Реализация
    public static function get stringIDArray():Array

Пример
В следующем примере свойство Locale.stringIDArray отслеживается для загруженного в данный момент языкового XML-файла. Нажмите кнопку "Параметры" на панели "Строки", чтобы открыть одноименное диалоговое окно. Затем необходимо добавить два активных языка: английский (en) и французский (fr), выбрать с помощью переключателя замены строк настройку "с использованием ActionScript при исполнении" и нажать кнопку OK. На панели "Строки" добавляется идентификатор строки 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
     }
     
Сведения о методе
addDelayedInstance()метод
public static function addDelayedInstance(instance:Object, stringID:String):*

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Добавляет пару {экземпляр, идентификатор строки} во внутренний массив для дальнейшего использования. Как правило, программа Flash задействует этот метод, когда для замены строк выбран метод "автоматически при исполнении".

Параметры

instance:Object — Имя экземпляра заполняемого текстового поля.
 
stringID:String — Идентификатор строки языка.

Возвращает
*

Пример
В следующем примере свойство autoReplace и метод addDelayedInstance() используются для заполнения текстового поля в рабочей области строкой IDS_GREETING из XML-файла для английского языка.
     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} во внутренний массив для дальнейшего использования. В основном, этот вариант используется программой Flash, когда в качестве метода замены строк выбран "автоматически при исполнении" или "с использованием ActionScript при исполнении".

Параметры

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

Возвращает значение true, если загружен XML-файл; в противном случае возвращает значение false.

Возвращает
Boolean — Возвращает значение true, если загружен XML-файл; в противном случае возвращает значение false.

Пример
В следующем примере используется интервал в 10 миллисекунд для проверки успешной загрузки языкового файла. После загрузки XML-файла экземпляр текстового поля greeting_txt в рабочей области заполняется строкой IDS_GREETING из языкового 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");
     }
     
getDefaultLang()метод 
public static function getDefaultLang():String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Код языка по умолчанию, задаваемый в диалоговом окне панели "Строки" или путем вызова метода setDefaultLang().

Возвращает
String — Возвращает код языка, используемого по умолчанию.

См. также


Пример
В следующем примере создается переменная defLang, которая определяет исходный язык по умолчанию для документа Flash. Нажмите кнопку "Параметры" на панели "Строки", чтобы открыть одноименное диалоговое окно. Затем необходимо добавить два активных языка: английский (en) и французский (fr), выбрать с помощью переключателя замены строк "с использованием ActionScript при исполнении" и нажать кнопку OK. На панели "Строки" добавляется идентификатор строки IDS_GREETING, а затем текст для каждого активного языка.
     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-файл языка. Как правило, программа Flash задействует этот метод, когда для замены строк выбран метод "автоматически при исполнении".


Пример
В этом примере показано, как с помощью метода initialize() автоматически заполнить текстовое поле greeting_txt в рабочей области, указав текущий язык операционной системы пользователя. Вместо применения метода initialize() напрямую выберите метод замены строк "автоматически при исполнении".
     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() применяется для загрузки языкового XML-файла для английского языка (en). После завершения загрузки языкового файла вызывается метод localeCallback(), а текстовое поле greeting_txt в рабочей области заполняется содержимым строки IDS_GREETING из 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");
     }
     
loadString()метод 
public static function loadString(id:String):String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает строковое значение, связанное с заданным идентификатором строки, на текущем языке.

Параметры

id:String — Идентификационный номер (ID) загружаемой строки.

Возвращает
String — Строковое значение, связанное с заданным идентификатором строки, на текущем языке.

См. также


Пример
В следующем примере используется интервал в 10 миллисекунд для проверки успешной загрузки языкового файла. После загрузки XML-файла экземпляр текстового поля greeting_txt в рабочей области заполняется строкой IDS_GREETING из языкового 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");
     }
     
loadStringEx()метод 
public static function loadStringEx(stringID:String, languageCode:String):String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает строковое значение, связанное с заданным идентификатором строки и кодом языка. Во избежание неожиданной загрузки XML-файла метод loadStringEx() не загружает языковой XML-файл, если он еще не загружен. Необходимо выбрать правильное время вызова метода loadLanguageXML(), если требуется загрузить языковой XML-файл.

Параметры

stringID:String — Идентификационный номер (ID) загружаемой строки.
 
languageCode:String — Код языка.

Возвращает
String — Строковое значение, связанное с указанным идентификатором строки в языке, указанном параметром languageCode.

См. также


Пример
В следующем примере метод loadStringEx() используется для отслеживания значения строки IDS_GREETING для загруженного в данный момент XML-файла для французского языка.
     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 — Строка, представляющая код языка.

См. также


Пример
В следующем примере создается переменная defLang, которая определяет исходный язык по умолчанию для документа Flash. Нажмите на кнопку "Параметры" на панели "Строки", чтобы открыть одноименное диалоговое окно. Затем необходимо добавить два активных языка: английский (en) и французский (fr), выбрать с помощью переключателя замены строк "с использованием ActionScript при исполнении" и нажать кнопку OK. На панели "Строки" добавляется идентификатор строки IDS_GREETING, а затем текст для каждого активного языка.
     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 в рабочей области заполняется строкой IDS_GREETING из языкового 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");
     }
     
setString()метод 
public static function setString(stringID:String, languageCode:String, stringValue:String):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Задает новое строковое значение заданного идентификатора строки и кода языка.

Параметры

stringID:String — Идентификационный номер (ID) задаваемой строки.
 
languageCode:String — Код языка.
 
stringValue:String — Строковое значение.


Пример
В следующем примере метод setString() применяется, чтобы задать строку IDS_WELCOME для английского (en) и французского (fr) языков.
     Locale.setString("IDS_WELCOME", "en", "hello");
     Locale.setString("IDS_WELCOME", "fr", "bonjour");
     trace(Locale.loadStringEx("IDS_WELCOME", "en")); // hello