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-レターフォーマットの地域 |
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は、英語、スペイン語、ドイツ語、フランス語、イタリア語など、西ヨーロッパの言語を使用してページを出力できます。-すべての文字を正しく表示するためにLanguageヘッダー情報を設定することは重要です。
第二点として、特殊文字を表示するためにHTML文字エスケープを使用する必要があります、例えば "ñ" は、以下を表します ñ,"¡"は、以下を表します ¡ :
<%@ page import="java.io."*,java.util.Locale" %> <%@ page import="javax.servlet.*,javax.servlet.http.* "%> <% // レスポンスのコンテンツタイプを設定します 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"; //クライアントの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"; //クライアントの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"; //クライアントの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>