增加系统国际化配置

This commit is contained in:
dell
2018-01-16 09:57:12 +08:00
parent 0597c974e8
commit f45edaddb5
10 changed files with 196 additions and 22 deletions

View File

@@ -11,3 +11,4 @@ encoding//src/main/webapp/WEB-INF/tlds/fns.tld=UTF-8
encoding//src/main/webapp/WEB-INF/views/letter/process/errorView.jsp=UTF-8
encoding//src/main/webapp/static/common/jeesite.css=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8

View File

@@ -18,6 +18,8 @@ public class SysMenu extends BaseEntity<SysMenu>{
private Long parentId;
private String parentIds;
private String code;
private String name;
@@ -249,5 +251,13 @@ public class SysMenu extends BaseEntity<SysMenu>{
public void setParent(SysMenu parent) {
this.parent = parent;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}

View File

@@ -0,0 +1,62 @@
package com.nis.web.controller;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;
/**
* 国际化控制器
*/
@Controller
@RequestMapping("/")
public class I18nController {
@Autowired
private CookieLocaleResolver resolver;
/**
* 语言切换
*/
@RequestMapping("language")
public ModelAndView language(HttpServletRequest request, HttpServletResponse response, String language) {
language = language.toLowerCase();
if (language == null || language.equals("")) {
return new ModelAndView("redirect:/");
} else {
if (language.equals("zh_cn")) {
resolver.setLocale(request, response, Locale.CHINA);
} else if (language.equals("en")) {
resolver.setLocale(request, response, Locale.ENGLISH);
} else if(language.equals("ru")){
Locale locale = new Locale("ru","RU");
resolver.setLocale(request, response, locale);
} else {
resolver.setLocale(request, response, Locale.ENGLISH);
}
}
return new ModelAndView("redirect:/");
}
/**
* 演示一些消息
*/
@RequestMapping("something")
public void something() {
}
/**
* 换页面
*/
@RequestMapping("welcome")
public void welcome() {
}
}

View File

@@ -6,6 +6,7 @@
a.id,
a.parent_id AS "parent.id",
a.parent_ids,
a.code,
a.name,
a.href,
a.target,
@@ -68,6 +69,7 @@
INSERT INTO sys_menu(
parent_id,
parent_ids,
code,
name,
href,
target,
@@ -84,6 +86,7 @@
) VALUES (
#{parent.id},
#{parentIds},
#{code},
#{name},
#{href},
#{target},
@@ -104,6 +107,7 @@
UPDATE sys_menu SET
parent_id = #{parent.id},
parent_ids = #{parentIds},
code=#{code},
name = #{name},
href = #{href},
target = #{target},

View File

@@ -0,0 +1,21 @@
#menu and button info
funMenu=function menu
sysManage=system management
sysAuthor=system authorization
menuManage=menu management
roleManage=role management
dictManage=dictionary management
basicManage=basic management
areaManage=area management
officeManage=office management
userManage=user management
notify=my notify
help=help
home=home
panel=my panel
userInfo=personal information
updatePwd=update password
show=show
edit=edit
hi=hi
exit=exit

View File

@@ -0,0 +1,21 @@
#menu and button info
funMenu=function menu
sysManage=system management
sysAuthor=system authorization
menuManage=menu management
roleManage=role management
dictManage=dictionary management
basicManage=basic management
areaManage=area management
officeManage=office management
userManage=user management
notify=my notify
help=help
home=home
panel=my panel
userInfo=personal information
updatePwd=update password
show=show
edit=edit
hi=hi
exit=exit

View File

@@ -0,0 +1,21 @@
#menu and button info
funMenu=\u529F\u80FD\u83DC\u5355
sysManage=\u7CFB\u7EDF\u7BA1\u7406
sysAuthor=\u7CFB\u7EDF\u6388\u6743
menuManage=\u83DC\u5355\u7BA1\u7406
roleManage=\u89D2\u8272\u7BA1\u7406
dictManage=\u5B57\u5178\u7BA1\u7406
basicManage=\u57FA\u672C\u7BA1\u7406
areaManage=\u533A\u57DF\u7BA1\u7406
officeManage=\u673A\u6784\u7BA1\u7406
userManage=\u7528\u6237\u7BA1\u7406
notify=\u6211\u7684\u540C\u5FD7
help=\u5173\u4E8E\u5E2E\u52A9
home=\u5B98\u65B9\u9996\u9875
panel=\u6211\u7684\u9762\u677F
userInfo=\u4E2A\u4EBA\u4FE1\u606F
updatePwd=\u4FEE\u6539\u5BC6\u7801
show=\u67E5\u770B
edit=\u4FEE\u6539
hi=\u4F60\u597D
exit=\u9000\u51FA

View File

@@ -262,8 +262,18 @@
<!--<property name="maxInMemorySize" value="1000"></property> -->
</bean>
<!-- 配置国际化资源文件路径 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<!-- 定义消息资源文件的相对路径 -->
<value>messages/message</value>
</property>
</bean>
<!-- 基于Cookie的本地化解析器 -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieMaxAge" value="604800"/>
<property name="defaultLocale" value="zh_CN"/>
<property name="cookieName" value="Language"></property>
</bean>
</beans>

View File

@@ -5,5 +5,6 @@
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
<%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<c:set var="ctx" value="${pageContext.request.contextPath}${fns:getStringProperty('adminPath','/nis')}"/>
<c:set var="ctxStatic" value="${pageContext.request.contextPath}/static"/>

View File

@@ -41,8 +41,8 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<c:if test="${menu.href != null && menu.href != ''}" var="leafNodeFlag">
<li>
<a href="${ctx}${menu.href}" id="${menu.id}" target="mainFrame" class="${idxStatus.index eq 0 ? 'selected' : ''}">
<img src="${ctxStatic}/images/${menu.icon}.png" title="${menu.name }" />
<h2>${menu.name }</h2>
<img src="${ctxStatic}/images/${menu.icon}.png" title="<spring:message code="${menu.code}"></spring:message>" />
<h2><%-- ${menu.name } --%><spring:message code="${menu.code}"></spring:message></h2>
</a>
</li>
</c:if>
@@ -50,8 +50,10 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<c:if test="${!leafNodeFlag }">
<li>
<a href="javascript:void(0);" id="${menu.id}" class="${idxStatus.index eq 0 ? 'selected' : ''}">
<img src="${ctxStatic}/images/${menu.icon}.png" title="${menu.name}" />
<h2>${menu.name}</h2>
<img src="${ctxStatic}/images/${menu.icon}.png" title="<spring:message code="${menu.code}"></spring:message>" />
<h2><%-- ${menu.name} --%>
<spring:message code="${menu.code}"></spring:message>
</h2>
</a>
</li>
</c:if>
@@ -66,20 +68,20 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<div class="topright">
<ul>
<li><a href="${pageContext.request.contextPath}/" title="访问网站主页"><i class="icon-home"></i> 首页</a></li>
<li><a href="#"><i class="icon-question-sign"></i> 帮助</a></li>
<li><a href="${pageContext.request.contextPath }/logout" title="退出登录"><i class="icon-signout"></i> 退出</a></li>
<li><a href="${pageContext.request.contextPath}/" title="访问网站主页"><i class="icon-home"></i><spring:message code="home"></spring:message></a></li>
<li><a href="#"><i class="icon-question-sign"></i> <spring:message code="help"></spring:message></a></li>
<li><a href="${pageContext.request.contextPath }/logout" title="退出登录"><i class="icon-signout"></i> <spring:message code="exit"></spring:message></a></li>
</ul>
<div class="user">
<ul class="nav pull-right">
<li id="userInfo" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" title="个人信息"><i class="icon-user"></i> 您好,${fns:getUser().name}&nbsp;<span id="notifyNum" class="label label-info hide"></span><b class="caret"></b></a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#" title="个人信息"><i class="icon-user"></i> <spring:message code="hi"></spring:message>,${fns:getUser().name}&nbsp;<span id="notifyNum" class="label label-info hide"></span><b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="${ctx}/sys/user/info" target="mainFrame"><i class="icon-user"></i>&nbsp; 个人信息</a></li>
<li><a href="${ctx}/sys/user/modifyPwd" target="mainFrame"><i class="icon-lock"></i>&nbsp; 修改密码</a></li>
<li><a href="${ctx}oa/oaNotify/self" target="mainFrame"><i class="icon-bell"></i>&nbsp; 我的通知 <span id="notifyNum2" class="label label-info hide"></span></a></li>
<li><a href="${ctx}/sys/user/info" target="mainFrame"><i class="icon-user"></i>&nbsp; <spring:message code="userInfo"></spring:message></a></li>
<li><a href="${ctx}/sys/user/modifyPwd" target="mainFrame"><i class="icon-lock"></i>&nbsp; <spring:message code="updatePwd"></spring:message></a></li>
<li><a href="${ctx}oa/oaNotify/self" target="mainFrame"><i class="icon-bell"></i>&nbsp; <spring:message code="notify"></spring:message> <span id="notifyNum2" class="label label-info hide"></span></a></li>
</ul>
</li>
@@ -93,6 +95,9 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
</c:forEach>
<li><a href="javascript:cookie('tabmode','${tabmode eq '1' ? '0' : '1'}');location=location.href">${tabmode eq '1' ? '关闭' : '开启'}页签模式</a></li>
<li><a href="${pageContext.request.contextPath}/language?language=en">英语</a></li>
<li><a href="${pageContext.request.contextPath}/language?language=zh_CN">中文</a></li>
<li><a href="${pageContext.request.contextPath}/language?language=ru">俄文</a></li>
</ul>
<!--[if lte IE 6]><script type="text/javascript">$('#themeSwitch').hide();</script><![endif]-->
</li>
@@ -123,14 +128,20 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<c:if test="${not empty menu.children }">
<div id="menu-${menu.id }" class="accordion ${idxStatus.index eq 0 ? '' : 'hide'}">
<div class="lefttop"><span></span>${menu.name }</div>
<div class="lefttop"><span></span><%-- ${menu.name } --%>
<spring:message code="${menu.code}"></spring:message></div>
<dl class="leftmenu">
<%-- <dd><div id="menu-0-0" class="title"><i class="icon-check" ></i>
<a id="menu-81-70" data-id="70" data-name="国际化" href="${pageContext.request.contextPath}/something" target="mainFrame" jerichotabindex="0">示例</a>
</div>
</dd> --%>
<c:forEach items="${menu.children}" var="secondMenu">
<dd>
<div id="menu-${menu.id }-${secondMenu.id}" class="title">
<img src="${ctxStatic}/images/${secondMenu.icon}.png" title="${secondMenu.name }"/>
<%-- <span class="${secondMenu.icon } icon-white"></span> --%>${secondMenu.name}
<%-- <span class="${secondMenu.icon } icon-white"></span> --%>
<%-- ${secondMenu.name} --%>
<spring:message code="${secondMenu.code}"></spring:message>
</div>
<ul class="menuson">
@@ -141,7 +152,10 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<li>
<span class="${not empty thirdMenu.icon?thirdMenu.icon:'icon-hide'} icon-white"></span>
<a id="menu-${menu.id }-${secondMenu.id}-${thirdMenu.id}" data-id="${thirdMenu.id}" data-name="${menu.name }-${secondMenu.name}-${thirdMenu.name}"
href="${ctx}${thirdMenu.href}" target="mainFrame">${thirdMenu.name }<i></i></a>
href="${ctx}${thirdMenu.href}" target="mainFrame">
<%-- ${thirdMenu.name } --%>
<spring:message code="${thirdMenu.code}"></spring:message>
<i></i></a>
</li>
</c:if>
@@ -181,7 +195,9 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<c:if test="${not empty secondMenu.href and secondMenu.quickAction ne 0}">
<c:if test="${secondMenu.quickAction==1}">
<li class="${secondMenu.menuBg }">
<a href="javascript:void(0);" onclick="page_turn('${menu.id}'+'_'+'${secondMenu.id}')"> <i class="${secondMenu.icon }"></i> ${secondMenu.name }
<a href="javascript:void(0);" onclick="page_turn('${menu.id}'+'_'+'${secondMenu.id}')"> <i class="${secondMenu.icon }"></i>
<%-- ${secondMenu.name } --%>
<spring:message code="${secondMenu.code}"></spring:message>
<c:if test="${secondMenu.name eq '待办事项'}"><span id="notifyWorkedOption" class="label label-important hide"></span></c:if>
</a>
</li>
@@ -189,7 +205,10 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<c:if test="${secondMenu.quickAction==2}">
<li class="${secondMenu.menuBg } span3"> <a href="javascript:void(0);" onclick="page_turn('${menu.id}'+'_'+'${secondMenu.id}')">
<i class="${secondMenu.icon }"></i> ${secondMenu.name } <c:if test="${secondMenu.name eq '待办事项'}"><span id="notifyWorkedOption" class="label label-important hide"></span></c:if></a> </li>
<i class="${secondMenu.icon }"></i>
<%-- ${secondMenu.name } --%>
<spring:message code="${secondMenu.code}"></spring:message>
<c:if test="${secondMenu.name eq '待办事项'}"><span id="notifyWorkedOption" class="label label-important hide"></span></c:if></a> </li>
</c:if>
</c:if>
@@ -197,7 +216,9 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<c:if test="${not empty thirdMenu.href and thirdMenu.quickAction ne 0}">
<c:if test="${thirdMenu.quickAction==1}">
<li class="${thirdMenu.menuBg }">
<a href="javascript:void(0);" onclick="page_turn('${menu.id}'+'_'+'${secondMenu.id}'+'_'+'${thirdMenu.id}')"> <i class="${thirdMenu.icon }"></i> ${thirdMenu.name }
<a href="javascript:void(0);" onclick="page_turn('${menu.id}'+'_'+'${secondMenu.id}'+'_'+'${thirdMenu.id}')">
<i class="${thirdMenu.icon }"></i><%-- ${thirdMenu.name } --%>
<spring:message code="${thirdMenu.code}"></spring:message>
<c:if test="${thirdMenu.name eq '待办事项'}"><span id="notifyWorkedOption" class="label label-important hide"></span></c:if>
</a>
</li>
@@ -205,7 +226,9 @@ h3{color:#ffffff;margin:30px 0px 0px 10px;}
<c:if test="${thirdMenu.quickAction==2}">
<li class="${thirdMenu.menuBg } span3">
<a href="javascript:void(0);" onclick="page_turn('${menu.id}'+'_'+'${secondMenu.id}'+'_'+'${thirdMenu.id}')"> <i class="${thirdMenu.icon }"></i> ${thirdMenu.name }
<a href="javascript:void(0);" onclick="page_turn('${menu.id}'+'_'+'${secondMenu.id}'+'_'+'${thirdMenu.id}')"> <i class="${thirdMenu.icon }"></i>
<%-- ${thirdMenu.name } --%>
<spring:message code="${thirdMenu.code}"></spring:message>
<c:if test="${thirdMenu.name eq '待办事项'}"><span id="notifyWorkedOption" class="label label-important hide"></span></c:if>
</a>
</li>