Spring(전자정부 프레임 워크)
Spring(다국어 지원)
행복하게사는게꿈
2020. 7. 16. 09:42
Spring(다국어 지원)
[message.properties]
#####################################################
# 메세지 표준
# << 개정이력(Modification Information) >>
# 수정일 수정자 수정내용
# ======= ======= =====================
# 2016.04.. 최초생성
# Copyright (c) 2016 by DDIT All right reserved
#####################################################
fail.common.msg=에러가 발생했습니다!
fail.common.sql=sql 에러가 발생했습니다! error code: {0}, error msg: {1}
info.nodata.msg=해당 데이터가 없습니다.
#UI Common resource#
button.search=검색
button.use=사용
button.notUsed=사용중지
button.inquire=조회
button.update=수정
button.create=등록
button.delete=삭제
button.deleteDatabase=완전삭제
button.close=닫기
button.save=저장
button.list=목록
button.reset=취소
button.passwordUpdate=암호변경
button.subscribe=가입신청
button.realname=실명확인
button.moveToGpin=GPIN실명확인으로 이동
button.moveToIhidnum=주민등록번호 실명확인으로 이동
button.agree=동의
button.disagree=비동의
button.possible=가능
button.impossible=불가능
button.qnaregist=Q&A등록
button.cnsltregist=상담등록
button.preview=미리보기
button.next=다음
button.add=바로추가
button.confirm=확인
button.back = 뒤로
button.yes = 예
button.no = 아니오
button.home = 홈
button.user = 사용자지원
button.cop = 협업
button.wrkstart = 출근
button.wrkend = 퇴근
#UI Common Message#
common.save.msg=저장하시겠습니까?
common.regist.msg=등록하시겠습니까?
common.delete.msg=삭제하시겠습니까?
common.update.msg=수정하시겠습니까?
common.nodata.msg=자료가 없습니다. 다른 검색조건을 선택해주세요
common.required.msg=(은)는 필수입력항목입니다.
common.acknowledgement.msg=승인하시겠습니까?
common.acknowledgementcancel.msg=승인취소하시겠습니까?
success.request.msg = 요청처리가 성공적으로 수행되었습니다.
success.common.select=정상적으로 조회되었습니다.
success.common.insert=정상적으로 등록되었습니다.
success.common.update=정상적으로 수정되었습니다.
success.common.delete=정상적으로 삭제되었습니다.
common.imposbl.fileupload = 더 이상 파일을 첨부할 수 없습니다.
common.isConfmDe.msg=승인일자를 확인 바랍니다.
common.isExist.msg = 이미 존재하거나 과거에 등록이 되었던 상태입니다.
fail.common.insert = 생성이 실패하였습니다.
fail.common.update = 수정이 실패하였습니다.
fail.common.delete = 삭제가 실패하였습니다.
fail.common.delete.upperMenuExist = 참조되는 메뉴가 있어 삭제가 실패하였습니다.
fail.common.select = 조회에 실패하였습니다.
fail.common.login = 로그인 정보가 올바르지 않습니다.
fail.common.login.password = 패스워드 자리 수가 일치 하지 않습니다.(8자리 이상 20자리 이하)
fail.common.idsearch = 아이디를 찾을수 없습니다.
fail.common.pwsearch = 비밀번호를 찾을수 없습니다.
fail.request.msg = 요청처리를 실패하였습니다.
#UI User Message#
fail.user.passwordUpdate1=현재 비밀번호가 맞지 않습니다.
fail.user.passwordUpdate2=비밀번호와 비밀번호 확인이 일치하지 않습니다.
info.user.rlnmCnfirm=주민등록번호를 사용하여 실명확인을 하십시오.
success.user.rlnmCnfirm=행정안전부의 주민등록자료와 일치합니다.
fail.user.rlnmCnfirm=행정안전부의 주민등록자료와 일치하지 않습니다.
fail.user.connectFail=시스템 장애가 발생했습니다.(인증서버 연결 실패)
info.user.rlnmPinCnfirm=공공 아이핀 아이디를 사용하여 실명확인을 하십시오.
success.user.rlnmPinCnfirm=공공아이핀의 등록자료와 일치합니다.
fail.user.rlnmPinCnfirm=공공아이핀의 등록자료와 일치하지 않습니다.
#UI Cop Message#
cop.extrlUser = 외부사용자
cop.intrlUser = 내부사용자
cop.private = 비공개
cop.public = 공개
cop.adbkNm = 주소록명
cop.othbcScope = 공개범위
cop.company = 회사
cop.part = 부서
cop.man = 개인
cop.adbkUser = 구성원
cop.bbsNm = 게시판명
cop.bbsIntrcn = 게시판소개
cop.bbsTyCode = 게시판 유형
cop.bbsAttrbCode = 게시판 속성
cop.replyPosblAt = 답장가능여부
cop.fileAtchPosblAt = 파일첨부가능여부
cop.posblAtchFileNumber = 첨부가능파일 숫자
cop.tmplatId = 템플릿 정보
cop.guestList.subject = 방명록 게시글입니다.
cop.nttSj = 제목
cop.nttCn = 글내용
cop.ntceBgnde = 게시시작일
cop.ntceEndde = 게시종료일
cop.ntcrNm = 작성자
cop.password = 패스워드
cop.atchFile = 파일첨부
cop.guestList = 방명록
cop.guestListCn = 방명록 내용
cop.noticeTerm = 게시기간
cop.atchFileList = 첨부파일목록
cop.cmmntyNm = 커뮤니티명
cop.cmmntyIntrcn = 커뮤니티 소개
cop.cmmntyMngr = 커뮤니티 관리자
cop.memberMagr.login = 회원 관리자 로그인
cop.clbOprtr = 동호회 운영자
cop.clbIntrcn = 동호회 소개
cop.clbNm = 동호회 명
cop.tmplatNm = 템플릿명
cop.tmplatSeCode = 템플릿 구분
cop.tmplatCours = 템플릿경로
cop.useAt = 사용여부
cop.ncrdNm = 이름
cop.cmpnyNm = 회사명
cop.deptNm = 부서명
cop.ofcpsNm = 직위
cop.clsfNm = 직급
cop.emailAdres = 이메일주소
cop.telNo = 전화번호
cop.mbtlNum = 휴대폰번호
cop.adres = 주소
cop.extrlUserAt = 외부사용자여부
cop.publicAt = 공개여부
cop.remark = 비고
cop.trgetNm = 커뮤니티/동호회 정보
cop.preview = 미리보기
cop.id = 아이디
cop.password = 비밀번호
cop.join = 회원가입
cop.id.save = 아이디 저장
cop.withdraw.msg=탈퇴처리 하시겠습니까?
cop.reregist.msg=재가입 처리하시겠습니까?
cop.registmanager.msg=운영진으로 등록하시겠습니까?
cop.use.msg=사용 처리하시겠습니까?
cop.unuse.msg=사용중지 처리하시겠습니까?
cop.delete.confirm.msg=사용중지를 선택하실 경우 다시 사용으로 변경이 불가능합니다.
cop.ing.msg=승인요청 중입니다.
cop.request.msg=가입신청이 정상적으로 요청되었습니다
cop.password.msg=패스워드를 입력해 주십시오.
cop.password.not.same.msg=패스워드가 일치하지 않습니다.
cop.comment.wrterNm = 작성자
cop.comment.commentCn = 내용
cop.comment.commentPassword = 패스워드
cop.satisfaction.wrterNm = 작성자
cop.satisfaction.stsfdgCn = 내용
cop.satisfaction.stsfdg = 만족도
cop.satisfaction.stsfdgPassword = 패스워드
cop.scrap.scrapNm = 스크랩명
#UI USS Message#
uss.ion.noi.ntfcSj=제목
uss.ion.noi.ntfcCn=내용
uss.ion.noi.ntfcDate=알림일자
uss.ion.noi.ntfcTime=알림시간
uss.ion.noi.ntfcHH=알림시간
uss.ion.noi.ntfcMM=알림분
uss.ion.noi.bhNtfcIntrvl=사전알림간격
uss.ion.noi.bhNtfcIntrvl.msg=사전알림간격 지정이 필요합니다.
uss.ion.noi.alertNtfcTime=알림일자 및 시간이 유효하지 않습니다.
#UI COP Message#
cop.sms.trnsmitTelno=발신전화번호
cop.sms.trnsmitCn=전송내용
cop.sms.recptnTelno=수신전화번호
cop.sms.send=전송
cop.sms.addRecptn=추가
cop.sms.recptnTelno.msg=수신전화번호 지정이 필요합니다.
#UI sym.log Message#
sym.log.histSeCode = 이력구분
sym.log.sysNm = 시스템명
sym.log.histCn = 이력내용
sym.log.atchFile = 첨부파일
sym.log.atchFileList = 첨부파일목록
sym.ems.receiver = 받는사람
sym.ems.title = 제목
sym.ems.content = 발신내용
#Validator Errors#
errors.prefix=<div class="error">
errors.suffix=</div><br/>
errors.required={0}은(는) 필수 입력값입니다.
errors.minlength={0}은(는) {1}자 이상 입력해야 합니다.
errors.maxlength={0}은(는) {1}자 이상 입력할수 없습니다.
errors.invalid={0}은(는) 유효하지 않은 값입니다.
errors.minInteger={0}은(는) 유효한 값이 아닙니다. 1 이상의 값을 입력해야 합니다.
errors.byte={0}은(는) byte타입이어야 합니다.
errors.short={0}은(는) short타입이어야 합니다.
errors.integer={0}은(는) integer 타입이어야 합니다.
errors.long={0}은(는) long 타입이어야 합니다.
errors.float={0}은(는) float 타입이어야 합니다.
errors.double={0}은(는) double 타입이어야 합니다.
errors.date={0}은(는) 날짜 유형이 아닙니다.
errors.range={0}은(는) {1}과 {2} 사이의 값이어야 합니다.
errors.creditcard={0}은(는) 유효하지 않은 신용카드 번호입니다.
errors.email={0}은(는) 유효하지 않은 이메일 주소입니다.
errors.ihidnum=유효하지 않은 주민등록번호입니다.
errors.korean={0}은(는) 한글을 입력하셔야 합니다.
errors.ip=유효하지 않은 IP주소입니다.
errors.english={0}은(는) 영문만 사용하실수 있습니다.
errors.notKorean={0}은(는) 한글을 사용하실수 없습니다.
errors.password1={0}은(는) 8~20자 내에서 입력해야 합니다.
errors.password2={0}은(는) 한글,특수문자,띄어쓰기는 허용되지 않습니다.
errors.password3={0}은(는) 순차적인 숫자를 4개이상 연속해서 사용할수 없습니다.
errors.password4={0}은(는) 반복되는 문자나 숫자를 4개이상 연속해서 사용할 수 없습니다.
error.security.runtime.error = error
#Validator Errors- wordDicaryVO#
wordDicaryVO.wordNm=용어명
wordDicaryVO.engNm=영문명
wordDicaryVO.wordDc=용어설명
wordDicaryVO.synonm=동의어
#Validator Errors- cnsltManageVO#
cnsltManageVO.cnsltSj=상담제목
cnsltManageVO.cnsltCn=상담내용
cnsltManageVO.writngPassword=작성비밀번호
cnsltManageVO.areaNo=지역번호
cnsltManageVO.middleTelno=중간전화번호
cnsltManageVO.endTelno=끝전화번호
cnsltManageVO.wrterNm=작성자명
cnsltManageVO.managtCn=답변내용
cnsltManageVO.firstMoblphonNo=휴대폰전화번호(앞번)
cnsltManageVO.middleMbtlnum=휴대폰전화번호(국번)
cnsltManageVO.endMbtlnum=휴대폰전화번호(지번)
#Validator Errors- siteManageVO#
siteManageVO.siteNm=사이트명
siteManageVO.siteUrl=사이트 URL
siteManageVO.siteDc=사이트설명
siteManageVO.siteThemaClCode=사이트주제분류
siteManageVO.actvtyAt=활성여부
siteManageVO.useAt=사용여부
#Validator Errors- recomendSiteManageVO#
recomendSiteManageVO.recomendSiteNm=추천사이트명
recomendSiteManageVO.recomendSiteUrl=추천사이트 URL
recomendSiteManageVO.recomendSiteDc=추천사이트설명
recomendSiteManageVO.recomendResnCn=추천사이트승인사유
recomendSiteManageVO.confmDe=승인일자
#Validator Errors- hpcmManageVO#
hpcmManageVO.hpcmSeCode=도움말구분
hpcmManageVO.hpcmDf=도움말정의
hpcmManageVO.hpcmDc=도움말설명
#Validator Errors- newsManageVO#
newsManageVO.newsSj=뉴스제목
newsManageVO.newsCn=뉴스내용
newsManageVO.ntceDe=게시일자
#Validator Errors- faqManageVO#
faqManageVO.qestnSj=질문제목
faqManageVO.qestnCn=질문내용
faqManageVO.answerCn=답변내용
#Validator Errors- roughMapVO#
roughMapVO.roughMapSj=약도제목
roughMapVO.infoWindow=약도표시
#Validator Errors- stplatManageVO#
stplatManageVO.useStplatNm=이용약관명
stplatManageVO.useStplatCn=이용약관내용
stplatManageVO.infoProvdAgreCn=정보제공동의내용
#Validator Errors- cpyrhtPrtcPolicyVO#
cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=저작권보호정책내용
#Validator Errors- qnaManageVO#
qnaManageVO.qestnSj=질문제목
qnaManageVO.qestnCn=질문내용
qnaManageVO.writngPassword=작성비밀번호
qnaManageVO.areaNo=지역번호
qnaManageVO.middleTelno=중간전화번호
qnaManageVO.endTelno=끝전화번호
qnaManageVO.wrterNm=작성자명
qnaManageVO.answerCn=답변내용
#Validator Errors- ReprtStatsVO#
sts.reprtId = 보고서ID
sts.title = 보고서명
sts.category = 보고서유형
sts.status = 진행상태
sts.regDate = 등록일시
#Rest day messages#
sym.cal.restDay = 휴일일자
sym.cal.restName = 휴일명
sym.cal.restDetail = 휴일설명
sym.cal.restCategory = 휴일구분
#Validator Errors- cnsltManageVO#
cnsltManageVO.firstMoblphonNo=지역번호
cnsltManageVO.middleMbtlnum=중간전화번호
cnsltManageVO.endMbtlnum=끝전화번호
#mobile 메뉴관리#
mgr.menuMngt = 메뉴관리
mgr.menuList = 메뉴목록조회
mgr.menuNm = 메뉴명
mgr.menuDetail = 메뉴상세조회
mgr.menuRegist = 메뉴등록
mgr.menuUpdt = 메뉴수정
mgr.code = 코드
mgr.menuCode = 메뉴코드
mgr.UpperMenu = 상위메뉴
mgr.cnncUrl = 연결URL
mgr.actvtyAt = 사용여부
mgr.menuDc = 설명
mgr.mobileEgov = 모바일 전자정부
#권한 처리 관련 에러 메시지
methodInvocation.authorities=권한 설정이 필요합니다.
# 2016.04.09 전인호
aplt_awar = 과정 인지도 평가
aplt_know = 선수지식 평가
aplt_pers = 인성 평가
aplt_itvw = 면접 평가
#
c태그, spring 태그 사용 준비
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
등등 jsp에 원래 한글로 써놓은 곳에 프로퍼티스 파일에 선언한 코드를 써주면 오케이~
<spring:message code="cop.id"></spring:message>
<spring:message code="cop.password"></spring:message>
위에는 그냥 정적으로 다국어 지원
이건 서버내에서 메세지를 만들어주고 메세지에 접근해서 보냄
루트 컨텍스트에 다음 코드 선언
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
스프링 프레임워크 다국어 서비스
1. 클라이언트 서버 대상 요청시 요청 헤더 데이터 중 Accept-Language 기초로
다국어 서비스를 제공.(한국 Accept-Language = ko-kr)
2. AcceptHeaderLocaleRsolver 자원이 요청 헤더 데이터를 기초로
준비된 프로퍼티스 파일들 중 클라이언트 접속 국가 언어코드의 프로퍼티스 파일을 특정
3. 다국어 서비스를 위해 준비되지 않은 클라이언트 접속 국가는 언어 코드가
생략된 프로퍼티스 파일을 활용해 서비스를 제공
-->
<!-- 메세지 응답객체를 만들어서 보내줄때 -->
<bean id="LocalResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"></bean>
<!-- 서버내에서 메세지를 만들어주고 메세지에 접근할때 아래 두개의 코드를 씀 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
p:basename="kr/or/ddit/i18n/config/message"
p:defaultEncoding="UTF-8">
</bean>
<!-- 서버내에서 프로퍼티스 파일에 접근해서 프로퍼티스파일을 설정할 수 있는 코드 작성 -->
<bean id="messageAccessor" class="org.springframework.context.support.MessageSourceAccessor"
c:messageSource-ref="messageSource">
</bean>
</beans>
Controller 클래스에서 동적으로 메세지 삽입
전역변수로 MessageSourceAccessor 데이터 타입변수 선언 하고 @Autowired로 값 주입
@Autowired로 값 주입할 수 있는 이유는 위의 루트 컨텍스트 설정파일에서 bean등록을 했기 때문
@Autowired
private MessageSourceAccessor accessor;
회원가입하는 컨트롤러 메서드에서 메세지 만들어주고 보내줌
@RequestMapping("insertMemberInfo") /*(MemberVO memberInfo :도메인 오브젝트*/
public String insertMember(MemberVO memberInfo) throws Exception{
this.service.insertMember(memberInfo);
String message = accessor.getMessage("success.common.insert.join",Locale.KOREA);
message = URLEncoder.encode(message,"UTF-8");
return "redirect:/user/join/loginForm.do?message="+message;
}