基于jQuery的前端国际化方案

基于jQuery的一种简单的国际化方案,通过改变地址栏 local 的值即可切换语言,首先我们先来看看效果图:
在这里插入图片描述

使用

  1. 需要国际化的标签class中必须包含 ‘ch-i18n’ 类名, 必须有data-i18nkey属性
  2. 如果input有placeholder属性,则会对placeholder进行国际化显示
  3. 如果input有value属性,则会对value进行国际化显示
  4. 对于2,3这两种情况,一般input的type为 text,submit,button
i18n.js
(function () {
   
	var i18n = null ;
	var SELECTOR = ".ch-i18n";
	var ATTR = "data-i18nkey";				
	var LANGUAGE_ARRAY = ['zh-cn','en-us'];	
	var lang = LANGUAGE_ARRAY[0];
	var LOCAL = "local"; 					

	var CHI18n = {
   
		get : function (key , obj) {
   
			var text = i18n[key] ;
			if(obj) {
   
				for(k in obj) {
   
					text = text.replace(new RegExp("\\{\\{" + k + "\\}\\}", "g"), obj[k]);  
				}
			}
			return text ;
		}
	}

	// 我这里根据页面为单位,通过页面的唯一标识,去获取相应的国际化翻译
	function CHI18nFactory (pageName) {
   
		if(!pageName || pageName == "") throw new Error("参数不能为空");
		loadLanguage(pageName); 
		return CHI18n ;
	}

	/**
	 * 加载语言文件
	 */
	function loadLanguage (pageName) {
   
		
		var search = window.location.search.replace("?","");
		var param = search.split("&");

		var index = param.findIndex(function (item) {
    
			return item.indexOf(LOCAL) != -1 ;
		});

		if(index 
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值