1
0
Эх сурвалжийг харах

Merge branch 'dev_200331_openapi' of http://git.qmth.com.cn/luoshi/stmms-ft into dev_200331_openapi

 Conflicts:
	stmms-web/src/main/webapp/WEB-INF/views/modules/exam/examIndex.jsp
	stmms-web/src/main/webapp/static/i18n/messages.properties
	stmms-web/src/main/webapp/static/i18n/messages_ja.properties
	stmms-web/src/main/webapp/static/i18n/messages_zh.properties
luoshi 4 жил өмнө
parent
commit
fdb1e2d7e2

+ 151 - 183
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/examIndex.jsp

@@ -1,190 +1,158 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
 <html>
 <head>
-    <title>高校云阅卷</title>
-    <meta name="decorator" content="default"/>
-    <%@include file="/WEB-INF/views/include/head.jsp" %>
-    <style type="text/css">
-        #main {
-            padding: 0;
-            margin: 0;
-        }
-        
-        #main .container-fluid {
-            padding: 0 7px 0 10px;
-        }
-        
-        #header {
-            margin: 0 0 10px;
-            position: static;
-        }
-        
-        #header li {
-            font-size: 14px;
-            _font-size: 12px;
-        }
-        
-        #header .brand {
-            font-family: Helvetica, Georgia, Arial, sans-serif, 黑体;
-            font-size: 26px;
-            padding-left: 33px;
-        }
-        
-        #footer {
-            margin: 8px 0 0 0;
-            padding: 3px 0 0 0;
-            font-size: 11px;
-            text-align: center;
-            border-top: 2px solid #0663A2;
-        }
-        
-        #footer, #footer a {
-            color: #999;
-        }
-    </style>
-    <script type="text/javascript">
-        $(document).ready(function () {
-            $("#menu a.menu").click(function () {
-                $("#menu li.menu").removeClass("active");
-                $(this).parent().addClass("active");
-                if (!$("#openClose").hasClass("close")) {
-                    $("#openClose").click();
-                }
-            });
-
-            $(".accordion-heading a").click(function () {
-                $('.accordion-toggle i').removeClass('icon-chevron-down');
-                $('.accordion-toggle i').addClass('icon-chevron-right');
-                if (!$($(this).attr('href')).hasClass('in')) {
-                    $(this).children('i').removeClass('icon-chevron-right');
-                    $(this).children('i').addClass('icon-chevron-down');
-                }
-            });
-            $(".accordion-body a").click(function () {
-                $("#menu li").removeClass("active");
-                $("#menu li i").removeClass("icon-white");
-                $(this).parent().addClass("active");
-                $(this).children("i").addClass("icon-white");
-            });
-            $(".accordion-body a:first i").click();
-        });
-    </script>
+	<title>高校云阅卷</title>
+	<meta name="decorator" content="default"/>
+	<%@include file="/WEB-INF/views/include/head.jsp" %>
+	<style type="text/css">
+		#main {padding:0;margin:0;} #main .container-fluid{padding:0 7px 0 10px;}
+		#header {margin:0 0 10px;position:static;} #header li {font-size:14px;_font-size:12px;}
+		#header .brand {font-family:Helvetica, Georgia, Arial, sans-serif, 黑体;font-size:26px;padding-left:33px;}
+		#footer {margin:8px 0 0 0;padding:3px 0 0 0;font-size:11px;text-align:center;border-top:2px solid #0663A2;}
+		#footer, #footer a {color:#999;} 
+	</style>
+	<script type="text/javascript"> 
+		$(document).ready(function() {
+			$("#menu a.menu").click(function(){
+				$("#menu li.menu").removeClass("active");
+				$(this).parent().addClass("active");
+				if(!$("#openClose").hasClass("close")){
+					$("#openClose").click();
+				}
+			});
+			
+			$(".accordion-heading a").click(function(){
+				$('.accordion-toggle i').removeClass('icon-chevron-down');
+				$('.accordion-toggle i').addClass('icon-chevron-right');
+				if(!$($(this).attr('href')).hasClass('in')){
+					$(this).children('i').removeClass('icon-chevron-right');
+					$(this).children('i').addClass('icon-chevron-down');
+				}
+			});
+			$(".accordion-body a").click(function(){
+				$("#menu li").removeClass("active");
+				$("#menu li i").removeClass("icon-white");
+				$(this).parent().addClass("active");
+				$(this).children("i").addClass("icon-white");
+			}); 
+			$(".accordion-body a:first i").click();
+		});
+	</script>
 </head>
 <body>
-<div id="main">
-    <div id="header" class="navbar navbar-fixed-top">
-        <div class="navbar-inner">
-            <div class="brand">云阅卷</div>
-            <div class="nav-collapse">
-                <%-- <ul id="menu" class="nav">
-                  <c:set var="firstMenu" value="true"/>
-                  <li class="menu "><a class="menu" href="${ctx }/admin/exam" target="menuFrame" >考试管理</a></li>
-                 <li class="menu "><a class="menu" href="" target="menuFrame" >基础管理</a></li>
-                </ul> --%>
-                <ul class="nav pull-right">
-                    <li id="themeSwitch" class="dropdown">
-                        <a class="dropdown-toggle" data-toggle="dropdown" href="#" title="主题切换"><i class="icon-th-large"></i></a>
-                        <ul class="dropdown-menu">
-                            <li><a href="#" onclick="location='${ctx}/admin/home/theme/default?url='+location.href">默认主题</a></li>
-                            <li><a href="#" onclick="location='${ctx}/admin/home/theme/cerulean?url='+location.href">天蓝主题</a></li>
-                            <li><a href="#" onclick="location='${ctx}/admin/home/theme/readable?url='+location.href">橙色主题</a></li>
-                            <li><a href="#" onclick="location='${ctx}/admin/home/theme/united?url='+location.href">红色主题</a></li>
-                            <li><a href="#" onclick="location='${ctx}/admin/home/theme/flat?url='+location.href">Flat主题</a></li>
-                        </ul>
-                        <!--[if lte IE 6]>
-                        <script type="text/javascript">$('#themeSwitch').hide();</script><![endif]-->
-                    </li>
-                    <li class="dropdown">
-                        <a class="dropdown-toggle" data-toggle="dropdown" href="#" title="个人信息">${web_user.name}</a>
-                        <ul class="dropdown-menu">
-                            <li><a href="${ctx}/admin/account/info" target="mainFrame"><i class="icon-user"></i>&nbsp; 个人信息</a></li>
-                            <li><a href="${ctx}/admin/account/modifyPwd" target="mainFrame"><i class="icon-lock"></i>&nbsp; 修改密码</a></li>
-                        </ul>
-                    </li>
-                    <li><a href="${ctx}/logout" title="退出登录">退出</a></li>
-                    <li>&nbsp;</li>
-                </ul>
-            </div><!--/.nav-collapse -->
-        </div>
-    </div>
-    <div class="container-fluid">
-        <div id="content" class="row-fluid">
-            <div id="left">
-                <div class="accordion" id="menu"><c:set var="firstMenu" value="true"/>
-                    <div class="accordion-group">
-                        <%-- <div class="accordion-heading">
-                            <a class="accordion-toggle" data-toggle="collapse" data-parent="#menu" href="#collapse${menu.id}" title="考试管理"><i class="icon-chevron-${firstMenu?'down':'right'}"></i>&nbsp;考试管理</a>
-                        </div> --%>
-                        <div id="collapse1" class="accordion-body collapse ${firstMenu?'in':''}">
-                            <div class="accordion-inner">
-                                <ul class="nav nav-list">
-                                    <c:if test="${web_user.schoolAdmin==true}">
-                                        <li><a href="${ctx}/admin/user/list" target="mainFrame"><i class="icon-user"></i>用户管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/list" target="mainFrame"><i class="icon-th-list"></i>考试管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/student" target="mainFrame"><i class="icon-user"></i>考生管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/paper" target="mainFrame"><i class="icon-book"></i>试卷管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/scan" target="mainFrame"><i class="icon-print"></i>扫描进度</a></li>
-                                        <li><a href="${ctx}/admin/exam/mark" target="mainFrame"><i class="icon-pencil"></i>评卷管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/score" target="mainFrame"><i class="icon-search"></i>成绩查询</a></li>
-                                        <li><a href="${ctx}/admin/exam/problem/history" target="mainFrame"><i class="icon-tag"></i>问题试卷</a></li>
-                                        <li><a href="${ctx}/admin/exam/reportSubject" target="mainFrame"><i class="icon-signal"></i>总量分析</a></li>
-                                        <li><a href="${ctx}/admin/exam/reportSubjectCollege" target="mainFrame"><i class="icon-asterisk"></i>科目分析</a></li>
-                                        <li><a href="${ctx}/admin/exam/check/answer" target="mainFrame"><i class="icon-check"></i>数据检查</a></li>
-                                        <li><a href="${ctx}/admin/operation/log" target="mainFrame"><i class="icon-tasks"></i>操作日志</a></li>
-                                    </c:if>
-                                    
-                                    <c:if test="${web_user.subjectHeader==true}">
-                                        <li><a href="${ctx}/admin/exam-list" target="mainFrame"><i class="icon-th-list"></i>考试管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/student" target="mainFrame"><i class="icon-user"></i>考生管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/mark" target="mainFrame"><i class="icon-pencil"></i>评卷管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/score" target="mainFrame"><i class="icon-search"></i>成绩查询</a></li>
-                                        <li><a href="${ctx}/admin/exam/problem/history" target="mainFrame"><i class="icon-tag"></i>问题试卷</a></li>
-                                        <li><a href="${ctx}/admin/exam/reportSubject" target="mainFrame"><i class="icon-signal"></i>总量分析</a></li>
-                                        <li><a href="${ctx}/admin/exam/reportSubjectCollege" target="mainFrame"><i class="icon-asterisk"></i>科目分析</a></li>
-                                    </c:if>
-                                    
-                                    <c:if test="${web_user.schoolViewer==true}">
-                                        <li><a href="${ctx}/admin/exam-list" target="mainFrame"><i class="icon-th-list"></i>考试管理</a></li>
-                                        <li><a href="${ctx}/admin/exam/score" target="mainFrame"><i class="icon-search"></i>成绩查询</a></li>
-                                    </c:if>
-                                    
-                                    <c:set var="firstMenu" value="false"/>
-                                </ul>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div id="openClose" class="close">&nbsp;</div>
-            <div id="right">
-                <iframe id="mainFrame" name="mainFrame" src="" style="overflow:auto;"
-                        scrolling="yes" frameborder="no" width="100%" height="650"></iframe>
-            </div>
-            <%-- 			    <%@include file="/WEB-INF/views/include/picConfig.jsp" %> --%>
-        </div>
-        <div id="footer" class="row-fluid">
-            Copyright &copy; 2012-2014 云阅卷(高校版) - Powered By <a href="http://www.qmth.com.cn" target="_blank">启明软件</a> V1.0
-        </div>
-    </div>
-</div>
-<script type="text/javascript">
-    var leftWidth = "160"; // 左侧窗口大小
-    function wSize() {
-        var minHeight = 500, minWidth = 980;
-        var strs = getWindowSize().toString().split(",");
-        $("#menuFrame, #mainFrame, #openClose").height((strs[0] < minHeight ? minHeight : strs[0]) - $("#header").height() - $("#footer").height() - 32);
-        $("#openClose").height($("#openClose").height() - 5);
-        if (strs[1] < minWidth) {
-            $("#main").css("width", minWidth - 10);
-            $("html,body").css({"overflow": "auto", "overflow-x": "auto", "overflow-y": "auto"});
-        } else {
-            $("#main").css("width", "auto");
-            $("html,body").css({"overflow": "hidden", "overflow-x": "hidden", "overflow-y": "hidden"});
-        }
-        $("#right").width($("#content").width() - $("#left").width() - $("#openClose").width() - 5);
-    }
-</script>
-<script src="${ctxStatic}/common/wsize.min.js" type="text/javascript"></script>
+	<div id="main">
+		<div id="header" class="navbar navbar-fixed-top">
+	      <div class="navbar-inner">
+	      	 <div class="brand" data-i18n-text="head.title">云阅卷</div>
+	         <div class="nav-collapse">
+	           <%-- <ul id="menu" class="nav">
+				 <c:set var="firstMenu" value="true"/>
+		 		<li class="menu "><a class="menu" href="${ctx }/admin/exam" target="menuFrame" >考试管理</a></li>
+				<li class="menu "><a class="menu" href="" target="menuFrame" >基础管理</a></li>
+	           </ul> --%>
+	           <ul class="nav pull-right">
+			  	 <li id="themeSwitch" class="dropdown">
+			       	<a class="dropdown-toggle" data-toggle="dropdown" href="#" title="主题切换"><i class="icon-th-large"></i></a>
+				    <ul class="dropdown-menu">
+				      <li><a href="#" onclick="location='${ctx}/admin/home/theme/default?url='+location.href">默认主题</a></li>
+				      <li><a href="#" onclick="location='${ctx}/admin/home/theme/cerulean?url='+location.href">天蓝主题</a></li>
+				      <li><a href="#" onclick="location='${ctx}/admin/home/theme/readable?url='+location.href">橙色主题</a></li>
+				      <li><a href="#" onclick="location='${ctx}/admin/home/theme/united?url='+location.href">红色主题</a></li>
+				      <li><a href="#" onclick="location='${ctx}/admin/home/theme/flat?url='+location.href">Flat主题</a></li>
+				    </ul>
+				    <!--[if lte IE 6]><script type="text/javascript">$('#themeSwitch').hide();</script><![endif]-->
+			     </li>
+			  	 <li class="dropdown">
+				    <a class="dropdown-toggle" data-toggle="dropdown" href="#" title="个人信息">${web_user.name}</a>
+				    <ul class="dropdown-menu">
+				      <li><a href="${ctx}/admin/account/info" target="mainFrame"><i class="icon-user"></i>&nbsp; 个人信息</a></li>
+				      <li><a href="${ctx}/admin/account/modifyPwd" target="mainFrame"><i class="icon-lock"></i>&nbsp; 修改密码</a></li>
+				    </ul>
+			  	 </li>
+			  	 <li><a href="${ctx}/logout" title="退出登录" data-i18n-text="head.logout">退出</a></li>
+			  	 <li>&nbsp;</li>
+	           </ul>
+	         </div><!--/.nav-collapse -->
+	      </div>
+	    </div>
+	    <div class="container-fluid">
+			<div id="content" class="row-fluid">
+				<div id="left">
+							<div class="accordion" id="menu"><c:set var="firstMenu" value="true"/>
+							<div class="accordion-group">
+							    <%-- <div class="accordion-heading">
+							    	<a class="accordion-toggle" data-toggle="collapse" data-parent="#menu" href="#collapse${menu.id}" title="考试管理"><i class="icon-chevron-${firstMenu?'down':'right'}"></i>&nbsp;考试管理</a>
+							    </div> --%>
+							    <div id="collapse1" class="accordion-body collapse ${firstMenu?'in':''}">
+									<div class="accordion-inner">
+										<ul class="nav nav-list">
+										    <c:if test="${web_user.schoolAdmin==true}">
+										    <li><a href="${ctx}/admin/user/list" target="mainFrame" ><i class="icon-user"></i>用户管理</a></li> 
+											<li><a href="${ctx}/admin/exam-list" target="mainFrame" ><i class="icon-th-list"></i>考试管理</a></li>	
+ 											<li><a href="${ctx}/admin/exam/student" target="mainFrame" ><i class="icon-user"></i>考生管理</a></li>
+											<li><a href="${ctx}/admin/exam/paper" target="mainFrame" ><i class="icon-book"></i>试卷管理</a></li>
+											<li><a href="${ctx}/admin/exam/scan" target="mainFrame" ><i class="icon-print"></i>扫描进度</a></li>
+											<li><a href="${ctx}/admin/exam/mark" target="mainFrame" ><i class="icon-pencil"></i>评卷管理</a></li>
+											<li><a href="${ctx}/admin/exam/score" target="mainFrame" ><i class="icon-search"></i>成绩查询</a></li>
+											<li><a href="${ctx}/admin/exam/problem/history" target="mainFrame" ><i class="icon-tag"></i>问题试卷</a></li>	 
+                                            <li><a href="${ctx}/admin/exam/reportSubject" target="mainFrame" ><i class="icon-signal"></i><span data-i18n-text="index.report.total">总量分析</span></a></li>
+                                            <li><a href="${ctx}/admin/exam/reportSubjectCollege" target="mainFrame" ><i class="icon-asterisk"></i><span data-i18n-text="index.report.subject">科目分析</span></a></li>       
+											<li><a href="${ctx}/admin/exam/check/answer" target="mainFrame" ><i class="icon-check"></i>数据检查</a></li>			
+											<li><a href="${ctx}/admin/operation/log" target="mainFrame" ><i class="icon-tasks"></i>操作日志</a></li>	 	
+											</c:if>
+											
+											<c:if test="${web_user.subjectHeader==true}">
+                                            <li><a href="${ctx}/admin/exam-list" target="mainFrame" ><i class="icon-th-list"></i>考试管理</a></li>
+                                            <li><a href="${ctx}/admin/exam/student" target="mainFrame" ><i class="icon-user"></i>考生管理</a></li>
+                                            <li><a href="${ctx}/admin/exam/mark" target="mainFrame" ><i class="icon-pencil"></i>评卷管理</a></li>
+                                            <li><a href="${ctx}/admin/exam/score" target="mainFrame" ><i class="icon-search"></i>成绩查询</a></li> 
+                                            <li><a href="${ctx}/admin/exam/problem/history" target="mainFrame" ><i class="icon-tag"></i>问题试卷</a></li>	
+                                            <li><a href="${ctx}/admin/exam/reportSubject" target="mainFrame" ><i class="icon-signal"></i>总量分析</a></li> 
+                                            <li><a href="${ctx}/admin/exam/reportSubjectCollege" target="mainFrame" ><i class="icon-asterisk"></i>科目分析</a></li>         
+                                            </c:if>
+                                            
+                                            <c:if test="${web_user.schoolViewer==true}">
+                                            <li><a href="${ctx}/admin/exam-list" target="mainFrame" ><i class="icon-th-list"></i>考试管理</a></li>
+                                            <li><a href="${ctx}/admin/exam/score" target="mainFrame" ><i class="icon-search"></i>成绩查询</a></li>      
+                                            </c:if>
+                                            
+											<c:set var="firstMenu" value="false"/>
+										</ul>
+									</div>
+							    </div>
+							</div>
+						</div>
+				</div>
+				<div id="openClose" class="close">&nbsp;</div>
+				<div id="right">
+					<iframe id="mainFrame" name="mainFrame" src="" style="overflow:auto;"
+						scrolling="yes" frameborder="no" width="100%" height="650"></iframe>
+				</div>
+<%-- 			    <%@include file="/WEB-INF/views/include/picConfig.jsp" %> --%>
+			</div>
+		    <div id="footer" class="row-fluid">
+	            Copyright &copy; 2012-2014 云阅卷(高校版) - Powered By <a href="http://www.qmth.com.cn" target="_blank">启明软件</a> V1.0
+			</div>
+		</div>
+	</div>
+	<script type="text/javascript"> 
+		var leftWidth = "160"; // 左侧窗口大小
+		function wSize(){
+			var minHeight = 500, minWidth = 980;
+			var strs=getWindowSize().toString().split(",");
+			$("#menuFrame, #mainFrame, #openClose").height((strs[0]<minHeight?minHeight:strs[0])-$("#header").height()-$("#footer").height()-32);
+			$("#openClose").height($("#openClose").height()-5);
+			if(strs[1]<minWidth){
+				$("#main").css("width",minWidth-10);
+				$("html,body").css({"overflow":"auto","overflow-x":"auto","overflow-y":"auto"});
+			}else{
+				$("#main").css("width","auto");
+				$("html,body").css({"overflow":"hidden","overflow-x":"hidden","overflow-y":"hidden"});
+			}
+			$("#right").width($("#content").width()-$("#left").width()-$("#openClose").width()-5);
+		}
+	</script>
+	<script src="${ctxStatic}/common/wsize.min.js" type="text/javascript"></script>
 </body>
 </html>

