方案:

在不同的移动平台(IOS。Android)上,并建立了HTML页面通信框架。主要业务逻辑HTML发展;我要支持多语言开发。

动机:

通过积极主动的信息方式,前一页完成初始化,获取当前语言选项。项。调用相应的JS文件(每种语言相应一个JS文件)解析页面。

实现细节:

  • 向本地语言框架发请求获取语言种类。
$(document).on("pageinit",function(){
/*Kaiwii 向本地代码发请求获取当前语言种类*/
});

  • 本地语言框架触发回调函数(JS方法):依据语言选项,动态将相应语言的JS文件嵌入HTML而且触发其运行;
/*Kaiwii 本地语言框架回调本方法*/
function GetLanguageCodeCallBack(Jstring,ERROR){
var i18File = $("script[name='i18']");
if(i18File.length==0){//没有成功载入js文件
var i18FileLink = "<script name='i18' src='../../js/i18.js'></script>";
switch (Jstring){
case "EN":
i18FileLink = "<script name='i18' src='../../js/i18.js'></script>";
break;
case "CN":
i18FileLink = "<script name='i18' src='../../js/i18_CN.js'></script>";
break;
}
$("head").append(i18FileLink);
}else{//成功载入js文件
switch (Jstring){
case "EN":
$(i18File).attr("src","../../js/i18.js");
break;
case "CN":
$(i18File).attr("src","../../js/i18_CN.js");
break;
}
/*主动触发更新HTML*/
updatei18Spans();
}
}

  • 不同语言相应的JS文件(如i18.js):
1、使用JSON对象存储KEY-VALUE[不同语言版本号的JS文件不过VALUE不同(VALUE为相应语言版本号中的值)];
2、HTML中的静态部分须要调用JS方法改动DOM对象的属性方式完毕多语言动态化(通过调用updatei18spans()触发)。动态部分直接调用就可以。
/*用于国际化*/
<pre name="code" class="javascript">/*Kaiwii*/

/*相应关系表(key为元素的ID,value为国际化下的显示内容*//*span 部分*/var spans = {"DemandDepositAccountTitle":"CCB Current Account"};//本地代码交互的部分var locale_vars = {"enquiryTitle":"Account Info Inquiry"};var i18placeholder = {"请输入单位名称或账号":"Organization's Name/Account","
開始日期":"Start Date"," 截止日期":"End Date"};function updatei18Spans(){ for(index in spans){ $("span[i18Id='"+index+"']").html(spans[index]); } for(index in i18placeholder){ $("input[placeholder='"+index+"']").attr("placeholder",i18placeholder[index]); }}$(function(){//载入显示内容方法
updatei18Spans(); });



  • 调用多语言动态框架改动:
1、静态部分:
HTML上:
<span i18Id="DemandDepositAccountTitle"></span>
2、动态部分:

JS代码中:

liElement += "<span ACC_NO='"+ACC_NO+"' CshEx_Cd='"+CshEx_Cd+"' CcyCd='"+CcyCd+"' onclick='renderBAL(this)' class='font14' style='color:#306ed2'>"+locale_vars.enquiryTitle+"</span>";

版权声明:本文博客原创文章,博客,未经同意,不得转载。

JS多语种方式的更多相关文章

  1. Clipboard.js – 现代方式实现复制文本到剪贴板

    复制文本到剪贴板应该并不难,目前已经有很成熟的 Flash 方法.但是 Flash 已经在很多场合不适用了,特别是随着 HTML5 技术的发展.今天推荐的这个 Clipboard.js 库不依赖 Fl ...

  2. JS 引入方式 基本数据类型 运算符 控制语句 循环 异常

    一.JS引入方式 什么是JavaScript? JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互,JavaScript是浏览 ...

  3. .NET提供了三种后台输出js的方式:

    .NET提供了三种后台输出js的方式: 首先创建 js文件testjs.js {    Page.ClientScript.RegisterClientScriptInclude("keys ...

  4. springMVC 引入静态资源Js的方式

    前两天项目出现了Js无法引入的情况,本篇博客先总结分析+批判自己犯的低级错,再说说几种访问静态资源的方式! 首先,由于在web.xml里面的servlet拦截匹配为<url-pattern> ...

  5. 用js的方式运行c程序之webassemly

    在这里就不科普webassemly的作用以及好处了,请自行百度. 那么,怎么通过js的方式在浏览器中运行c程序呢,其中原理如下: 可能另一张图会更详细: 1.安装emscripten 说明文档地址:h ...

  6. 你所未知的3种 Node.js 代码优化方式

    from:https://cnodejs.org/topic/56cc2fd6c045c3743304bec6 Node.js 程序的运行可能会受 CPU 或输入输出操作的限制而十分缓慢.从 CPU ...

  7. 用HTML/JS/PHP方式实现页面延时跳转

    WEB开发中经常会遇到页面跳转或延时跳转的需求,掌握各种页面跳转方式非常必要. 以下是我总结有用HTML/JS/PHP三类方式实现跳转的方法,例子皆为三秒后跳转到index.php 页面. 1,HTM ...

  8. 支持IE,FireFox,Chrome三大主流浏览器,通过js+Flash方式将table导出Excel文件

    今天在做项目的时候,遇到了前端下载Excel的功能,结果原先的代码,如下: function generate_excel(tableid) {        var table = document ...

  9. qq第3方登录的JS实现方式记录

    首先申请qq第3方登录接入的appkey和appid,具体方式http://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth ...

随机推荐

  1. 使用BBED恢复数据文件头

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/31018075 @@@@@@@利用BBED模拟损坏5文件1号块(文件头) BBED> ...

  2. Swift - 类型属性(类静态属性)和类方法(类静态方法)

    1,结构体struct和枚举enum的静态属性,静态方法使用static关键字 1 2 3 4 5 6 7 8 9 10 struct Account {      var amount : Doub ...

  3. New 和 GetMem 的不同之处

    如果操作一个 record 指针中的字符串变量,会不会丢失 string 的内 存空间,造成内存泄漏? 结果是:使用 New() 分配的内存,会自动初始化 record 的内容,并且在 Dispose ...

  4. LVS Nginx HAProxy 优缺点

    搭建负载均衡高可用环境相对简单,主要是要理解其中原理.此文描述了三种负载均衡器的优缺点,以便在实际的生产应用中,按需求取舍. 目前,在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LV ...

  5. php 写session

    function do_login(){ //获取用户名和密码信息,和数据库中比对 echo 111111111; dump($_POST); dump($_SESSION); echo 222222 ...

  6. Delphi中编写无输出函数名的DLL文件(有点意思)(400多篇博客)

    用 Delphi 用长了,总是发现,有些和 MS 不同的地方.例如,MS 的公开库中,常常隐藏了许多重要函数,这些函数在系统中常常有起着非常巨大的作用.一旦知道如何调用,可以给自己的应用程序提供很强的 ...

  7. [Android]Eclipse的使用

    1.取消Eclipse拼写检查 General -> Editors -> Text Editors -> Spelling 取消enable spell checking 前面的勾 ...

  8. Delphi过程函数传递参数的八种方式

    今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...

  9. python语言学习8——字符串和编码

    Unicode编码 计算机只能处理数字,如果要处理文本,就必须把文本转化为数字才能处理 有许多编码标准,但是不同的编码标准有时候会混乱,所以Unicode应运而生 Unicode把所有语言统一到一套编 ...

  10. LINUX专题之操作系统字符集

    原创作品,出自 "深蓝的blog" 博客,欢迎转载.转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog: http://blog.csdn.net/huangyanl ...