Latest web development tutorials

JSP Internacjonalizacja

Przed rozpoczęciem, trzeba wyjaśnić kilka ważnych pojęć:

  • Internacjonalizacja (i18n): wskazuje, że strona opiera się na języku odwiedzającego lub kraju przedstawiono różne tłumaczenia.
  • Lokalizacja (l10n) dodać środki na miejscu, w celu dostosowania go do różnych regionów i kultur. Na przykład, indyjski wersje językowe strony.
  • Powierzchnia: Jest to specyficzny region lub kulturę, ogólnie uważany za język migowy i symbole narodowe są połączone podkreślenia. Takie jak "pl_PL" dla regionów USA angielskich.

Jeśli chcesz stworzyć globalną stronę internetową, trzeba obawiać się o wielu projektach. Ten rozdział pokaże Ci, w jaki sposób radzić sobie z problemami międzynarodowymi i podaje kilka przykładów, aby pogłębić zrozumienie.

kontener JSP może zażądać zgodnie z atrybutem locale aby zapewnić poprawną wersję strony. Dalej pokażemy, jak uzyskać Locale obiekt o składni Obiekt żądania:

java.util.Locale request.getLocale() 

Wykrywanie Locale

Poniższa tabela zawiera ważniejszego sposobu wykrywania żądania obiektu region, język i region Locale obiektu. Wszystkie te metody wyświetli nazwę kraju oraz nazwy języka w przeglądarce:

Nie. Sposób i opis
1 String getCountry ()

Back Country Kod regionu / obszaru kapitału, lub ISO 3166 w formacie 2-literowy
2 String getDisplayCountry ()

Zwraca nazwę kraju, które mają być wyświetlane użytkownikowi
3 String getLanguage ()

Zwraca kod języka angielskiego małymi literami lub regionalnych ISO 639 formatów
4 String getDisplayLanguage ()

Powrót dać użytkownikowi zobaczyć nazwę języku
5 String getISO3Country ()

Zwraca nazwę kraju trzyliterowy skrót
6 String getISO3Language ()

3 zwraca inicjały nazwy języka

Przykłady Demo

Ten przykład pokazuje, w jaki sposób wyświetlać język i kraj w 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>

Ustawienia języka

JSP mogą być wykorzystane do produkcji stronę dla języków zachodnioeuropejskich, takich jak angielski, hiszpański, niemiecki, francuski, włoski i tak dalej. Tak więc, należy ustawić nagłówek Content-Language poprawnie wyświetla wszystkie znaki są bardzo ważne.

Druga sprawa jest taka, że ​​trzeba używać znaku w języku HTML do wyświetlania znaków specjalnych, takich jak "& # 241;" reprezentuje "& # 161;" reprezentuje "?": "?"

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

Regionalne konkretnych dat

Można użyć klasy java.text.DateFormat i jego statycznych metod getDateTimeInstance (), aby data i godzina w formacie. Kolejny przykład pokazuje jak formatować zgodnie z określonym obszarze data i czas:

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

waluty danego regionu

Można użyć klasy java.text.NumberFormat i jego statycznych metod getCurrencyInstance (), aby numery wielkoformatowych. Na przykład, w szczególnym obszarze długiego waluty i podwójnego typu. Poniższy przykład pokazuje jak formatować zgodnie z określonym obszarze walutowym:

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

Pewien procent powierzchni

Można użyć klasy java.text.NumberFormat i jego statycznych metod getPercentInstance () do formatu procentach. Poniższy przykład pokazuje, jak formatować zgodnie z określonym procentem powierzchni:

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