确定区域设置

Flash Player 10.1 和更高版本,Adobe AIR 2.0 和更高版本

区域设置标识某个国家/地区或区域的语言和文化约定的特定组合。

可以将区域设置标识符作为字符串安全地管理。但您可以使用 LocaleID 类获取与区域设置有关的其他信息。

您可以按如下方式创建 LocaleID 对象:

var locale:LocaleID = new LocaleID("es-MX");

创建 LocaleID 对象后,您可以检索有关区域设置 ID 的数据。使用 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”最匹配的区域设置的数据。

设置区域设置 ID

有多个方法可以设置应用程序的当前区域设置,包括:

  • 将单个区域设置 ID 硬编码到应用程序中。虽然这种方法很常见,但它不支持应用程序的国际化。

  • 使用用户的操作系统、浏览器或其他用户首选项中的区域设置 ID 首选参数。此技术通常为用户提供最佳的区域设置设置,但并非始终是准确的。操作系统设置有可能不反映用户的实际首选参数。例如,用户可能会使用共享计算机并且无法更改操作系统的首选区域设置。

  • 在根据用户的首选参数设置区域设置 ID 后,允许用户从支持的区域设置列表中进行选择。如果您的应用程序可以支持多个区域设置,此策略通常是最佳选择。

您可以按如下方式实现第三个选项:

  1. 从用户配置文件、浏览器设置、操作系统设置或 Cookie 中检索用户的首选区域设置或语言的列表。(您的应用程序需要自行实现此逻辑。flash.globalization 库不支持直接读取此类首选参数。)

  2. 确定您的应用程序支持其中哪些区域设置并默认选择最佳区域设置。使用 LocaleID.determinePreferredLocales() 根据用户首选区域设置和操作系统支持的区域设置为用户查找最佳的区域设置。

  3. 如果默认区域设置不合适,为用户提供更改默认区域设置设置的方法。

其他区域设置和语言类的限制

通过 fl.lang.Locale 类,您可以使用包含字符 值的资源捆绑,基于区域设置替换文本字符串。但是,此类不支持数字、货币或日期格式化、排序和匹配等其他国际化功能。此外,此类仅用于 Flash Professional。

您还可以使用 flash.system.Capabilities.language 属性检索操作系统的当前语言代码设置。但是,此属性仅检索双字符 ISO 639-1 语言代码,而不是完整的区域设置 ID,并且只支持特定的区域设置组。

通过 AIR 1.5,您可以使用 flash.system.Capabilities.languages 属性。此属性提供一个用户的首选用户界面语言的数组。因此,它不受 Capabilities.language 的限制。