염성찬 염성찬 3 days ago
영문 게시판 언어 분기 추가
@22217263e1fbe4b9e4349105c2b6d6808f58e4b2
src/main/java/kcc/let/cop/bbs/service/BoardMaster.java
--- src/main/java/kcc/let/cop/bbs/service/BoardMaster.java
+++ src/main/java/kcc/let/cop/bbs/service/BoardMaster.java
@@ -130,7 +130,10 @@
     
     /** 조회수 표시  */
     private String viewsYn = "";
-    
+
+    /** 게시판 언어 (KOR:국문, ENG:영문) */
+    private String langType = "";
+
     /** 등록자 표시  */
     private String regierYn = "";
     
@@ -753,6 +756,14 @@
 		this.viewsYn = viewsYn;
 	}
 
+	public String getLangType() {
+		return langType;
+	}
+
+	public void setLangType(String langType) {
+		this.langType = langType;
+	}
+
 	public String getRegierYn() {
 		return regierYn;
 	}
src/main/resources/egovframework/sqlmap/let/cop/bbs/EgovBBSMaster_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/cop/bbs/EgovBBSMaster_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/cop/bbs/EgovBBSMaster_SQL_Mysql.xml
@@ -67,6 +67,7 @@
 		<result property="fileatchAuth" column="FILEATCH_AUTH" nullValue="" />
 		<result property="deleteAuth" column="DELETE_AUTH" nullValue="" />
 		<result property="viewsYn" column="VIEWS_YN" nullValue="" />
+		<result property="langType" column="LANG_TYPE" nullValue="KOR" />
 		<result property="useAt" column="USE_AT"  nullValue="" />
 		<result property="bbsDc" column="BBS_DC"  nullValue="" />
 		<result property="menuCours" column="MENU_COURS"  nullValue="" />
@@ -360,7 +361,7 @@
 			 <isEqual property="bbsTyCode" compareValue="BBST07">
 			 	MENU_NO,
 			 </isEqual>
-			 VIEWS_YN,SE_CMMN_CD_ID
+			 VIEWS_YN,SE_CMMN_CD_ID, LANG_TYPE
 			  )
 			VALUES
 			( #bbsId#, #bbsTyCode#, #bbsAttrbCode#, #bbsNm#, #bbsIntrcn#,
@@ -375,7 +376,8 @@
 			  <isEqual property="bbsTyCode" compareValue="BBST07">
 			 	'9620000',  /**사전정보공표 */
 			 </isEqual>
-			  #viewsYn#,#seCmmnCdId#
+			  #viewsYn#,#seCmmnCdId#,
+			  <isEmpty property="langType">'KOR'</isEmpty><isNotEmpty property="langType">#langType#</isNotEmpty>
 			 )
 	</insert>
 
@@ -410,6 +412,7 @@
 			  	a.FILEATCH_AUTH,
 			  	a.DELETE_AUTH ,
 			  	a.VIEWS_YN,
+			  	a.LANG_TYPE,
 			  	a.BBS_DC,
 			  	'' as MENU_COURS,
 		        /*REPLACE(GETMENUCOURS(h.MENU_NO), '|', ' > ') as MENU_COURS,*/
@@ -493,6 +496,9 @@
 			 	FILEATCH_AUTH = #fileatchAuth#,
 			 	DELETE_AUTH = #deleteAuth#,
 			 	VIEWS_YN = #viewsYn#,
+			 	<isNotEmpty property="langType">
+					LANG_TYPE = #langType#,
+				</isNotEmpty>
 			 	<isNotEmpty property="writeYn">
 					WRITE_YN =  #writeYn# ,
 				</isNotEmpty>
src/main/webapp/WEB-INF/jsp/cop/bbs/EgovBoardMstrRegist.jsp
--- src/main/webapp/WEB-INF/jsp/cop/bbs/EgovBoardMstrRegist.jsp
+++ src/main/webapp/WEB-INF/jsp/cop/bbs/EgovBoardMstrRegist.jsp
@@ -217,7 +217,17 @@
 							</div>
 						</td>
 					</tr>
-					
+
+					<tr>
+						<th><span class="required">*</span>언어</th>
+						<td>
+							<div class="form_wrap radio_wrap">
+								<label><input type="radio" name="langType" value="KOR" style="margin-right:5px;" <c:if test="${boardMaster.langType ne 'ENG'}">checked="checked"</c:if>/>국문</label>
+								<label><input type="radio" name="langType" value="ENG" style="margin-right:5px;" <c:if test="${boardMaster.langType eq 'ENG'}">checked="checked"</c:if>/>영문</label>
+							</div>
+						</td>
+					</tr>
+
 					<tr id="seCmmnCdIdTr" style="display:none;">
 						<th><span class="required">*</span>구분</th>
 						<td>