+ 14 - 15
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubject.jsp

@@ -11,40 +11,39 @@
 </head>
 <body>
 	<ul class="nav nav-tabs">
-		<li class="active"><a href="${ctx}/admin/exam/reportSubject">课程总量统计</a></li>
+		<li class="active"><a href="${ctx}/admin/exam/reportSubject" data-i18n-text="report.subject">课程总量统计</a></li>
 	</ul>
 	<form id="searchForm" action="${ctx}/admin/exam/reportSubject" method="post" class="breadcrumb form-search">
 	    <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
 	    <input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize }"/>
 	    <div>
-	        <label>科目</label>
+	        <label data-i18n-text="report.subject.name">科目</label>
 	        <select class="input-large" id="subjectCode" name="subjectCode">
-	            <option value="">请选择</option>
 	            <c:forEach items="${subjectList }" var="subject">
 	                <option value="${subject.code }"
 	                        <c:if test="${query.subjectCode eq subject.code }">selected</c:if>>${subject.code}-${subject.name}</option>
 	            </c:forEach>
 	        </select>
 			&nbsp;
-	        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
+	        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()" data-i18n-value="report.subject.search"/>
 	        &nbsp;
-			<input id="export-button" class="btn" type="button" value="导出"/>
+			<input id="export-button" class="btn" type="button" value="导出" data-i18n-value="report.subject.export"/>
 	    </div>
 	</form>
 	<tags:message content="${message}"/>
 	<table id="contentTable" class="table table-striped table-bordered table-condensed">
 		<thead>
 			<tr>
-				<th>课程</th>
-				<th>报考人数</th>
-				<th>缺考</th>
-				<th>违纪</th>
-				<th>有效人数</th>
-				<th>平均分</th>
-				<th>最高分</th>
-				<th>最低分</th>
-				<th>及格人数</th>
-				<th>及格率</th>
+				<th data-i18n-text="report.subject.name">课程</th>
+				<th data-i18n-text="report.subject.totalCount">报考人数</th>
+				<th data-i18n-text="report.subject.absentCount">缺考</th>
+				<th data-i18n-text="report.subject.breachCount">违纪</th>
+				<th data-i18n-text="report.subject.realityCount">有效人数</th>
+				<th data-i18n-text="report.subject.avgScore">平均分</th>
+				<th data-i18n-text="report.subject.maxScore">最高分</th>
+				<th data-i18n-text="report.subject.minScore">最低分</th>
+				<th data-i18n-text="report.subject.passCount">及格人数</th>
+				<th data-i18n-text="report.subject.passRate">及格率</th>
 			</tr>
 		</thead>
 		<tbody>

+ 31 - 29
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectClass.jsp

@@ -16,50 +16,48 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
-
-    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}">学院分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}">任课老师分析</a></li>
-    <li class="active"><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}">班级分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true">客观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}" data-i18n-text="report.college">学院分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" data-i18n-text="report.teacher">任课老师分析</a></li>
+    <li class="active"><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}" data-i18n-text="report.class">班级分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true" data-i18n-text="report.question.objective">客观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false">主观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false" data-i18n-text="report.question.subjective">主观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}">大题统计分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}" data-i18n-text="report.group">大题统计分析</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectClass" method="post" class="breadcrumb form-search">
 	    <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
 	    <input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize }"/>
     <div>
-        <label>科目:</label>
+        <label data-i18n-text="report.class.subject">科目:</label>
         <select class="input-large" id="subjectCode" name="subjectCode">
-            <option value="">请选择</option>
             <c:forEach items="${subjectList }" var="subject">
                 <option value="${subject.code }"
                         <c:if test="${query.subjectCode eq subject.code }">selected</c:if>>${subject.code}-${subject.name}</option>
             </c:forEach>
         </select>
-        <label>班级:</label>
+        <label data-i18n-text="report.class.name">班级:</label>
         <input type="text" name="className" value="${query.className}" maxlength="10" class="input-small"/>
         &nbsp;
-        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
+        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()" data-i18n-value="report.class.search"/>
         &nbsp;
-		<input id="export-button" class="btn" type="button" value="导出"/>
+		<input id="export-button" class="btn" type="button" value="导出" data-i18n-value="report.class.export"/>
 		 &nbsp;
-        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewClassEcharts()"/>
+        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewClassEcharts()" data-i18n-value="report.class.chart"/>
     </div>
 </form>
 <tags:message content="${message}"/>
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
     <thead>
     <tr>
-        <th>班级</th>
-        <th>平均分</th>
-        <th>最高分</th>
-        <th>最低分</th>
-        <th>及格数</th>
-        <th>及格率</th>
-        <th>优秀数</th>
-        <th>优秀率</th>
+        <th data-i18n-text="report.class.name">班级</th>
+        <th data-i18n-text="report.class.avgScore">平均分</th>
+        <th data-i18n-text="report.class.maxScore">最高分</th>
+        <th data-i18n-text="report.class.minScore">最低分</th>
+        <th data-i18n-text="report.class.passCount">及格数</th>
+        <th data-i18n-text="report.class.passRate">及格率</th>
+        <th data-i18n-text="report.class.excellentCount">优秀数</th>
+        <th data-i18n-text="report.class.excellentRate">优秀率</th>
     </tr>
     </thead>
     <tbody>
@@ -116,7 +114,7 @@
         var imageModal = new jBox('Modal');
         imageModal.setWidth($(window).width() * 0.9);
         imageModal.setHeight($(window).height() * 0.85);
-        imageModal.setTitle('课程班级成绩分析');
+        imageModal.setTitle(getMessage("report.class"));
         imageModal.setContent($('#echart-view-content'));
         imageModal.open();
 
@@ -125,12 +123,16 @@
         // 指定图表的配置项和数据
         var option = {
             title: {
-                text: '课程班级成绩分析'
+                text: getMessage("report.class")
                 // textAlign:'center'
             },
             tooltip: {},
             legend: {
-                data: ['平均分','最高分','最低分','及格率','优秀率']
+                data: [getMessage("report.class.avgScore"),
+                       getMessage("report.class.maxScore"),
+                       getMessage("report.class.minScore"),
+                       getMessage("report.class.passRate"),
+                       getMessage("report.class.excellentRate")]
             },
             toolbox: {
                 feature : {
@@ -162,24 +164,24 @@
                 }
             ],
             series: [{
-                name: '平均分',
+                name: getMessage("report.class.avgScore"),
                 type: 'bar',
                 data: avgScores
             },{
-                name: '最高分',
+                name: getMessage("report.class.maxScore"),
                 type: 'bar',
                 data: maxScores
             },{
-                name: '最低分',
+                name: getMessage("report.class.minScore"),
                 type: 'bar',
                 data: minScores
             },{
-                name: '及格率',
+                name: getMessage("report.class.passRate"),
                 type: 'line',
                 yAxisIndex : 1,
                 data: passRates
             },{
-                name: '优秀率',
+                name: getMessage("report.class.excellentRate"),
                 type: 'line',
                 yAxisIndex : 1,
                 data: excellentRates

+ 31 - 29
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectCollege.jsp

@@ -16,52 +16,50 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
-
-    <li class="active"><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}">学院分析</a>
+    <li class="active"><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}" data-i18n-text="report.college">学院分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}">任课老师分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" data-i18n-text="report.teacher">任课老师分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}">班级分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true">客观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}" data-i18n-text="report.class">班级分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true" data-i18n-text="report.question.objective">客观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false">主观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false" data-i18n-text="report.question.subjective">主观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}">大题统计分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}" data-i18n-text="report.group">大题统计分析</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectCollege" method="post" class="breadcrumb form-search">
 	    <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
 	    <input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize }"/>
     <div>
-        <label>科目:</label>
-        <select class="input-large" id="subjectCode" name="subjectCode">
-            <option value="">请选择</option>
+        <label data-i18n-text="report.college.subject">科目:</label>
+        <select class="input-large" id="subjectCode" name="subjectCode" >
             <c:forEach items="${subjectList }" var="subject">
                 <option value="${subject.code }"
                         <c:if test="${query.subjectCode eq subject.code }">selected</c:if>>${subject.code}-${subject.name}</option>
             </c:forEach>
         </select>
         &nbsp;
-        <label>学院:</label>
+        <label data-i18n-text="report.college.name">学院:</label>
         <input type="text" name="collegeName" value="${query.collegeName}" maxlength="10" class="input-small"/>
         &nbsp;
-        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
+        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()" data-i18n-value="report.college.search"/>
          &nbsp;
-		<input id="export-button" class="btn" type="button" value="导出"/>
+		<input id="export-button" class="btn" type="button" value="导出" data-i18n-value="report.college.export"/>
 		 &nbsp;
-        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewCollegeEcharts()"/>
+        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewCollegeEcharts()" data-i18n-value="report.college.chart"/>
     </div>
 </form>
 <tags:message content="${message}"/>
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
     <thead>
     <tr>
-        <th>学生院系</th>
-        <th>平均分</th>
-        <th>最高分</th>
-        <th>最低分</th>
-        <th>及格数</th>
-        <th>及格率</th>
-        <th>优秀率</th>
+        <th data-i18n-text="report.college.name">学生院系</th>
+        <th data-i18n-text="report.college.avgScore">平均分</th>
+        <th data-i18n-text="report.college.maxScore">最高分</th>
+        <th data-i18n-text="report.college.minScore">最低分</th>
+        <th data-i18n-text="report.college.passCount">及格数</th>
+        <th data-i18n-text="report.college.passRate">及格率</th>
+        <th data-i18n-text="report.college.excellentRate">优秀率</th>
     </tr>
     </thead>
     <tbody>
@@ -126,7 +124,7 @@ $("#export-button").click(function(){
         var imageModal = new jBox('Modal');
         imageModal.setWidth($(window).width() * 0.9);
         imageModal.setHeight($(window).height() * 0.85);
-        imageModal.setTitle('课程学院成绩分析');
+        imageModal.setTitle(getMessage("report.college"));
         imageModal.setContent($('#echart-view-content'));
         imageModal.open();
 
@@ -135,12 +133,16 @@ $("#export-button").click(function(){
         // 指定图表的配置项和数据
         var option = {
             title: {
-                text: '学院成绩分析'
+                text: getMessage("report.college")
                 // textAlign:'center'
             },
             tooltip: {},
             legend: {
-                data: ['平均分','最高分','最低分','优秀率','及格率']
+                data: [getMessage("report.college.avgScore"),
+                       getMessage("report.college.maxScore"),
+                       getMessage("report.college.minScore"),
+                       getMessage("report.college.excellentRate"),
+                       getMessage("report.college.passRate")]
             },
             toolbox: {
                 feature : {
@@ -169,23 +171,23 @@ $("#export-button").click(function(){
                 }
             ],
             series: [{
-                name: '平均分',
+                name: getMessage("report.college.avgScore"),
                 type: 'bar',
                 data: avgScores
             },{
-                name: '最高分',
+                name: getMessage("report.college.maxScore"),
                 type: 'bar',
                 data: maxScores
             },{
-                name: '最低分',
+                name: getMessage("report.college.minScore"),
                 type: 'bar',
                 data: minScores
             },{
-                name: '优秀率',
+                name: getMessage("report.college.excellentRate"),
                 type: 'line',
                 data: excellentRates
             },{
-                name: '及格率',
+                name: getMessage("report.college.passRate"),
                 type: 'line',
                 data: passRates
             }]

+ 35 - 32
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectGroup.jsp

@@ -14,23 +14,22 @@
         cursor: pointer;
     }</style>
 </head>
-<body>
 <ul class="nav nav-tabs">
-
-    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}">学院分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}">任课老师分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}">班级分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true">客观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}" data-i18n-text="report.college">学院分析</a>
+    </li>
+    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" data-i18n-text="report.teacher">任课老师分析</a>
+    </li>
+    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}" data-i18n-text="report.class">班级分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true" data-i18n-text="report.question.objective">客观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false">主观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false" data-i18n-text="report.question.subjective">主观题分析</a>
     </li>
-    <li class="active"><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}">大题统计分析</a></li>
+    <li class="active"><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}" data-i18n-text="report.group">大题统计分析</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectGroup" method="post" class="breadcrumb form-search">
     <div>
-        <label>科目:</label>
+        <label  data-i18n-text="report.group.subject">科目:</label>
         <select class="input-large" id="subject-select" name="subjectCode">
-            <option value="">请选择</option>
             <c:forEach items="${subjectList }" var="subject">
                 <option value="${subject.code }"
                         <c:if test="${query.subjectCode eq subject.code }">selected</c:if>>${subject.code}-${subject.name}</option>
@@ -40,28 +39,28 @@
 <!--             <select class="input-medium" id="group-select" name="groupNumber"> -->
 <!--             </select> -->
         &nbsp;
-        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
+        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"  data-i18n-value="report.group.search"/>
 		&nbsp;
-		<input id="export-button" class="btn" type="button" value="导出"/>
+		<input id="export-button" class="btn" type="button" value="导出"  data-i18n-value="report.group.export"/>
 		 &nbsp;
-        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewGroupEcharts()"/>
+        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewGroupEcharts()"  data-i18n-value="report.group.chart"/>
     </div>
 </form>
 <tags:message content="${message}"/>
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
     <thead>
     <tr>
-        <th>大题</th>
-        <th>题号</th>
-        <th>满分</th>
-        <th>最高分</th>
-        <th>最低分</th>
-        <th>平均分</th>
-        <th>标准差</th>
-        <th>差异系数(%)</th>
-        <th>得分率</th>
-        <th>零分人数</th>
-        <th>满分人数</th>
+        <th data-i18n-text="report.group.name">大题</th>
+        <th data-i18n-text="report.group.number">题号</th>
+        <th data-i18n-text="report.group.totalScore">满分</th>
+        <th data-i18n-text="report.group.maxScore">最高分</th>
+        <th data-i18n-text="report.group.minScore">最低分</th>
+        <th data-i18n-text="report.group.avgScore">平均分</th>
+        <th data-i18n-text="report.group.stdev">标准差</th>
+        <th data-i18n-text="report.group.coefficient">差异系数(%)</th>
+        <th data-i18n-text="report.group.scoreRate">得分率</th>
+        <th data-i18n-text="report.group.zeroCount">零分人数</th>
+        <th data-i18n-text="report.group.fullCount">满分人数</th>
     </tr>
     </thead>
     <tbody>
@@ -153,7 +152,7 @@ $('#subject-select').trigger('change');
         var imageModal = new jBox('Modal');
         imageModal.setWidth($(window).width() * 0.9);
         imageModal.setHeight($(window).height() * 0.85);
-        imageModal.setTitle('大题型分析');
+        imageModal.setTitle(getMessage("report.group"));
         imageModal.setContent($('#echart-view-content'));
         imageModal.open();
 
@@ -162,12 +161,16 @@ $('#subject-select').trigger('change');
         // 指定图表的配置项和数据
         var option = {
             title: {
-                text: '大题型分析'
+                text: getMessage("report.group")
                 // textAlign:'center'
             },
             tooltip: {},
             legend: {
-                data: ['满分', '最高分', '最低分', '平均分', '标准差']
+                data: [ getMessage("report.group.totalScore"),
+                       getMessage("report.group.maxScore"),
+                       getMessage("report.group.minScore"), 
+                       getMessage("report.group.avgScore"), 
+                       getMessage("report.group.stdev")]
             },
             toolbox: {
                 feature : {
@@ -199,24 +202,24 @@ $('#subject-select').trigger('change');
                 }
             ],
             series: [{
-                name: '满分',
+                name: getMessage("report.group.totalScore"),
                 type: 'bar',
                 data: fullScores
             }, {
-                name: '最高分',
+                name: getMessage("report.group.maxScore"),
                 type: 'bar',
                 yAxisIndex: 1,
                 data: maxScores
             }, {
-                name: '最低分',
+                name: getMessage("report.group.minScore"),
                 type: 'bar',
                 data: minScores
             }, {
-                name: '平均分',
+                name: getMessage("report.group.avgScore"),
                 type: 'line',
                 data: avgScores
             }, {
-                name: '标准差',
+                name: getMessage("report.group.stdev"),
                 type: 'line',
                 yAxisIndex: 1,
                 data: sds

+ 29 - 28
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectQuestion.jsp

@@ -17,32 +17,31 @@
 <body>
 <ul class="nav nav-tabs">
 
-    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}">学院分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}">任课老师分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}">班级分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}" data-i18n-text="report.college">学院分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" data-i18n-text="report.teacher">任课老师分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}" data-i18n-text="report.class">班级分析</a></li>
     <li id="objectiveLi"><a
-            href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true">客观题分析</a>
+            href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true" data-i18n-text="report.question.objective">客观题分析</a>
     </li>
     <li id="subjectiveLi"><a
-            href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false">主观题分析</a>
+            href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false" data-i18n-text="report.question.subjective">主观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}">大题统计分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}" data-i18n-text="report.group">大题统计分析</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectQuestion" method="post" class="breadcrumb form-search">
     <input id="objective" name="objective" value="${query.objective}" type="hidden"/>
     <div>
