Локаль задает определенную комбинацию языковых и культурных норм для страны или области.
Идентификатором локали можно безопасно управлять как строкой. Но можно использовать класс LocaleID для получения дополнительной информации, относящейся к локали.
Объект LocaleID создается следующим образом:
var locale:LocaleID = new LocaleID("es-MX");
После создания объекта LocaleID можно получить данные об идентификаторе локали. Для этого следует использовать методы
getKeysAndValues()
,
getLanguage()
,
getRegion()
,
getScript()
,
getVariant()
,
isRightToLeft()
и свойство
name
.
Значения, полученные с помощью этих методов и свойств, могут содержать дополнительную информацию о локали, извлечение которой из идентификатора локали напрямую может быть невозможно.
Когда приложение создает службу локали, например средство форматирования даты, должна быть указана ожидаемая локаль. Список поддерживаемых локалей варьируется в зависимости от операционной системы, поэтому запрошенная локаль может быть недоступной.
Сначала проигрыватель Flash Player пытается сопоставить код языка запрошенной локали. Затем предпринимается попытка уточнения локали путем нахождения соответствующего набора правил правописания и региона. Например:
var loc:LocaleID = new LocaleID("es");
trace(loc.getLanguage()); // es
trace(loc.getScript()); // Latn
trace(loc.getRegion()); // ES
В этом примере конструктор
LocaleID()
получает данные о локали, которая лучше всего соответствует запрошенному коду языка es для данного пользователя.
Ограничение на другие локали и классы языков
Класс
fl.lang.Locale
позволяет заменить текстовые строки на основе локали с использованием пакетов ресурсов, содержащих строковые значения. Однако этот класс не поддерживает другие функции интернационализации, такие как форматирование чисел, валют или даты, сортировка и сопоставление и т. д. Помимо того, этот класс доступен только в среде Flash Professional.
Можно также получить текущий параметр языкового кода для операционной системы с помощью свойства
flash.system.Capabilities.language
. Однако при этом извлекается только двухсимвольный языковой код ISO 639-1, а не полный идентификатор локали, и поддерживается только определенный набор локалей.
В AIR 1.5 можно использовать свойство
flash.system.Capabilities.languages
. Это свойство содержит массив предпочитаемых пользователем языков интерфейса. Таким образом, на него не распространяются ограничения
Capabilities.language
.