본문으로 바로가기

 

 

다국어 처리

웹 브라우저를 사용하는 국가에 따라 다양한 언어 및 지역을 지원하는 서비스

JSTL의 fmt 태그를 이용하면 간단하게 다국어 지원

지역화

사용 국가별 환경에서 특정 언어와 지역에 맞게 적합화하는 것으로 L10n으로 표기

[지역화에 주로 고려되는 사항]

- 숫자, 날짜, 시간의 형식

- 화폐의 표시

- 키보드의 지원

- 문자열의 순서와 정렬

- 심벌, 아이콘, 색상

- 문화에 따라 오해의 소지가 있거나 의미가 없는 문자, 그림

- 지역별 법률의 차이

국제화

여러 국가에서 사용할 수 있도록 다국어를 지원하는 것으로 i8n으로 표기

지역화 기능을 포함

[국제화는 주로 다음과 같은 처리를 포함하여 지원해야 함]

- 사용자 인터페이스에 표시할 문자열에는 문자 코드가 포함되지 않도록 설계 및 개발

- 언어의 특성을 반영하는 처리 등을 지원

- 언어의 특성에 대한 사용자 설정을 지원

- 지역화 정보를 코드와 분리

Locale 클래스

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

사용자의 지역환경에 따라 결정되는 지역적 문화의 정보를 담고 있음

단순한 메시지뿐만 아니라 숫자, 날짜, 시간 등을 표현하는 데 사용

①로케일 감지

웹 브라우저에 설정된 국가와 언어 이름을 알아내는 것

* 로케일 감지 메소드의 종류

메소드

반환 유형

설명

getDefault()

static Locale

디폴트 로케일의 현재 값을 가져옴

getCountry()

String

현재 로케일의 국가지역 코드를 가져옴

getDisplayCountry()

String

현재 로케일의 국가 이름을 가져옴

getLanguage()

String

현재 로케일의 언어 코드를 가져옴

getDisplayLanguage()

String

현재 로케일의 언어 이름을 얻어옴

 

② 로케일 표현

1) 언어 설정 : response 내장 객체의 setHeader() 메소드 사용

2) 날짜와 시간 설정 : Dateformat 클래스의 getDateTimeInstance() 메소드 사용

3) 통화와 숫자 : NumberFormat 클래스의 getContentType() 메소드 사용

JSTL fmt 태그

- 다국어 문서처리를 위한 국제화 및 지역화 태그

- 특정 지역에 따라 다른 메시지를 출력할 때 사용

- 중복 작업을 없애고 하나의 JSP 페이지에서 다양한 언어에 맞는 메시지를 출력

* JSTL fmt 태그의 종류

Locale 설정

setLocale

로케일을 설정

requestEncoding

요청 파라미터의 문자 인코딩을 설정

메시지 처리

bundle

사용할 리소스번들을 설정

message

리소스번들에서 로케일에 맞는 메시지를 가져와 출력

setBundle

리소스번들을 읽어와 특정 변수에 저장

날짜

formatDate

날짜 형식을 표현

parseDate

문자열에서 원하는 패턴의 날짜 형식으로 변환

숫자

parseNumber

문자열에서 원하는 패턴의 숫자 형식으로 변환

formatNumber

숫자 형식을 표현

시간

setTimeZone

특정 범위의 시간대를 설정

timeZone

시간대를 설정


연습문제

01. 다국어란 무엇인가?

웹 브라우저를 사용하는 국가에 따라 다양한 언어 및 지역을 지원하는 서비스

02. Locale 클래스를 이용한 다국어 처리 기법에서 현재 웹 브라우저에 미리 정의된 언어나 국가 정보를 가져오는 request 내장 객체의 메소드는 무엇인가?

setHeader()

03. 다국어 처리를 위한 JSTL fmt 태그의 종류에 대해 설명

Locale 설정

setLocale

로케일을 설정

requestEncoding

요청 파라미터의 문자 인코딩을 설정

메시지 처리

bundle

사용할 리소스번들을 설정

message

리소스번들에서 로케일에 맞는 메시지를 가져와 출력

setBundle

리소스번들을 읽어와 특정 변수에 저장

날짜

formatDate

날짜 형식을 표현

parseDate

문자열에서 원하는 패턴의 날짜 형식으로 변환

숫자

parseNumber

문자열에서 원하는 패턴의 숫자 형식으로 변환

formatNumber

숫자 형식을 표현

시간

setTimeZone

특정 범위의 시간대를 설정

timeZone

시간대를 설정