-        <label>科目:</label>
+        <label data-i18n-text="report.question.subject">科目:</label>
         <select class="input-large" id="subjectCode" name="subjectCode">
-            <option value="">请选择</option>
             <c:forEach items="${subjectList }" var="subject">
                 <option value="${subject.code }"
                         <c:if test="${query.subjectCode eq subject.code }">selected</c:if>>${subject.code}-${subject.name}</option>
             </c:forEach>
         </select>
         <c:if test="${query.objective}">
-        <label>卷型:</label>
+        <label data-i18n-text="report.question.paperType">卷型:</label>
         <select class="input-large" id="type-select" name="paperType">
-            <option value="">请选择</option>
+            <option value=""  data-i18n-text="report.question.select">请选择</option>
             <c:forEach items="${typeList }" var="paperType">
                 <option value="${paperType}"
                         <c:if test="${query.paperType eq paperType }">selected</c:if>>${paperType}</option>
@@ -50,11 +49,11 @@
         </select>
         </c:if>
         &nbsp;
-        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>		
+        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"  data-i18n-value="report.question.search"/>		
         &nbsp;
-		<input id="export-button" class="btn" type="button" value="导出"/>
+		<input id="export-button" class="btn" type="button" value="导出"  data-i18n-value="report.question.export"/>
 		 &nbsp;
-        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewQuestionEcharts()"/>
+        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewQuestionEcharts()" data-i18n-value="report.question.chart"/>
 
     </div>
 </form>
@@ -62,16 +61,16 @@
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
     <thead>
     <tr>
-        <th>题目名称</th>
-        <th>大题号</th>
-        <th>小题号</th>
-        <th>单题分数</th>
-        <th>单题平均分</th>
-        <th>单题标准差</th>
-        <th>得分率</th>
-        <th>满分率</th>
+        <th data-i18n-text="report.question.name">题目名称</th>
+        <th data-i18n-text="report.question.mainNumber">大题号</th>
+        <th data-i18n-text="report.question.subNumber">小题号</th>
+        <th data-i18n-text="report.question.score">单题分数</th>
+        <th data-i18n-text="report.question.avgScore">单题平均分</th>
+        <th data-i18n-text="report.question.stdev">单题标准差</th>
+        <th data-i18n-text="report.question.scoreRate">得分率</th>
+        <th data-i18n-text="report.question.fullScoreRate">满分率</th>
 		<c:if test="${query.objective}">
-        <th>试卷类型</th>
+        <th data-i18n-text="report.question.paperType">试卷类型</th>
         </c:if>
     </tr>
     </thead>
@@ -165,7 +164,7 @@ $("#export-button").click(function(){
         var imageModal = new jBox('Modal');
         imageModal.setWidth($(window).width() * 0.9);
         imageModal.setHeight($(window).height() * 0.85);
-        imageModal.setTitle(objective == 'true'?'客观题分析':'主观题分析');
+        imageModal.setTitle(objective == 'true'?getMessage("report.question.objective"):getMessage("report.question.subjective"));
         imageModal.setContent($('#echart-view-content'));
         imageModal.open();
 
@@ -174,12 +173,14 @@ $("#export-button").click(function(){
         // 指定图表的配置项和数据
         var option = {
             title: {
-                text: objective == 'true'?'客观题分析':'主观题分析'
+                text: objective == 'true'?getMessage("report.question.objective"):getMessage("report.question.subjective")
                 // textAlign:'center'
             },
             tooltip: {},
             legend: {
-                data: ['平均分','得分率','满分率']
+                data: [getMessage("report.question.avgScore"),
+                       getMessage("report.question.scoreRate"),
+                       getMessage("report.question.fullScoreRate")]
             },
             toolbox: {
                 feature : {
@@ -211,16 +212,16 @@ $("#export-button").click(function(){
                 }
             ],
             series: [{
-                name: '平均分',
+                name: getMessage("report.question.avgScore"),
                 type: 'bar',
                 data: avgScores
             },{
-                name: '得分率',
+                name: getMessage("report.question.scoreRate"),
                 type: 'line',
                 yAxisIndex : 1,
                 data: scoreRates
             },{
-                name: '满分率',
+                name: getMessage("report.question.fullScoreRate"),
                 type: 'line',
                 yAxisIndex : 1,
                 data: fullScoreRates

+ 10 - 11
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectRange.jsp

@@ -17,32 +17,31 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
-    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}">学院分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}">任课老师分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}">班级分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true">客观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}" data-i18n-text="report.college">学院分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" data-i18n-text="report.teacher">任课老师分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}" data-i18n-text="report.class">班级分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true" data-i18n-text="report.question.objective">客观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false">主观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false" data-i18n-text="report.question.subjective">主观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}">大题统计分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}" data-i18n-text="report.group">大题统计分析</a></li>
     <li class="active"><a href="${ctx}/admin/exam/reportSubjectRange">分段统计</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectRange" method="post" class="breadcrumb form-search">
     <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
     <input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize }"/>
     <div>
-        <label>科目</label>
+        <label data-i18n-text="report.range.subject">科目</label>
         <select class="input-large" id="subjectCode" name="subjectCode">
-            <option value="">请选择</option>
             <c:forEach items="${subjectList }" var="subject">
                 <option value="${subject.code }"
                         <c:if test="${query.subjectCode eq subject.code }">selected</c:if>>${subject.code}-${subject.name}</option>
             </c:forEach>
         </select>
+		 &nbsp;
+        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"  data-i18n-value="report.group.search"/>
 		&nbsp;
-        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
-        &nbsp;
-		<input id="export-button" class="btn" type="button" value="导出"/>
+		<input id="export-button" class="btn" type="button" value="导出"  data-i18n-value="report.group.export"/>
     </div>
 </form>
 <tags:message content="${message}"/>

+ 38 - 35
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectTeacher.jsp

@@ -16,53 +16,50 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
-
-    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}">学院分析</a></li>
-    <li class="active"><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}">任课老师分析</a>
-    </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}">班级分析</a></li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true">客观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectCollege?subjectCode=${query.subjectCode}" data-i18n-text="report.college">学院分析</a></li>
+    <li class="active"><a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" data-i18n-text="report.teacher">任课老师分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectClass?subjectCode=${query.subjectCode}" data-i18n-text="report.class">班级分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=true" data-i18n-text="report.question.objective">客观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false">主观题分析</a>
+    <li><a href="${ctx}/admin/exam/reportSubjectQuestion?subjectCode=${query.subjectCode}&objective=false" data-i18n-text="report.question.subjective">主观题分析</a>
     </li>
-    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}">大题统计分析</a></li>
+    <li><a href="${ctx}/admin/exam/reportSubjectGroup?subjectCode=${query.subjectCode}" data-i18n-text="report.group">大题统计分析</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectTeacher" method="post" class="breadcrumb form-search">
 	    <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
 	    <input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize }"/>
     <div>
-        <label>科目:</label>
+        <label data-i18n-text="report.teacher.subject">科目:</label>
         <select class="input-large" id="subjectCode" name="subjectCode">
-            <option value="">请选择</option>
             <c:forEach items="${subjectList }" var="subject">
                 <option value="${subject.code }"
                         <c:if test="${query.subjectCode eq subject.code }">selected</c:if>>${subject.code}-${subject.name}</option>
             </c:forEach>
         </select>
-        <label>任课老师:</label>
+        <label data-i18n-text="report.teacher.name">任课老师:</label>
         <input type="text" name="teacherName"  id="teacherName" value="${query.teacherName}" maxlength="10" class="input-small"/>
-        &nbsp;
-        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>		
-        &nbsp;
-		<input id="export-button" class="btn" type="button" value="导出"/>
+       &nbsp;
+        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"  data-i18n-value="report.teacher.search"/>
+		&nbsp;
+		<input id="export-button" class="btn" type="button" value="导出"  data-i18n-value="report.teacher.export"/>
 		 &nbsp;
-        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewTeacherEcharts()"/>
+        <input class="btn btn-primary" type="button" value="查看统计图" onclick="viewTeacherEcharts()"  data-i18n-value="report.teacher.chart"/>
     </div>
 </form>
 <tags:message content="${message}"/>
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
     <thead>
     <tr>
-        <th>任课老师</th>
-        <th>有效人数</th>
-        <th>及格</th>
-        <th>优秀</th>
-        <th>最高分</th>
-        <th>最低分</th>
-        <th>及格率</th>
-        <th>优秀率</th>
-        <th>平均分</th>
-        <th>平均相对分</th>
+        <th data-i18n-text="report.teacher.name">任课老师</th>
+        <th data-i18n-text="report.teacher.realityCount">有效人数</th>
+        <th data-i18n-text="report.teacher.passCount">及格</th>
+        <th data-i18n-text="report.teacher.excellentCount">优秀</th>
+        <th data-i18n-text="report.teacher.maxScore">最高分</th>
+        <th data-i18n-text="report.teacher.minScore">最低分</th>
+        <th data-i18n-text="report.teacher.passRate">及格率</th>
+        <th data-i18n-text="report.teacher.excellentRate">优秀率</th>
+        <th data-i18n-text="report.teacher.avgScore">平均分</th>
+        <th data-i18n-text="report.teacher.relativeAvgScore">平均相对分</th>
     </tr>
     </thead>
     <tbody>
