[技术| 编程·课件·Linux] 紧急求助网页中英文切换问题

沧海一粟 · 发布于 2013-04-29 18:56 · 1743 次阅读
1359
100学分
本帖最后由 沧海一粟 于 2013-4-29 19:01 编辑

没用过Jave,老板让把页面改成中英文切换,不要两套系统,在网上找了个方法可是,调不过,紧急求教高手!!!!
蓝色部分是我在原中文基础上改的:
代码如下:
login.htm:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="description" content="Femto 1001">
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Stifftail (Femto AP) Login</title>
<link rel="stylesheet" type="text/css" href="ig_n.css">
<script language="javascript" type="text/javascript" src="jquery-1.6.js"></script>
<script language="javascript" type="text/javascript" src="LANG_CN.js"></script>
<script language="javascript" type="text/javascript">
function changeLanguage()
{
       setCookie("somoveLanguage", $("#ddlSomoveLanguage").children('option:selected').val());
       window.location = 'Default.aspx';
}

var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
   52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
   -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
   15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
   -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
   41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
function base64encode(str) {
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = "";
while(i < len) {
  c1 = str.charCodeAt(i++) & 0xff;
  if(i == len)
  {
   out += base64EncodeChars.charAt(c1 >> 2);
   out += base64EncodeChars.charAt((c1 & 0x3) << 4);
   out += "==";
   break;
  }
  c2 = str.charCodeAt(i++);
  if(i == len)
  {
   out += base64EncodeChars.charAt(c1 >> 2);
   out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
   out += base64EncodeChars.charAt((c2 & 0xF) << 2);
   out += "=";
   break;
  }
  c3 = str.charCodeAt(i++);
  out += base64EncodeChars.charAt(c1 >> 2);
  out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
  out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
  out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}
function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = "";
while(i < len) {
  /* c1 */
  do {
   c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
  } while(i < len && c1 == -1);
  if(c1 == -1)
   break;
  /* c2 */
  do {
   c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
  } while(i < len && c2 == -1);
  if(c2 == -1)
   break;
  out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
  /* c3 */
  do {
   c3 = str.charCodeAt(i++) & 0xff;
   if(c3 == 61)
    return out;
   c3 = base64DecodeChars[c3];
  } while(i < len && c3 == -1);
  if(c3 == -1)
   break;
  out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
  /* c4 */
  do {
   c4 = str.charCodeAt(i++) & 0xff;
   if(c4 == 61)
    return out;
   c4 = base64DecodeChars[c4];
  } while(i < len && c4 == -1);
  if(c4 == -1)
   break;
  out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
}
function Get_Cookie(name)
{
var start = document.cookie.indexOf(name+"=");
var len = start+name.length+1;
if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
if (start == -1) return null;
var end = document.cookie.indexOf(";",len);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(len,end));
}
var Login_PWD= null;
function get_cookies()
{
var fm = document.forms[0];
cookie_name = "LoginName";
    Set_Cookie(cookie_name, "", expires);
    cookie_name = "LoginPWD";
    Set_Cookie(cookie_name, "", expires);
fm.login_name.select();
fm.login_name.focus();
}
function init()
{
get_cookies();
}
function checkPassword()
{
var fm = document.forms[0];
if (fm.login_pwd.value != fm.pw.value) {
  nlen = fm.login_pwd.value.toString().length;
  if (nlen>31) nlen = 31;
}
}   
var today = new Date();
var expires = new Date(today.getTime() + (10 * 60 * 1000));
var nlen = 0;
function Set_Cookie(name,value,expires,path,domain,secure)
{
document.cookie = name + "=" +escape(value) +
//  ( (expires) ? ";expires=" + expires.toGMTString() : "") +
  ( (path) ? ";path=" + path : "") +
  ( (domain) ? ";domain=" + domain : "") +
  ( (secure) ? ";secure" : "");
}
function save_cookies()
{
var fm = document.forms[0];
  today = new Date();
expires = new Date(today.getTime() + (10 * 60 * 1000));
cookie_name = "LoginName";
Set_Cookie(cookie_name, fm.un.value, expires);
cookie_name = "LoginPWD";
Set_Cookie(cookie_name, fm.pw.value, expires);
}
function acceptCheckIt(ok)
{
btnclk=1;
if (!eval(ok)) {
  top.location.href = "./login.htm";
  return;
}
var fm = document.forms[0];
var d = new Date();
var msg = "";
fm.time.value = d.getTime().toString().substring(4,13);
name = fm.login_name.value;
pass = fm.login_pwd.value;
if (   (name.length > 0)
   && (pass.length > 0)
    ) {
  fm.un.value=base64encode(name);
  if (pass != fm.pw.value) { // password changed
   fm.pw.value=base64encode(pass);
  } else {
   fm.pw.value=base64encode(pass.substring(0,nlen));
  }
  save_cookies();
  fm.login_name.value="";
  fm.login_pwd.value="";
  fm.submit();
}
else
{
  if(name.length == 0)
   msg += "Please Input Username!\n";
  if(pass.length == 0)
   msg += "Please Input Password!";
}
if(msg.length > 0)
  alert(msg);
}
function CheckIt()
{      
acceptCheckIt(true);
}
function Clear()
{
var fm = document.forms[0];
fm.login_name.value="";
fm.login_pwd.value="";
}
function CheckSubmit(){
if   (event.keyCode   ==   13 ){
  CheckIt();
}
}
function ctrlKeyEnter(evt){
evt = (evt)?evt:((window.event)?event:null);
if(evt){
  if(evt.keyCode==13){
   CheckIt();   
  }
}
}
</script>
</head>
<body class="hlpTB">
<form name="login" method="POST" action="./index.htm" autocomplete="off" >
  <table height=100% align="center" border="0" cellpadding="0" cellspacing="0">
   <tr valign="bottom" align="center" height="20%">
    <td height="30%" colspan=2 ><!--<img src="./zte_logo.jpg"/>--><br/><br/><strong>Stifftail (Femto AP) Login</strong><br/><br/></td>
   </tr>
   <tr class="headrow" valign="bottom" height="25px">
    <td colspan=2 width="100px">
    </td>
   </tr>
   <tr valign="top" height="120">
    <td width="100%">
     <table width="100%" border="1"  align="center" cellpadding="2" cellspacing="0" borderColor=#CCCCFF>
      <tr>
       <td width="80" nowrap class="LoginField"> <strong>Username</strong>:
       </td>
       <td  align="left" >
        <input type="text" class="num" name="login_name" size="24" maxlength="63" value="" >
       </td>
      </tr>
      <tr>
       <td class="LoginField" > <strong>Password</strong>: </td>
       <td align="left"  >
        <input type="password" class="num" name="login_pwd" size="24" maxlength="63" value="">
       </td>
      </tr>
      <tr height="40px" align="right">
       <td colspan=4> <div align="center">
                                                              
                                                              <select id="ddlSomoveLanguage"
                                                                    >                                                              <option value="en">English</option>
                                                              <option value="ch">Chinese</option>
                                                              </select>
             <input type="button" name="login" value=" Login " >
               
             <input type="button" name="cancel" value=" Cancel " >
       </div></td>
      </tr>
     </table>
    </td>
   </tr>
   <tr valign="bottom" >
    <td  align="center" colspan=2>&copy;1985-2011 Femtel Corporation. All rights reserved</td>
   </tr>
  </table>
