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实现的分页函数
Feb 07 Javascript
Dojo 学习要点
Sep 03 Javascript
js 图片随机不定向浮动的实现代码
Jul 02 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
jquery获取节点名称
Apr 26 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
最全的Javascript编码规范(推荐)
Jun 22 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
Aug 29 Javascript
简单几步实现返回顶部效果
Dec 05 Javascript
基于bootstrap页面渲染的问题解决方法
Aug 09 Javascript
Vue搭建后台系统需要注意的问题
Nov 08 Javascript
js实现弹幕飞机效果
Aug 27 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/07/21 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
计算机网络专业个人的自我评价
2013/10/17 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
个人投资计划书
2014/05/01 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书