JSP

JSP 웹 프로그래밍 - 다국어 처리 01

로기221 2023. 3. 3. 18:45
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( )
      메소드 사용

 

 

 

 

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
반응형