`
icekiller110
  • 浏览: 71166 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS i18n实现,支持带参数的功能

阅读更多
1.JS国际化的实现原理:
   动态加载对应的JS的国际化资源文件(js_locale_en_US.js和js_locale_zh_CN.js)。
   <script src="/javascripts/locales/js_locale_<%=lang%>.js"></script>
   其中[<%=lang%>]为动态取得的当前语言环境。

2.资源文件说明(js_locale_zh_CN.js):
var JSLocale = {
   hello: "你好"
   helloParam: "第一个参数{{:first}},第二个参数{{:second}}."
   
   end: "" // 结束符号,没有意义
}

资源文件就是创建了一个全局JSON对象JSLocale。
在模板页调用资源内容,只需要使用JSLocale.hello("hello"为对应的json对象的键值)即可调用对应的内容。

3.带有参数的国际化内容的疑问:
   在有些情况下我们会需要在国际化的内容中带有参数,例如在国际化分页工具栏的时候会有"当前是第n页"的内容,其中的n就是个参数。
   针对带有参数的国际化内容添加了dynamicLocale.js。
/*
 * 描述:动态取得本地资源文件内容
 * 
 * 参数:
 *   key 对应的资源的key
 *   params 对应资源中的参数对象(Hash)
 *   
 * 返回:对应的资源内容
 * 
 * 用法:
 * 		getLocale("helloParam",{first:value1,second:value2});
 */
function getJSLocale(key,params){
	var result = ""; 	// 对应的资源的内容
	var paramsObj = {};	// 参数对象
	if(params) paramsObj = params;
	
	if(typeof(key) != 'undefined' && typeof(JSLocale) != 'undefined'){
		// 根据key取得对应的资源内容,如果没有找到则返回key值
		if(JSLocale[key] != undefined){
			result = JSLocale[key];
		}else{
			result = key;
		}
		
		// 替换对应参数为value的值
		var regExp = new RegExp(); //替换资源中参数的正则
		for(var k in paramsObj){
			regExp = eval("/{{:" + k + "}}/g");
			result = result.replace(regExp,paramsObj[k]);
		}
		
		// 如果没有找到对应的资源则返回 "No Value"
		if(/{{:[a-zA-Z]+}}/.test(result)){
			result = result.replace(/{{:[a-zA-Z]+}}/g, "No Value");
		}
	}
	return result;
}

在模板页调用带参数的国际化资源内容,使用getLocale("helloParam",{first:value1,second:value2});

注:带参数的调用方式同时支持没有参数的调用,例如可以使用getLocale("hello");取得键值为"hello"的资源内容。

4.在资源文件中定义参数的方式
   使用{{:param}}
   其中param即对应的参数的key值,可以重复使用,没有前后顺序。
  
5
3
分享到:
评论
2 楼 alijon 2017-01-09  
html 便签 能写getLocale("hello"); 么 怎么写啊
1 楼 grandboy 2011-04-26  
不错,一直在想这个事,但没有时间去研究,看到JqueryUI都实现得挺好的,正准备看看它的实现呢。项目一紧就更没有时间去弄这个东西了。

相关推荐

    jquery-i18n-properties-1.0.9.js

    jQuery i18n Properties 1.0.9 是一个专门针对这一需求而设计的JavaScript库,它允许开发者轻松地管理和实现网站或应用的国际化(i18n)功能。这个库基于jQuery框架,利用.properties文件格式存储不同语言的文本资源...

    基于jQuery.i18n.properties插件实现前端页面国际化demo

    jQuery.i18n.properties插件是实现这一目标的一个强大工具,尤其适合那些基于jQuery构建的项目。这个插件提供了一种简单的方法来管理并加载不同语言版本的属性文件,使得前端开发者可以轻松地实现在不同地区使用的多...

    jquery.i18n.properties.zip

    1. **下载与引用**:首先,你需要从可靠的源获取jquery.i18n.properties.js文件,将其放入项目的JavaScript文件夹下。确保在HTML或JSP页面中正确引入jQuery库和这个插件,通常是在`&lt;head&gt;`标签内使用`&lt;script&gt;`标签...

    在javascript文件中读取properties文件需要的插件jquery.i18n.properties-min-1.0.9.js

    然而,为了在前端实现国际化(i18n)功能,有时候我们需要在JavaScript文件中读取这些包含多语言文本的.properties文件。这时,我们就需要依赖一些第三方库来帮助我们完成这个任务。其中一个常用的插件是`jquery.i18...

    前端开源库-koa-i18n

    Koa-i18n 是一个专为 Koa 框架设计的轻量级国际化中间件,它基于 i18n-2 库,旨在帮助开发者快速、方便地在前端应用中实现多语言支持。在开发面向全球用户的 web 应用时,提供多种语言版本是非常重要的,Koa-i18n ...

    jquery.i18n.properties两个js文件打包

    `jquery.i18n.properties`是一个非常实用的jQuery插件,它专门用于在前端动态读取和使用`.properties`文件的内容,以实现国际化(i18n)功能。这篇文章将详细介绍这个插件的工作原理、使用方法及其相关知识点。 ...

    基于jQuery.i18n.properties 实现资源国际化简单Demo 源码

    6. **缓存与性能优化**:jQuery.i18n.properties插件提供了缓存功能,可以设置`mode`参数为`'both'`,在首次加载时将文件内容缓存在内存中,以提高后续访问速度。 在提供的Demo源码中,你应该能看到以上步骤的实现...

    jquery.i18n.properties-min-1.0.9

    jQuery i18n.properties.min-1.0.9是一个小巧而强大的插件,它专门用于帮助前端开发者轻松地读取和处理配置文件,从而实现前端的国际化功能。该插件基于jQuery框架,简化了原本复杂繁琐的国际化过程。 1. **jQuery...

    前端项目-jquery.i18n.zip

    **jQuery.i18n** 是一个专为前端开发者设计的JavaScript库,主要目的是为了实现Web应用的国际化(i18n)和本地化(l10n)。在现代Web开发中,随着全球化的推进,一个网站或应用需要适应不同地区和语言的用户,这就...

    jquery.i18n.properties在asp.net里的应用

    jQuery.i18n.properties 是基于 jQuery 的一个轻量级国际化插件,它支持 .properties 文件格式,这种格式在 Java 开发中常用来存储多语言资源。通过这个插件,开发者可以在前端直接调用和管理这些资源,从而实现...

    jquery.i18n.properties国际化 例子

    jQuery.i18n.properties插件是jQuery的一个扩展,专门用于实现基于.properties文件的国际化。 本文将详细讲解jQuery.i18n.properties插件的使用方法,以及如何结合实际项目中的示例进行国际化设置。 首先,我们...

    jquery-i18n-properties

    - **初始化插件**:在JavaScript代码中,调用`$.i18n.init`方法来初始化插件,并设置相关参数。 - **使用插件**:通过`$.t`方法获取和显示翻译后的文本,例如`var greeting = $.t('greeting');` ### 3. 示例代码 `...

    Spring i18n

    Spring i18n,全称为“Spring 国际化”,是Spring框架提供的一个强大的功能,用于支持多语言环境的应用程序开发。它使开发者能够轻松地为不同地区的用户提供本地化的界面和信息,从而提升应用程序的全球适用性。在...

    详解使用jQuery.i18n.properties实现js国际化

    本文将深入探讨如何利用jQuery.i18n.properties插件实现前端JavaScript代码的国际化。 首先,需要了解什么是国际化。国际化(i18n)指的是将软件或网站设计得可以适应不同的语言和文化环境,而不需对源代码本身做出...

    i18nWeb_test.rar

    【描述】"i18n页面国际化实现(源码下载)网站国际化多语言切换实现" 提到的是一个实际的项目,旨在帮助开发者理解如何在网页上实现多语言切换的功能。用户可以通过这个项目学习到如何根据用户的选择动态地改变页面...

    demo-jQuery.i18n.properties

    jQuery库,作为JavaScript中最受欢迎的库之一,提供了丰富的功能,包括对国际化(i18n)的支持。在本篇中,我们将深入探讨“demo-jQuery.i18n.properties”这一示例,它展示了如何利用jQuery.i18n.properties插件实现...

    i18n具体例子

    在i18n上下文中,jQuery并不直接提供内置的i18n支持,但我们可以借助一些插件或自定义方法来实现这一功能。 一个常见的方法是创建一个包含所有翻译文本的JSON对象,例如: ```json { "en": { "hello": "Hello", ...

    jquery.i18n.properties.rar

    此外,jquery.i18n.properties插件还支持动态改变当前语言环境,只需重新调用`$.i18n.properties`并传入新的语言代码即可。这使得在用户更改语言设置时,无需刷新页面就能实时更新内容。 在实际项目中,前端开发者...

Global site tag (gtag.js) - Google Analytics