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 相关文章推荐
直接生成打开窗口代码,不必下载
May 14 Javascript
js压缩工具 yuicompressor 使用教程
Mar 31 Javascript
jQuery 学习第五课 Ajax 使用说明
May 17 Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
Aug 27 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
Jan 19 Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 Javascript
arcgis for js 修改infowindow样式的方法
Nov 02 Javascript
Bootstrap媒体对象学习使用
Mar 07 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
vue 路由页面之间实现用手指进行滑动的方法
Feb 23 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 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
PHP学习笔记之一
2011/01/17 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
详解javascript遍历方式
2015/11/11 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
Python中的descriptor描述器简明使用指南
2016/06/02 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python3 操作符重载方法示例
2017/11/23 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
python编写微信公众号首图思路详解
2019/12/13 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
pandas实现导出数据的四种方式
2020/12/13 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
介绍一下Make? 为什么使用make
2013/12/08 面试题
承诺书怎么写
2014/03/26 职场文书
医院节能减排方案
2014/06/13 职场文书
村班子对照检查材料
2014/08/18 职场文书
三严三实心得体会范文
2014/10/13 职场文书
党员违纪检讨书
2015/05/05 职场文书
安全生产标语口号
2015/12/26 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python