2007年1月20日星期六

国际化与本地化js实现:Locale.js

Locale.js (object)
---------------------------------
demo:
<script src="Locale.js"></script>
<script>/*<![CDATA[
 
Locale.getCode(); // may return 'zh-cn'
 
/*]]>*/</script>
 
code:
---------------------------------
 
/*<![CDATA[*/
/** Locale.js (static object.)
 *
http://www.xianyun.org
 * hotoo.cn@gmail.com
 */
var Locale = new Object();
Locale.Lang = new Object();

Locale.Lang['af'] = { cnName : '南非荷兰语', enName : 'Afrikaans', code : 1078};
Locale.Lang['ar-ae'] = { cnName : '阿拉伯语 - 阿拉伯联合酋长国', enName : 'Arabic – United Arab Emirates', code : 14337};
Locale.Lang['ar-bh'] = { cnName : '阿拉伯语 - 巴林', enName : 'Arabic - Bahrain', code : 15361};
Locale.Lang['ar-dz'] = { cnName : '阿拉伯语 - 阿尔及利亚', enName : 'Arabic - Algeria', code : 5121};
Locale.Lang['ar-eg'] = { cnName : '阿拉伯语 - 埃及', enName : 'Arabic - Egypt', code : 3073};
Locale.Lang['ar-iq'] = { cnName : '阿拉伯语 - 伊拉克', enName : 'Arabic - Iraq', code : 2049};
Locale.Lang['ar-jo'] = { cnName : '阿拉伯语 - 约旦', enName : 'Arabic - Jordan', code : 11265};
Locale.Lang['ar-kw'] = { cnName : '阿拉伯语 - 科威特', enName : 'Arabic - Kuwait', code : 13313};
Locale.Lang['ar-lb'] = { cnName : '阿拉伯语 - 黎巴嫩', enName : 'Arabic - Lebanon', code : 12289};
Locale.Lang['ar-ly'] = { cnName : '阿拉伯语 - 利比亚', enName : 'Arabic - Libya', code : 4097};
Locale.Lang['ar-ma'] = { cnName : '阿拉伯语 - 摩洛哥', enName : 'Arabic - Morocco', code : 6145};
Locale.Lang['ar-om'] = { cnName : '阿拉伯语 - 阿曼', enName : 'Arabic - Oman', code : 8193};
Locale.Lang['ar-qa'] = { cnName : '阿拉伯语 - 卡塔尔', enName : 'Arabic - Qatar', code : 16385};
Locale.Lang['ar-sa'] = { cnName : '阿拉伯语 - 沙特阿拉伯', enName : 'Arabic - Saudi Arabia', code : 1025};
Locale.Lang['ar-sy'] = { cnName : '阿拉伯语 - 叙利亚', enName : 'Arabic - Syria', code : 10241};
Locale.Lang['ar-tn'] = { cnName : '阿拉伯语 - 突尼斯', enName : 'Arabic - Tunisia', code : 7169};
Locale.Lang['ar-ye'] = { cnName : '阿拉伯语 - 也门', enName : 'Arabic - Yemen', code : 9217};
Locale.Lang['az-az'] = { cnName : null, enName : 'Azeri – Latin', code : 1068};
Locale.Lang ['az-az'] = { cnName : null, enName : 'Azeri – Cyrillic', code : 2092};
Locale.Lang['be'] = { cnName : '白俄罗斯语', enName : 'Belarusian', code : 1059};
Locale.Lang['bg'] = { name : 'Български', cnName : '保加利亚语', enName : 'Bulgarian', code : 1026};//!
Locale.Lang['ca'] = { cnName : '加泰罗尼亚语', enName : 'Catalan', code : 1027};
Locale.Lang['cs'] = { name : 'Čeština', cnName : '捷克语', enName : 'Czech', code : 1029};//!
Locale.Lang['da'] = { name : 'Dansk', cnName : '丹麦语', enName : 'Danish', code : 1030};//!
Locale.Lang['de'] = { name : 'Deutsch', cnName : '德语 - 标准', enName : 'German - Germany', code : 1031};//!
Locale.Lang['de-at'] = { cnName : '德语 - 奥地利', enName : 'German - Austria', code : 3079};
Locale.Lang['de-ch'] = { cnName : '德语 - 瑞士', enName : 'German - Switzerland', code : 2055};
Locale.Lang['de-de'] = Locale.Lang['de'];
Locale.Lang['de-li'] = { cnName : '德语 - 列支敦士登', enName : 'German - Liechtenstein', code : 5127};
Locale.Lang['de-lu'] = { cnName : '德语 - 卢森堡', enName : 'German - Luxembourg', code : 4103};
Locale.Lang['el'] = { cnName : '希腊语', enName : 'Greek', code : 1032};
Locale.Lang['en'] = { cnName : '英语', enName : '英语', code : 9};
Locale.Lang['en-au'] = { cnName : '英语 - 澳大利亚', enName : 'English - Australia', code : 3081};
Locale.Lang['en-bz'] = { cnName : '英语 - 伯利兹', enName : 'English - Belize', code : 10249};
Locale.Lang['en-ca'] = { cnName : '英语 - 加拿大', enName : 'English - Canada', code : 4105};
Locale.Lang['en-cb'] = { cnName : null, enName : 'English – Carribbean', code : 9225};
Locale.Lang['en-ie'] = { cnName : '英语 - 爱尔兰', enName : 'English - Ireland', code : 6153};
Locale.Lang['en-jm'] = { cnName : '英语 - 牙买加', enName : 'English - Jamaica', code : 8201};
Locale.Lang['en-nz'] = { cnName : '英语 - 新西兰', enName : 'English - New Zealand', code : 5129};
Locale.Lang['en-za'] = { cnName : '英语 - 南非', enName : 'English - South Africa', code : 7177};
Locale.Lang['en-tt'] = { cnName : '英语 - 特立尼达岛', enName : 'English - Trinidad', code : 11273};
Locale.Lang['en-gb'] = { cnName : '英语 - 英国', enName : 'English - United Kingdom', code : 2057};
Locale.Lang['en-us'] = { cnName : '英语 - 美国', enName : 'English - United States', code : 1033};
Locale.Lang['en-ph'] = { enName : 'English – Phillippines', code : 13321};
Locale.Lang['es'] = {name : 'Espa駉l-Castellano', cnName : '西班牙语 - 标准', enName : 'Spanish - Spain', code : 1034};//!
Locale.Lang['es-ar'] = { cnName : '西班牙语 - 阿根廷', enName : 'Spanish - Argentina', code : 11274};
Locale.Lang['es-bo'] = { cnName : '西班牙语 - 玻利维亚', enName : 'Spanish - Bolivia', code : 16394};
Locale.Lang['es-cl'] = { cnName : '西班牙语 - 智利', enName : 'Spanish - Chile', code : 13322};
Locale.Lang['es-co'] = { cnName : '西班牙语 - 哥伦比亚', enName : 'Spanish - Colombia', code : 9226};
Locale.Lang['es-cr'] = { cnName : '西班牙语 - 哥斯达黎加', enName : 'Spanish - Costa Rica', code : 5130};
Locale.Lang['es-do'] = { cnName : '西班牙语 - 多米尼加共和国', enName : 'Spanish - Dominican Republic', code : 7178};
Locale.Lang['es-ec'] = { cnName : '西班牙语 - 厄瓜多尔', enName : 'Spanish - Ecuador', code : 12298};
Locale.Lang['es-es'] = Locale.Lang['es'];
Locale.Lang['es-gt'] = { cnName : '西班牙语 - 危地马拉', enName : 'Spanish - Guatemala', code : 4106};
Locale.Lang['es-hn'] = { cnName : '西班牙语 - 洪都拉斯', enName : 'Spanish - Honduras', code : 18442};
Locale.Lang['es-la'] = { name : 'Espa駉l', cnName : null, enName : null, code : null}; //!
Locale.Lang['es-mx'] = { cnName : '西班牙语 - 墨西哥', enName : 'Spanish - Mexico', code : 2058};
Locale.Lang['es-ni'] = { cnName : '西班牙语 - 尼加拉瓜', enName : 'Spanish - Nicaragua', code : 19466};
Locale.Lang['es-pa'] = { cnName : '西班牙语 - 巴拿马', enName : 'Spanish - Panama', code : 6154};
Locale.Lang['es-pe'] = { cnName : '西班牙语 - 秘鲁', enName : 'Spanish - Peru', code : 10250};
Locale.Lang['es-pr'] = { cnName : '西班牙语 - 波多黎各', enName : 'Spanish - Puerto Rico', code : 20490};
Locale.Lang['es-py'] = { cnName : '西班牙语 - 巴拉圭', enName : 'Spanish - Paraguay', code : 15370};
Locale.Lang['es-sv'] = { cnName : '西班牙语 - 萨尔瓦多', enName : 'Spanish - El Salvador', code : 17418};
Locale.Lang['es-uy'] = { cnName : '西班牙语 - 乌拉圭', enName : 'Spanish - Uruguay', code : 14346};
Locale.Lang['es-ve'] = { cnName : '西班牙语 - 委内瑞拉', enName : 'Spanish - Venezuela', code : 8202};
Locale.Lang['et'] = { cnName : '爱沙尼亚语', enName : 'Estonian', code : 1061};
Locale.Lang['eu'] = { cnName : '巴斯克语', enName : 'Basque', code : 1069};
Locale.Lang['fa'] = { cnName : '波斯语', enName : 'Farsi', code : 1065};
Locale.Lang['fi'] = { name : 'suomi', cnName : '芬兰语', enName : 'Finnish', code : 1035};//!
Locale.Lang['fo'] = { cnName : '法罗语', enName : 'Faroese', code : 1080};
Locale.Lang['fr'] = { name : 'fran鏰is', cnName : '法语 - 标准', enName : 'French - France', code : 1036};//!
Locale.Lang['fr-be'] = { cnName : '法语 - 比利时', enName : 'French - Belgium', code : 2060};
Locale.Lang['fr-ca'] = { name : 'Canadien Français', cnName : '法语 - 加拿大', enName : 'French - Canada', code : 3084};//!
Locale.Lang['fr-ch'] = { cnName : '法语 - 瑞士', enName : 'French - Switzerland', code : 4108};
Locale.Lang['fr-fr'] = Locale.Lang['fr'];
Locale.Lang['fr-lu'] = { cnName : '法语 - 卢森堡', enName : 'French - Luxembourg', code : 5132};
Locale.Lang['fy'] = { name : 'Frysk', cnName : null, enName : null, code : null}; //!
Locale.Lang['gd'] = { cnName : '盖尔语 - 苏格兰', enName : 'Gaelic - Scotland', code : 1084};
Locale.Lang['gd-ie'] = { cnName : null, enName : 'Gaelic – Ireland', code : 2108};
Locale.Lang['he'] = { cnName : '希伯来语', enName : 'Hebrew', code : 1037};
Locale.Lang['hi'] = { cnName : '印地语', enName : 'Hindi', code : 1081};
Locale.Lang['hr'] = { name : 'Hrvatski', cnName : '克罗地亚语', enName : 'Croatian', code : 1050};//!
Locale.Lang['hu'] = { name : 'Magyar', cnName : '匈牙利语', enName : 'Hungarian', code : 1038};//!
Locale.Lang['hy'] = { cnName : null, enName : 'Armenian', code : 1067};
Locale.Lang['id'] = { cnName : null, enName : 'Indonesian', code : 1057};
Locale.Lang['is'] = { cnName : '冰岛语', enName : 'Icelandic', code : 1039};
Locale.Lang['in'] = { cnName : '印度尼西亚语', enName : '印度尼西亚语', code : 1057};
Locale.Lang['it'] = { name : 'Italiano', cnName : '意大利语 - 标准', enName : 'Italian - Italy', code : 1040};//!
Locale.Lang['it-ch'] = { cnName : '意大利语 - 瑞士', enName : 'Italian - Switzerland', code : 2064};
Locale.Lang['it-it'] = Locale.Lang['it'];
Locale.Lang['ja'] = { name : '日本語', cnName : '日语', enName : 'Japanese', code : 1041};//!
Locale.Lang['ji'] = { cnName : '意第绪语', enName : '意第绪语', code : 1085};
Locale.Lang['ka'] = { name : 'ქართული', cnName : null, enName : null, code : null}; //!
Locale.Lang['ko'] = { name : '한국어', cnName : '朝鲜语', enName : 'Korean', code : 1042};//!
Locale.Lang['lv'] = { cnName : '拉脱维亚语', enName : 'Latvian', code : 1062};
Locale.Lang['lt'] = { name : 'Lietuvių', cnName : '立陶宛语', enName : 'Lithuanian', code : 1063};//!
Locale.Lang['mk'] = { cnName : '马其顿语', enName : 'FYRO Macedonian', code : 1071};
Locale.Lang['mr'] = { enName : 'Marathi', code : 1102};
Locale.Lang['ms'] = { cnName : '马来语 - 马来西亚', enName : 'Malay - Malaysia', code : 1086};
Locale.Lang['ms-my'] = { cnName : '马来语 - 马来西亚', enName : 'Malay - Malaysia', code : 1086};
Locale.Lang['ms-bn'] = { cnName : null, enName : 'Malay – Brunei', code : 2110};
Locale.Lang['mt'] = { cnName : '马耳他语', enName : 'Maltese', code : 1082};
Locale.Lang['nb'] = { name : 'Norsk (bokm錶)', cnName : null, enName : null, code : null}; //!
Locale.Lang ['nl'] = { name : 'Nederlands', cnName : '荷兰语', enName : null, code : 1043};
Locale.Lang['nl-be'] = { cnName : '荷兰语 - 比利时', enName : 'Dutch - Belgium', code : 2067};
Locale.Lang ['nl-nl'] = {enName : 'Dutch – The Netherlands', code : null};
Locale.Lang['nn'] = {name : 'Norsk (nynorsk)', cnName : null, enName : null, code : null}; //!
Locale.Lang['no'] = { cnName : '挪威语 - 博克马尔', enName : 'Norwegian - Bokmål', code : 1044};
Locale.Lang['no-no'] = Locale.Lang['no'];
Locale.Lang['no-no'] = { cnName : null, enName : 'Norwegian – Nynorsk', code : 2068};
Locale.Lang['pa'] = {name : 'ਪੰਜਾਬੀ', cnName : null, enName : null, code : null}; //!
Locale.Lang['pl'] = { cnName : '波兰语', enName : 'Polish', code : 1045};
Locale.Lang['pt'] = { name : 'Português', cnName : '葡萄牙语 - 标准', enName : 'Portuguese - Portugal', code : 2070};//!
Locale.Lang['pt-br'] = { name : 'Português Brasileiro', cnName : '葡萄牙语 - 巴西', enName : 'Portuguese - Brazil', code : 1046};//!
Locale.Lang['pt-pt'] = Locale.Lang['pt'];
Locale.Lang['rm'] = { cnName : '拉托-罗马语', enName : 'Raeto-Romance', code : 1047};
Locale.Lang['ro'] = { cnName : '罗马尼亚语', enName : 'Romanian - Romania', code : 1048};
Locale.Lang['ro-mo'] = { cnName : '罗马尼亚语 - 摩尔多瓦', enName : 'Romanian - Moldova', code : 2072};
Locale.Lang['ru'] = { name : 'русский', cnName : '俄语', enName : 'Russian', code : 1049};//!
Locale.Lang['ru-mo'] = { cnName : '俄语 - 摩尔多瓦', enName : 'Russian - Moldova', code : 2073};
Locale.Lang['sa'] = { cnName : null, enName : 'Sanskrit', code : 1103};
Locale.Lang ['sb'] = { cnName : '索布语', enName : 'Sorbian', code : 1070};
Locale.Lang['sl'] = { cnName : '斯洛文尼亚语', enName : 'Slovenian', code : 1060};
Locale.Lang['sk'] = { cnName : '斯洛伐克语', enName : 'Slovak', code : 1051};
Locale.Lang['sq'] = { cnName : '阿尔巴尼亚语', enName : 'Albanian', code : 1052};
Locale.Lang['sr'] = { cnName : '塞尔维亚语 - 塞瑞利克', enName : 'Serbian - Cyrillic', code : 3098};
Locale.Lang['sr-sp'] = { cnName : '塞尔维亚语 - 塞瑞利克', enName : 'Serbian - Cyrillic', code : 3098};
Locale.Lang['sr-sp'] = { cnName : null, enName : 'Serbian – Latin', code : 2074};
Locale.Lang['sv'] = { name : 'svenska', cnName : '瑞典语', enName : 'Swedish - Sweden', code : 1053};
Locale.Lang['sv-fi'] = { cnName : '瑞典语 - 芬兰', enName : 'Swedish - Finland', code : 2077};
Locale.Lang['sv-se'] = { cnName : '瑞典语', enName : 'Swedish - Sweden', code : 1053};
Locale.Lang['sx'] = { cnName : '苏图语', enName : 'Sutu', code : 1072};
Locale.Lang ['sw'] = { cnName : null, enName : 'Swahili', code : 1089};
Locale.Lang['ta'] = { cnName : null, enName : 'Tamil', code : 1097};
Locale.Lang['th'] = { cnName : '泰语', enName : 'Thai', code : 1054};
Locale.Lang['tn'] = { name : 'Setsuana', cnName : null, enName : 'Setsuana', code : 1074};//!
Locale.Lang['tr'] = { name : 'Türkçe', cnName : '土耳其语', enName : 'Turkish', code : 1055};//!
Locale.Lang['ts'] = { cnName : '汤加语', enName : 'Tsonga', code : 1073};
Locale.Lang['tt'] = { cnName : null, enName : 'Tatar', code : 1092};
Locale.Lang['uk'] = { cnName : '乌克兰语', enName : 'Ukrainian', code : 1058};
Locale.Lang['ur'] = { cnName : '乌尔都语 - 巴基斯坦', enName : 'Urdu', code : 1056};
Locale.Lang['uz-uz'] = { cnName : null, enName : 'Uzbek – Cyrillic', code : 2115};
Locale.Lang ['uz-uz'] = { cnName : null, enName : 'Uzbek – Latin', code : 1091};
Locale.Lang['vi'] = { cnName : '越南语', enName : 'VietenNamese', code : 1066};
Locale.Lang['xh'] = { cnName : '科萨语', enName : 'Xhosa', code : 1076};
Locale.Lang['yi'] = { cnName : null, enName : 'Yiddish', code : 1085};
Locale.Lang['zh'] = { cnName : '中文', enName : 'Chinese', code : 4};
Locale.Lang['zh-cn'] = { name : '简体中文', cnName : '中文 - 中华人民共和国', enName : 'Chinese - China', code : 2052};
Locale.Lang['zh-hk'] = { cnName : '中文 - 中华人民共和国香港特别行政区', enName : 'Chinese - Hong Kong S.A.R.', code : 3076};
Locale.Lang['zh-mo'] = { cnName : '中文 - 中华人民共和国澳门特别行政区', enName : 'Chinese – Macau S.A.R', code : 5124};
Locale.Lang['zh-sg'] = { cnName : '中文 - 新加坡', enName : 'Chinese - Singapore', code : 4100};
Locale.Lang['zh-tw'] = { name : '繁體中文', cnName : '中文 - 台湾地区', enName : 'Chinese - Taiwan', code : 1028};
Locale.Lang['zu'] = { cnName : '祖鲁语',  enName : 'Zulu', code : 1077};

