ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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;
    	}

     

    댓글

Designed by Tistory.