English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
시작하기 전에 몇 가지 중요한 개념을 설명해야 합니다:
전 세계적인 웹사이트를 구축하려면 여러 프로젝트에 관심을 가져야 합니다. 이 장에서는 국제화 문제를 처리하는 방법을 자세히 설명하며, 이해를 돕기 위해 몇 가지 예제를 제공합니다.
JSP 컨테이너는 request의 locale 속성을 기반으로 올바른 페이지 버전을 제공할 수 있습니다. 다음은 request 객체를 통해 Locale 객체를 얻는 문법을 설명합니다:
java.util.Locale request.getLocale()
다음 표는 Locale 객체에 있는 중요한 메서드를 나열하며, 요청 객체의 지역, 언어, 지역을 검사합니다. 모든 이 메서드는 브라우저에서 국가 이름과 언어 이름을 표시합니다:
순번 | 메서드 & 설명 |
---|---|
1 | String getCountry() 국가를 반환하는/영어 대문자로된 지역 코드를 반환하거나 ISO 3166 2-letter 형식의 지역 |
2 | String getDisplayCountry() 사용자에게 표시할 국가 이름을 반환하는 |
3 | String getLanguage() 영어 소문자로된 언어 코드를 반환하거나 ISO 639 형식의 지역 |
4 | String getDisplayLanguage() 사용자에게 표시할 언어 이름을 반환하는 |
5 | String getISO3Country() 국가 이름을 반환하는3알파벳 약자 |
6 | String 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>Locale 탐지</title> </head> <body <center> <h1>Locale 탐지</h1> </center> <p align="center"> <% out.println("Language : " + language + "<br />"); out.println("Country : " + country + "<br />"); > </p> </body> </html>
JSP는 영어, 스페인어, 독일어, 프랑스어, 이탈리아어 등 서유럽 언어를 사용하여 페이지를 출력할 수 있습니다. 따라서 Content-모든 문자를 올바르게 표시하기 위해 Language 정보 헤더를 설정하는 것은 매우 중요합니다.
두 번째 점은, 특수 문자를 표시하기 위해 HTML 문자 대체 표시를 사용해야 한다는 것입니다. 예를 들어 "ñ"은 다음과 같은 ñ,"¡"은 다음과 같은 ¡ :
<%@ page import="java.io."*,java.util.Locale" %> <%@ page import="javax.servlet.*,javax.servlet.http.* "%> <% // response 내용 유형 설정 response.setContentType("text/html"); // 스페인어 언어 코드를 설정합니다. 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>지역 날짜: <% out.print(date); %></p> </div> </body> </html>
可以使用java.text.NumberFormat类和它的静态方法getCurrencyInstance()来格式화 숫자。예를 들어 지역 특정 화폐에서 long型和double型입니다。接下来的例子显示了如何根据指定的区域来格式화 화폐:
<%@ 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>형식화된 화폐: <% 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>정형화된 비율: <% out.print(formattedPerc); %></p> </div> </body> </html>