JS如何在不同平台实现多语言方式


Posted in Javascript onJuly 16, 2020

应用场景:

在不同移动平台(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>";

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个无限级XML绑定跨框架菜单(For IE)
Jan 27 Javascript
给Function做的OOP扩展
May 07 Javascript
提升你网站水平的jQuery插件集合推荐
Apr 19 Javascript
javascript打印大全(打印页面设置/打印预览代码)
Mar 29 Javascript
javascript显示用户停留时间的简单实例
Aug 05 Javascript
Node.js中创建和管理外部进程详解
Aug 16 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
Oct 22 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
Mar 03 Javascript
jQuery on()方法使用技巧详解
Apr 16 Javascript
jquery实现简单的遮罩层
Jan 08 Javascript
Angularjs 设置全局变量的方法总结
Oct 20 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
vue使用axios实现excel文件下载的功能
Jul 16 #Javascript
vue实现自定义多选按钮
Jul 16 #Javascript
vue实现div单选多选功能
Jul 16 #Javascript
vue+AI智能机器人回复功能实现
Jul 16 #Javascript
vue.js实现h5机器人聊天(测试版)
Jul 16 #Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 #Javascript
通过实例解析vuejs如何实现调试代码
Jul 16 #Javascript
You might like
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
自己前几天写的无限分类类
2007/02/14 PHP
php中explode与split的区别介绍
2012/10/03 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
node+multer实现图片上传的示例代码
2020/02/18 Javascript
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
python制作微博图片爬取工具
2021/01/16 Python
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
秋季运动会通讯稿
2014/01/24 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
党员群众路线承诺书
2014/05/20 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
师范生见习报告
2014/10/31 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
5.12护士节活动总结
2015/02/10 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
社会实践心得体会范文
2016/01/14 职场文书