@@ -248,7 +258,7 @@
 							<form:errors path="replyPosblAt" cssClass="error" />
 						</td>
 					</tr>
-					<tr>
+					<tr style="display:none;">
 						<th><span class="required">*</span>답변댓글기능</th>
 						<td>
 							<form:select path="addYn" title="댓글기능 선택" class="sel2">
src/main/webapp/WEB-INF/jsp/cop/bbs/EgovBoardMstrUpdt.jsp
--- src/main/webapp/WEB-INF/jsp/cop/bbs/EgovBoardMstrUpdt.jsp
+++ src/main/webapp/WEB-INF/jsp/cop/bbs/EgovBoardMstrUpdt.jsp
@@ -275,7 +275,17 @@
 									</div>
 								</td>
 							</tr>
-							
+
+							<tr>
+								<th><span class="required">*</span>언어</th>
+								<td>
+									<div class="form_Wrap radio_wrap">
+										<label><input type="radio" name="langType" value="KOR" style="margin-right:5px;" <c:if test="${boardMaster.langType ne 'ENG'}">checked="checked"</c:if>/>국문</label>
+										<label><input type="radio" name="langType" value="ENG" style="margin-right:5px;" <c:if test="${boardMaster.langType eq 'ENG'}">checked="checked"</c:if>/>영문</label>
+									</div>
+								</td>
+							</tr>
+
 							<tr id="seCmmnCdIdTr" style="display:none;">
 								<th><span class="required">*</span>구분</th>
 								<td>
src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeInqire.jsp
--- src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeInqire.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeInqire.jsp
@@ -54,7 +54,7 @@
   		location.href=detailPage+"?bbsId="+bbsId + "&nttId="+nttId+"&menuNo="+$('#menuNo').val() ;
   		return
   	}