@@ -136,7 +133,7 @@ $("#export-button").click(function(){
         var imageModal = new jBox('Modal');
         imageModal.setWidth($(window).width() * 0.9);
         imageModal.setHeight($(window).height() * 0.85);
-        imageModal.setTitle('任课老师成绩分析');
+        imageModal.setTitle(getMessage("report.teacher"));
         imageModal.setContent($('#echart-view-content'));
         imageModal.open();
 
@@ -145,12 +142,18 @@ $("#export-button").click(function(){
         // 指定图表的配置项和数据
         var option = {
             title: {
-                text: '任课老师成绩分析'
+                text: getMessage("report.teacher")
                 // textAlign:'center'
             },
             tooltip: {},
             legend: {
-                data: ['最高分','最低分','平均分','平均相对分','优秀率','及格率']
+                data: [getMessage("report.teacher.maxScore"),
+                       getMessage("report.teacher.minScore"),
+                       getMessage("report.teacher.avgScore"),
+                       getMessage("report.teacher.relativeAvgScore"),
+                       getMessage("report.teacher.passRate"),
+                       getMessage("report.teacher.excellentRate")
+                       ]
             },
             toolbox: {
                 feature : {
@@ -182,28 +185,28 @@ $("#export-button").click(function(){
                 }
             ],
             series: [{
-                name: '最高分',
+                name: getMessage("report.teacher.maxScore"),
                 type: 'bar',
                 data: maxScores
             },{
-                name: '最低分',
+                name: getMessage("report.teacher.minScore"),
                 type: 'bar',
                 data: minScores
             },{
-                name: '平均分',
+                name: getMessage("report.teacher.avgScore"),
                 type: 'bar',
                 data: avgScores
             },{
-                name: '平均相对分',
+                name: getMessage("report.teacher.relativeAvgScore"),
                 type: 'line',
                 yAxisIndex : 1,
                 data: relativeAvgScore
             },{
-                name: '及格率',
+                name: getMessage("report.teacher.passRate"),
                 type: 'line',
                 data: passRates
             },{
-                name: '优秀率',
+                name: getMessage("report.teacher.excellentRate"),
                 type: 'line',
                 data: excellentRates
             }]

+ 30 - 24
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectTeacherClass.jsp

@@ -16,31 +16,32 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
-    <li class="active"><a href="#">任课老师班级分析</a></li>
+    <li class="active"><a href="#" data-i18n-text="report.teacher">任课老师班级分析</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectTeacher" method="post" class="breadcrumb form-search">
 		<input type="hidden" id="teacherName" name="teacherName" value="${query.teacherName }"/>
-    &nbsp;&nbsp;科目:${subjectName}&nbsp;&nbsp;&nbsp;&nbsp;任课老师:${query.teacherName} &nbsp;&nbsp;
-    <a href="#" class="btn btn-primary" onclick="viewTeacherClassEcharts()"/>查看统计图</a>
+    &nbsp;&nbsp;科目:${subjectName}&nbsp;&nbsp;&nbsp;&nbsp;
+    <span data-i18n-text="report.teacher.name">任课老师</span>:${query.teacherName} &nbsp;&nbsp;
+    <a href="#" class="btn btn-primary" onclick="viewTeacherClassEcharts()" data-i18n-text="report.teacher.chart">查看统计图</a>
     &nbsp;
-	<input id="export-button" class="btn" type="button" value="导出"/>
+	<input id="export-button" class="btn" type="button" value="导出" data-i18n-value="report.teacher.export"/>
 	&nbsp;
-    <a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" class="btn" />返回</a>
+    <a href="${ctx}/admin/exam/reportSubjectTeacher?subjectCode=${query.subjectCode}" class="btn" data-i18n-text="report.teacher.return">返回</a>
 </form>
 <tags:message content="${message}"/>
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
     <thead>
     <tr>
-        <th>班级</th>
-        <th>有效人数</th>
-        <th>及格</th>
-        <th>优秀</th>
-        <th>最高分</th>
-        <th>最低分</th>
-        <th>及格率</th>
-        <th>优秀率</th>
-        <th>平均分</th>
-        <th>平均相对分</th>
+        <th data-i18n-text="report.class.name">班级</th>
+        <th data-i18n-text="report.teacher.realityCount">有效人数</th>
+        <th data-i18n-text="report.teacher.passCount">及格</th>
+        <th data-i18n-text="report.teacher.excellentCount">优秀</th>
+        <th data-i18n-text="report.teacher.maxScore">最高分</th>
+        <th data-i18n-text="report.teacher.minScore">最低分</th>
+        <th data-i18n-text="report.teacher.passRate">及格率</th>
+        <th data-i18n-text="report.teacher.excellentRate">优秀率</th>
+        <th data-i18n-text="report.teacher.avgScore">平均分</th>
+        <th data-i18n-text="report.teacher.relativeAvgScore">平均相对分</th>
     </tr>
     </thead>
     <tbody>
@@ -112,7 +113,7 @@ $("#export-button").click(function(){
         var imageModal = new jBox('Modal');
         imageModal.setWidth($(window).width() * 0.9);
         imageModal.setHeight($(window).height() * 0.85);
-        imageModal.setTitle('任课班级成绩分析');
+        imageModal.setTitle(getMessage("report.teacher"));
         imageModal.setContent($('#echart-view-content'));
         imageModal.open();
 
@@ -121,12 +122,17 @@ $("#export-button").click(function(){
         // 指定图表的配置项和数据
         var option = {
             title: {
-                text: '任课班级成绩分析'
+                text: getMessage("report.teacher")
                 // textAlign:'center'
             },
             tooltip: {},
             legend: {
-                data: ['最高分','最低分','平均分','平均相对分','优秀率','及格率']
+                data: [getMessage("report.teacher.maxScore"),
+                       getMessage("report.teacher.minScore"),
+                       getMessage("report.teacher.avgScore"),
+                       getMessage("report.teacher.relativeAvgScore"),
+                       getMessage("report.teacher.passRate"),
+                       getMessage("report.teacher.excellentRate")]
             },
         /*     dataZoom: [{
                 type: 'slider',
@@ -158,28 +164,28 @@ $("#export-button").click(function(){
                 }
             ],
             series: [{
-                name: '最高分',
+                name: getMessage("report.teacher.maxScore"),
                 type: 'bar',
                 data: maxScores
             },{
-                name: '最低分',
+                name: getMessage("report.teacher.minScore"),
                 type: 'bar',
                 data: minScores
             },{
-                name: '平均分',
+                name: getMessage("report.teacher.avgScore"),
                 type: 'bar',
                 data: avgScores
             },{
-                name: '平均相对分',
+                name: getMessage("report.teacher.relativeAvgScore"),
                 type: 'line',
                 yAxisIndex : 1,
                 data: relativeAvgScore
             },{
-                name: '及格率',
+                name: getMessage("report.teacher.passRate"),
                 type: 'line',
                 data: passRates
             },{
-                name: '优秀率',
+                name: getMessage("report.teacher.excellentRate"),
                 type: 'line',
                 data: excellentRates
             }]

+ 3 - 0
stmms-web/src/main/webapp/static/i18n/load.js

@@ -34,4 +34,7 @@ function load() {
 			}
 		});			
 	}
+}
+function getMessage(message) { 
+	return $.i18n.prop(message);
 }

+ 244 - 128
stmms-web/src/main/webapp/static/i18n/messages.properties

@@ -1,145 +1,261 @@
 #login
-user.login.title=\u9AD8\u6821\u8003\u8BD5\u7BA1\u7406\u5E73\u53F0
-user.login.admin=\u7BA1\u7406\u5458\u767B\u5F55
-user.login.marker=\u8BC4\u5377\u5458\u767B\u5F55
-user.login.name=\u7528\u6237\u540D
-user.login.password=\u5BC6\u7801
-user.login.submit=\u767B\u5F55
-user.login.error.account=\u5E10\u53F7\u4E0D\u5B58\u5728
-user.login.error.finish=\u8BC4\u5377\u5DF2\u7ED3\u675F
-user.login.error.group=\u5927\u9898\u4E0D\u5B58\u5728
-user.login.error.disabled=\u5E10\u53F7\u5DF2\u7981\u7528
-user.login.error.password=\u5BC6\u7801\u9519\u8BEF
-user.login.error.access=\u7528\u6237\u6CA1\u6709\u8BBF\u95EE\u6743\u9650
+user.login.title=\u9ad8\u6821\u8003\u8bd5\u7ba1\u7406\u5e73\u53f0
+user.login.admin=\u7ba1\u7406\u5458\u767b\u5f55
+user.login.marker=\u8bc4\u5377\u5458\u767b\u5f55
+user.login.name=\u7528\u6237\u540d
+user.login.password=\u5bc6\u7801
+user.login.submit=\u767b\u5f55
+user.login.error.account=\u5e10\u53f7\u4e0d\u5b58\u5728
+user.login.error.finish=\u8bc4\u5377\u5df2\u7ed3\u675f
+user.login.error.group=\u5927\u9898\u4e0d\u5b58\u5728
+user.login.error.disabled=\u5e10\u53f7\u5df2\u7981\u7528
+user.login.error.password=\u5bc6\u7801\u9519\u8bef
+user.login.error.access=\u7528\u6237\u6ca1\u6709\u8bbf\u95ee\u6743\u9650
 #reset
-user.reset.submit=\u786E\u5B9A
-user.reset.logout=\u9000\u51FA
-user.reset.title=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u5B8C\u5584\u8D44\u6599
-user.reset.name=\u8F93\u5165\u7528\u6237\u540D
-user.reset.password=\u8F93\u5165\u65B0\u5BC6\u7801
-user.reset.password.again=\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801
-user.reset.name.length=\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC710\u4E2A\u5B57
-user.reset.password.same=\u4E24\u6B21\u5BC6\u7801\u8BF7\u4FDD\u6301\u4E00\u81F4
-user.reset.password.length=\u5BC6\u7801\u7684\u957F\u5EA6\u81F3\u5C114\u4F4D\uFF0C\u4E0D\u80FD\u8D85\u8FC78\u4F4D
+user.reset.submit=\u786e\u5b9a
+user.reset.logout=\u9000\u51fa
+user.reset.title=\u9996\u6b21\u767b\u5f55\uff0c\u8bf7\u5b8c\u5584\u8d44\u6599
+user.reset.name=\u8f93\u5165\u7528\u6237\u540d
+user.reset.password=\u8f93\u5165\u65b0\u5bc6\u7801
+user.reset.password.again=\u518d\u6b21\u8f93\u5165\u65b0\u5bc6\u7801
+user.reset.name.length=\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc710\u4e2a\u5b57
+user.reset.password.same=\u4e24\u6b21\u5bc6\u7801\u8bf7\u4fdd\u6301\u4e00\u81f4
+user.reset.password.length=\u5bc6\u7801\u7684\u957f\u5ea6\u81f3\u5c114\u4f4d\uff0c\u4e0d\u80fd\u8d85\u8fc78\u4f4d
 #mark-control
-mark.control.assistant=\u5C0F\u52A9\u624B
-mark.control.mode.track=\u5207\u6362\u5230\u8F68\u8FF9\u6A21\u5F0F
-mark.control.mode.common=\u5207\u6362\u5230\u666E\u901A\u6A21\u5F0F
-mark.control.function=\u8BC4\u5377\u529F\u80FD
-mark.control.logout=\u9000\u51FA
-mark.control.init.error=\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u65B0\u52A0\u8F7D
-mark.control.task.not.exist=\u8BC4\u5377\u5927\u9898\u4E0D\u5B58\u5728
-mark.control.task.finish=\u8BC4\u5377\u5DF2\u7ED3\u675F
-mark.control.task.null=\u5F53\u524D\u65E0\u8BC4\u5377\u4EFB\u52A1
-mark.control.tsak.error=\u8BC4\u5377\u4EFB\u52A1\u63D0\u4EA4\u5931\u8D25\uFF0C\u8BF7\u5237\u65B0\u9875\u9762
+mark.control.assistant=\u5c0f\u52a9\u624b
+mark.control.mode.track=\u5207\u6362\u5230\u8f68\u8ff9\u6a21\u5f0f
+mark.control.mode.common=\u5207\u6362\u5230\u666e\u901a\u6a21\u5f0f
+mark.control.function=\u8bc4\u5377\u529f\u80fd
+mark.control.logout=\u9000\u51fa
+mark.control.init.error=\u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u65b0\u52a0\u8f7d
+mark.control.task.not.exist=\u8bc4\u5377\u5927\u9898\u4e0d\u5b58\u5728
+mark.control.task.finish=\u8bc4\u5377\u5df2\u7ed3\u675f
+mark.control.task.null=\u5f53\u524d\u65e0\u8bc4\u5377\u4efb\u52a1
+mark.control.tsak.error=\u8bc4\u5377\u4efb\u52a1\u63d0\u4ea4\u5931\u8d25\uff0c\u8bf7\u5237\u65b0\u9875\u9762
 #status
-mark.status.student.number=\u8003\u751F\u7F16\u53F7
-mark.status.library.number=\u4EFB\u52A1\u7F16\u53F7
-mark.status.objective.score=\u5BA2\u89C2\u5F97\u5206
-mark.status.marked.count=\u5DF2\u8BC4
-mark.status.unmark.count=\u672A\u8BC4
-mark.status.top.count=\u5206\u914D
-mark.status.progress=\u8FDB\u5EA6
-mark.status.continue=\u7EE7\u7EED
-mark.status.top.count.finish=\u5206\u914D\u4EFB\u52A1\u5DF2\u8BC4\u5B8C\uFF0C\u662F\u5426\u7EE7\u7EED\uFF1F
-mark.status.loading=\u6B63\u5728\u52A0\u8F7D...
-mark.status.logout=\u9000\u51FA
+mark.status.student.number=\u8003\u751f\u7f16\u53f7
+mark.status.library.number=\u4efb\u52a1\u7f16\u53f7
+mark.status.objective.score=\u5ba2\u89c2\u5f97\u5206
+mark.status.marked.count=\u5df2\u8bc4
+mark.status.unmark.count=\u672a\u8bc4
+mark.status.top.count=\u5206\u914d
+mark.status.progress=\u8fdb\u5ea6
+mark.status.continue=\u7ee7\u7eed
+mark.status.top.count.finish=\u5206\u914d\u4efb\u52a1\u5df2\u8bc4\u5b8c\uff0c\u662f\u5426\u7ee7\u7eed\uff1f
+mark.status.loading=\u6b63\u5728\u52a0\u8f7d...
+mark.status.logout=\u9000\u51fa
 #single-image-view
-mark.single.zoom.in=\u653E\u5927
-mark.single.zoom.out=\u7F29\u5C0F
-mark.single.zoom.fit=\u9002\u5E94
-mark.single.student.answer=\u7B54\u5377
+mark.single.zoom.in=\u653e\u5927
+mark.single.zoom.out=\u7f29\u5c0f
+mark.single.zoom.fit=\u9002\u5e94
+mark.single.student.answer=\u7b54\u5377
 #chang name
-mark.change.name=\u4FEE\u6539\u4E2A\u4EBA\u4FE1\u606F
-mark.change.press.name=\u8F93\u5165\u7528\u6237\u540D
-mark.change.press.password=\u8F93\u5165\u65B0\u5BC6\u7801
-mark.change.press.password.again=\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801
-mark.change.confirm=\u786E\u5B9A
-mark.change.name.null=\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7A
-mark.change.name.length=\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC78\u4E2A\u5B57
-mark.change.password.same=\u4E24\u6B21\u5BC6\u7801\u8BF7\u4FDD\u6301\u4E00\u81F4
-mark.change.password.length=\u5BC6\u7801\u7684\u957F\u5EA6\u81F3\u5C114\u4F4D
-mark.change.network.error=\u7F51\u7EDC\u901A\u4FE1\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
-mark.change.error=\u4FEE\u6539\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
+mark.change.name=\u4fee\u6539\u4e2a\u4eba\u4fe1\u606f
+mark.change.press.name=\u8f93\u5165\u7528\u6237\u540d
+mark.change.press.password=\u8f93\u5165\u65b0\u5bc6\u7801
+mark.change.press.password.again=\u518d\u6b21\u8f93\u5165\u65b0\u5bc6\u7801
+mark.change.confirm=\u786e\u5b9a
+mark.change.name.null=\u540d\u5b57\u4e0d\u80fd\u4e3a\u7a7a
+mark.change.name.length=\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc78\u4e2a\u5b57
+mark.change.password.same=\u4e24\u6b21\u5bc6\u7801\u8bf7\u4fdd\u6301\u4e00\u81f4
+mark.change.password.length=\u5bc6\u7801\u7684\u957f\u5ea6\u81f3\u5c114\u4f4d
+mark.change.network.error=\u7f51\u7edc\u901a\u4fe1\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5
+mark.change.error=\u4fee\u6539\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5
 #specialTag
-mark.special.tag=\u7279\u6B8A\u6807\u8BB0
-mark.special.back=\u56DE\u9000
-mark.special.clear=\u5168\u90E8\u6E05\u9664
-mark.special.underline=\u4E0B\u5212\u7EBF
-mark.special.open=\u6253\u5F00
-mark.special.close=\u5173\u95ED
+mark.special.tag=\u7279\u6b8a\u6807\u8bb0
+mark.special.back=\u56de\u9000
+mark.special.clear=\u5168\u90e8\u6e05\u9664
+mark.special.underline=\u4e0b\u5212\u7ebf
+mark.special.open=\u6253\u5f00
+mark.special.close=\u5173\u95ed
 #problem-process
-mark.problem=\u95EE\u9898\u5377
-mark.problem.type=\u9009\u62E9\u95EE\u9898\u7C7B\u578B
-mark.problem.confirm=\u786E\u5B9A
-mark.problem.cancel=\u53D6\u6D88
-mark.problem.check=\u8BF7\u9009\u62E9\u95EE\u9898\u5206\u7C7B
+mark.problem=\u95ee\u9898\u5377
+mark.problem.type=\u9009\u62e9\u95ee\u9898\u7c7b\u578b
+mark.problem.confirm=\u786e\u5b9a
+mark.problem.cancel=\u53d6\u6d88
+mark.problem.check=\u8bf7\u9009\u62e9\u95ee\u9898\u5206\u7c7b
 #thumbnail
-mark.thumbnail=\u7F29\u7565\u56FE
-mark.thumbnail.open=\u6253\u5F00
-mark.thumbnail.close=\u5173\u95ED
+mark.thumbnail=\u7f29\u7565\u56fe
+mark.thumbnail.open=\u6253\u5f00
+mark.thumbnail.close=\u5173\u95ed
 #view-sidebar
-mark.sidebar=\u4FA7\u8FB9\u680F
-mark.sidebar.paper=\u8BD5\u5377
-mark.sidebar.answer=\u7B54\u6848
+mark.sidebar=\u4fa7\u8fb9\u680f
+mark.sidebar.paper=\u8bd5\u5377
+mark.sidebar.answer=\u7b54\u6848
 #mark-history
-mark.history.title=\u56DE\u8BC4
-mark.history.time=\u65F6\u95F4
-mark.history.number=\u7F16\u53F7
-mark.history.score=\u603B\u5206
-mark.history.search=\u67E5\u627E\u8BD5\u5377
-mark.history.pre=\u524D
-mark.history.success=\u56DE\u8BC4\u6210\u529F\uFF0C\u603B\u5206\uFF1A
-mark.history.problem=\u56DE\u8BC4\u6210\u529F\uFF0C\u5DF2\u63D0\u4EA4\u95EE\u9898\u5377
-mark.history.loading=\u6B63\u5728\u52A0\u8F7D\u8BF7\u7A0D\u5019
-mark.history.error=\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6\u8BC4\u5377\u5386\u53F2\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
-mark.history.number.error=\u8BF7\u8F93\u5165\u6570\u5B57
+mark.history.title=\u56de\u8bc4
+mark.history.time=\u65f6\u95f4
+mark.history.number=\u7f16\u53f7
+mark.history.score=\u603b\u5206
+mark.history.search=\u67e5\u627e\u8bd5\u5377
+mark.history.pre=\u524d
+mark.history.success=\u56de\u8bc4\u6210\u529f\uff0c\u603b\u5206\uff1a
+mark.history.problem=\u56de\u8bc4\u6210\u529f\uff0c\u5df2\u63d0\u4ea4\u95ee\u9898\u5377
+mark.history.loading=\u6b63\u5728\u52a0\u8f7d\u8bf7\u7a0d\u5019
+mark.history.error=\u6682\u65f6\u65e0\u6cd5\u8bfb\u53d6\u8bc4\u5377\u5386\u53f2\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5
+mark.history.number.error=\u8bf7\u8f93\u5165\u6570\u5b57
 #mark-board
-mark.board.submit=\u63D0\u4EA4
-mark.board.total.score=\u603B\u5206
-mark.board.score.zero=\u5168\u96F6\u5206
-mark.board.pass=\u8DF3 \u8FC7
-mark.board.choose.result=\u9009\u505A\u7ED3\u679C
-mark.board.keyboard=\u952E\u76D8\u7ED9\u5206 >>
-mark.board.mouse=<< \u9F20\u6807\u7ED9\u5206
-mark.board.interval=\u95F4\u9694
+mark.board.submit=\u63d0\u4ea4
+mark.board.total.score=\u603b\u5206
+mark.board.score.zero=\u5168\u96f6\u5206
+mark.board.pass=\u8df3 \u8fc7
+mark.board.choose.result=\u9009\u505a\u7ed3\u679c
+mark.board.keyboard=\u952e\u76d8\u7ed9\u5206 >>
+mark.board.mouse=<< \u9f20\u6807\u7ed9\u5206
+mark.board.interval=\u95f4\u9694
 mark.board.score=\u5206
-mark.board.back=\u56DE\u9000
-mark.board.clear.question=\u6E05\u9664\u672C\u9898
-mark.board.clear=\u6E05\u9664\u5168\u5377
-mark.board.question.not.mark=\u5F53\u524D\u4EFB\u52A1\u8FD8\u6709\u672A\u7ED9\u5206\u7684\u9898\uFF0C\u8BF7\u7EE7\u7EED\u7ED9\u5206
-mark.board.confirm=,\u786E\u8BA4\u63D0\u4EA4\u5417\uFF1F
-mark.board.zero.confirm=\u786E\u8BA4\u8981\u63D0\u4EA4\u5168\u96F6\u5206\u5417\uFF1F
-mark.board.null=\u65E0
-mark.board.interval.error=\u4E0D\u7B26\u5408\u5206\u503C\u95F4\u9694\u8981\u6C42
-mark.board.gt=\u4E0D\u80FD\u5927\u4E8E
-mark.board.lt=\u4E0D\u80FD\u5C0F\u4E8E
-mark.board.number.error=\u4E0D\u662F\u5408\u6CD5\u6570\u5B57
+mark.board.back=\u56de\u9000
+mark.board.clear.question=\u6e05\u9664\u672c\u9898
+mark.board.clear=\u6e05\u9664\u5168\u5377
+mark.board.question.not.mark=\u5f53\u524d\u4efb\u52a1\u8fd8\u6709\u672a\u7ed9\u5206\u7684\u9898\uff0c\u8bf7\u7ee7\u7eed\u7ed9\u5206
+mark.board.confirm=,\u786e\u8ba4\u63d0\u4ea4\u5417\uff1f
+mark.board.zero.confirm=\u786e\u8ba4\u8981\u63d0\u4ea4\u5168\u96f6\u5206\u5417\uff1f
+mark.board.null=\u65e0
+mark.board.interval.error=\u4e0d\u7b26\u5408\u5206\u503c\u95f4\u9694\u8981\u6c42
+mark.board.gt=\u4e0d\u80fd\u5927\u4e8e
+mark.board.lt=\u4e0d\u80fd\u5c0f\u4e8e
+mark.board.number.error=\u4e0d\u662f\u5408\u6cd5\u6570\u5b57
 #sheet-view
-mark.sheet=\u539F\u56FE
-mark.sheet.check=\u539F\u56FE\u5207\u6362
-mark.sheet.open=\u6253\u5F00
-mark.sheet.close=\u5173\u95ED
-#slice-view
-mark.slice=\u5168\u5377
-mark.slice.check=\u5168\u5377\u5207\u6362
-mark.slice.open=\u6253\u5F00
-mark.slice.close=\u5173\u95ED
+mark.sheet=\u539f\u56fe
+mark.sheet.check=\u539f\u56fe\u5207\u6362
+mark.sheet.open=\u6253\u5f00
+mark.sheet.close=\u5173\u95ed
 #answer-view
-mark.answer=\u6807\u7B54
+mark.answer=\u6807\u7b54
 #warning-info
-mark.warning.try.again=\u8BF7\u70B9\u51FB\u91CD\u8BD5
-mark.warning.force.special.tag=\u5F3A\u5236\u7279\u6B8A\u6807\u8BB0\u5DF2\u5F00\u542F\uFF0C\u81F3\u5C11\u4F7F\u7528\u4E00\u4E2A\u7279\u6B8A\u6807\u8BB0
-mark.warning.network.error=\u7F51\u7EDC\u5F02\u5E38\uFF0C\u4EFB\u52A1\u63D0\u4EA4\u5931\u8D25
-mark.warning.task.error=\u9886\u53D6\u8BC4\u5377\u4EFB\u52A1\u51FA\u9519
-mark.warning.task.finish=\u8BC4\u5377\u4EFB\u52A1\u5DF2\u5B8C\u6210
-mark.warning.task.loading=\u8BC4\u5377\u4EFB\u52A1\u6B63\u5728\u52A0\u8F7D\u4E2D
-mark.warning.close=\u5173\u95ED
-mark.warning.success=\u56DE\u8BC4\u6210\u529F\uFF0C\u603B\u5206\uFF1A
-mark.warning.problem=\u56DE\u8BC4\u95EE\u9898\u5377\u6210\u529F
+mark.warning.try.again=\u8bf7\u70b9\u51fb\u91cd\u8bd5
+mark.warning.force.special.tag=\u5f3a\u5236\u7279\u6b8a\u6807\u8bb0\u5df2\u5f00\u542f\uff0c\u81f3\u5c11\u4f7f\u7528\u4e00\u4e2a\u7279\u6b8a\u6807\u8bb0
+mark.warning.network.error=\u7f51\u7edc\u5f02\u5e38\uff0c\u4efb\u52a1\u63d0\u4ea4\u5931\u8d25
+mark.warning.task.error=\u9886\u53d6\u8bc4\u5377\u4efb\u52a1\u51fa\u9519
+mark.warning.task.finish=\u8bc4\u5377\u4efb\u52a1\u5df2\u5b8c\u6210
+mark.warning.task.loading=\u8bc4\u5377\u4efb\u52a1\u6b63\u5728\u52a0\u8f7d\u4e2d
+mark.warning.close=\u5173\u95ed
+mark.warning.success=\u56de\u8bc4\u6210\u529f\uff0c\u603b\u5206\uff1a
+mark.warning.problem=\u56de\u8bc4\u95ee\u9898\u5377\u6210\u529f
 #json-view
-mark.json.loading=\u6B63\u5728\u52A0\u8F7D\u4E2D
-mark.json.student.answer=\u8003\u751F\u7B54\u6848\uFF1A
-mark.json.answer=\u6807\u7B54\uFF1A
-mark.json.body=\u9898\u5E72\uFF1A
-mark.json.question.number=\u9898\u53F7\uFF1A
+mark.json.loading=\u6b63\u5728\u52a0\u8f7d\u4e2d
+mark.json.student.answer=\u8003\u751f\u7b54\u6848\uff1a
+mark.json.answer=\u6807\u7b54\uff1a
+mark.json.body=\u9898\u5e72\uff1a
+mark.json.question.number=\u9898\u53f7\uff1a
+
+#index
+index.report.total=\u603b\u91cf\u5206\u6790
+index.report.subject=\u79d1\u76ee\u5206\u6790
+
+#report.subject
+report.subject=\u603b\u91cf\u5206\u6790
+report.subject.name=\u79d1\u76ee
+report.subject.select=\u8bf7\u9009\u62e9
+report.subject.search=\u67e5\u8be2
+report.subject.export=\u5bfc\u51fa
+report.subject.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.subject.name=\u79d1\u76ee
+report.subject.totalCount=\u62a5\u8003\u4eba\u6570
+report.subject.absentCount=\u7f3a\u8003
+report.subject.breachCount=\u8fdd\u7eaa
+report.subject.realityCount=\u6709\u6548\u4eba\u6570
+report.subject.avgScore=\u5e73\u5747\u5206
+report.subject.maxScore=\u6700\u9ad8\u5206
+report.subject.minScore=\u6700\u4f4e\u5206
+report.subject.passCount=\u53ca\u683c\u4eba\u6570
+report.subject.passRate=\u53ca\u683c\u7387
+#report.range
+report.range=\u5206\u6bb5\u7edf\u8ba1
+report.range.subject=\u79d1\u76ee
+report.range.select=\u8bf7\u9009\u62e9
+report.range.search=\u67e5\u8be2
+report.range.export=\u5bfc\u51fa
+report.range.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.range.level=\u5c42\u6b21
+report.range.proportion=\u5360\u6bd4
+report.range.total=\u603b\u6570
+report.range.operation=\u64cd\u4f5c
+report.range.chart=\u5206\u6bb5\u56fe
+#report.college
+report.college=\u5b66\u9662\u5206\u6790
+report.college.subject=\u79d1\u76ee
+report.college.select=\u8bf7\u9009\u62e9
+report.college.search=\u67e5\u8be2
+report.college.export=\u5bfc\u51fa
+report.college.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.college.name=\u5b66\u751f\u9662\u7cfb
+report.college.avgScore=\u5e73\u5747\u5206
+report.college.maxScore=\u6700\u9ad8\u5206
+report.college.minScore=\u6700\u4f4e\u5206
+report.college.passCount=\u53ca\u683c\u4eba\u6570
+report.college.passRate=\u53ca\u683c\u7387
+report.college.excellentRate=\u4f18\u79c0\u7387
+#report.teacher
+report.teacher=\u4efb\u8bfe\u8001\u5e08\u5206\u6790
+report.teacher.subject=\u79d1\u76ee
+report.teacher.select=\u8bf7\u9009\u62e9
+report.teacher.search=\u67e5\u8be2
+report.teacher.export=\u5bfc\u51fa
+report.teacher.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.teacher.name=\u4efb\u8bfe\u8001\u5e08
+report.teacher.realityCount=\u6709\u6548\u4eba\u6570
+report.teacher.passCount=\u53ca\u683c
+report.teacher.excellentCount=\u4f18\u79c0
+report.teacher.maxScore=\u6700\u9ad8\u5206
+report.teacher.minScore=\u6700\u4f4e\u5206
+report.teacher.passRate=\u53ca\u683c\u7387
+report.teacher.excellentRate=\u4f18\u79c0\u7387
+report.teacher.avgScore=\u5e73\u5747\u5206
+report.teacher.relativeAvgScore=\u5e73\u5747\u76f8\u5bf9\u5206
+report.teacher.return=\u8fd4\u56de
+#report.class
+report.class=\u73ed\u7ea7\u5206\u6790
+report.class.subject=\u79d1\u76ee
+report.class.select=\u8bf7\u9009\u62e9
+report.class.search=\u67e5\u8be2
+report.class.export=\u5bfc\u51fa
+report.class.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.class.name=\u73ed\u7ea7
+report.class.avgScore=\u5e73\u5747\u5206
+report.class.maxScore=\u6700\u9ad8\u5206
+report.class.minScore=\u6700\u4f4e\u5206
+report.class.passCount=\u53ca\u683c\u6570
+report.class.passRate=\u53ca\u683c\u7387
+report.class.excellentCount=\u4f18\u79c0\u6570
+report.class.excellentRate=\u4f18\u79c0\u7387
+#report.question
+report.question.objective=\u5ba2\u89c2\u9898\u5206\u6790
+report.question.subjective=\u4e3b\u89c2\u9898\u5206\u6790
+report.question.subject=\u79d1\u76ee
+report.question.select=\u8bf7\u9009\u62e9
+report.question.search=\u67e5\u8be2
+report.question.export=\u5bfc\u51fa
+report.question.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.question.paperType=\u8bd5\u5377\u7c7b\u578b
+report.question.name=\u9898\u76ee\u540d\u79f0
+report.question.mainNumber=\u5927\u9898\u53f7
+report.question.subNumber=\u5c0f\u9898\u53f7
+report.question.score=\u5355\u9898\u5206\u6570
+report.question.avgScore=\u5355\u9898\u5e73\u5747\u5206
+report.question.stdev=\u5355\u9898\u6807\u51c6\u5dee
+report.question.scoreRate=\u5f97\u5206\u7387
+report.question.fullScoreRate=\u6ee1\u5206\u7387
+#report.group
+report.group=\u5927\u9898\u5206\u6790
+report.group.subject=\u79d1\u76ee
+report.group.select=\u8bf7\u9009\u62e9
+report.group.search=\u67e5\u8be2
+report.group.export=\u5bfc\u51fa
+report.group.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.group.name=\u9898\u76ee\u540d\u79f0
+report.group.number=\u9898\u53f7
+report.group.totalScore=\u6ee1\u5206
+report.group.maxScore=\u6700\u9ad8\u5206
+report.group.minScore=\u6700\u4f4e\u5206
+report.group.avgScore=\u5e73\u5747\u5206
+report.group.stdev=\u6807\u51c6\u5dee
+report.group.coefficient=\u5dee\u5f02\u7cfb\u6570
+report.group.scoreRate=\u5f97\u5206\u7387
+report.group.zeroCount=\u96f6\u5206\u4eba\u6570
+report.group.fullCount=\u6ee1\u5206\u4eba\u6570
+#report.massage
+report.massage.school.null=\u627e\u4e0d\u5230\u5b66\u6821
+#head
+head.title=\u4e91\u9605\u5377
+head.logout=\u9000\u51fa

+ 122 - 1
stmms-web/src/main/webapp/static/i18n/messages_en.properties

@@ -142,4 +142,125 @@ mark.json.loading=loading...
 mark.json.student.answer=student answer:
 mark.json.answer=answer:
 mark.json.body=question:
-mark.json.question.number=question number:
+mark.json.question.number=question number:
+
+#index
+index.report.total=total analysis
+index.report.subject=Subject analysis
+
+#report.subject
+report.subject=total analysis
+report.subject.name=subject
+report.subject.select=please select
+report.subject.search=search
+report.subject.export=export
+report.subject.chart=chart
+report.subject.name=subject
+report.subject.totalCount=total count
+report.subject.absentCount=absent count
+report.subject.breachCount=breach count
+report.subject.realityCount=reality count
+report.subject.avgScore=avg score
+report.subject.maxScore=max score
+report.subject.minScore=min score
+report.subject.passCount=pass count
+report.subject.passRate=pass rate
+#report.range
+report.range=range
+report.range.subject=subject
+report.range.select=please select
+report.range.search=search
+report.range.export=export
+report.range.chart=chart
+report.range.level=level
+report.range.proportion=proportion
+report.range.total=total count
+report.range.operation=operation
+report.range.chart=chart
+#report.college
+report.college=college
+report.college.subject=subject
+report.college.select=please select
+report.college.search=search
+report.college.export=export
+report.college.chart=chart
+report.college.name=college
+report.college.avgScore=avg score
+report.college.maxScore=max score
+report.college.minScore=min score
+report.college.passCount=pass count
+report.college.passRate=pass rete
+report.college.excellentRate=excellent rate
+#report.teacher
+report.teacher=teacher
+report.teacher.subject=subject
+report.teacher.select=please select
+report.teacher.search=search
+report.teacher.export=export
+report.teacher.chart=chart
+report.teacher.name=teacher
+report.teacher.realityCount=reality count
+report.teacher.passCount=pass count
+report.teacher.excellentCount=excellent count
+report.teacher.maxScore=max score
+report.teacher.minScore=min score
+report.teacher.passRate=pass rate
+report.teacher.excellentRate=excellent rate
+report.teacher.avgScore=avg score
+report.teacher.relativeAvgScore=avg score
+report.teacher.return=return
+#report.class
+report.class=class
+report.class.subject=subject
+report.class.select=please select
+report.class.search=search
+report.class.export=export
+report.class.chart=chart
+report.class.name=class
+report.class.avgScore=avg score
+report.class.maxScore=max score
+report.class.minScore=min score
+report.class.passCount=pass count
+report.class.passRate=pass rate
+report.class.excellentCount=excellent count
+report.class.excellentRate=excellent rate
+#report.question
+report.question.objective=objective question
+report.question.subjective=subjective question
+report.question.subject=subject
+report.question.select=please select
+report.question.search=search
+report.question.export=export
+report.question.chart=chart
+report.question.paperType=paper type
+report.question.name=name
+report.question.mainNumber=main number
+report.question.subNumber=sub number
+report.question.score=score
+report.question.avgScore=avg score
+report.question.stdev=standard deviation
+report.question.scoreRate=score rate
+report.question.fullScoreRate=full score rate
+#report.group
+report.group=question
+report.group.subject=subject
+report.group.select=please select
+report.group.search=search
+report.group.export=export
+report.group.chart=chart
+report.group.name=name
+report.group.number=number
+report.group.totalScore=total score
+report.group.maxScore=max score
+report.group.minScore=min score
+report.group.avgScore=avg score
+report.group.stdev=standard deviation
+report.group.coefficient=coefficient
+report.group.scoreRate=score rate
+report.group.zeroCount=zero count
+report.group.fullCount=full count
+#report.massage
+report.massage.school.null=can not find school
+#head
+head.title=Marking System
+head.logout=logout

+ 242 - 126
stmms-web/src/main/webapp/static/i18n/messages_ja.properties

@@ -1,145 +1,261 @@
 #login
-user.login.title=\u30C7\u30B8\u30BF\u30EB\u63A1\u70B9\u30B7\u30B9\u30C6\u30E0\u3078\u30ED\u30B0\u30A4\u30F3
-user.login.admin=\u7BA1\u7406\u8005\u767B\u9332
-user.login.marker=\u63A1\u70B9\u8005\u767B\u9332
-user.login.name=\u30E6\u30FC\u30B6\u30FC\u540D
-user.login.password=\u30D1\u30B9\u30EF\u30FC\u30C9
-user.login.submit=\u30ED\u30B0\u30A4\u30F3
-user.login.error.account=\u8A72\u5F53\u3059\u308B\u30A2\u30AB\u30A6\u30F3\u30C8\u306F\u5B58\u5728\u3057\u307E\u305B\u3093
-user.login.error.finish=\u63A1\u70B9\u4F5C\u696D\u304C\u7D42\u4E86\u3057\u307E\u3057\u305F
-user.login.error.group=\u8A72\u5F53\u3059\u308B\u5927\u554F\u304C\u5B58\u5728\u3057\u307E\u305B\u3093
-user.login.error.disabled=\u3053\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306F\u73FE\u5728\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
-user.login.error.password=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059
-user.login.error.access=\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u5229\u304C\u3042\u308A\u307E\u305B\u3093
+user.login.title=\u30c7\u30b8\u30bf\u30eb\u63a1\u70b9\u30b7\u30b9\u30c6\u30e0\u3078\u30ed\u30b0\u30a4\u30f3
+user.login.admin=\u7ba1\u7406\u8005\u767b\u9332
+user.login.marker=\u63a1\u70b9\u8005\u767b\u9332
+user.login.name=\u30e6\u30fc\u30b6\u30fc\u540d
+user.login.password=\u30d1\u30b9\u30ef\u30fc\u30c9
+user.login.submit=\u30ed\u30b0\u30a4\u30f3
+user.login.error.account=\u8a72\u5f53\u3059\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u5b58\u5728\u3057\u307e\u305b\u3093
+user.login.error.finish=\u63a1\u70b9\u4f5c\u696d\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f
+user.login.error.group=\u8a72\u5f53\u3059\u308b\u5927\u554f\u304c\u5b58\u5728\u3057\u307e\u305b\u3093
+user.login.error.disabled=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u73fe\u5728\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
+user.login.error.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3059
+user.login.error.access=\u30a2\u30af\u30bb\u30b9\u3059\u308b\u6a29\u5229\u304c\u3042\u308a\u307e\u305b\u3093
 #reset
-user.reset.submit=\u78BA\u5B9A
-user.reset.logout=\u30ED\u30B0\u30A2\u30A6\u30C8
-user.reset.title=\u65B0\u898F\u767B\u9332
-user.reset.name=\u30E6\u30FC\u30B6\u30FC\u540D
-user.reset.password=\u30D1\u30B9\u30EF\u30FC\u30C9
-user.reset.password.again=\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u518D\u5165\u529B
-user.reset.name.length=\u30D1\u30B9\u30EF\u30FC\u30C9\u306F10\u6587\u5B57\u4EE5\u5185\u306B\u3057\u3066\u304F\u3060\u3055\u3044
-user.reset.password.same=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093
-user.reset.password.length=4\u6587\u5B57\u4EE5\u4E0A\u30018\u6587\u5B57\u4EE5\u5185\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044
+user.reset.submit=\u78ba\u5b9a
+user.reset.logout=\u30ed\u30b0\u30a2\u30a6\u30c8
+user.reset.title=\u65b0\u898f\u767b\u9332
+user.reset.name=\u30e6\u30fc\u30b6\u30fc\u540d
+user.reset.password=\u30d1\u30b9\u30ef\u30fc\u30c9
+user.reset.password.again=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u518d\u5165\u529b
+user.reset.name.length=\u30d1\u30b9\u30ef\u30fc\u30c9\u306f10\u6587\u5b57\u4ee5\u5185\u306b\u3057\u3066\u304f\u3060\u3055\u3044
+user.reset.password.same=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093
+user.reset.password.length=4\u6587\u5b57\u4ee5\u4e0a\u30018\u6587\u5b57\u4ee5\u5185\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044
 #mark-control
-mark.control.assistant=\u305D\u306E\u4ED6\u306E\u6A5F\u80FD
-mark.control.mode.track=\u90E8\u5206\u63A1\u70B9\u30E2\u30FC\u30C9\u306B\u5207\u308A\u66FF\u3048\u308B
-mark.control.mode.common=\u901A\u5E38\u63A1\u70B9\u30E2\u30FC\u30C9\u306B\u5207\u308A\u66FF\u3048\u308B
-mark.control.function=\u63A1\u70B9\u6A5F\u80FD
+mark.control.assistant=\u305d\u306e\u4ed6\u306e\u6a5f\u80fd
+mark.control.mode.track=\u90e8\u5206\u63a1\u70b9\u30e2\u30fc\u30c9\u306b\u5207\u308a\u66ff\u3048\u308b
+mark.control.mode.common=\u901a\u5e38\u63a1\u70b9\u30e2\u30fc\u30c9\u306b\u5207\u308a\u66ff\u3048\u308b
+mark.control.function=\u63a1\u70b9\u6a5f\u80fd
 mark.control.logout=EXIT
-mark.control.init.error=\u30C7\u30FC\u30BF\u30FC\u66F4\u65B0\u304C\u5931\u6557\u3057\u305F\u306E\u3067\u3001\u518D\u5EA6\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u304F\u3060\u3055\u3044
-mark.control.task.not.exist=\u8A72\u5F53\u3059\u308B\u5927\u554F\u304C\u5B58\u5728\u3057\u307E\u305B\u3093
-mark.control.task.finish=\u63A1\u70B9\u4F5C\u696D\u304C\u7D42\u4E86\u3057\u307E\u3057\u305F
-mark.control.task.null=\u63A1\u70B9\u5BFE\u8C61\u304C\u3042\u308A\u307E\u305B\u3093
-mark.control.tsak.error=\u63D0\u51FA\u306B\u5931\u6557\u3057\u305F\u306E\u3067\u3001\u518D\u5EA6\u8A66\u3057\u3066\u304F\u3060\u3055\u3044
+mark.control.init.error=\u30c7\u30fc\u30bf\u30fc\u66f4\u65b0\u304c\u5931\u6557\u3057\u305f\u306e\u3067\u3001\u518d\u5ea6\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044
+mark.control.task.not.exist=\u8a72\u5f53\u3059\u308b\u5927\u554f\u304c\u5b58\u5728\u3057\u307e\u305b\u3093
+mark.control.task.finish=\u63a1\u70b9\u4f5c\u696d\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f
+mark.control.task.null=\u63a1\u70b9\u5bfe\u8c61\u304c\u3042\u308a\u307e\u305b\u3093
+mark.control.tsak.error=\u63d0\u51fa\u306b\u5931\u6557\u3057\u305f\u306e\u3067\u3001\u518d\u5ea6\u8a66\u3057\u3066\u304f\u3060\u3055\u3044
 #status
-mark.status.student.number=\u53D7\u9A13\u8005\u7BA1\u7406\u756A\u53F7
-mark.status.library.number=\u63A1\u70B9\u30BF\u30B9\u30AF\u7BA1\u7406\u756A\u53F7
-mark.status.objective.score=\u30DE\u30FC\u30AF\u63A1\u70B9\u306E\u70B9\u6570
-mark.status.marked.count=\u63A1\u70B9\u30BF\u30B9\u30AF\u7D42\u4E86
-mark.status.unmark.count=\u63A1\u70B9\u30BF\u30B9\u30AF\u672A\u7D42\u4E86
-mark.status.top.count=\u5272\u308A\u5F53\u3066\u3089\u308C\u305F\u7B54\u6848\u7528\u7D19\u6570
-mark.status.progress=\u9032\u6357\u72B6\u6CC1
-mark.status.continue=\u5F15\u304D\u7D9A\u304D\u63A1\u70B9\u3057\u307E\u3059\u304B
-mark.status.top.count.finish=\u5272\u308A\u5F53\u3066\u3089\u308C\u305F\u30BF\u30B9\u30AF\u304C\u5B8C\u6210\u3057\u307E\u3057\u305F\u3002\u5F15\u304D\u7D9A\u304D\u63A1\u70B9\u3057\u307E\u3059\u304B\uFF1F
-mark.status.loading=\u30ED\u30FC\u30C9\u4E2D\u2026
-mark.status.logout=\u30ED\u30B0\u30A2\u30A6\u30C8
+mark.status.student.number=\u53d7\u9a13\u8005\u7ba1\u7406\u756a\u53f7
+mark.status.library.number=\u63a1\u70b9\u30bf\u30b9\u30af\u7ba1\u7406\u756a\u53f7
+mark.status.objective.score=\u30de\u30fc\u30af\u63a1\u70b9\u306e\u70b9\u6570
+mark.status.marked.count=\u63a1\u70b9\u30bf\u30b9\u30af\u7d42\u4e86
+mark.status.unmark.count=\u63a1\u70b9\u30bf\u30b9\u30af\u672a\u7d42\u4e86
+mark.status.top.count=\u5272\u308a\u5f53\u3066\u3089\u308c\u305f\u7b54\u6848\u7528\u7d19\u6570
+mark.status.progress=\u9032\u6357\u72b6\u6cc1
+mark.status.continue=\u5f15\u304d\u7d9a\u304d\u63a1\u70b9\u3057\u307e\u3059\u304b
+mark.status.top.count.finish=\u5272\u308a\u5f53\u3066\u3089\u308c\u305f\u30bf\u30b9\u30af\u304c\u5b8c\u6210\u3057\u307e\u3057\u305f\u3002\u5f15\u304d\u7d9a\u304d\u63a1\u70b9\u3057\u307e\u3059\u304b\uff1f
+mark.status.loading=\u30ed\u30fc\u30c9\u4e2d\u2026
+mark.status.logout=\u30ed\u30b0\u30a2\u30a6\u30c8
 #single-image-view
-mark.single.zoom.in=\u62E1\u5927
-mark.single.zoom.out=\u7E2E\u5C0F
-mark.single.zoom.fit=\u753B\u9762\u30B5\u30A4\u30BA\u306B\u5408\u308F\u305B\u3066\u8868\u793A
-mark.single.student.answer=\u7B54\u6848\u7528\u7D19
+mark.single.zoom.in=\u62e1\u5927
+mark.single.zoom.out=\u7e2e\u5c0f
+mark.single.zoom.fit=\u753b\u9762\u30b5\u30a4\u30ba\u306b\u5408\u308f\u305b\u3066\u8868\u793a
+mark.single.student.answer=\u7b54\u6848\u7528\u7d19
 #chang name
-mark.change.name=\u30E6\u30FC\u30B6\u30FC\u30CB\u30C3\u30AF\u30CD\u30FC\u30E0\u5165\u529B
-mark.change.press.name=\u30E6\u30FC\u30B6\u30FC\u540D\u5165\u529B
-mark.change.press.password=\u30D1\u30B9\u30EF\u30FC\u30C9\u5165\u529B
-mark.change.press.password.again=\u30D1\u30B9\u30EF\u30FC\u30C9\u518D\u5165\u529B
-mark.change.confirm=\u78BA\u5B9A
-mark.change.name.null=\u30E6\u30FC\u30B6\u30FC\u540D\u5165\u529B
-mark.change.name.length=8\u6587\u5B57\u4EE5\u5185\u306B\u3057\u3066\u304F\u3060\u3055\u3044
-mark.change.password.same=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093
-mark.change.password.length=\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u6587\u5B57\u6570\u306F\uFF14\u6587\u5B57\u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059
-mark.change.network.error=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306E\u4E0D\u5177\u5408\u304C\u751F\u3058\u305F\u305F\u3081\u3001\u3084\u308A\u76F4\u3057\u3066\u4E0B\u3055\u3044
-mark.change.error=\u64CD\u4F5C\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u5EA6\u8A66\u3057\u3066\u304F\u3060\u3055\u3044
+mark.change.name=\u30e6\u30fc\u30b6\u30fc\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u5165\u529b
+mark.change.press.name=\u30e6\u30fc\u30b6\u30fc\u540d\u5165\u529b
+mark.change.press.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u5165\u529b
+mark.change.press.password.again=\u30d1\u30b9\u30ef\u30fc\u30c9\u518d\u5165\u529b
+mark.change.confirm=\u78ba\u5b9a
+mark.change.name.null=\u30e6\u30fc\u30b6\u30fc\u540d\u5165\u529b
+mark.change.name.length=8\u6587\u5b57\u4ee5\u5185\u306b\u3057\u3066\u304f\u3060\u3055\u3044
+mark.change.password.same=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093
+mark.change.password.length=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u6587\u5b57\u6570\u306f\uff14\u6587\u5b57\u4ee5\u4e0a\u304c\u5fc5\u8981\u3067\u3059
+mark.change.network.error=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u4e0d\u5177\u5408\u304c\u751f\u3058\u305f\u305f\u3081\u3001\u3084\u308a\u76f4\u3057\u3066\u4e0b\u3055\u3044
+mark.change.error=\u64cd\u4f5c\u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u518d\u5ea6\u8a66\u3057\u3066\u304f\u3060\u3055\u3044
 #specialTag
-mark.special.tag=\u7279\u6B8A\u8A18\u53F7
-mark.special.back=\u623B\u308B
-mark.special.clear=\u3059\u3079\u3066\u306E\u63A1\u70B9\u3092\u524A\u9664
-mark.special.underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3
-mark.special.open=\u958B\u304F
-mark.special.close=\u9589\u3058\u308B
+mark.special.tag=\u7279\u6b8a\u8a18\u53f7
+mark.special.back=\u623b\u308b
+mark.special.clear=\u3059\u3079\u3066\u306e\u63a1\u70b9\u3092\u524a\u9664
+mark.special.underline=\u30a2\u30f3\u30c0\u30fc\u30e9\u30a4\u30f3
+mark.special.open=\u958b\u304f
+mark.special.close=\u9589\u3058\u308b
 #problem-process
-mark.problem=\u7B54\u6848\u7528\u7D19\u554F\u984C\u3042\u308A
-mark.problem.type=\u554F\u984C\u30BF\u30A4\u30D7\u3092\u9078\u629E
-mark.problem.confirm=\u78BA\u5B9A
-mark.problem.cancel=\u30AD\u30E3\u30F3\u30BB\u30EB
-mark.problem.check=\u554F\u984C\u30BF\u30A4\u30D7\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044
+mark.problem=\u7b54\u6848\u7528\u7d19\u554f\u984c\u3042\u308a
+mark.problem.type=\u554f\u984c\u30bf\u30a4\u30d7\u3092\u9078\u629e
+mark.problem.confirm=\u78ba\u5b9a
+mark.problem.cancel=\u30ad\u30e3\u30f3\u30bb\u30eb
+mark.problem.check=\u554f\u984c\u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044
 #thumbnail
-mark.thumbnail=\u30B5\u30E0\u30CD\u30A4\u30EB\u8868\u793A
-mark.thumbnail.open=\u958B\u304F
-mark.thumbnail.close=\u9589\u3058\u308B
+mark.thumbnail=\u30b5\u30e0\u30cd\u30a4\u30eb\u8868\u793a
+mark.thumbnail.open=\u958b\u304f
+mark.thumbnail.close=\u9589\u3058\u308b
 #view-sidebar
-mark.sidebar=\u30B5\u30A4\u30C9\u30D0\u30FC
-mark.sidebar.paper=\u554F\u984C\u7528\u7D19
-mark.sidebar.answer=\u6A19\u6E96\u89E3\u7B54
+mark.sidebar=\u30b5\u30a4\u30c9\u30d0\u30fc
+mark.sidebar.paper=\u554f\u984c\u7528\u7d19
+mark.sidebar.answer=\u6a19\u6e96\u89e3\u7b54
 #mark-history
-mark.history.title=\u518D\u63A1\u70B9
+mark.history.title=\u518d\u63a1\u70b9
 mark.history.time=\u6642\u9593
-mark.history.number=\u756A\u53F7
-mark.history.score=\u5408\u8A08\u70B9
-mark.history.search=\u7B54\u6848\u7528\u7D19\u306E\u691C\u7D22
-mark.history.pre=\u623B\u308B
-mark.history.success=\u518D\u63A1\u70B9\u7D42\u4E86\u3000\u5408\u8A08\u70B9\uFF1A
-mark.history.problem=\u518D\u63A1\u70B9\u7D42\u4E86\u3000\u63D0\u51FA\u6E08\u307F\u3000
-mark.history.loading=\u30ED\u30FC\u30C9\u4E2D\u2026
-mark.history.error=\u63A1\u70B9\u8A18\u9332\u306E\u8AAD\u8FBC\u307F\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u3082\u3046\u4E00\u5EA6\u8A66\u3057\u3066\u304F\u3060\u3055\u3044
-mark.history.number.error=\u8A8D\u8B58\u3067\u304D\u306A\u3044\u6587\u5B57
+mark.history.number=\u756a\u53f7
+mark.history.score=\u5408\u8a08\u70b9
+mark.history.search=\u7b54\u6848\u7528\u7d19\u306e\u691c\u7d22
+mark.history.pre=\u623b\u308b
+mark.history.success=\u518d\u63a1\u70b9\u7d42\u4e86\u3000\u5408\u8a08\u70b9\uff1a
+mark.history.problem=\u518d\u63a1\u70b9\u7d42\u4e86\u3000\u63d0\u51fa\u6e08\u307f\u3000
+mark.history.loading=\u30ed\u30fc\u30c9\u4e2d\u2026
+mark.history.error=\u63a1\u70b9\u8a18\u9332\u306e\u8aad\u8fbc\u307f\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u3057\u3070\u3089\u304f\u3057\u3066\u304b\u3089\u3082\u3046\u4e00\u5ea6\u8a66\u3057\u3066\u304f\u3060\u3055\u3044
+mark.history.number.error=\u8a8d\u8b58\u3067\u304d\u306a\u3044\u6587\u5b57
 #mark-board
-mark.board.submit=\u63D0\u51FA
-mark.board.total.score=\u5408\u8A08\u70B9
-mark.board.score.zero=\u5408\u8A08\u70B9\uFF1A0
-mark.board.pass=\u30B9\u30AD\u30C3\u30D7 
-mark.board.choose.result=\u63A1\u70B9
-mark.board.keyboard=\u30AD\u30FC\u30DC\u30FC\u30C9\u63A1\u70B9 >>
-mark.board.mouse=<< \u30DE\u30A6\u30B9\u63A1\u70B9
-mark.board.interval=\u9593\u9694\u8A2D\u5B9A
-mark.board.score=\u70B9\u6570
-mark.board.back=\u623B\u308B
-mark.board.clear.question=\u90E8\u5206\u63A1\u70B9\u524A\u9664
-mark.board.clear=\u5168\u63A1\u70B9\u306E\u524A\u9664
-mark.board.question.not.mark=\u672A\u63A1\u70B9\u306E\u554F\u984C\u304C\u3042\u308A\u307E\u3059
-mark.board.confirm=,\u63D0\u51FA\u3057\u307E\u3059\u304B\uFF1F
-mark.board.zero.confirm=\u5408\u8A08\u70B9\u306F0\u3067\u3059\u3002\u63D0\u51FA\u3057\u307E\u3059\u304B\uFF1F
+mark.board.submit=\u63d0\u51fa
+mark.board.total.score=\u5408\u8a08\u70b9
+mark.board.score.zero=\u5408\u8a08\u70b9\uff1a0
+mark.board.pass=\u30b9\u30ad\u30c3\u30d7 
+mark.board.choose.result=\u63a1\u70b9
+mark.board.keyboard=\u30ad\u30fc\u30dc\u30fc\u30c9\u63a1\u70b9 >>
+mark.board.mouse=<< \u30de\u30a6\u30b9\u63a1\u70b9
+mark.board.interval=\u9593\u9694\u8a2d\u5b9a
+mark.board.score=\u70b9\u6570
+mark.board.back=\u623b\u308b
+mark.board.clear.question=\u90e8\u5206\u63a1\u70b9\u524a\u9664
+mark.board.clear=\u5168\u63a1\u70b9\u306e\u524a\u9664
+mark.board.question.not.mark=\u672a\u63a1\u70b9\u306e\u554f\u984c\u304c\u3042\u308a\u307e\u3059
+mark.board.confirm=,\u63d0\u51fa\u3057\u307e\u3059\u304b\uff1f
+mark.board.zero.confirm=\u5408\u8a08\u70b9\u306f0\u3067\u3059\u3002\u63d0\u51fa\u3057\u307e\u3059\u304b\uff1f
 mark.board.null=
-mark.board.interval.error=\u70B9\u6570\u306E\u6700\u5C0F\u9593\u9694\u3068\u4E00\u81F4\u3057\u3066\u3044\u307E\u305B\u3093
-mark.board.gt=\u4EE5\u4E0B
-mark.board.lt=\u4EE5\u4E0A
-mark.board.number.error=\u8A8D\u8B58\u3067\u304D\u306A\u3044\u6587\u5B57
+mark.board.interval.error=\u70b9\u6570\u306e\u6700\u5c0f\u9593\u9694\u3068\u4e00\u81f4\u3057\u3066\u3044\u307e\u305b\u3093
+mark.board.gt=\u4ee5\u4e0b
+mark.board.lt=\u4ee5\u4e0a
+mark.board.number.error=\u8a8d\u8b58\u3067\u304d\u306a\u3044\u6587\u5b57
 #sheet-view
-mark.sheet=\u7B54\u6848\u7528\u7D19
-mark.sheet.check=\u7B54\u6848\u7528\u7D19\u306E\u5207\u66FF
-mark.sheet.open=\u958B\u304F
-mark.sheet.close=\u9589\u3058\u308B
-#slice-view
-mark.slice=\u7B54\u6848\u7528\u7D19
-mark.slice.check=\u7B54\u6848\u7528\u7D19\u306E\u5207\u66FF
-mark.slice.open=\u958B\u304F
-mark.slice.close=\u9589\u3058\u308B
+mark.sheet=\u7b54\u6848\u7528\u7d19
+mark.sheet.check=\u7b54\u6848\u7528\u7d19\u306e\u5207\u66ff
+mark.sheet.open=\u958b\u304f
+mark.sheet.close=\u9589\u3058\u308b
 #answer-view
-mark.answer=\u6A21\u7BC4\u89E3\u7B54
+mark.answer=\u6a21\u7bc4\u89e3\u7b54
 #warning-info
-mark.warning.try.again=\u3084\u308A\u76F4\u3057\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u4E0B\u3055\u3044
-mark.warning.force.special.tag=\u7279\u6B8A\u8A18\u53F7\u6A5F\u80FD\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B\u306E\u3067\u3001\u7279\u6B8A\u8A18\u53F7\u3092\u6700\u4F4E\u4E00\u3064\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
-mark.warning.network.error=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306E\u4E0D\u5177\u5408\u304C\u751F\u3058\u305F\u305F\u3081\u3001\u63D0\u51FA\u304C\u5931\u6557\u3057\u307E\u3057\u305F
-mark.warning.task.error=\u30C7\u30FC\u30BF\u30FC\u306E\u8AAD\u8FBC\u307F\u304C\u5931\u6557\u3057\u307E\u3057\u305F
-mark.warning.task.finish=\u63A1\u70B9\u304C\u7D42\u4E86\u3057\u307E\u3057\u305F
-mark.warning.task.loading=\u7B54\u6848\u7528\u7D19\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u2026
-mark.warning.close=\u9589\u3058\u308B
-mark.warning.success=\u518D\u63A1\u70B9\u7D42\u4E86\u3001\u5408\u8A08\u70B9\uFF1A
-mark.warning.problem=\u554F\u984C\u3042\u308A\u306E\u7B54\u6848\u7528\u7D19\u306E\u518D\u63A1\u70B9\u7D42\u4E86
+mark.warning.try.again=\u3084\u308a\u76f4\u3057\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u4e0b\u3055\u3044
+mark.warning.force.special.tag=\u7279\u6b8a\u8a18\u53f7\u6a5f\u80fd\u304c\u30aa\u30f3\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u7279\u6b8a\u8a18\u53f7\u3092\u6700\u4f4e\u4e00\u3064\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044
+mark.warning.network.error=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u4e0d\u5177\u5408\u304c\u751f\u3058\u305f\u305f\u3081\u3001\u63d0\u51fa\u304c\u5931\u6557\u3057\u307e\u3057\u305f
+mark.warning.task.error=\u30c7\u30fc\u30bf\u30fc\u306e\u8aad\u8fbc\u307f\u304c\u5931\u6557\u3057\u307e\u3057\u305f
+mark.warning.task.finish=\u63a1\u70b9\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f
+mark.warning.task.loading=\u7b54\u6848\u7528\u7d19\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u4e2d\u2026
+mark.warning.close=\u9589\u3058\u308b
+mark.warning.success=\u518d\u63a1\u70b9\u7d42\u4e86\u3001\u5408\u8a08\u70b9\uff1a
+mark.warning.problem=\u554f\u984c\u3042\u308a\u306e\u7b54\u6848\u7528\u7d19\u306e\u518d\u63a1\u70b9\u7d42\u4e86
 #json-view
-mark.json.loading=\u30ED\u30FC\u30C9\u4E2D\u2026
-mark.json.student.answer=\u53D7\u9A13\u8005\u306E\u56DE\u7B54\uFF1A
-mark.json.answer=\u6A21\u7BC4\u89E3\u7B54\uFF1A
-mark.json.body=\u8A66\u9A13\u554F\u984C\uFF1A
-mark.json.question.number=\u8A66\u9A13\u554F\u984C\u756A\u53F7\uFF1A
+mark.json.loading=\u30ed\u30fc\u30c9\u4e2d\u2026
+mark.json.student.answer=\u53d7\u9a13\u8005\u306e\u56de\u7b54\uff1a
+mark.json.answer=\u6a21\u7bc4\u89e3\u7b54\uff1a
+mark.json.body=\u8a66\u9a13\u554f\u984c\uff1a
+mark.json.question.number=\u8a66\u9a13\u554f\u984c\u756a\u53f7\uff1a
+
+#index
+index.report.total=\u96c6\u8a08\u5206\u6790
+index.report.subject=\u79d1\u76ee\u5225\u5206\u6790
+
+#report.subject
+report.subject=\u96c6\u8a08\u5206\u6790
+report.subject.name=\u79d1\u76ee
+report.subject.select=\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
+report.subject.search=\u30af\u30a8\u30ea\u30fc
+report.subject.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+report.subject.chart=\u7d71\u8a08\u56f3\u3092\u898b\u308b
+report.subject.name=\u79d1\u76ee
+report.subject.totalCount=\u5fdc\u52df\u8005\u6570
+report.subject.absentCount=\u6b20\u5e2d
+report.subject.breachCount=\u4e0d\u6b63\u884c\u70ba
+report.subject.realityCount=\u6709\u52b9\u8005\u6570
+report.subject.avgScore=\u5e73\u5747\u70b9
+report.subject.maxScore=\u6700\u9ad8\u70b9
+report.subject.minScore=\u6700\u4f4e\u70b9
+report.subject.passCount=\u5408\u683c\u8005\u6570
+report.subject.passRate=\u5408\u683c\u7387
+#report.range
+report.range=\u70b9\u6570\u533a\u5206\u7d71\u8a08
+report.range.subject=\u79d1\u76ee
+report.range.select=\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
+report.range.search=\u30af\u30a8\u30ea\u30fc
+report.range.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+report.range.chart=\u7d71\u8a08\u56f3\u3092\u898b\u308b
+report.range.level=\u5b66\u6b74
+report.range.proportion=\u5272\u5408
+report.range.total=\u7dcf\u4eba\u6570
+report.range.operation=\u64cd\u4f5c\u6a5f\u80fd
+report.range.chart=\u7d71\u8a08\u56f3\u8868
+#report.college
+report.college=\u5b66\u90e8\u5225\u5206\u6790
+report.college.subject=\u79d1\u76ee
+report.college.select=\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
+report.college.search=\u30af\u30a8\u30ea\u30fc
+report.college.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+report.college.chart=\u7d71\u8a08\u56f3\u3092\u898b\u308b
+report.college.name=\u6240\u5c5e\u5b66\u90e8
+report.college.avgScore=\u5e73\u5747\u70b9
+report.college.maxScore=\u6700\u9ad8\u70b9
+report.college.minScore=\u6700\u4f4e\u70b9
+report.college.passCount=\u5408\u683c\u8005\u6570
+report.college.passRate=\u5408\u683c\u7387
+report.college.excellentRate=\u9ad8\u5f97\u70b9\u7387
+#report.teacher
+report.teacher=\u62c5\u4efb\u306b\u3064\u3044\u3066\u306e\u8a55\u4fa1
+report.teacher.subject=\u79d1\u76ee
+report.teacher.select=\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
+report.teacher.search=\u30af\u30a8\u30ea\u30fc
+report.teacher.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+report.teacher.chart=\u7d71\u8a08\u56f3\u3092\u898b\u308b
+report.teacher.name=\u62c5\u4efb
+report.teacher.realityCount=\u6709\u52b9\u8005\u6570
+report.teacher.passCount=\u5408\u683c\u8005\u6570
+report.teacher.excellentCount=\u9ad8\u5f97\u70b9\u8005\u6570
+report.teacher.maxScore=\u6700\u9ad8\u70b9
+report.teacher.minScore=\u6700\u4f4e\u70b9
+report.teacher.passRate=\u5408\u683c\u7387
+report.teacher.excellentRate=\u9ad8\u5f97\u70b9\u7387
+report.teacher.avgScore=\u5e73\u5747\u70b9
+report.teacher.relativeAvgScore=\u5e73\u5747\u70b9\u5dee\u5206
+report.teacher.return=\u623b\u308b
+#report.class
+report.class=\u30af\u30e9\u30b9\u3054\u3068\u5206\u6790
+report.class.subject=\u79d1\u76ee
+report.class.select=\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
+report.class.search=\u30af\u30a8\u30ea\u30fc
+report.class.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+report.class.chart=\u7d71\u8a08\u56f3\u3092\u898b\u308b
+report.class.name=\u30af\u30e9\u30b9
+report.class.avgScore=\u5e73\u5747\u70b9
+report.class.maxScore=\u6700\u9ad8\u70b9
+report.class.minScore=\u6700\u4f4e\u70b9
+report.class.passCount=\u5408\u683c\u8005\u6570
+report.class.passRate=\u5408\u683c\u7387
+report.class.excellentCount=\u9ad8\u5f97\u70b9\u8005\u6570
+report.class.excellentRate=\u9ad8\u5f97\u70b9\u7387
+#report.question
+report.question.objective=\u30de\u30fc\u30af\u30b7\u30fc\u30c8\u65b9\u5f0f\u554f\u984c\u306b\u3064\u3044\u3066\u306e\u5206\u6790
+report.question.subjective=\u8a18\u8ff0\u554f\u984c\u306b\u3064\u3044\u3066\u306e\u5206\u6790
+report.question.subject=\u79d1\u76ee
+report.question.select=\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
+report.question.search=\u30af\u30a8\u30ea\u30fc
+report.question.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+report.question.chart=\u7d71\u8a08\u56f3\u3092\u898b\u308b
+report.question.paperType=\u7b54\u6848\u7528\u7d19\u306e\u5206\u985e
+report.question.name=\u8a2d\u554f\u540d\u79f0
+report.question.mainNumber=\u5927\u554f\u756a\u53f7
+report.question.subNumber=\u5c0f\u554f\u756a\u53f7
+report.question.score=\u914d\u70b9
+report.question.avgScore=\u5e73\u5747\u70b9
+report.question.stdev=\u6a19\u6e96\u504f\u5dee
+report.question.scoreRate=\u5f97\u70b9\u7387
+report.question.fullScoreRate=\u6e80\u70b9\u7387
+#report.group
+report.group=\u5927\u554f\u306b\u3064\u3044\u3066\u306e\u5206\u6790
+report.group.subject=\u79d1\u76ee
+report.group.select=\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
+report.group.search=\u30af\u30a8\u30ea\u30fc
+report.group.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+report.group.chart=\u7d71\u8a08\u56f3\u3092\u898b\u308b
+report.group.name=\u8a2d\u554f\u540d\u79f0
+report.group.number=\u554f\u984c\u756a\u53f7
+report.group.totalScore=\u6e80\u70b9
+report.group.maxScore=\u6700\u9ad8\u70b9
+report.group.minScore=\u6700\u4f4e\u70b9
+report.group.avgScore=\u5e73\u5747\u70b9
+report.group.stdev=\u6a19\u6e96\u504f\u5dee
+report.group.coefficient=\u4e0d\u7b49\u7387
+report.group.scoreRate=\u5f97\u70b9\u7387
+report.group.zeroCount=0\u70b9\u8005\u6570
+report.group.fullCount=\u6e80\u70b9\u8005\u6570
+#report.massage
+report.massage.school.null=\u8a72\u5f53\u5b66\u6821\u898b\u3064\u304b\u3089\u306a\u3044
+#head
+head.title=\u30c7\u30b8\u30bf\u30eb\u63a1\u70b9\u30b7\u30b9\u30c6\u30e0
+head.logout=\u30ed\u30b0\u30a2\u30a6\u30c8

+ 244 - 128
stmms-web/src/main/webapp/static/i18n/messages_zh.properties

@@ -1,145 +1,261 @@
 #login
-user.login.title=\u9AD8\u6821\u8003\u8BD5\u7BA1\u7406\u5E73\u53F0
-user.login.admin=\u7BA1\u7406\u5458\u767B\u5F55
-user.login.marker=\u8BC4\u5377\u5458\u767B\u5F55
-user.login.name=\u7528\u6237\u540D
-user.login.password=\u5BC6\u7801
-user.login.submit=\u767B\u5F55
-user.login.error.account=\u5E10\u53F7\u4E0D\u5B58\u5728
-user.login.error.finish=\u8BC4\u5377\u5DF2\u7ED3\u675F
-user.login.error.group=\u5927\u9898\u4E0D\u5B58\u5728
-user.login.error.disabled=\u5E10\u53F7\u5DF2\u7981\u7528
-user.login.error.password=\u5BC6\u7801\u9519\u8BEF
-user.login.error.access=\u7528\u6237\u6CA1\u6709\u8BBF\u95EE\u6743\u9650
+user.login.title=\u9ad8\u6821\u8003\u8bd5\u7ba1\u7406\u5e73\u53f0
+user.login.admin=\u7ba1\u7406\u5458\u767b\u5f55
+user.login.marker=\u8bc4\u5377\u5458\u767b\u5f55
+user.login.name=\u7528\u6237\u540d
+user.login.password=\u5bc6\u7801
+user.login.submit=\u767b\u5f55
+user.login.error.account=\u5e10\u53f7\u4e0d\u5b58\u5728
+user.login.error.finish=\u8bc4\u5377\u5df2\u7ed3\u675f
+user.login.error.group=\u5927\u9898\u4e0d\u5b58\u5728
+user.login.error.disabled=\u5e10\u53f7\u5df2\u7981\u7528
+user.login.error.password=\u5bc6\u7801\u9519\u8bef
+user.login.error.access=\u7528\u6237\u6ca1\u6709\u8bbf\u95ee\u6743\u9650
 #reset
-user.reset.submit=\u786E\u5B9A
-user.reset.logout=\u9000\u51FA
-user.reset.title=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u5B8C\u5584\u8D44\u6599
-user.reset.name=\u8F93\u5165\u7528\u6237\u540D
-user.reset.password=\u8F93\u5165\u65B0\u5BC6\u7801
-user.reset.password.again=\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801
-user.reset.name.length=\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC710\u4E2A\u5B57
-user.reset.password.same=\u4E24\u6B21\u5BC6\u7801\u8BF7\u4FDD\u6301\u4E00\u81F4
-user.reset.password.length=\u5BC6\u7801\u7684\u957F\u5EA6\u81F3\u5C114\u4F4D\uFF0C\u4E0D\u80FD\u8D85\u8FC78\u4F4D
+user.reset.submit=\u786e\u5b9a
+user.reset.logout=\u9000\u51fa
+user.reset.title=\u9996\u6b21\u767b\u5f55\uff0c\u8bf7\u5b8c\u5584\u8d44\u6599
+user.reset.name=\u8f93\u5165\u7528\u6237\u540d
+user.reset.password=\u8f93\u5165\u65b0\u5bc6\u7801
+user.reset.password.again=\u518d\u6b21\u8f93\u5165\u65b0\u5bc6\u7801
+user.reset.name.length=\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc710\u4e2a\u5b57
+user.reset.password.same=\u4e24\u6b21\u5bc6\u7801\u8bf7\u4fdd\u6301\u4e00\u81f4
+user.reset.password.length=\u5bc6\u7801\u7684\u957f\u5ea6\u81f3\u5c114\u4f4d\uff0c\u4e0d\u80fd\u8d85\u8fc78\u4f4d
 #mark-control
-mark.control.assistant=\u5C0F\u52A9\u624B
-mark.control.mode.track=\u5207\u6362\u5230\u8F68\u8FF9\u6A21\u5F0F
-mark.control.mode.common=\u5207\u6362\u5230\u666E\u901A\u6A21\u5F0F
-mark.control.function=\u8BC4\u5377\u529F\u80FD
-mark.control.logout=\u9000\u51FA
-mark.control.init.error=\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u65B0\u52A0\u8F7D
-mark.control.task.not.exist=\u8BC4\u5377\u5927\u9898\u4E0D\u5B58\u5728
-mark.control.task.finish=\u8BC4\u5377\u5DF2\u7ED3\u675F
-mark.control.task.null=\u5F53\u524D\u65E0\u8BC4\u5377\u4EFB\u52A1
-mark.control.tsak.error=\u8BC4\u5377\u4EFB\u52A1\u63D0\u4EA4\u5931\u8D25\uFF0C\u8BF7\u5237\u65B0\u9875\u9762
+mark.control.assistant=\u5c0f\u52a9\u624b
+mark.control.mode.track=\u5207\u6362\u5230\u8f68\u8ff9\u6a21\u5f0f
+mark.control.mode.common=\u5207\u6362\u5230\u666e\u901a\u6a21\u5f0f
+mark.control.function=\u8bc4\u5377\u529f\u80fd
+mark.control.logout=\u9000\u51fa
+mark.control.init.error=\u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u65b0\u52a0\u8f7d
+mark.control.task.not.exist=\u8bc4\u5377\u5927\u9898\u4e0d\u5b58\u5728
+mark.control.task.finish=\u8bc4\u5377\u5df2\u7ed3\u675f
+mark.control.task.null=\u5f53\u524d\u65e0\u8bc4\u5377\u4efb\u52a1
+mark.control.tsak.error=\u8bc4\u5377\u4efb\u52a1\u63d0\u4ea4\u5931\u8d25\uff0c\u8bf7\u5237\u65b0\u9875\u9762
 #status
-mark.status.student.number=\u8003\u751F\u7F16\u53F7
-mark.status.library.number=\u4EFB\u52A1\u7F16\u53F7
-mark.status.objective.score=\u5BA2\u89C2\u5F97\u5206
-mark.status.marked.count=\u5DF2\u8BC4
-mark.status.unmark.count=\u672A\u8BC4
-mark.status.top.count=\u5206\u914D
-mark.status.progress=\u8FDB\u5EA6
-mark.status.continue=\u7EE7\u7EED
-mark.status.top.count.finish=\u5206\u914D\u4EFB\u52A1\u5DF2\u8BC4\u5B8C\uFF0C\u662F\u5426\u7EE7\u7EED\uFF1F
-mark.status.loading=\u6B63\u5728\u52A0\u8F7D...
-mark.status.logout=\u9000\u51FA
+mark.status.student.number=\u8003\u751f\u7f16\u53f7
+mark.status.library.number=\u4efb\u52a1\u7f16\u53f7
+mark.status.objective.score=\u5ba2\u89c2\u5f97\u5206
+mark.status.marked.count=\u5df2\u8bc4
+mark.status.unmark.count=\u672a\u8bc4
+mark.status.top.count=\u5206\u914d
+mark.status.progress=\u8fdb\u5ea6
+mark.status.continue=\u7ee7\u7eed
+mark.status.top.count.finish=\u5206\u914d\u4efb\u52a1\u5df2\u8bc4\u5b8c\uff0c\u662f\u5426\u7ee7\u7eed\uff1f
+mark.status.loading=\u6b63\u5728\u52a0\u8f7d...
+mark.status.logout=\u9000\u51fa
 #single-image-view
-mark.single.zoom.in=\u653E\u5927
-mark.single.zoom.out=\u7F29\u5C0F
-mark.single.zoom.fit=\u9002\u5E94
-mark.single.student.answer=\u7B54\u5377
+mark.single.zoom.in=\u653e\u5927
+mark.single.zoom.out=\u7f29\u5c0f
+mark.single.zoom.fit=\u9002\u5e94
+mark.single.student.answer=\u7b54\u5377
 #chang name
-mark.change.name=\u4FEE\u6539\u4E2A\u4EBA\u4FE1\u606F
-mark.change.press.name=\u8F93\u5165\u7528\u6237\u540D
-mark.change.press.password=\u8F93\u5165\u65B0\u5BC6\u7801
-mark.change.press.password.again=\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801
-mark.change.confirm=\u786E\u5B9A
-mark.change.name.null=\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7A
-mark.change.name.length=\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC78\u4E2A\u5B57
-mark.change.password.same=\u4E24\u6B21\u5BC6\u7801\u8BF7\u4FDD\u6301\u4E00\u81F4
-mark.change.password.length=\u5BC6\u7801\u7684\u957F\u5EA6\u81F3\u5C114\u4F4D
-mark.change.network.error=\u7F51\u7EDC\u901A\u4FE1\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
-mark.change.error=\u4FEE\u6539\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
+mark.change.name=\u4fee\u6539\u4e2a\u4eba\u4fe1\u606f
+mark.change.press.name=\u8f93\u5165\u7528\u6237\u540d
+mark.change.press.password=\u8f93\u5165\u65b0\u5bc6\u7801
+mark.change.press.password.again=\u518d\u6b21\u8f93\u5165\u65b0\u5bc6\u7801
+mark.change.confirm=\u786e\u5b9a
+mark.change.name.null=\u540d\u5b57\u4e0d\u80fd\u4e3a\u7a7a
+mark.change.name.length=\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc78\u4e2a\u5b57
+mark.change.password.same=\u4e24\u6b21\u5bc6\u7801\u8bf7\u4fdd\u6301\u4e00\u81f4
+mark.change.password.length=\u5bc6\u7801\u7684\u957f\u5ea6\u81f3\u5c114\u4f4d
+mark.change.network.error=\u7f51\u7edc\u901a\u4fe1\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5
+mark.change.error=\u4fee\u6539\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5
 #specialTag
-mark.special.tag=\u7279\u6B8A\u6807\u8BB0
-mark.special.back=\u56DE\u9000
-mark.special.clear=\u5168\u90E8\u6E05\u9664
-mark.special.underline=\u4E0B\u5212\u7EBF
-mark.special.open=\u6253\u5F00
-mark.special.close=\u5173\u95ED
+mark.special.tag=\u7279\u6b8a\u6807\u8bb0
+mark.special.back=\u56de\u9000
+mark.special.clear=\u5168\u90e8\u6e05\u9664
+mark.special.underline=\u4e0b\u5212\u7ebf
+mark.special.open=\u6253\u5f00
+mark.special.close=\u5173\u95ed
 #problem-process
-mark.problem=\u95EE\u9898\u5377
-mark.problem.type=\u9009\u62E9\u95EE\u9898\u7C7B\u578B
-mark.problem.confirm=\u786E\u5B9A
-mark.problem.cancel=\u53D6\u6D88
-mark.problem.check=\u8BF7\u9009\u62E9\u95EE\u9898\u5206\u7C7B
+mark.problem=\u95ee\u9898\u5377
+mark.problem.type=\u9009\u62e9\u95ee\u9898\u7c7b\u578b
+mark.problem.confirm=\u786e\u5b9a
+mark.problem.cancel=\u53d6\u6d88
+mark.problem.check=\u8bf7\u9009\u62e9\u95ee\u9898\u5206\u7c7b
 #thumbnail
-mark.thumbnail=\u7F29\u7565\u56FE
-mark.thumbnail.open=\u6253\u5F00
-mark.thumbnail.close=\u5173\u95ED
+mark.thumbnail=\u7f29\u7565\u56fe
+mark.thumbnail.open=\u6253\u5f00
+mark.thumbnail.close=\u5173\u95ed
 #view-sidebar
-mark.sidebar=\u4FA7\u8FB9\u680F
-mark.sidebar.paper=\u8BD5\u5377
-mark.sidebar.answer=\u7B54\u6848
+mark.sidebar=\u4fa7\u8fb9\u680f
+mark.sidebar.paper=\u8bd5\u5377
+mark.sidebar.answer=\u7b54\u6848
 #mark-history
-mark.history.title=\u56DE\u8BC4
-mark.history.time=\u65F6\u95F4
-mark.history.number=\u7F16\u53F7
-mark.history.score=\u603B\u5206
-mark.history.search=\u67E5\u627E\u8BD5\u5377
-mark.history.pre=\u524D
-mark.history.success=\u56DE\u8BC4\u6210\u529F\uFF0C\u603B\u5206\uFF1A
-mark.history.problem=\u56DE\u8BC4\u6210\u529F\uFF0C\u5DF2\u63D0\u4EA4\u95EE\u9898\u5377
-mark.history.loading=\u6B63\u5728\u52A0\u8F7D\u8BF7\u7A0D\u5019
-mark.history.error=\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6\u8BC4\u5377\u5386\u53F2\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
-mark.history.number.error=\u8BF7\u8F93\u5165\u6570\u5B57
+mark.history.title=\u56de\u8bc4
+mark.history.time=\u65f6\u95f4
+mark.history.number=\u7f16\u53f7
+mark.history.score=\u603b\u5206
+mark.history.search=\u67e5\u627e\u8bd5\u5377
+mark.history.pre=\u524d
+mark.history.success=\u56de\u8bc4\u6210\u529f\uff0c\u603b\u5206\uff1a
+mark.history.problem=\u56de\u8bc4\u6210\u529f\uff0c\u5df2\u63d0\u4ea4\u95ee\u9898\u5377
+mark.history.loading=\u6b63\u5728\u52a0\u8f7d\u8bf7\u7a0d\u5019
+mark.history.error=\u6682\u65f6\u65e0\u6cd5\u8bfb\u53d6\u8bc4\u5377\u5386\u53f2\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5
+mark.history.number.error=\u8bf7\u8f93\u5165\u6570\u5b57
 #mark-board
-mark.board.submit=\u63D0\u4EA4
-mark.board.total.score=\u603B\u5206
-mark.board.score.zero=\u5168\u96F6\u5206
-mark.board.pass=\u8DF3 \u8FC7
-mark.board.choose.result=\u9009\u505A\u7ED3\u679C
-mark.board.keyboard=\u952E\u76D8\u7ED9\u5206 >>
-mark.board.mouse=<< \u9F20\u6807\u7ED9\u5206
-mark.board.interval=\u95F4\u9694
+mark.board.submit=\u63d0\u4ea4
+mark.board.total.score=\u603b\u5206
+mark.board.score.zero=\u5168\u96f6\u5206
+mark.board.pass=\u8df3 \u8fc7
+mark.board.choose.result=\u9009\u505a\u7ed3\u679c
+mark.board.keyboard=\u952e\u76d8\u7ed9\u5206 >>
+mark.board.mouse=<< \u9f20\u6807\u7ed9\u5206
+mark.board.interval=\u95f4\u9694
 mark.board.score=\u5206
-mark.board.back=\u56DE\u9000
-mark.board.clear.question=\u6E05\u9664\u672C\u9898
-mark.board.clear=\u6E05\u9664\u5168\u5377
-mark.board.question.not.mark=\u5F53\u524D\u4EFB\u52A1\u8FD8\u6709\u672A\u7ED9\u5206\u7684\u9898\uFF0C\u8BF7\u7EE7\u7EED\u7ED9\u5206
-mark.board.confirm=,\u786E\u8BA4\u63D0\u4EA4\u5417\uFF1F
-mark.board.zero.confirm=\u786E\u8BA4\u8981\u63D0\u4EA4\u5168\u96F6\u5206\u5417\uFF1F
-mark.board.null=\u65E0
-mark.board.interval.error=\u4E0D\u7B26\u5408\u5206\u503C\u95F4\u9694\u8981\u6C42
-mark.board.gt=\u4E0D\u80FD\u5927\u4E8E
-mark.board.lt=\u4E0D\u80FD\u5C0F\u4E8E
-mark.board.number.error=\u4E0D\u662F\u5408\u6CD5\u6570\u5B57
+mark.board.back=\u56de\u9000
+mark.board.clear.question=\u6e05\u9664\u672c\u9898
+mark.board.clear=\u6e05\u9664\u5168\u5377
+mark.board.question.not.mark=\u5f53\u524d\u4efb\u52a1\u8fd8\u6709\u672a\u7ed9\u5206\u7684\u9898\uff0c\u8bf7\u7ee7\u7eed\u7ed9\u5206
+mark.board.confirm=,\u786e\u8ba4\u63d0\u4ea4\u5417\uff1f
+mark.board.zero.confirm=\u786e\u8ba4\u8981\u63d0\u4ea4\u5168\u96f6\u5206\u5417\uff1f
+mark.board.null=\u65e0
+mark.board.interval.error=\u4e0d\u7b26\u5408\u5206\u503c\u95f4\u9694\u8981\u6c42
+mark.board.gt=\u4e0d\u80fd\u5927\u4e8e
+mark.board.lt=\u4e0d\u80fd\u5c0f\u4e8e
+mark.board.number.error=\u4e0d\u662f\u5408\u6cd5\u6570\u5b57
 #sheet-view
-mark.sheet=\u539F\u56FE
-mark.sheet.check=\u539F\u56FE\u5207\u6362
-mark.sheet.open=\u6253\u5F00
-mark.sheet.close=\u5173\u95ED
-#slice-view
-mark.slice=\u5168\u5377
-mark.slice.check=\u5168\u5377\u5207\u6362
-mark.slice.open=\u6253\u5F00
-mark.slice.close=\u5173\u95ED
+mark.sheet=\u539f\u56fe
+mark.sheet.check=\u539f\u56fe\u5207\u6362
+mark.sheet.open=\u6253\u5f00
+mark.sheet.close=\u5173\u95ed
 #answer-view
-mark.answer=\u6807\u7B54
+mark.answer=\u6807\u7b54
 #warning-info
-mark.warning.try.again=\u8BF7\u70B9\u51FB\u91CD\u8BD5
-mark.warning.force.special.tag=\u5F3A\u5236\u7279\u6B8A\u6807\u8BB0\u5DF2\u5F00\u542F\uFF0C\u81F3\u5C11\u4F7F\u7528\u4E00\u4E2A\u7279\u6B8A\u6807\u8BB0
-mark.warning.network.error=\u7F51\u7EDC\u5F02\u5E38\uFF0C\u4EFB\u52A1\u63D0\u4EA4\u5931\u8D25
-mark.warning.task.error=\u9886\u53D6\u8BC4\u5377\u4EFB\u52A1\u51FA\u9519
-mark.warning.task.finish=\u8BC4\u5377\u4EFB\u52A1\u5DF2\u5B8C\u6210
-mark.warning.task.loading=\u8BC4\u5377\u4EFB\u52A1\u6B63\u5728\u52A0\u8F7D\u4E2D
-mark.warning.close=\u5173\u95ED
-mark.warning.success=\u56DE\u8BC4\u6210\u529F\uFF0C\u603B\u5206\uFF1A
-mark.warning.problem=\u56DE\u8BC4\u95EE\u9898\u5377\u6210\u529F
+mark.warning.try.again=\u8bf7\u70b9\u51fb\u91cd\u8bd5
+mark.warning.force.special.tag=\u5f3a\u5236\u7279\u6b8a\u6807\u8bb0\u5df2\u5f00\u542f\uff0c\u81f3\u5c11\u4f7f\u7528\u4e00\u4e2a\u7279\u6b8a\u6807\u8bb0
+mark.warning.network.error=\u7f51\u7edc\u5f02\u5e38\uff0c\u4efb\u52a1\u63d0\u4ea4\u5931\u8d25
+mark.warning.task.error=\u9886\u53d6\u8bc4\u5377\u4efb\u52a1\u51fa\u9519
+mark.warning.task.finish=\u8bc4\u5377\u4efb\u52a1\u5df2\u5b8c\u6210
+mark.warning.task.loading=\u8bc4\u5377\u4efb\u52a1\u6b63\u5728\u52a0\u8f7d\u4e2d
+mark.warning.close=\u5173\u95ed
+mark.warning.success=\u56de\u8bc4\u6210\u529f\uff0c\u603b\u5206\uff1a
+mark.warning.problem=\u56de\u8bc4\u95ee\u9898\u5377\u6210\u529f
 #json-view
-mark.json.loading=\u6B63\u5728\u52A0\u8F7D\u4E2D
-mark.json.student.answer=\u8003\u751F\u7B54\u6848\uFF1A
-mark.json.answer=\u6807\u7B54\uFF1A
-mark.json.body=\u9898\u5E72\uFF1A
-mark.json.question.number=\u9898\u53F7\uFF1A
+mark.json.loading=\u6b63\u5728\u52a0\u8f7d\u4e2d
+mark.json.student.answer=\u8003\u751f\u7b54\u6848\uff1a
+mark.json.answer=\u6807\u7b54\uff1a
+mark.json.body=\u9898\u5e72\uff1a
+mark.json.question.number=\u9898\u53f7\uff1a
+
+#index
+index.report.total=\u603b\u91cf\u5206\u6790
+index.report.subject=\u79d1\u76ee\u5206\u6790
+
+#report.subject
+report.subject=\u603b\u91cf\u5206\u6790
+report.subject.name=\u79d1\u76ee
+report.subject.select=\u8bf7\u9009\u62e9
+report.subject.search=\u67e5\u8be2
+report.subject.export=\u5bfc\u51fa
+report.subject.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.subject.name=\u79d1\u76ee
+report.subject.totalCount=\u62a5\u8003\u4eba\u6570
+report.subject.absentCount=\u7f3a\u8003
+report.subject.breachCount=\u8fdd\u7eaa
+report.subject.realityCount=\u6709\u6548\u4eba\u6570
+report.subject.avgScore=\u5e73\u5747\u5206
+report.subject.maxScore=\u6700\u9ad8\u5206
+report.subject.minScore=\u6700\u4f4e\u5206
+report.subject.passCount=\u53ca\u683c\u4eba\u6570
+report.subject.passRate=\u53ca\u683c\u7387
+#report.range
+report.range=\u5206\u6bb5\u7edf\u8ba1
+report.range.subject=\u79d1\u76ee
+report.range.select=\u8bf7\u9009\u62e9
+report.range.search=\u67e5\u8be2
+report.range.export=\u5bfc\u51fa
+report.range.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.range.level=\u5c42\u6b21
+report.range.proportion=\u5360\u6bd4
+report.range.total=\u603b\u6570
+report.range.operation=\u64cd\u4f5c
+report.range.chart=\u5206\u6bb5\u56fe
+#report.college
+report.college=\u5b66\u9662\u5206\u6790
+report.college.subject=\u79d1\u76ee
+report.college.select=\u8bf7\u9009\u62e9
+report.college.search=\u67e5\u8be2
+report.college.export=\u5bfc\u51fa
+report.college.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.college.name=\u5b66\u751f\u9662\u7cfb
+report.college.avgScore=\u5e73\u5747\u5206
+report.college.maxScore=\u6700\u9ad8\u5206
+report.college.minScore=\u6700\u4f4e\u5206
+report.college.passCount=\u53ca\u683c\u4eba\u6570
+report.college.passRate=\u53ca\u683c\u7387
+report.college.excellentRate=\u4f18\u79c0\u7387
+#report.teacher
+report.teacher=\u4efb\u8bfe\u8001\u5e08\u5206\u6790
+report.teacher.subject=\u79d1\u76ee
+report.teacher.select=\u8bf7\u9009\u62e9
+report.teacher.search=\u67e5\u8be2
+report.teacher.export=\u5bfc\u51fa
+report.teacher.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.teacher.name=\u4efb\u8bfe\u8001\u5e08
+report.teacher.realityCount=\u6709\u6548\u4eba\u6570
+report.teacher.passCount=\u53ca\u683c
+report.teacher.excellentCount=\u4f18\u79c0
+report.teacher.maxScore=\u6700\u9ad8\u5206
+report.teacher.minScore=\u6700\u4f4e\u5206
+report.teacher.passRate=\u53ca\u683c\u7387
+report.teacher.excellentRate=\u4f18\u79c0\u7387
+report.teacher.avgScore=\u5e73\u5747\u5206
+report.teacher.relativeAvgScore=\u5e73\u5747\u76f8\u5bf9\u5206
+report.teacher.return=\u8fd4\u56de
+#report.class
+report.class=\u73ed\u7ea7\u5206\u6790
+report.class.subject=\u79d1\u76ee
+report.class.select=\u8bf7\u9009\u62e9
+report.class.search=\u67e5\u8be2
+report.class.export=\u5bfc\u51fa
+report.class.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.class.name=\u73ed\u7ea7
+report.class.avgScore=\u5e73\u5747\u5206
+report.class.maxScore=\u6700\u9ad8\u5206
+report.class.minScore=\u6700\u4f4e\u5206
+report.class.passCount=\u53ca\u683c\u6570
+report.class.passRate=\u53ca\u683c\u7387
+report.class.excellentCount=\u4f18\u79c0\u6570
+report.class.excellentRate=\u4f18\u79c0\u7387
+#report.question
+report.question.objective=\u5ba2\u89c2\u9898\u5206\u6790
+report.question.subjective=\u4e3b\u89c2\u9898\u5206\u6790
+report.question.subject=\u79d1\u76ee
+report.question.select=\u8bf7\u9009\u62e9
+report.question.search=\u67e5\u8be2
+report.question.export=\u5bfc\u51fa
+report.question.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.question.paperType=\u8bd5\u5377\u7c7b\u578b
+report.question.name=\u9898\u76ee\u540d\u79f0
+report.question.mainNumber=\u5927\u9898\u53f7
+report.question.subNumber=\u5c0f\u9898\u53f7
+report.question.score=\u5355\u9898\u5206\u6570
+report.question.avgScore=\u5355\u9898\u5e73\u5747\u5206
+report.question.stdev=\u5355\u9898\u6807\u51c6\u5dee
+report.question.scoreRate=\u5f97\u5206\u7387
+report.question.fullScoreRate=\u6ee1\u5206\u7387
+#report.group
+report.group=\u5927\u9898\u5206\u6790
+report.group.subject=\u79d1\u76ee
+report.group.select=\u8bf7\u9009\u62e9
+report.group.search=\u67e5\u8be2
+report.group.export=\u5bfc\u51fa
+report.group.chart=\u67e5\u770b\u7edf\u8ba1\u56fe
+report.group.name=\u9898\u76ee\u540d\u79f0
+report.group.number=\u9898\u53f7
+report.group.totalScore=\u6ee1\u5206
+report.group.maxScore=\u6700\u9ad8\u5206
+report.group.minScore=\u6700\u4f4e\u5206
+report.group.avgScore=\u5e73\u5747\u5206
+report.group.stdev=\u6807\u51c6\u5dee
+report.group.coefficient=\u5dee\u5f02\u7cfb\u6570
+report.group.scoreRate=\u5f97\u5206\u7387
+report.group.zeroCount=\u96f6\u5206\u4eba\u6570
+report.group.fullCount=\u6ee1\u5206\u4eba\u6570
+#report.massage
+report.massage.school.null=\u627e\u4e0d\u5230\u5b66\u6821
+#head
+head.title=\u4e91\u9605\u5377
+head.logout=\u9000\u51fa