Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Класс fl.lang.Locale позволяет управлять отображением многоязыкового текста в SWF-файле. Панель "Строки" позволяет использовать в программе Flash идентификаторы строк вместо строковых литералов в динамических текстовых полях. Благодаря этому, можно создать SWF-файл, показывающий текст на том или ином языке, который загружается из XML-файла. XML-файл должен иметь формат XLIFF (расширяемый платформенно-независимый стандарт для обмена данными локализации). Существует три способа показа строк на определенном языке, содержащихся в XLIFF-файлах:
-
"автоматически при исполнении"
— Flash Player заменяет идентификаторы строк строками из XML-файла, совпадающими с кодом системного языка по умолчанию, который возвращается flash.system.capabilities.language;
-
"вручную с помощью языка рабочей области"
— идентификаторы строк заменяются строками на стадии компиляции, которые нельзя изменить с помощью Flash Player;
-
"с использованием ActionScript при исполнении"
— замена идентификаторов строк контролируется с помощью ActionScript при исполнении. Этот вариант дает возможность управлять как временными, так и языковыми параметрами при замене идентификаторов строк.
Свойства и методы этого класса можно использовать, если требуется заменить идентификаторы строк "с помощью ActionScript при исполнении".
Все доступные свойства и методы являются статическими. Это означает, что они могут быть доступны благодаря классу fl.lang.Locale как таковому, а не экземпляру этого класса.
Примечание. Подкаталоги класса Locale определяются путем в средстве разработки Flash и автоматически компилируются в SWF-файлы пользователя. Применение класса Locale немного увеличивает размер SWF-файла, поскольку этот класс компилируется в него.
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: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: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
}
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");
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");
}
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");
}
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");
}
}
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();
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");
}
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");
}
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
}
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");
}
}
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");
}
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
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Wed Sep 24 2008, 07:56 AM -07:00