3.4.检测系统语言

问题
我想知道客户端系统使用什么语言和输入法
解决办法
使用flash.system.Capabilities.language 属性和flash.system.IME 类
讨论
flash.system.Capabilities.language 属性给出客户端系统的语言,返回两个ISO-639-1 字符(如"fr" 代表French). 有些国家代码两个字符是不合适的,比如( "zh-CN" 代表Simplified Chinese
和"zh-TW" 代表Traditional Chinese).

下面的代码展示如何使用语言属性:
+展开
-ActionScript
// Example output: en-US
trace(flash.system.Capabilities.language);
var greetings:Array = new Array( );
greetings["en"] = "Hello";
greetings["es"] = "Hola";
greetings["fr"] = "Bonjour";
var lang:String = flash.system.Capabilities.language.substr(0, 2);
if (greetings[lang] == undefined) {
lang = "en";
}
trace(greetings[lang]);

如果要创建国际化的Flash,可以把文本保存在数组里,根据语言动态显示,或者直接做成多个Flash版本(每个语言一个),如myMovie_en.swf, myMovie_es.swf, myMovie_fr.swf, 等.
+展开
-ActionScript
//从capabilities 对象上得到语言值
var lang:String = System.capabilities.language.substr(0, 2);
// 创建支持语言数组
var supportedLanguages:Array = ["en""es""fr"];
// 设置默认语言.
var useLang:String = "en";
//循环匹配,如果找到,设置useLang
for (var i:int = 0; i < supportedLanguages.length; i++) {
if (supportedLanguages[i] == lang) {
useLang = lang;
break;
}
}
// 载入对应Flash
var movieURL:String = "myMovie_" + useLang + ".swf");

还有一点也很重要,比如用户使用的输入语言,比如中文,日文,韩文,输入这些字符需要输入法,这时特定操作系统的一部分。

为了检测用户使用什么输入法, flash.system.Capabilities.hasIME 返回true 或false ,flash.system.IME 类返回关于输入法的信息。flash.system.IME.enabled 属性设置用户是否可以使用输入法。在有些操作系统和版本上你可以发送字符串给IME 来转换成正确的字符,接受IME的返回,但这不是所有操作系统都支持的,最好检测下先。

加支付宝好友偷能量挖...


评论(0)网络
阅读(123)喜欢(0)flash/flex/fcs/AIR