JS实现多语言方式
应用场景:
动机:
通过主动发消息的方式,在页面完成初始化前,获取当前语言选项,并且根据该语言选项,调用对应的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):
- /*用于国际化*/
- <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(); });
- 调用多语言动态框架修改:
- <span i18Id="DemandDepositAccountTitle"></span>
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的脚本语言全程javascript在网页里面使用的脚本语言:分类:1.嵌入网页里面2.在外部脚本标签可以写在网页的任何地方,但一般都写在网页的底部:<script type="te ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- JS类继承常用方式发展史
JS类继承常用方式发展史 涉及知识点 构造函数方式继承 1-继承单个对象 1.1 多步走初始版 1.2 多步走优化版 1.3 Object.create()方式 2-继承多个对象 2.1 遍历 Obj ...
- js介绍,js三种引入方式,js选择器,js四种调试方式,js操作页面文档DOM(修改文本,修改css样式,修改属性)
js介绍 js运行编写在浏览器上的脚本语言(外挂,具有逻辑性) 脚本语言:运行在浏览器上的独立的代码块(具有逻辑性) 操作BOM 浏览器对象盒子 操作DOM 文本对象 js三种引入方式 (1)行间式: ...
- Atitit。Js调用后台语言 java c# php swing android swt的方法大总结
Atitit.Js调用后台语言 java c# php swing android swt的方法大总结 1. Js调用后台语言有三种方法1 2. Swt BrowserFunction 绑定方法 ...
- js实现继承的方式
[原文] 前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一.那么如何在JS中实现继承呢?让我们拭目以待. JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: // ...
- JS继承的实现方式
JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一.那么如何在JS中实现继承呢?让我们拭目以待. JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: // 定义一个动物类 ...
- js获取浏览器语言(ie、ff、chrome)、contextpath
/js获取浏览器语言(ie.ff.chrome) var language_en_us = "en-us"; var language_zh_cn = "zh-cn&qu ...
- JS对象创建常用方式及原理分析
====此文章是稍早前写的,本次属于文章迁移@2017.06.27==== 前言 俗话说"在js语言中,一切都对象",而且创建对象的方式也有很多种,所以今天我们做一下梳理 最简单的 ...
随机推荐
- bzoj千题计划309:bzoj4332: JSOI2012 分零食(分治+FFT)
https://www.lydsy.com/JudgeOnline/problem.php?id=4332 因为如果一位小朋友得不到糖果,那么在她身后的小朋友们也都得不到糖果. 所以设g[i][j] ...
- react使用proxy代理配置
proxy,默认为NULL,类型为URL,一个为了发送http请求的代理 在package.json文件中使用proxy配置可以解决跨域问题 使用注意事项: create-react-app脚手架低于 ...
- Silverlight网页打开后马上崩溃,“白屏”,而且毫无提示
如题,出现白屏的问题 在Application_UnhandledException函数内,跟踪异常e的提示信息,可以了解到如下信息: at System.ComponentModel.AsyncCo ...
- 完全使用UDP登录Linux
===============Mosh 登录器========================================= == 针对TCP被某些防火墙阻断的Linux机器, 该程序可以让你不使 ...
- C语言 - 栈和单链表的实现
单链表:linkList.h linkList.c #ifndef LINKLIST_H_INCLUDE #define LINKLIST_H_INCLUDE #include <Windows ...
- npm 切换源 nrm
版权声明:欢迎转载,请附加转载来源:一路博客(http://www.16boke.com) 转载 http://blog.csdn.net/wyc_cs/article/details/5155925 ...
- Oracle简单触发器应用
1.Oracle触发器 1.当发生特定事件的时候要执行的一个过程. 2.触发器的分类及语法及解析 1.DDL 触发器 1.[CREATE,DROP,...] 2.DML触发器 1.[INSERT,DE ...
- centos7 安装.net core的方法
安装: sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?li ...
- 剑指Offer-把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路 可以看 ...
- bash 文件名操作 常用方法
参考链接: http://www.jb51.net/article/51592.htm 查找文件不获取路径: find $1 -name '*.bin' -exec basename {} \;