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 相关文章推荐
javascript 触发HTML元素绑定的函数
Sep 11 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
教你JS中的运算符乘方、开方及变量格式转换
Aug 09 Javascript
基于JavaScript Array数组方法(新手必看篇)
Aug 20 Javascript
Bootstrap风格的WPF样式
Dec 07 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
Jul 21 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
Aug 04 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
Nov 11 Javascript
js制作提示框插件
Dec 24 Javascript
在HTML5 localStorage中存储对象的示例代码
Apr 21 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
php4的session功能评述(三)
2006/10/09 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
jcrop基本参数一览
2013/07/16 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现逆波兰计算表达式实例详解
2015/05/06 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
python3实现猜数字游戏
2020/12/07 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
公司合作协议书范本
2014/04/18 职场文书
个人简历自荐信
2014/06/26 职场文书
村班子对照检查材料
2014/08/18 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
消防演习通知
2015/04/25 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
早会开场白台词大全
2015/06/01 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
python munch库的使用解析
2021/05/25 Python