<INPUT type="hidden" name="time" VALUE="0">
<INPUT type="hidden" name="un" VALUE="">
<input type="hidden" name="pw" value="">
<input type="hidden" name="this_file" value="login.htm">
<input type="hidden" name="next_file" value="index.htm">
</form>
</body>
</html>

status.htm:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META http-equiv="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<title>状态</title>
<script language="JavaScript" src="func.js"></script>
<script language="JavaScript" src="message.js"></script>
<script language="JavaScript" src=common.js></script>
<script language="JavaScript" src=mdata.js></script>
<script language="JavaScript" type="text/javascript" src="jquery-1.6.js"></script>
<script language="JavaScript" type="text/javascript" src="LANG_CN.js"></script>
<script language="JavaScript" type="text/javascript">
function checkData()
{
  var cf = document.forms[0];
return true;
}
$(function () {
        if (getCookie("somoveLanguage") == "en")
        {
              var result = setEnglish($("body").html());
              $("body").html(result);
        }
});

</script>
<LINK REL="stylesheet" TYPE="text/css" HREF="ig_n.css">
<STYLE TYPE="text/javascript">
classes.num.all.fontFamily = "Courier";
classes.num.all.fontSize = "10pt" ;
</style>
</head>
<body  leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
<script language="JavaScript">mdata_set("status")</script>
<form name="status" action="setup.cgi" method="post" >
  <table width="570" align="center" cellpadding="1" cellspacing="1" class="topline">
      <td width="33%" height="276"><table width="100%" height="100%" align="left" cellpadding="4" cellspacing="2">
        <tr>
          <td valign="top" nowrap class="th_color"><div align="center">系统</div></td>
          <td width="81%"> </td>
        </tr>
        <tr class="td_color1">
          <td valign="top" nowrap class="td_color0">设备名</td>
          <td class="td_color1"></td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">硬件版本</td>
          <td class="td_color1"></td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">软件版本</td>
          <td class="td_color1">DEBUG1022@1304121400
