方案:

在不同的移动平台(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. CocoaPods的install和update卡在“Anylyzing dependencies”的问题解决方式[效率]

    问题 最新CocoaPod更新慢得问题,不管是运行pod install还是podupdate都卡在Anylyzing dependencies. 解决方式 事实上原因是运行两个命令时都会升级Coco ...

  2. Swift - 类初始化和反初始化方法(init与deinit)

    1,init():类的初始化方法(构造方法) 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 26 27 28 29 ...

  3. 网站教学 提纲总结到ajax结束后面还有

    Repeater - 重复器五个模板:HeaderTemplate - 在最上面,显示一次FooterTemplate - 最下面,显示一次ItemTemplate - 在中间,显示n次Alterna ...

  4. Qt中无处不在的d指针为何方神圣

    在研究QCoreApplication类的代码时,无意间弄明白了“d_func()”和“d指针”的来源: class Q_CORE_EXPORT QCoreApplication#ifndef QT_ ...

  5. Mybatis 3 返回布尔值,需要注意的地方

    在Mybatis中,有时候需要返回布尔值 ,来确定某个记录行是否存在. 例如: <select id="isExistCode" parameterType="st ...

  6. Python语言总结 4.2. 和字符串(str,unicode等)处理有关的函数

    4.2.7. 去除控制字符:removeCtlChr Python语言总结4.2. 和字符串(str,unicode等)处理有关的函数Sidebar     Prev | Up | Next4.2.7 ...

  7. Spring的datasource配置详解

    一句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource ...

  8. leetcode回文子串拆分-最小拆分次数

    转载请注明来自souldak,微博:@evagle 上一篇是要输出所有的可能拆分,这回是要输出拆分次数最少的切割次数. 如果直接按照上一篇那么做的话,就会超时,因为我们在判断s[i][j]是否是回文的 ...

  9. Linux中利用crontab创建计划任务

    在linux中启动crontab服务: /etc/init.d/crond  start crontab的命令格式 crontab -l   显示当前的crontab 文件(默认编写的crontab文 ...

  10. 内存级别/栅栏 ( Memory Barriers / Fences ) – 翻译

    翻译自:Martin Thompson – Memory Barriers/Fences 在这篇文章里,我将讨论并发编程里最基础的技术–以内存关卡或栅栏著称.那让进程内的内存状态对其它进程可见. CP ...