function deali18n() ...{ //获取url传入的language参数的value var lanValue = getParastr("language" , "EN");//默认为英文 //将页面做i18n处理(根据传入的语言代码) getI18nContent(lanValue); } // 获取program参数,用户请求页面时传入语言代码,def_lan为默认值 function getParastr(str_name , def_lan) ...{ var hrefstr,pos,parastr,para,tempstr; hrefstr = window.location.href; pos = hrefstr.indexOf("?") parastr = hrefstr.substring(pos+1); para = parastr.split("&"); tempstr=""; for(i=0;i<para.length;i++) ...{ tempstr = para[i]; pos = tempstr.indexOf("="); if(tempstr.substring(0,pos) == str_name) ...{ return tempstr.substring(pos+1); } } return def_lan;//如果没有得到则传回默认值 } function getI18nContent(lan) ...{ initDoc(lan); for(var i=0; i < document.mainForm.all.length; i++) ...{ var e = document.mainForm.elements[i]; if (e) ...{ var elementType = e.type; var elementId = e.id; if (elementType =='button'|| elementType =='text'|| elementType =='textarea') ...{ i18nName=(e.i18n); if (i18nName) ...{ e.value = getI18nValue(i18nName); } }elseif (elementType =='select-one') ...{ for (var j=0; j<e.length; j++) ...{ i18nName=(e[j].i18n); if (i18nName) ...{ e[j].text = getI18nValue(i18nName); } } }elseif (elementType =='radio'|| elementType =='checkbox') ...{ // } }else...{ var element = document.mainForm.all(i); var tagName = element.tagName; //LABEL if (tagName =='LABEL') ...{ i18nName=(element.i18n); if (i18nName) ...{ element.innerHTML = getI18nValue(i18nName); } } //SPAN if (tagName =='SPAN') ...{ i18nName=(element.i18n); if (i18nName) ...{ element.innerHTML = getI18nValue(i18nName); } } //DIV if (tagName =='DIV') ...{ i18nName = (element.i18n); if (i18nName) ...{ element.innerHTML = getI18nValue(i18nName); } } //HREF if (tagName =='A') ...{ i18nName=(element.i18n); if (i18nName) ...{ element.innerHTML = getI18nValue(i18nName); } } } } } var eDataSecurityDoc = createMSXML(); function createMSXML() ...{ if (window.ActiveXObject) ...{ //var MSXML = ["Microsoft.XMLDOM","MSXML2.DOMDocument.2.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.6.0"]; var MSXML = ["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument.2.0","Microsoft.XMLDOM"]; var XMLobject =null; var ver; // 為了相容IE6前的所有BROWSER版本, 所以用FOR LOOP去LOOKUP每個版本ActiveXObject的MSXML.當找到就直接RETURN for (var i =0; i < MSXML.length; i++) ...{ try...{ //return new ActiveXObject(MSXML[i]); ver = MSXML[i]; XMLobject =new ActiveXObject(MSXML[i]); }catch (e) ...{ } if (XMLobject)...{ return XMLobject; }else...{ continue; } } returnnull; }; } function initDoc(lan) ...{ var xmlName ="./i18n/xml/eData_"+ lan +".xml"; eDataSecurityDoc.load(xmlName); } function getNode(name) ...{ var retval = name; var xpath ="/Resource/"+ name; var value = eDataSecurityDoc.selectSingleNode(xpath); if (value) retval = value.text; return retval; } function getI18nValue(i18nName) ...{ var Contents = getNode(i18nName); return Contents; }
4、eData_EN.xml
<?xml version="1.0" encoding="unicode"?> <Resource> <COMMON> <A>Use the Default Password</A> <B>You did not enter a password. Please retry.</B> <C>You have entered an incorrect password. Please check your password and try again.</C> <D>The original password is incorrect. Please try again.</D> <E>The original and new passwords cannot be the same.</E> <F>Password confirmation failed. Please try again.</F> <G>Invalid password.</G> <H>Close</H> <I>OK</I> <J>Cancel</J> <K>Exit</K> <L>Error</L> <M>Warning</M> <LINK>link</LINK> </COMMON> </Resource>