</td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">系统开机时间</td>
          <td class="td_color1"></td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">当前时间</td>
          <td class="td_color1"></td>
        </tr>
        <tr>
          <td height="50" colspan="2" align="right"></td>
        </tr>
      </table></td>
      <td width="33%" height="276"><table width="100%" height="100%" align="left" cellpadding="4" cellspacing="2">
        <tr>
          <td valign="top" nowrap class="th_color"><div align="center">网络</div></td>
          <td width="81%"> </td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">硬件地址</td>
          <td class="td_color1"></td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">连接类型</td>
          <td class="td_color1">Manual</td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">连接状态</td>
          <td class="td_color1"></td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">IP地址</td>
          <td class="td_color1">172.21.210.219</td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">子网掩码</td>
          <td class="td_color1">255.255.255.0</td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">网关地址</td>
          <td class="td_color1">172.21.210.248</td>
        </tr>
        <tr class="td_color1">
          <td nowrap class="td_color0">DNS服务器地址</td>
          <td class="td_color1">172.21.1.231</td>
        </tr>
<tr>
          <td height="50" colspan="2" align="right"></td>
        </tr>
      </table></td>
    <tr>
<td nowrap> </td>
<td nowrap> </td>
    </tr>
    <tr>
        <td nowrap class="th_color"><div align="center">家庭基站</div></td>
        <td width="16%"> </td>
    </tr>
    <tr class="td_color1">
        <td width="16%" nowrap class="td_color0">服务状态</td>
        <td class="td_color1"></td>
    </tr>
    <tr class="td_color1">
        <td width="16%" nowrap class="td_color0">已驻留手机列表</td>
        <td class="td_color1"></td>
    </tr>
    <tr>
<td nowrap> </td>
<td nowrap> </td>
    </tr>
    <tr>
      <td colspan="3" align="center" class="bottomrow">
       <input class="BUTTON" type="submit" name="reboot" value="重启">
        <input class="BUTTON" type="button" name="help" value="帮助">
        <input class="BUTTONV" type="button" name="refresh" value="刷新">
      </td>
    </tr>
  </table>
<input type="hidden" name="message" value="">
<input type="hidden" name="next_file" value="status.htm">
<input type="hidden" name="this_file" value="status.htm">
  <input type="hidden" name="todo" value="reboot">
</form>
</body>
</html>


LANG_CN.js:
function setCookie(name,value)
{
    var Days = 30;
    var exp  = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}


function getCookie(name)   
{
     var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
     if(arr != null) return unescape(arr[2]); return null;
}


function delCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}


function request(name)
{
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
}


String.prototype.replaceAll = function(oldStr, newStr)
{
     return this.replace(new RegExp(oldStr,"gm"),newStr);
}

function setEnglish(bodyString)
{
     var result = bodyString;  
      
     result = result.replaceAll('状态','State');
     result = result.replaceAll('系统','Systerm');
     result = result.replaceAll('网络','Net');
     result = result.replaceAll('设备名','EqupmentName');
     result = result.replaceAll('硬件地址','HardIP');
     result = result.replaceAll('连接类型','ConnetType');
     result = result.replaceAll('硬件版本','HardLine');
     result = result.replaceAll('连接状态','ConnectState');
     result = result.replaceAll('软件版本','SoftLine');
     result = result.replaceAll('IP地址','IPStreet');
     result = result.replaceAll('子网掩码','LitterNet');
     result = result.replaceAll('系统开机时间','SystermOpenTime');
     result = result.replaceAll('网关地址','PortIP');
     result = result.replaceAll('当前时间','CurentTime');
     result = result.replaceAll('DNS服务器地址','DNS Server IP');
     result = result.replaceAll('家庭基站','HomeState');
     result = result.replaceAll('服务状态','ServiceStae');
     result = result.replaceAll('已驻留手机列表','PhoneNUm');
     result = result.replaceAll('重启','Reboot');
     result = result.replaceAll('帮助','Help');
     result = result.replaceAll('刷新','Refresh');
     
     return result;
}

