728x90
반응형
다국어 처리의 개요
다국어 처리
- 웹 브라우저를 사용하는 국가에 따라 다양한 언어 및 지역을 지원하는 서비스
- 다른 언어와 지역적 차이를 기술 변경 없이 소프트웨어에 바로 적용하는 것
- JSP 페이지에 JSTL의 fmt 태그를 이용하면 언어별로 페이지를 따로 만들 필요 없이 아주 간단하게 다국어를 지원할 수 있음
- 다국어는 다양한 언어와 지역에 적용될 수 있도록 하는 국제화(internationalization, i18n)와 언어별 구성 요소를 추가하여 특정 지역의 언어나 문화에 맞추는 지역화(localization, L10n)를 포함
지역화
- 사용 국가별 환경에서 특정 언어와 지역에 맞게 적합화하는 것
- L10n으로 표기
지역화에 주로 고려되는 사항
- 숫자, 날짜, 시간의 형식
- 화폐의 표시
- 키보드의 지원
- 문자열의 순서와 정렬
- 심벌, 아이콘, 색상
- 문화에 따라 오해의 소지가 있거나 의미가 없는 문자, 그림
- 지역별 법률의 차이
1.2 국제화
- 여러 국가에서 사용할 수 있도록 다국어를 지원하는 것
- i18n으로 표기
- 국제화는 어느 국가에서나 사용할 수 있게 하는 지역화 기능을 포함
- 국제화는 주로 다음과 같은 처리를 포함하여 지원해야 함
- 국제화 지원은 유니코드의 사용이나 기존의 인코딩을 적절히 처리하고 사용자
인터페이스에 표시할 문자열에는 문자 코드가 포함되지 않도록 설계 및 개발해야 함 - 국제화를 처리하는 정보에 언어 정보를 포함하거나, 세로쓰기/가로쓰기/우측에서
좌측으로의 가로쓰기 등 언어의 특성을 반영하는 처리 등을 지원해야 함 - 날짜와 시간 표시, 지역의 달력, 숫자 표시, 리스트의 정렬과 표시, 인명이나 주소의
처리 등 언어의 특성(언어적·지역적·문화적 특성 등)에 대한 사용자 설정 지원해야 함 - 국제화는 사용자의 요청이나 설정에 따라 필요시 사용되도록 지역화 정보를 코드와 분리해야 함
- 국제화 지원은 유니코드의 사용이나 기존의 인코딩을 적절히 처리하고 사용자
Locale 클래스를 이용한 다국어 처리
Locale 클래스
- 특정 지리적·정치적·문화적 지역을 나타내는 클래스
- 사용자의 지역 환경에 따라 결정되는 지역적 문화(언어, 날짜, 시간 등)의 정보를 담고 있음
- 예를 들어 웹 페이지에 보이는 메시지가 여러 가지 언어로 주어졌을 때 사용자가 어떤 언어로 출력할 것인지 결정할 수 있게 하는 수단이 바로 Locale 클래스
- Locale 클래스는 단순한 메시지뿐 아니라 숫자, 날짜, 시간 등을 표현하는 데 사용
- Locale 객체의 생성은 request 내장 객체를 이용하여 현재 웹 브라우저에 미리 정의된 언어나 국가 정보를 가져오는 방법
- Locale 클래스를 사용하려면 JSP 페이지에 page 디렉티브 태그의 import 속성으로 패키지 java.util.Locale을 설정
로케일 감지하기
- 웹 브라우저에 설정된 국가와 언어 이름을 알아내는 것을 로케일 감지
로케일 감지 메소드의 종류
로케일 표현하기
- 언어 설정
- 다양한 국가별 언어를 제대로 표현하기 위해 response 내장 객체의 setHeader( )
메소드 사용
- 다양한 국가별 언어를 제대로 표현하기 위해 response 내장 객체의 setHeader( )
2.2 로케일 표현하기
- 날짜와 시간 설정
- 사용자의 로케일에 따라 특정 날짜와 시간 형식을 표현하기 위해 DateFormat 클래스의 getDateTimeInstance( ) 메소드를 사용
2.2 로케일 표현하기
- 통화와 숫자 설정
- 사용자의 로케일에 따라 특정 통화와 숫자를 표현하기 위해 NumberFormat 클래스의 getCurrencyInstance( ) 메소드를 사용
사용자로의 로케일에 따라 국가, 날짜, 통화 형식 출력하기
// locale01.jsp
<%@ 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.*" %>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</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> 숫자 : <%=numberFormat.format(12345.67) %>
</body>
</html>
- 출력 -
JSP 웹 프로그래밍 - 다국어 처리 01 >> https://rogi221.tistory.com/106
728x90
반응형
'JSP' 카테고리의 다른 글
JSP 웹 프로그래밍 - 웹 쇼핑몰 만들기 04 (상품 등록 페이지의 보안 처리, 예외 처리 페이지, 로그 기록하기) (0) | 2023.03.06 |
---|---|
JSP 웹 프로그래밍 - 시큐리티 (0) | 2023.03.06 |
JSP 웹 프로그래밍 - 다국어 처리 02 (0) | 2023.03.03 |
JSP 웹 프로그래밍 - 웹 쇼핑몰 만들기 03 (상품 등록 데이터의 유효성 검사, 상품 등록 페이지의 다국어 처리) (0) | 2023.03.03 |
JSP 웹 프로그래밍 - 유효성 검사 02 (0) | 2023.03.03 |