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

 更新时间:2020年07月16日 14:30:14   作者:网络虫  
这篇文章主要介绍了JS如何在不同平台实现多语言方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

应用场景:

在不同移动平台(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的对象与函数详解

    js的对象与函数详解

    今天小编就为大家分享一篇关于js的对象与函数详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Js 随机数产生6位数字

    Js 随机数产生6位数字

    Js随机产生6为数字的代码,需要的朋友可以参考下。
    2010-05-05
  • 解决layui下拉框监听问题(监听不到值的变化)

    解决layui下拉框监听问题(监听不到值的变化)

    今天小编就为大家分享一篇解决layui下拉框监听问题(监听不到值的变化),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • js实现鼠标跟随运动效果

    js实现鼠标跟随运动效果

    这篇文章主要为大家详细介绍了js实现鼠标跟随运动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • JS实现匀速与减速缓慢运动的动画效果封装示例

    JS实现匀速与减速缓慢运动的动画效果封装示例

    这篇文章主要介绍了JS实现匀速与减速缓慢运动的动画效果,结合实例形式分析了JavaScript封装结合定时器的页面元素动态变换效果动画相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • echarts读取JSON文件并画图完整代码

    echarts读取JSON文件并画图完整代码

    Echarts官网上提供了很多图表例子供我们白嫖,有时候遇到数据量比较大时,它会向后台请求json文件来加载图表数据,这篇文章主要给大家介绍了echarts读取JSON文件并画图的相关资料,需要的朋友可以参考下
    2023-06-06
  • uniapp中uni.switchTab无法传参的解决办法

    uniapp中uni.switchTab无法传参的解决办法

    uni.switchTab跳转的必须是TabBar上的路径,下面这篇文章主要给大家介绍了关于uniapp中uni.switchTab无法传参的解决办法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • js 单击式的下拉菜单效果实例

    js 单击式的下拉菜单效果实例

    这篇文章介绍了js 单击式的下拉菜单效果实例,有需要的朋友可以参考一下
    2013-08-08
  • 关于javascript解决闭包漏洞的一个问题详解

    关于javascript解决闭包漏洞的一个问题详解

    闭包在JavaScript高级程序设计(第3版)中是这样描述:闭包是指有权访问另一个函数作用域中的变量的函数,下面这篇文章主要给大家介绍了关于javascript解决闭包漏洞的一个问题的相关资料,需要的朋友可以参考下
    2022-11-11
  • JavaScript实现多栏目切换效果

    JavaScript实现多栏目切换效果

    在网站开发中尤其是新闻类网站,经常遇到多栏目切换的设计,这种效果有很多种实现效果,现在记录一种很简单的写法
    2016-12-12

最新评论