// return current locale abbreviation.
// exp:return 'zh-cn'
Locale.getLang = function(){
    return ( navigator.language || navigator.userLanguage).toString().toLowerCase();
};
// return current locale code.
// exp:return 2052
Locale.getCode = function(){
    try{
     return this.Lang[this.getLang()].code;
    } catch (e){
        window.alert(e.description);
    };
};
// return current locale name.
// exp : return '简体中文'
Locale.getName  = Locale.getLocaleName = function(){
    try{
     return this.Lang[this.getLang()].name;
    } catch (e){
        window.alert(e.description);
    };
};
Locale.getEnName = function(){
    try{
     return this .Lang[this.getLang()].enName;
    }catch (e){
        window.alert(e.description);
    };
};
Locale.getCnName = function(){
    try{
     return this.Lang[this.getLang()].cnName;
    }catch (e){
        window .alert(e.description);
    };
};
/* !! unallowed.
Locale.setLocale = function(locale){
    return false;
    try{
        navigator.userLanguage = locale;
    }catch (e){
        alert(e.name);
    };
};
Locale.setLang = function(Lang){
    return false;
    try{
        for (var lc in this.Lang){
            if (this.Lang[lc].code == Lang){
                this.setLocale(lc);
                return null;
            };
        };
    }catch (e){
        alert(e.name);
    };
};
*/
/*]]>*/

没有评论:

发表评论