Latest web development tutorials

JSP国際

あなたが開始する前に、いくつかの重要な概念を説明する必要があります。

  • 国際化(i18n)は:訪問者の言語または国に基づいて、ページが異なる翻訳を提示していることを示しています。
  • ローカライズ(l10n):異なる地域と文化に適合させるためには、サイトにリソースを追加します。 サイトの例については、インドの言語バージョン。
  • エリア:これは一般的に手話であると考えられ、特定の地域や文化であり、国家のシンボルは下線が接続されています。 このようなアメリカ英語の領域については "en_US"など。

あなたがグローバルなウェブサイトを作成する場合は、プロジェクトの数を心配する必要があります。 この章では、国際問題に対処する方法を詳細にお見せし、理解を深めて、いくつかの例を示します。

JSPコンテナは、ページの正しいバージョンを提供するために、locale属性に応じて要求することができます。 次に、リクエストオブジェクトの構文によって、Localeオブジェクトを取得する方法を示しています。

java.util.Locale request.getLocale() 

検出ロケール

次の表は、リクエストオブジェクトの地域、言語、および地域を検出するためのLocaleオブジェクトより多くの重要な方法を示しています。 これらの方法の全ては、国やブラウザで言語名の名前が表示されます。

いいえ。 メソッド 説明
1 文字列はgetCountry()

戻る資本の国地域/エリアコード、またはISO 3166 2文字のフォーマット
2 文字列getDisplayCountry()

国の名前がユーザーに表示さに戻ります
3 文字列はgetLanguage()

言語コード、英語の小文字、または地域のISO 639の形式を返します。
4 文字列getDisplayLanguage()

戻る言語の名前を参照するようにユーザに与えるために
5 文字列getISO3Country()

国の3文字の省略形の名前を返します。
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()を使用することができます。 例えば、長い通貨の種類と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>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>