1. 웹기반 프로그래밍은 여러나라에서 시스템을 사용하는 경우가 많다.
특히, 대기업 프로젝트는 해당 시스템을 다국적 기업으로 여러 나라에서 사용하는데,
과거에는 다른 언어로 개발을 2중으로 진행하였으나, 현재는 다국어 처리라는 기능으로
코드값을 지정하고 해당 코드값을 선택된 언어에 따라 다양한 언어로 처리하게 할 수 있다.
2.다국어 처리 단계
1) 브라우저 마다 언어설정 처리하는 설정 기능이 있다.
2) 이러한 설정값을 기준으로 언어를 변경 처리하는 경우가 있고,
3) 상단 버튼이나 선택에 따라 언어를 변경 처리하는 경우가 있다.
3. 다국어 적용
1) 다국어 처리를 위한 코드값 설정
기본파일
언어1파일
언어2파일
...
==> 현재는 DB로 관리하는 경우도 있다
2) 다국어 선언 contrainer 설정
3) 다국어 처리를 위한 초기 화면 로딩
-view단에서 <spring:message>를 활용해서 코드값 지정
4) controller/service를 통한 다국어 기능 처리
xml
<!-- 다국어 처리 모듈 등록
1. package명기준으로 message.msg로 등ㄹ고
src/main/java 하위에 패키지와 기준되는 파일로 등록을 한다. -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>message.msg</value>
</list>
</property>
</bean>
<!--
2. 선택에 의해 언어 변환 처리를 위한 객체 등록
-->
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
</beans>
message.properties
프로젝트의 환경 설정에서 기본 인코딩을 UTF-8로 수정 해야한다.
en.properties
multilang=Multilanguage
welcome=Welcome!
id=id
reg=Register!
name=name
pwd=password
greet=Hi!
regmem=Rigister member info!
search=Search!
chlang=Choice language!
ko=Korean
en=English
msg=Hello
ko.properties
multilang=\uB2E4\uAD6D\uC5B4
welcome=\uD658\uC601\uD569\uB2C8\uB2E4!
id=\uC544\uC774\uB514
reg=\uB4F1\uB85D\uD558\uC138\uC694!
name=\uC774\uB984
pwd=\uD328\uC2A4\uC6CC\uB4DC
greet=\uC548\uB155\uD558\uC138\uC694!
regmem=\uD68C\uC6D0\uC815\uBCF4\uB97C \uB4F1\uB85D\uD558\uC138\uC694!
search=\uAC80\uC0C9\uD558\uC138\uC694!
chlang=\uC5B8\uC5B4\uB97C \uC120\uD0DD\uD558\uC138\uC694!
ko=\uD55C\uAD6D\uC5B4
en=\uC601\uC5B4
msg=\uC548\uB155\uD558\uC138\uC694
properties
multilang=multilanguage
welcome=welcome
id=id
reg=register
name=name
pwd=password
greet=hi
regmem=rigister member
search=search
chlang=choice language
ko=korean
en=english
msg=hello
Controller
@Controller
public class MultiLangController {
// 컨테이너에 언어에 따라서 view 화면의 language가 변경 되게 설정하는 객체 호출..
@Autowired(required = false)
private LocaleResolver localResolver;
// http://localhost:7080/springweb/multi.do
@RequestMapping("multi.do")
public String multi(@RequestParam(value = "lang", defaultValue = "") String lang,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("선택한 언어:" + lang);
Locale locale = new Locale(lang);
localResolver.setLocale(request, response, locale);
return "WEB-INF\\views\\a02_mvc\\a23_multilanguage.jsp";
}
}
jsp
<script type="text/javascript">
$(document).ready(function(){
<%--
--%>
$("#selLan").val("${param.lang}")
$("#selLan").change(function(){
if($(this).val()!=""){
$("[name=lang]").val($(this).val())
$("form").submit();
}
});
});
</script>
<body>
<div class="container">
<div class="jumbotron text-center">
<h2 >
<spring:message code="multilang"/>
</h2>
<select class="form-control" id="selLan">
<option value=""><spring:message code="chlang"/></option>
<option value="ko"><spring:message code="ko"/></option>
<option value="en"><spring:message code="en"/></option>
</select>
<h3>
<spring:message code="regmem" />
</h3>
</div>
<!-- 11:15~ -->
<form id="frm01" class="form-inline" method="post">
<input type="hidden" name="lang" value=""/>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<input class="form-control mr-sm-2"
placeholder='<spring:message code="id" />' />
<input class="form-control mr-sm-2"
placeholder="<spring:message code="pwd" />" />
<button class="btn btn-info" type="submit">
<spring:message code="reg"/>
</button>
</nav>
</form>
</div>
</body>
'JAVA' 카테고리의 다른 글
JAVA 포트 오류, 톰캣 서버 충돌 (0) | 2022.10.06 |
---|---|
JAVA fullcalendar 달력 캘린더 처리 (1) | 2022.10.04 |
JAVA 웹소켓 통신 (0) | 2022.10.04 |
JAVA 메일전송 (0) | 2022.10.04 |
JAVA 파일 업로드 다운로드 (0) | 2022.10.04 |