Latest web development tutorials

JSP Internationalisierung

Bevor Sie beginnen, müssen Sie ein paar wichtige Konzepte zu erklären:

  • Internationalisierung (i18n): zeigt an, dass eine Seite auf der Sprache des Besuchers basiert oder Land unterschiedliche Übersetzungen vorgestellt.
  • Lokalisierung (l10n): Fügt Ressourcen auf die Seite, um sie zu den verschiedenen Regionen und Kulturen anzupassen. Zum Beispiel die indischen Sprachversionen der Website.
  • Gebiet: Dies ist eine spezifische Region oder Kultur, in der Regel als eine Gebärdensprache und nationale Symbole werden durch einen Unterstrich verbunden. Solche als "en_US" für US-englischen Regionen.

Wenn Sie eine globale Website erstellen möchten, müssen Sie über eine Reihe von Projekten betroffen sein. In diesem Kapitel wird Ihnen im Detail zeigen, wie mit internationalen Themen befassen, und gibt einige Beispiele Verständnis zu vertiefen.

JSP-Container kann nach dem locale Attribut fordern Sie die richtige Version der Seite zur Verfügung zu stellen. Als nächstes zeigen wir, wie ein Locale Objekt durch Request-Objekt-Syntax zu erhalten:

java.util.Locale request.getLocale() 

Der Nachweis Locale

Die folgende Tabelle enthält eine Locale Objekt wichtiger Verfahren zum Erfassen von Anforderungsobjekt Region, Sprache und Region. Alle diese Methoden werden den Namen des Landes und der Sprache Namen im Browser angezeigt werden:

Nein . Method & Beschreibung
1 String getCountry ()

Back Country Region / Ortsvorwahl der Hauptstadt, oder ISO 3166 2-Letter-Format
2 String getDisplayCountry ()

Gibt den Namen des Landes, die dem Benutzer angezeigt werden,
3 String getLanguage ()

Gibt den Sprachcode Englisch Kleinbuchstaben oder regionale ISO 639 Formate
4 String getDisplayLanguage ()

Zurück, um den Benutzer zu geben, den Namen der Sprache zu sehen
5 String getISO3Country ()

Gibt den Namen der Drei-Buchstaben-Abkürzung des Landes
6 String getISO3Language ()

3 gibt die Namen der Sprache Initialen

Beispiele Demo

Dieses Beispiel zeigt, wie Sie die Sprache und das Land in der JSP anzuzeigen:

<%@ 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>

Spracheinstellungen

JSP kann eine Seite für westeuropäische Sprachen, wie Englisch, Spanisch, Deutsch, Französisch, Italienisch und so weiter ausgegeben werden. So hat die Content-Language-Header-Informationen korrekt zeigt alle Zeichen sehr wichtig sind.

Der zweite Punkt ist, müssen wir HTML-Entitäten zu verwenden Sonderzeichen anzuzeigen, wie "& # 241;" steht für "& # 161;", die darstellt "?": "?"

<%@ 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>

Regional spezifische Daten

Sie können java.text.DateFormat Klasse und ihre statischen Methoden getDateTimeInstance (), um Format Datum und Uhrzeit verwenden. Das nächste Beispiel zeigt, wie gemäß Format an den bestimmten Bereich des Datums und der Zeit:

<%@ 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>

Region spezifischen Währungen

Sie können java.text.NumberFormat Klasse und ihre statischen Methoden getCurrencyInstance (), um Format Nummern verwenden. Zum Beispiel in einer bestimmten Region des langen Währungstyp und Doppeltyp. Das folgende Beispiel zeigt, wie nach Format an den angegebenen Bereich Währung:

<%@ 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>

Ein gewisser Prozentsatz der Fläche

Sie können java.text.NumberFormat Klasse und ihre statischen Methoden getPercentInstance (), um Format Prozentsätze verwenden. Das folgende Beispiel zeigt, wie je nach Format auf den angegebenen Prozentsatz der Fläche:

<%@ 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>