PS:

https://github.com/hzlzh/Front-End-Standards/wiki/HTML-CSS-JS-i18n

本文原始思路起源于此网址,请自行查看。

本文只是简单的一个多语言实现,在刷新时会体现。如果想要更加灵活的应用请自行研究,但是本文一定会对你有所帮助。

正文:

在有想法实现多语言之后,你的第一想法是什么?最简单的想法是一个HTML页面上两个按钮或者链接,然后点击中文就切换中文,点击英文就切换英文。本文的案例是使用两个文字链接,通过cookie实现中英文切换,使点击不同的链接在刷新页面时弹出对应语种的提示框。

所以,问题来了,你要先做什么。

如果没有任何思路,就先搭个框架吧,先写个HTML页面包含两个链接。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<a>中文</a>
<a>English</a>
</body>
</html>

刚刚说了,本文是通过cookie来实现中英文切换的,那么我们就是需要读取cookie然后确定是哪种语言,然后显示相应的提示框。读取cookie,该段代码写在body中,也就是说当cookie读取到chinese时就调用相应的js文件,此处js后面再讲。你只需要知道是对应于该种语言的js即可。

<script>
if (document.cookie.indexOf("chinese") > ) {
document.write("<script src='/js/cn.js'><\/script>");
}
else {
document.write("<script src='/js/en.js'><\/script>");
}
</script>

好了,框架搭好了,然后呢,现在运行只能看见两个链接,点击,毫无反应。那,我们就是想要他点击有反应,所以此时在链接中需要加入href或者onclick等属性,让他能够使用。

<a href="javascript:SetChinese()">中文</a>
<a href="javascript:SetEnglish()">English</a>

这两个方法是干什么的,是客户端的方法,可是方法的实现呢?所以我们要实现这两个方法。在body中添加以下代码:

<script>
function SetEnglish() {
document.cookie = "language=english";
}
function SetChinese() {
document.cookie = "language=chinese"
}
</script>

上述代码是指在点击English时,将文档的cookie设置为"language=english"。

这下HTML页面大致写完了,别忘了,上述我们并没有解释js文件。

英语js脚本en.js对应:

var $lang = {
"用户名": "Please Enter User Name",
"密码": "Please Enter Password"
};

中文js脚本cn.js对应:

var $lang = {
"用户名": "用户名",
"此处用户名不能为空": "此处用户名不能为空"
};

大致解释为,js中存放key-value键值对,可通过key查找对应的value,那么怎么使用呢。此时运行文件并不能打到效果。

我们必须在HTML文件中获取该key:

在body中方法设置的script底部添加以下代码:

var userName = $lang["用户名"];
window.alert(userName);

第一句是在html中获取key,第二句就是通过对话框的形式,验证你的代码是否正确。

本次点击在下次刷新时起作用。

(一)ASP.NET中JavaScript的中英文(多语言)实现方案的更多相关文章

  1. (二)ASP.NET中JavaScript的中英文(多语言)实现方案(二)

    在ASP.NET中JavaScript的中英文(多语言)实现方案中简单的介绍了js实现多语言的一种方案.下面将要讲述另外一种方法,尽管很相似,但是有些地方也是需要细细琢磨的,不说了,先看看. 在Lan ...

  2. asp.net中javascript与后台c#交互

    asp.net中javascript与后台c#交互 作者:熊猫大叔 字体:[增加 减小] 类型:转载 时间:2015-10-23我要评论,出处:http://www.jb51.net/article/ ...

  3. [转]开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo

    热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力.由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI. ...

  4. 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo(转)

    热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力.由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI. ...

  5. Asp.net中后台C#数组与前台Javascript数组交互

    摘自:http://blog.csdn.net/a6225301/article/details/20003305 在上一篇<asp.net中javascript与后台c#交互>中实现了前 ...

  6. 【转载】Asp.Net中使用基于jQuery的javascript前台模版引擎JTemplate

    JTemplate是基于jQuery的开源的前端模版引擎,在Jtemplate模板中可以使用if判断.foreach循环.for循环等操作,使用Jtemplate模板优点在于ajax局部刷新界面时候不 ...

  7. ASP.NET 中整合JavaScript的技巧

    尽管ASP.NET提供了一个强壮的平台,但是开发者也不应忽视诸如JavaScript这样成熟的技术.在这篇文章中,Tony Patton将向您解释在Web开发中如何将JavaScript与ASP.NE ...

  8. ASP.NET中使用JavaScript实现图片自动水平滚动效果

    参照网上的资料,在ASP.NET中使用JavaScript实现图片自动水平滚动效果. 1.页面前台代码: <%@ Page Language="C#" AutoEventWi ...

  9. asp.net中的<%%> <%#%> <%=%>形式的详细用法 (转载)

    博客分类: ASP.NET   一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支 ...

随机推荐

  1. cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-supported'

    <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springfr ...

  2. (转)C# Socket异步通信

    本文转载自:http://www.cnblogs.com/llllll/archive/2009/05/13/1455703.html 服务器端 TCPServer 1.使用的通讯通道:socket ...

  3. FTP文件传输协议两种模式 ftp协议集,错误码集,ftp客户端命令集

    TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20.FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置.联接的方式.甚至是是否使用相同的操 ...

  4. mysql函数之一:INSTR、LOCATE、POSITION VS LIKE

    LOCATE.POSITION和INSTR函数相似功能实例 使用LOCATE.POSITION和INSTR函数查找字符串中指定子字符串的开始位置.SQL语句如下: mysql>SELECT LO ...

  5. Maven使用阿里云镜像

    Maven确实是个好用的东西,不过在国内的话下载速度不够快,推荐使用阿里云的镜像,配置方法还是比较简单,这里是全局的配置文件 settings.xml中的内容: <settings xmlns= ...

  6. atorg.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557)

    错误原因: 你当前开发环境中{Hadoop_HOME}\bin\hadoop.dll 文件和你当前的hadoop版本不匹配.  解决方案: 网络下载相应版本的hadoop.dll,并将该文件放入c:\ ...

  7. oracle11.2 安装

    win10安装oracle 11g 时出现INS-13001环境不满足最低要求 oracle在win10上安装教程

  8. 第2章 深入分析java I/O的工作机制(上)

    java的I/O操作类在包java.io下,大致分成4组: 所有文件的存储都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再存储这些字节到磁盘.在读取文件时,也是一个 ...

  9. python学习(二) 列表和元组

    第2章  列表和元组 2.1 序列概论 python有六种内建的序列,本章讨论最常用的两种类型:列表和元组.其他的内建序列有字符串.Unicode字符串.buffer对象和xragne对象. 列表和元 ...

  10. Debug 的使用

    R 命令:查看.修改寄存器的内容 -r:查看寄存器的内容 CS=0AF9,IP=0100,也就是说内存 0AF9:0100 处的指令为 CPU 当前要读取.执行的指令 Debug 也列出了 CS:IP ...