flex 檢測系統語言

問題
我想知道客戶端系統使用什麼語言和輸入法
解決辦法
使用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 的返回,但這不是所有操作系統都支持的,最好檢測下先。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章