-  	location.href=detailPage+"?bbsId="+bbsId + "&nttId="+nttId ;
+  	location.href=detailPage+"?bbsId="+bbsId + "&nttId="+nttId + "&menuUserType=" + $('#menuUserType').val();
   }
   
   function fn_egov_delete_notice() {
@@ -132,7 +132,9 @@
 </script>
 </c:if>
 <!-- contents 영역 -->
+<c:set var="isEng" value="${param.menuUserType eq 'ENG' or brdMstrVO.langType eq 'ENG'}"/>
 <form:form commandName="searchForm" name="searchForm" method="post" action="<c:url value='/web/cop/bbsWeb/selectBoardList.do'/>">
+	<input type="hidden" id="menuUserType" name="menuUserType" value="${isEng ? 'ENG' : 'KOR'}"/>
 	<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
 	<input name="searchCnd" type="hidden" value="<c:out value='${searchVO.searchCnd}'/>"/>
 	<input name="searchWrd" type="hidden" value="<c:out value='${searchVO.searchWrd}'/>"/>
@@ -144,31 +146,7 @@
 	<input type="hidden" id= "menuNo" name="menuNo" value="<c:out value='${masterVO.menuNo}'/>" />
 </form:form>
 
-<div class="sub_visual">
-	<div class="inner">
-		<h2 class="sub_title" data-section="achievement">ACHIEVEMENT</h2>
-		<div class="sub_visual_nav">
-			<a href="/web/main/mainPage.do"><i class="icon home"></i></a>
-			<div class="snb_wrap">
-				<button type="button" class="snb_title">Company</button>
-				<ul class="snb_select">
-					<li><a href="#">Company</a></li>
-					<li><a href="#">Platform Tech</a></li>
-					<li><a href="#">Major Result</a></li>
-				</ul>
-			</div>
-			<div class="snb_wrap">
-				<button type="button" class="snb_title">설립배경</button>
-				<ul class="snb_select">
-					<li><a href="/web/content.do?proFn=999110005" class="active">설립배경</a></li>
-					<li><a href="/web/content.do?proFn=9989200" class="">연혁</a></li>
-					<li><a href="/web/content.do?proFn=9989400" class="">조직도</a></li>
-					<li><a href="/web/content.do?proFn=9989300" class="">오시는길</a></li>
-				</ul>
-			</div>
-		</div>
-	</div>
-</div>
+<%@ include file="EgovNoticeSnb.jsp" %>
 
 <div class="inner">
 	<div class="content_wrap achievement">
@@ -207,7 +185,7 @@
 				</div>
 			              
 				<div class="btn_wrap right mt40">
-					<button type="button" class="btn fill gray xlarge" onclick="javascript:fn_egov_select_noticeList(); return false;">목록</button>
+					<button type="button" class="btn fill gray xlarge" onclick="javascript:fn_egov_select_noticeList(); return false;">${isEng ? 'List' : '목록'}</button>
 				</div>
 				
 				<!-- 이전글/다음글 -->
@@ -215,8 +193,8 @@
 						<c:choose>
 							<c:when test="${empty nextNttIdNSj}">
 								<li class="btn_prv none">
-				                  <span>이전글 <i class="icon prev"></i></span>
-				                  <a href="#none">이전글이 존재하지 않습니다.</a>
+				                  <span>${isEng ? 'Prev' : '이전글'} <i class="icon prev"></i></span>
+				                  <a href="#none">${isEng ? 'No previous post' : '이전글이 존재하지 않습니다.'}</a>
 				                </li>
 							</c:when>
 							<c:otherwise>
@@ -224,7 +202,7 @@
 								<c:set var="nextNttSj" value="${fn:split(nextNttIdNSj, '|')[1]}" />
 								<c:set var="nextNttDate" value="${fn:split(nextNttIdNSj, '|')[2]}" />
 								<li class="btn_prv">
-									<span>이전글 <i class="icon prev"></i></span>
+									<span>${isEng ? 'Prev' : '이전글'} <i class="icon prev"></i></span>
 									<a href="#" onclick="fn_egov_select_detail('<c:out value='${result.bbsId}'/>' , '<c:out value='${nextNttId}'/>'); return false;">
 										<c:out value="${nextNttSj}" />
 									</a>
@@ -237,8 +215,8 @@
 						<c:choose>
 							<c:when test="${empty prevNttIdNSj}">
 								<li class="btn_next none">
-	                  				<span>다음글 <i class="icon next"></i></span>
-									<a href="#none">다음글이 존재하지 않습니다.</a>
+	                  				<span>${isEng ? 'Next' : '다음글'} <i class="icon next"></i></span>
+									<a href="#none">${isEng ? 'No next post' : '다음글이 존재하지 않습니다.'}</a>
 								</li>
 							</c:when>
 							<c:otherwise>
@@ -246,7 +224,7 @@
 								<c:set var="prevNttSj" value="${fn:split(prevNttIdNSj, '|')[1]}" />
 								<c:set var="prevNttDate" value="${fn:split(prevNttIdNSj, '|')[2]}" />
 								<li class="btn_next">
-	                  				<span>다음글 <i class="icon next"></i></span>
+	                  				<span>${isEng ? 'Next' : '다음글'} <i class="icon next"></i></span>
 	                  				<a href="#" onclick="fn_egov_select_detail('<c:out value='${result.bbsId}'/>' , '<c:out value='${prevNttId}'/>'); return false;">
 										<c:out value="${prevNttSj}" />
 									</a>
src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeList.jsp
--- src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeList.jsp
@@ -78,32 +78,10 @@
 	<!-- 게시판 검색 텍스트 입력 부분 구분을 위해 /kccadrPb/usr/script/content.js-->
 	<input type="hidden" name="pageType" id="pageType" value="bbs"/>
 	<!-- cont -->
-	
-	<div class="sub_visual">
-        <div class="inner">
-          <h2 class="sub_title" data-section="achievement">ACHIEVEMENT</h2>
-          <div class="sub_visual_nav">
-            <a href="/web/main/mainPage.do"><i class="icon home"></i></a>
-            <div class="snb_wrap">  
-	            <button type="button" class="snb_title">Achievement</button>  
-	            <ul class="snb_select">    
-		            <li><a href="/web/content.do?proFn=999210000">Company</a></li>    
-		            <li><a href="/web/content.do?proFn=999314000">Platform Technologies</a></li>    
-		            <li><a href="/web/content.do?proFn=999411000">Pipeline</a></li>    
-		            <li><a href="/web/content.do?proFn=999500000">Achievement</a></li>  
-	            </ul>
-            </div>
-            <div class="snb_wrap">  
-	            <button type="button" class="snb_title">${brdMstrVO.bbsNm}</button>  
-	            <ul class="snb_select">    
-		            <li><a href="/web/content.do?proFn=999500000&amp;menuUserType=KOR">Papers &amp; IP</a></li>
-					<li><a href="/web/cop/bbsWeb/selectBoardList.do?bbsId=BBSMSTR_000000000050&amp;menuUserType=KOR">IR &amp; PR</a></li>  
-				</ul>
-			</div>
-          </div>
-        </div>
-      </div>
-      
+	<c:set var="isEng" value="${param.menuUserType eq 'ENG' or brdMstrVO.langType eq 'ENG'}"/>
+
+	<%@ include file="EgovNoticeSnb.jsp" %>
+
       
       <div class="inner">
       	<div class="content_wrap achievement">
@@ -128,20 +106,21 @@
 					<input type="hidden" id= "failRtnUrl" name="failRtnUrl" value="<c:out value='${failRtnUrl}'/>"/><!-- 인증체크 후 실패 url -->
 					<input type="hidden" id= "password" name="password" value=""/>
 					<input type="hidden" id="pubDetail" name="pubDetail" value=""/>
-					
+					<input type="hidden" name="menuUserType" value="${isEng ? 'ENG' : 'KOR'}"/>
+
 					<div class="search_area">
 						<div class="search_left">
-							<p class="total_number">총 <b>${resultCnt}</b>건</p>
+							<p class="total_number">${isEng ? 'Total ' : '총 '}<b>${resultCnt}</b>${isEng ? '' : '건'}</p>
 						</div>
-						
+
 						<div class="search_right">
 							<select name="searchCnd" id="subSearch" class="search_select">
-								<option value="" <c:if test="${searchVO.searchCnd == ''}">selected="selected"</c:if>>전체</option>
-								<option value="0" <c:if test="${searchVO.searchCnd == '0'}">selected="selected"</c:if>>제목</option>
-								<option value="1" <c:if test="${searchVO.searchCnd == '1'}">selected="selected"</c:if>>내용</option>
+								<option value="" <c:if test="${searchVO.searchCnd == ''}">selected="selected"</c:if>>${isEng ? 'All' : '전체'}</option>
+								<option value="0" <c:if test="${searchVO.searchCnd == '0'}">selected="selected"</c:if>>${isEng ? 'Title' : '제목'}</option>
+								<option value="1" <c:if test="${searchVO.searchCnd == '1'}">selected="selected"</c:if>>${isEng ? 'Content' : '내용'}</option>
 							</select>
-							<input type="text" name="searchWrd" class="input search_input" title="검색어 입력" placeholder="검색어를 입력하세요" onfocus="this.placeholder=''" value='<c:out value="${searchVO.searchWrd}"/>'>
-							<button type="button" class="btn fill primary medium" onclick="javascript:linkPage('1'); return false;">검색</button>
+							<input type="text" name="searchWrd" class="input search_input" title="${isEng ? 'Search keyword' : '검색어 입력'}" placeholder="${isEng ? 'Enter search term' : '검색어를 입력하세요'}" onfocus="this.placeholder=''" value='<c:out value="${searchVO.searchWrd}"/>'>
+							<button type="button" class="btn fill primary medium" onclick="javascript:linkPage('1'); return false;">${isEng ? 'Search' : '검색'}</button>
 						</div>
 						
 					</div>
@@ -164,11 +143,11 @@
 						</colgroup>
 						<thead>
 							<tr>
-								<th scope="col">번호</th>
-								<th scope="col">제목</th>
+								<th scope="col">${isEng ? 'No' : '번호'}</th>
+								<th scope="col">${isEng ? 'Title' : '제목'}</th>
 								<c:choose>
-				                	<c:when test="${brdMstrVO.menuNo eq '9620000'}"> 
-				                		<th scope="col">작성일</th> <!-- 묻고답하기 -->  
+				                	<c:when test="${brdMstrVO.menuNo eq '9620000'}">
+				                		<th scope="col">작성일</th> <!-- 묻고답하기 -->
 				                		<th scope="col">처리현황</th>
 				                		<c:if test="${brdMstrVO.viewsYn ne 'N'}">
 				                			<th scope="col">조회수</th>
@@ -176,12 +155,12 @@
 				                	</c:when>
 									<c:otherwise>
 										<c:if test="${brdMstrVO.fileAtchPosblAt == 'Y'}">
-											<th scope="col">첨부</th>
+											<th scope="col">${isEng ? 'Attachment' : '첨부'}</th>
 										</c:if>
-				                		<th scope="col">작성일</th>
-				                		<th scope="col">작성자</th>
+				                		<th scope="col">${isEng ? 'Date' : '작성일'}</th>
+				                		<th scope="col">${isEng ? 'Author' : '작성자'}</th>
 				                		<c:if test="${brdMstrVO.viewsYn ne 'N'}">
-				                			<th scope="col">조회수</th>
+				                			<th scope="col">${isEng ? 'Views' : '조회수'}</th>
 				                		</c:if>
 									</c:otherwise>	
 				                </c:choose>
@@ -191,7 +170,7 @@
 							<c:if test="${'1' eq searchVO.pageIndex}">
 				            	<c:forEach var="result" items="${notifyList}" varStatus="status">
 					            <tr onclick="javascript:fn_egov_inqire_notice('<c:out value="${result.bbsId}"/>', '<c:out value="${result.nttId}"/>');">
-				                    <td>공지</td>
+				                    <td>${isEng ? 'Notice' : '공지'}</td>
 				                    <td class="td_title">
 				                        <a href="#">
 					                        <c:out value="${result.nttSj}" />
@@ -200,7 +179,7 @@
 				                    <c:if test="${brdMstrVO.fileAtchPosblAt == 'Y'}"> <!-- 첨부파일 -->
 				                    	<td class="td_file">
 											<c:if test="${result.atchFileCnt > 0}">
-												<img src="/img/post/atch_file.png" alt="첨부파일 있음">
+												<img src="/img/post/atch_file.png" alt="${isEng ? 'Attachment' : '첨부파일 있음'}">
 											</c:if>
 				                    	</td>
 				                    </c:if>
@@ -240,7 +219,7 @@
 				            </c:forEach>
 				            <c:if test="${empty resultList}">
 						    	<tr class="tr_list_none">
-										<td colspan="6" class="list_none">등록된 데이터가 없습니다.</td>
+										<td colspan="6" class="list_none">${isEng ? 'No posts found' : '등록된 게시글이 없습니다'}</td>
 									</tr>
 					    	</c:if>
 						</tbody>
 
src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeSnb.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/web/cop/bbs/EgovNoticeSnb.jsp
@@ -0,0 +1,49 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%-- (사용자)게시판 서브메뉴 - EgovNoticeList, EgovNoticeInqire 에서 include, isEng 는 include 하는 쪽에서 지정 --%>
+<div class="sub_visual">
+	<div class="inner">
+		<h2 class="sub_title" data-section="achievement">ACHIEVEMENT</h2>
+		<div class="sub_visual_nav">
+			<c:choose>
+				<c:when test="${isEng}">
+					<a href="/web/main/mainPage.do?menuUserType=ENG"><i class="icon home"></i></a>
+					<div class="snb_wrap">
+						<button type="button" class="snb_title">Achievement</button>
+						<ul class="snb_select">
+							<li><a href="/web/content.do?proFn=998110001&amp;menuUserType=ENG">Company</a></li>
+							<li><a href="/web/content.do?proFn=998210001&amp;menuUserType=ENG">Platform Technologies</a></li>
+							<li><a href="/web/content.do?proFn=998311001&amp;menuUserType=ENG">Pipeline</a></li>
+							<li><a href="/web/cop/bbsWeb/selectBoardList.do?bbsId=<c:out value='${brdMstrVO.bbsId}'/>&amp;menuUserType=ENG">Achievement</a></li>
+						</ul>
+					</div>
+					<div class="snb_wrap">
+						<button type="button" class="snb_title"><c:out value="${brdMstrVO.bbsNm}"/></button>
+						<ul class="snb_select">
+							<li><a href="/web/content.do?proFn=998410001&amp;menuUserType=ENG">Papers &amp; IP</a></li>
+							<li><a href="/web/cop/bbsWeb/selectBoardList.do?bbsId=<c:out value='${brdMstrVO.bbsId}'/>&amp;menuUserType=ENG">IR &amp; PR</a></li>
+						</ul>
+					</div>
+				</c:when>
+				<c:otherwise>
+					<a href="/web/main/mainPage.do"><i class="icon home"></i></a>
+					<div class="snb_wrap">
+						<button type="button" class="snb_title">Achievement</button>
+						<ul class="snb_select">
+							<li><a href="/web/content.do?proFn=999210000">Company</a></li>
+							<li><a href="/web/content.do?proFn=999314000">Platform Technologies</a></li>
+							<li><a href="/web/content.do?proFn=999411000">Pipeline</a></li>
+							<li><a href="/web/content.do?proFn=999500000">Achievement</a></li>
+						</ul>
+					</div>
+					<div class="snb_wrap">
+						<button type="button" class="snb_title"><c:out value="${brdMstrVO.bbsNm}"/></button>
+						<ul class="snb_select">
+							<li><a href="/web/content.do?proFn=999500000&amp;menuUserType=KOR">Papers &amp; IP</a></li>
+							<li><a href="/web/cop/bbsWeb/selectBoardList.do?bbsId=BBSMSTR_000000000050&amp;menuUserType=KOR">IR &amp; PR</a></li>
+						</ul>
+					</div>
+				</c:otherwise>
+			</c:choose>
+		</div>
+	</div>
+</div>
Add a comment
List