i18next-页面层语言国际化js框架介绍
因为工作需要,最近研究了下网站语言国际化的问题,根据当前项目架构,寻求一种较好的解决方案。
首先总结下项目中语言切换实现方式大概有以下几种:
1,一种语言一套页面,如:index_CN.html,index_TN.html,index_EN.html
根据用户当前使用语言来展示对应的页面。
这种方式比较常用,也比较理想,性能不错,但是开发使用的时间就多,每个页面要多做几遍。
2,后台定义变量,根据当前语言返回对应语言信息
这种方式不好使,麻烦,页面所有静态显示文本处都需要定义变量,从后台读取。
后台变量的定义可以根据语言分不同的属性文件,如message_cn.properties,message_tn.properties,message_en.properties
注:这种方式不适应处理页面静态文本,但是可以结合第1种方式,这里专门处理页面动态的信息提示。
3,js定义语言变量,全文替换,如:
var dbi = document.body.innerHTML;
var TOLAN = eval(LAN);
for(var n=0;n<CN.length;n++){
dbi= dbi.replace(eval("/"+CN[n]+"/g"), TOLAN[n]);
}
document.body.innerHTML = dbi;
这种方式不推荐使用,处理性能低下,如果页面有事件绑定等内容,还会导致很多问题。
4,采用i18next页面层框架,js框架地址:http://i18next.com/;
i18next的原理是根据标签里声明的变量,绑定语言资源文件内容,再呈现结果页面。
page source:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="[PATH]/jquery.js"></script>
<script type="text/javascript" src="[PATH]/i18next.js"></script>
</head>
<body>
<ul class="nav">
<li><a href="#" data-i18n="nav.home"></a></li>
<li><a href="#" data-i18n="nav.page1"></a></li>
<li><a href="#" data-i18n="nav.page2"></a></li>
</ul>
</body>
</html>
loaded resource file (locales/en/translation.json):
{
"app":
{
"name": "i18next"
},
"nav":
{
"home": "Home",
"page1": "Page One",
"page2": "Page Two"
}
}
javascript code:
i18n.init(function(err, t) {
// translate nav
$(".nav").i18n();
// programatical access
var appName = t("app.name");
});
i18next-页面层语言国际化js框架介绍的更多相关文章
- 借鉴一些关于js框架的东西
八款Js框架介绍及比较,Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fx,componentartu ...
- Node.js 框架对比之 Express VS Koa
背景 上图是一个典型的采用 Node.js 开发 web 应用的前后端结构,下面介绍一下 Node 服务层在其中的作用以及使用 Node.js 的一些优劣. Node 服务层作用: 请求代理 传统做法 ...
- 【入门篇】前端框架Vue.js知识介绍
一.Vue.js介绍 1.什么是MVVM? MVVM(Model-View-ViewModel)是一种软件架构设计模式,它源于MVC(Model-View-Controller)模式,它是一种思想,一 ...
- golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍
golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...
- 面试简历书写、Flask框架介绍与快速使用、Flask演示登录页面、用户信息页面案例
今日内容概要 面试简历编写 Flask框架介绍与安装 内容详细 1.面试简历编写 # 千万不要几个小时把简历凑出来 几天到一周 # 有没有面试机会,取决于简历写得怎么样 简历写好是第一步 # 投简历的 ...
- 自定义JSP标签实现语言国际化(类似struts text标签),并同时支持图片、JS文件国际化
源代码及样例下载地址: http://download.csdn.net/detail/u014569459/7169385 一.功能说明: 1. 支持语言国际化 2. 支持图片文件.JS文件国际化 ...
- 【FIORI系列】SAP OpenUI5 (SAPUI5) js框架简单介绍
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FIORI系列]SAP OpenUI5 (SA ...
- 深入浅出node.js游戏服务器开发1——基础架构与框架介绍
2013年04月19日 14:09:37 MJiao 阅读数:4614 深入浅出node.js游戏服务器开发1——基础架构与框架介绍 游戏服务器概述 没开发过游戏的人会觉得游戏服务器是很神秘的 ...
- vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)
第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法) #课程目标 了解 vue 框架的特点 掌握创建 vue 实例 掌握 data ...
随机推荐
- Youth(青春)
Youth is not a time of life; it is a state of mind; it is not a matter of rosy cheeks, red lips and ...
- MVC框架 - 异常处理
在ASP.NET中,错误处理是通过使用标准的尝试捕捉方法或使用应用程序事件.ASP.NET MVC附带内置支持,被称为异常过滤器功能异常处理.在这里我们要学习两种方法:一个是定义HandleError ...
- Android 高级UI设计笔记19:PopupWindow使用详解
1. PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的. 2. PopupWindow使用 ...
- org-reveal
环境: Debian 8 Emacs 24.4 org-reveal是在emacs org-mode中使用reveal.js的一个插件. emacs 24.4自带的org版本是8.2.10,这个版本似 ...
- Android 拍照 代码实例
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 这是我做的一个简单的利用Android手机的摄像头进行拍照的实例. 在这里我实现了基本的拍照.照片的存储 ...
- java jdbc连接mysql
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...
- 机房收费系统之处理流程图与DFD图
一直想把自己画的图拿出来与大家分享,不过说来惭愧,一是图还没画完,二是图画的确实不咋地, 对于机房收费系统还是感到混乱,图画的不好大家多多指正. 系统处理流程图: DFD图
- Http StatuCode说明
HTTP 200 - 文件被正常的访问 HTTP 302 - 临时重定向 HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导 ...
- 剑指Offer15 合并两个已排序链表
/************************************************************************* > File Name: 15_MergeT ...
- Quartz.Net使用
相关的Quartz的Demo https://yunpan.cn/cY3GZGcyTSQxu 访问密码 8b60 官方的写的也挺仔细的.http://www.quartz-scheduler.net ...