본문 바로가기
도서/프로그래밍

[07] 쉽게 배우는 JSP 웹 프로그래밍

by 신발사야지 2024. 1. 21.

PART 3 페이지 처리 기법

CHAPTER 09 다국어 처리

01 다국어 처리의 개요

다국어 처리는 다른 언어와 지여적 차이를 기술 변경 없이 소프트웨어에 바로 적용하는 것

  1. 지역화

지역화(Localization)는 사용 국가별 환경에서 특정 언어와 지역에 맞게 적합화하는 것으로, 줄여서 L10n으로 표기하도 합니다.

  • 지역화는 어떤 제품, 서비스, 또는 콘텐츠를 특정 지역 또는 국가의 언어, 문화, 관습에 맞게 수정하거나 적응시키는 과정을 나타냅니다.
  • 지역화는 일반적으로 언어 번역뿐만 아니라, 날짜, 시간, 숫자 형식, 통화 등과 같은 지역적인 특성을 고려하여 제품이나 서비스를 특정 지역의 사용자에게 더 적합하게 만드는 것을 목표로 합니다.
  • 예를 들어, 어떤 소프트웨어가 다양한 언어로 지역화되면 해당 언어를 사용하는 지역의 사용자들이 보다 쉽게 이해하고 사용할 수 있습니다.
  • 숫자, 날짜, 시간의 형식
  • 화폐의 표시
  • 키보드의 지원
  • 문자열의 순서와 정렬
  • 심벌, 아이콘, 색상
  • 문화에 따라 오해의 소지가 있거나 의미가 없는 문자, 그림
  • 지역별 법률의 차이
  1. 국제화

국제화(internationalization)는 여러 국가에서 사용할 수 있도록 다국어를 지원하는 것 (i18n으료 표기)

  • 국제화는 제품, 서비스, 소프트웨어 등이 다양한 국가나 지역에서 전 세계적으로 사용될 수 있도록 설계되거나 조정하는 과정을 의미합니다.
  • 국제화는 주로 표준화된 프로세스와 국제적인 표준을 준수하여 제품이나 서비스가 문화나 지역적인 차이에 더 잘 대응할 수 있도록 합니다.
  • 예를 들어, 국제화된 소프트웨어는 다양한 언어 및 지역에 대한 지원이 내장되어 있어서 어떤 국가에서도 쉽게 도입될 수 있습니다.

요약하면, 지역화는 특정 지역이나 국가에 맞게 조정하는 것을 의미하고, 국제화는 제품이나 서비스를 다양한 지역에서 사용할 수 있도록 일반화하거나 준비하는 것을 의미합니다.

02 Locale 클래스를 이용한 다국어 처리

Locale 클래스는 특정 지리적 정치적 문화적 지역을 나타내는 클래스

request 내장 객체를 이용하여 가져올 수 있음

 

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ page import="java.text.NumberFormat"%>
<%@ page import="java.text.DateFormat"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Internationalization</title>
</head>
<body>
	<h3>현재 로케일의 국가, 날씨, 통화</h3>
	<%
	Locale locale = request.getLocale();
	Date currentDate = new Date();
	DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale);
	NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
	%>

	<p>
		국가:
		<%=locale.getDisplayCountry()%>
	<p>
		날짜:
		<%=dateFormat.format(currentDate)%>
	<p>
		숫자 (123456.67):
		<%=numberFormat.format(12345.67)%>
</body>
</html>

03 JSTL fmt 태그를 이용한 다국어 처리

아파치 톰캣에서 제공하는 JSTL 라이브러리 설치 방법

 

배포사이트: https://tomcat.apache.org

[Download]-[Taglibs] 메뉴

taglibs-standard-impl-1.2.5jar, taglibs-standard-spec-1.2.5.jar, taglibs-standard-jstlel-1.2.5.jar

 

파일을 모두 다운로드 합니다.

 

다운로드한 jar를 톰캣 10 버전으로 이전합니다.

 

 

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Internationalization</title>
</head>
<body>
	<p>------------기본로케일------------
	<fmt:setBundle basename="ch09.com.bundle.myBundle" var="resourceBundle"/>
	<p> 제목: <fmt:message key="title" bundle="${resourceBundle}" />
	<p> 이름: <fmt:message key="username" var="userMsg" bundle="${resourceBundle }"/>
	
	<p>------------영어로케일------------
	<fmt:setLocale value="en" />
	<fmt:setBundle basename="ch09.com.bundle.myBundle" var="resourceBundle"/>
	<p> 제목: <fmt:message key="title" bundle="${resourceBundle }"/>
	<p> 이름: <fmt:message key="username" bundle="${resourceBundle }"/>
	
	
</body>
</html>