Latest web development tutorials

JSP 국제화

시작하기 전에, 당신은 몇 가지 중요한 개념을 설명해야합니다

  • (국제화) 국제화 : 방문자의 언어 또는 국가에 따라 페이지가 다른 번역을 제시 함을 나타냅니다.
  • 지역화 (L10N)은 : 다른 지역 문화에 적응하기 위해, 사이트 자원을 추가한다. 사이트의 예를 들어, 인도의 언어 버전.
  • 지역 : 이것은 일반적으로 수화 및 국가 기호 밑줄로 연결된 것으로 간주 특정 지역 또는 문화이다. 이러한 영어 (미국) 지역에 대한 "ko 페이지"로.

당신이 글로벌 웹 사이트를 만들려면 프로젝트의 숫자에 대해 우려 할 필요가있다. 이 장에서는 국제 문제를 다루는 방법을 자세히 보여, 이해를 깊게하기 위해 몇 가지 예를 제공합니다.

JSP 컨테이너는 페이지의 올바른 버전을 제공하는 로케일 특성에 따라 요청할 수 있습니다. 다음으로 우리는 요청 개체 구문에 의해 로케일 객체를 취득하는 방법을 보여줍니다

java.util.Locale request.getLocale() 

감지 로케일

다음 표는 로케일 객체에게 요청 오브젝트 영역, 언어, 영역을 검출하기위한 중요한 방법을 보여줍니다. 이들 방법 모두는 국가 및 브라우저 언어 이름의 이름을 표시한다 :

아니오. 방법 설명
(1) 문자열에는 getCountry ()

위로 자본의 국가 지역 / 지역 번호, 또는 ISO 3166 2 문자 형식
문자열 getDisplayCountry ()

나라 이름을 사용자에게 표시로 되돌아
3 문자열 getLanguage를 ()

언어 코드 영어 소문자, 또는 지역 ISO 639 형식을 돌려줍니다
4 문자열 getDisplayLanguage ()

위로 언어의 이름을 보는 사용자 수득
(5) 문자열 getISO3Country ()

국가의 세 문자로 된 약어의 이름을 돌려줍니다
6 문자열 getISO3Language ()

3은 언어 이름 이니셜을 반환

예를 들면 데모

이 예제는 JSP에서 언어와 국가를 표시하는 방법을 보여줍니다 :

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%
   //获取客户端本地化信息
   Locale locale = request.getLocale();
   String language = locale.getLanguage();
   String country = locale.getCountry();
%>
<html>
<head>
<title>Detecting Locale</title>
</head>
<body>
<center>
<h1>Detecting Locale</h1>
</center>
<p align="center">
<% 
   out.println("Language : " + language  + "<br />");
   out.println("Country  : " + country   + "<br />");
%>
</p>
</body>
</html>

언어 설정

JSP는 출력 등, 독일어, 프랑스어, 이탈리아어 등 영어, 스페인어, 등 서유럽 언어에 대한 페이지를 사용할 수 있습니다. 따라서, 콘텐츠-Language 헤더 정보가 정확하게 모든 문자가 매우 중요하다 표시 설정합니다.

두 번째 포인트는 우리가 같은 특수 문자를 표시 할 HTML 문자 엔티티를 사용할 필요가있다 "& # 241;"대표 "& # 161;"대표 "?" "?"

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%
    // Set response content type
    response.setContentType("text/html");
    // Set spanish language code.
    response.setHeader("Content-Language", "es");
    String title = "En Espa?ol";

%>
<html>
<head>
<title><%  out.print(title); %></title>
</head>
<body>
<center>
<h1><%  out.print(title); %></h1>
</center>
<div align="center">
<p>En Espa?ol</p>
<p>?Hola Mundo!</p>
</div>
</body>
</html>

지역 구체적인 날짜

당신은 java.text.DateFormat의 클래스와 형식의 날짜와 시간에 정적 방법 getDateTimeInstance를 ()를 사용할 수 있습니다. 이 다음 예제는 날짜와 시간의 지정된 영역에 따라 포맷하는 방법을 보여줍니다

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%@ page import="java.text.DateFormat,java.util.Date" %>

<%
    String title = "Locale Specific Dates";
    //Get the client's Locale
    Locale locale = request.getLocale( );
    String date = DateFormat.getDateTimeInstance(
                                  DateFormat.FULL, 
                                  DateFormat.SHORT, 
                                  locale).format(new Date( ));
%>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>Local Date: <%  out.print(date); %></p>
</div>
</body>
</html>

지역별 통화

당신은 java.text.NumberFormat의 클래스와 형식 번호에 정적 방법 getCurrencyInstance ()를 사용할 수 있습니다. 예를 들어, 긴 통화 타입 및 이중형의 특정 지역에서. 다음 예제에서는 지정된 지역 통화에 따라 포맷하는 방법을 보여줍니다

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%@ page import="java.text.NumberFormat,java.util.Date" %>

<%
    String title = "Locale Specific Currency";
    //Get the client's Locale
    Locale locale = request.getLocale( );
    NumberFormat nft = NumberFormat.getCurrencyInstance(locale);
    String formattedCurr = nft.format(1000000);
%>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>Formatted Currency: <%  out.print(formattedCurr); %></p>
</div>
</body>
</html>

면적의 소정 백분율

당신은 java.text.NumberFormat의 클래스와 형식 비율에 정적 방법 getPercentInstance ()를 사용할 수 있습니다. 다음은 지역의 지정된 비율에 따라 포맷하는 방법을 보여줍니다

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%@ page import="java.text.NumberFormat,java.util.Date" %>

<%
    String title = "Locale Specific Percentage";
    //Get the client's Locale
    Locale locale = request.getLocale( );
    NumberFormat nft = NumberFormat.getPercentInstance(locale);
    String formattedPerc = nft.format(0.51);
%>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>Formatted Percentage: <%  out.print(formattedPerc); %></p>
</div>
</body>
</html>