본문 바로가기

이전 게시물들/JSP

[JSP] 다국어 처리

1. 다국어처리:

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

- 언어와 지역적 차이를 기술 변경 없이 소프트웨어에 바로 적용하는 것

- 지역화, 국제화

 

1.1 지역화(Localization, L10n): 사용 국가별 환경에서 특정 언어와 지역에 맞게 적합화하는 것

고려 사항

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

- 화폐의 표시

- 키보드 지원

- 문자열의 순서와 정렬

- 심벌, 아이콘, 색상

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

- 지역 별 법률 차이

 

1.2 국제화(Internationalization, i18n): 여러 국가에서 사용할 수 있도록 다국어를 지원하는 것, 지역화를 포함

- 유니코드의 사용, 기존 인코딩의 적절한 처리

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

- 언어의 특성(언어적, 지역적, 문화적, ... 특성)을 반영하는 처리 및 사용자 설정 지원

ex) 날짜와 시간, 지역의 달력, 숫자, 리스트의 정렬, 인명이나 주소, 세로쓰기/가로쓰기/우측에서 좌측 가로쓰기, ...

- 사용자 요청이나 설정에 따라 필요시 사용되도록 지역화 정보를 코드와 분리해야 함

 

1.3 Locale 클래스

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

- 사용자의 지역 환경에 따라 경정되는 지역적 문화(언어, 날짜, 시간, ...) 정보를 담고 있음

 

1.3.1 생성

java.util.Locale // import

 

Locale locale =

request.getLocale(); // request 내장 객체를 이용하여 현재 웹브라우저에 미리 정의된 언어, 국가정보 가져오기

new Locale("ko", "KR"); // 인스턴스화

Locale.KOREA; // 미리 정의돈 필드 값 사용

 

1.3.2 로케일 감지: 웹 브라우저에 설정된 국가와 언어 이름을 알아내는 것

메소드 반환 유형 설명
getDefault() static Loacle 디폴트 로케일 현재 값
getCountry() String 현재 로케일의 국가/지역코드(대문자)
getDisplayCountry() String 현재 로케일의 국가 이름
getLanguage() String 현재 로케일의 언어 코드(소문자)
getDisplayLanguage() String 현재 로케일의 언어 이름

날짜 DateFormat.getDateTimeInstance()

숫자 java.text.NumberFormat.getCurrencyInstance()

 

1.4 JSTL fmt 태그: 다국어 문서 처리를 위한 국제화 및 지역화 태그

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

- 라이브러리를 포함해야함 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

- jstl.jar 파일이 필요

구분 태그 유형 설명
Loacle 설정 setLocale 로케일 설정
requestEncoding 요청 파라미터의 문자 인코딩 설정
메시지 처리 bundle 사용할 리소스번들을 설정
message 리소스 번들에서 로케일에 맞는 메시지를 가져와 출력
setBunble 리소스번들을 읽어와 특정 변수에 저장
날짜 formatDate 날짜 형식 표현
parseDate 문자열에서 원하는 태턴의 날짜 형식으로 변환
숫자 parseNumber 문자열에서 원하는 태턴의 숫자 형식으로 변환
formatNumber 숫자 형식 표현
시간 setTimeZone 특정 범위 시간대를 설정
timeZone 시간대를 설정