jeecg国际化

最近在做jeecg国际化,从刚开始的满头雾水到现在的“小有成就“已经过去大半个月。就总结下这一块的知识,送给和当初的我一样迷茫的小哥哥小姐姐。有什么不对的地方还请多多指教^_^。

首先大部分内容的国际化都可以参考官网附送的教程解决:http://jeecg3.mydoc.io/

总结起来可以归为:

1、jsp中使用国际化

1.1、这个比较简单,利用jeecg提供的国际化标签即可解决。

1.2、jeecg标签中的title可直接使用key值即可。例如:<t:dgCol title="common.id" field="id" hidden="true" queryMode="group" width="120"></t:dgCol>

1.3、jeecg标签属性国际化:例如<t:dgConfOpt url="kyAlarmController.do?isAck&id={id}" title="告警确认" message="是否确认" urlclass="ace_button" urlfont="fa-trash-o"/>其中的message属性,这个暂时还没想到好的办法,直接使用英文替换。也可以改变其使用的方法,这个比较麻烦,下面会讲到。

注意:输出语句国际化需用""引起来,不然控制台会报错。例如:layer.msg("<t:mutiLang langKey="common.edit.param" langArg="common.operation"/>");

2、js中使用国际化(这里讲的是js文件,而不是jsp中的js代码块)

2.1、一些jsp页面中引入js文件,可以是js插件也可以是js代码都没关系。

如果js代码比较少可以直接将js代码放到jsp中使用上面的方法解决。还可以在jsp引入该js文件前面添加js方法并返回需要国际化的内容,然后在js文件中调用该方法。例如:

<script>
 function getMemory() {
    var memory=<t:mutiLang langKey="memory"/>;
    return memory;
 }
</script>

还可以使用i18n插件来做国际化,当然jsp中也可以使用这个插件,前提是jeecg3.8版本以上。

使用方法:

1:在js或者jsp中加入以下代码

//i18n前段国际化
initI18nConfig();
/**
 * i18n国际化配置
 */
function initI18nConfig() {
	var i18n_browser_Lang = getCookie("i18n_browser_Lang");
	if(i18n_browser_Lang == 'zh-cn'){
		i18n_browser_Lang = 'zh';
	}
//	console.log(i18n_browser_Lang);
    $.i18n.properties({
        name:'jeecgs',    		//属性文件名     命名格式: 文件名_国家代号.properties
        path:'plug-in/i18n/',   //注意这里路径是你属性文件的所在文件夹
        mode:'map',
        language:i18n_browser_Lang,//这就是国家代号 name+language刚好组成属性文件名:strings+zh -> strings_zh.properties
        callback:function(){
       	
        }
    });
}

2:在i18n文件下找到jeecgs_en.properties和jeecgs_ch.properties文件填入要用到的key,然后在有中文的地方使用$.i18n.prop('edit.selectItem')替换即可,其中edit.selectItem为资源文件中的key。

2.2、jeecg自带窗体国际化,jeecg默认窗体是在curdtools.js里面的可以通过i18n修改该文件中汉字即可。

注意:这里面有点小坑,jeecg使用的窗体控件不止一种,目前我发现的窗体控件有jQuery的dialog控件以及layer的控件使用的控件不一样处理的方式也不一样,这里讲一下我遇到的情况吧!

$.dialog({
			content: 'url:'+addurl,
			zIndex: getzIndex(),
			lock : true,
			width:width,
			height: height,
			title:title,
			opacity : 0.3,
			cache:false, 
			okVal: $.i18n.prop('dialog.submit'),
		    cancelVal: $.i18n.prop('dialog.close'),
		    cancel: true /*为true等价于function(){}*/
		});

其中的okVal和cancelVal是弹出框两个按钮,title为标题。

$.dialog.confirm(content, function(){
			doSubmit(url,name);
			rowid = '';
		}, function(){
		});

$.dialog.confirm为jQuery插件dialog的扩展,本身就不支持两个按钮和title的修改,因此,我们遇到这种情况完全可以使用$.dialog来替换掉confirm方法。

$.dialog  API:http://www.lhgdialog.com/api/

layer.open({
				title:'提示信息',
				offset:'rb',
				content:msg,
				time:3000,
				btn:false,
				shade:false,
				icon:icon,
				shift:2
			});

如没有设置按钮和标题,则使用磨人的中文内容。因此需要添加按钮和title然后使用i18n国际化。

layer  API:https://www.layui.com/doc/modules/layer.html

3、Java代码中使用国际化

MutiLangUtil.getLang(langKey);

4、时间控件国际化

jeecg时间控件使用了My97DatePicker插件,在My97DatePicker.js中可以看到 lang:"auto"。auto的意思就是随着浏览器的语言来使用不同的语言控件。

 

好了^_^,大概就这么多了,以后有新的情况也会继续添加。随时欢迎交流~~~~~

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值