问题
我想知道客户端系统使用什么语言和输入法
解决办法
使用flash.system.Capabilities.language 属性和flash.system.IME 类
讨论
flash.system.Capabilities.language 属性给出客户端系统的语言,返回两个ISO-639-1 字符
(如"fr" 代表French). 有些国家代码两个字符是不合适的,比如( "zh-CN" 代表Simplified
Chinese 和"zh-TW" 代表Traditional Chinese).
下面的代码展示如何使用语言属性:
// 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, 等.
//从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, which will return true or
false. Then use the flash.system.IME 类返回关于输入法的信息。flash.system.IME.enabled 属性设
置用户是否可以使用输入法。在有些操作系统和版本上你可以发送字符串给IME 来转换成正确
的字符,接受IME 的返回,但这不是所有操作系统都支持的,最好检测下先。
相关文章
- Java语言------图书馆管理系统(入门简略版)
- 『C语言』系统日期&时间
- 【微机实验系列】汇编语言和DOS系统
- ubuntu安装了im-switch后系统设置中不见了语言支持
- 《全栈营销之如何制作个人博客》之一:用什么开发语言和CMS系统
- 用C语言写一个程序,得出当前系统的整形数字长(16位,32位,64位)等,不能使用sizeof()
- IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
- 工信部公示网络安全示范项目 网易云易盾“自适应DDoS攻击深度检测和防御系统”入选
- 一文详解Yolov5——基于Yolov5的火灾检测系统
- 嵌入式系统内存泄漏检测