diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/com/nis/domain/SysMenu.java | 10 | ||||
| -rw-r--r-- | src/main/java/com/nis/web/controller/I18nController.java | 62 | ||||
| -rw-r--r-- | src/main/java/com/nis/web/dao/SysMenuDao.xml | 4 | ||||
| -rw-r--r-- | src/main/resources/messages/message_en.properties | 21 | ||||
| -rw-r--r-- | src/main/resources/messages/message_ru.properties | 21 | ||||
| -rw-r--r-- | src/main/resources/messages/message_zh_CN.properties | 21 | ||||
| -rw-r--r-- | src/main/resources/spring-mvc.xml | 16 | ||||
| -rw-r--r-- | src/main/webapp/WEB-INF/include/taglib.jsp | 1 | ||||
| -rw-r--r-- | src/main/webapp/WEB-INF/views/home.jsp | 61 |
9 files changed, 195 insertions, 22 deletions
diff --git a/src/main/java/com/nis/domain/SysMenu.java b/src/main/java/com/nis/domain/SysMenu.java index 3609fcce1..bf91bcbfa 100644 --- a/src/main/java/com/nis/domain/SysMenu.java +++ b/src/main/java/com/nis/domain/SysMenu.java @@ -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;
+ }
}
\ No newline at end of file diff --git a/src/main/java/com/nis/web/controller/I18nController.java b/src/main/java/com/nis/web/controller/I18nController.java new file mode 100644 index 000000000..8bfa87e2a --- /dev/null +++ b/src/main/java/com/nis/web/controller/I18nController.java @@ -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() {
+ }
+
+}
diff --git a/src/main/java/com/nis/web/dao/SysMenuDao.xml b/src/main/java/com/nis/web/dao/SysMenuDao.xml index 029537a10..f067e00dc 100644 --- a/src/main/java/com/nis/web/dao/SysMenuDao.xml +++ b/src/main/java/com/nis/web/dao/SysMenuDao.xml @@ -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},
diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties new file mode 100644 index 000000000..4d29aa9aa --- /dev/null +++ b/src/main/resources/messages/message_en.properties @@ -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
\ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties new file mode 100644 index 000000000..004f547c6 --- /dev/null +++ b/src/main/resources/messages/message_ru.properties @@ -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
diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties new file mode 100644 index 000000000..0beefcec7 --- /dev/null +++ b/src/main/resources/messages/message_zh_CN.properties @@ -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
\ No newline at end of file diff --git a/src/main/resources/spring-mvc.xml b/src/main/resources/spring-mvc.xml index 2e961f65c..7b6391e49 100644 --- a/src/main/resources/spring-mvc.xml +++ b/src/main/resources/spring-mvc.xml @@ -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> diff --git a/src/main/webapp/WEB-INF/include/taglib.jsp b/src/main/webapp/WEB-INF/include/taglib.jsp index 453003d43..97c24ad40 100644 --- a/src/main/webapp/WEB-INF/include/taglib.jsp +++ b/src/main/webapp/WEB-INF/include/taglib.jsp @@ -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"/> diff --git a/src/main/webapp/WEB-INF/views/home.jsp b/src/main/webapp/WEB-INF/views/home.jsp index b24f2979e..a97ac94f4 100644 --- a/src/main/webapp/WEB-INF/views/home.jsp +++ b/src/main/webapp/WEB-INF/views/home.jsp @@ -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} <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} <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> 个人信息</a></li>
- <li><a href="${ctx}/sys/user/modifyPwd" target="mainFrame"><i class="icon-lock"></i> 修改密码</a></li>
- <li><a href="${ctx}oa/oaNotify/self" target="mainFrame"><i class="icon-bell"></i> 我的通知 <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> <spring:message code="userInfo"></spring:message></a></li>
+ <li><a href="${ctx}/sys/user/modifyPwd" target="mainFrame"><i class="icon-lock"></i> <spring:message code="updatePwd"></spring:message></a></li>
+ <li><a href="${ctx}oa/oaNotify/self" target="mainFrame"><i class="icon-bell"></i> <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>
|