最佳答案

查看完整内容

师兄,我改写了两段代码,在我这里可以运行了。 一段时间html上选择语言的: --请选择-- English 中文 此处添加了一句:--请选择-- 因为如果下拉初始态是English的话,在此点击他不会触发相关的效果。 第二处是js中控制语言转换的,原先代码中用的是原生的js,我自己改用jQuery,感觉更方便一点 $('document').ready(function(){ $("#ddlSomoveLanguage").cha ...
共收到 10 条回复
EagleFlag · #2 · 2013-4-29 18:56:09  回复
师兄,我改写了两段代码,在我这里可以运行了。
一段时间html上选择语言的:
<select id="ddlSomoveLanguage">
         <option value="">--请选择--</option>
         <option value="en">English</option>
         <option value="ch">中文</option>                     
</select>  
此处添加了一句:<option value="">--请选择--</option> 因为如果下拉初始态是<option value="en">English</option>的话,在此点击他不会触发相关的效果。

第二处是js中控制语言转换的,原先代码中用的是原生的js,我自己改用jQuery,感觉更方便一点
$('document').ready(function(){
        $("#ddlSomoveLanguage").change(function(){       
                var lan = $('#ddlSomoveLanguage option:selected').val();
                SetCookie("somoveLanguage", lan);
                window.location.reload();         
        });
});
沧海一粟 · #3 · 2013-4-29 19:04:45  回复
有段贴不对,贴下面了!
  <select id="ddlSomoveLanguage" onchange="return changeLanguage();">
        <option value="en">English</option>
         <option value="ch">Chinese</option>
   </select>
阎魔あい · #4 · 2013-4-29 21:31:38  回复
技术贴啊。。。。。完全看不懂。。。。。。
小马 · #5 · 2013-4-29 22:49:20  回复
JSP?新人膜拜了。。。
EagleFlag · #6 · 2013-4-30 03:08:27  回复
本帖最后由 EagleFlag 于 2013-4-30 03:17 编辑

学长想要的是不是这样的效果?
http://eagleflag.7.5vv.cc/lan_switch/index.html
(如果打不开,多刷新一下就好)
我比较困惑学长既然已经引用了jQuery,为何不使用呢?

点评

我不会Jave呀,只是在网上看到这个方法,就引用过来!也不清楚哪里出了问题 你给的链接我打不开!  详情 回复 发表于 2013-4-30 09:59
沧海一粟 · #7 · 2013-4-30 09:59:55  回复
EagleFlag 发表于 2013-4-30 03:08
学长想要的是不是这样的效果?
http://eagleflag.7.5vv.cc/lan_switch/index.html
(如果打不开,多刷新一 ...

我不会Jave呀,只是在网上看到这个方法,就引用过来!也不清楚哪里出了问题
你给的链接我打不开!
EagleFlag · #8 · 2013-4-30 10:57:38  回复



多刷新几次就行

点评

最外面的登录页面是这样的,然后里的status.htm,也要能转成英文,公司把你给的链接屏蔽了没办法打开,可以 把源代码贴上了吗?非常感谢师弟呀!  详情 回复 发表于 2013-4-30 15:18
沧海一粟 · #9 · 2013-4-30 15:18:10  回复
EagleFlag 发表于 2013-4-30 10:57
多刷新几次就行

最外面的登录页面是这样的,然后里的status.htm,也要能转成英文,公司把你给的链接屏蔽了没办法打开,可以
把源代码贴上了吗?非常感谢师弟呀!
沧海一粟 · #10 · 2013-4-30 16:22:47  回复
http://www.cnblogs.com/seasons1987/archive/2012/10/09/2716345.html
我是参照上面的方法做的,感觉这处方法简单,就是不知道哪里出了问题?不成功,有高手能看出来吗?
EagleFlag · #11 · 2013-4-30 18:09:50  回复
正如那个网页上说的,这种方法存在瑕疵,主要是在于中英替换的时候可能会把某些不需要替换而且很关键的地方给替换了,所以我昨天没有采取这种方法,而是使用了隐藏不需要的语言这种策略,如果网站规模不是很大,数据不是经常要改动的话,可以考虑一下我昨天的方式
回帖
B Color Image Link Quote Code Smilies
Command + Enter
楼主相关话题
    快速回复 返回顶部 返回列表