Latest web development tutorials

Servlet internazionale

Prima di iniziare, diamo un'occhiata a tre termini importanti:

  • Internazionalizzazione (i18n): Questo significa che un sito web fornisce diverse versioni del contenuto tradotto nella lingua o nazionalità del visitatore.
  • La localizzazione (L10N): questo significa che il sito è stato aggiunto alle risorse per adattare una particolare regione o di cultura geografica, come il sito tradotto in Hindi (Hindi).
  • Locale (locale): Questa è una regione culturale o geografica particolare.E 'di solito si riferisce al simbolo lingua seguito da un carattere di sottolineatura e un simbolo nazionale. Come ad esempio "it" per l'impostazione inglese degli Stati Uniti rappresenta la zona.

Ci sono alcune considerazioni durante la creazione di un sito web globale. Questo tutorial non spiega i dettagli completi di queste considerazioni, passerà un buon esempio per mostrare come il posizionamento differenziato (cioè locale) a fare le pagine web presenti in diverse lingue.

Servlet può scegliere la versione appropriata del sito in base alle impostazioni internazionali del richiedente, e di fornire la versione appropriata del sito in base alla lingua locale, la cultura e le esigenze. Quello che segue è l'oggetto di richiesta oggetto restituito Locale.

java.util.Locale request.getLocale () 

locale di rilevamento

Di seguito sono elencati importante metodo di impostazione regionale, è possibile utilizzare per rilevare la posizione geografica, la lingua e le impostazioni regionali richiedente. Tutti i seguenti metodi per visualizzare il nome delle impostazioni del browser Richiedente nomi di paesi e di lingue.

序号方法 & 描述
1String getCountry()
该方法以 2 个大写字母形式的 ISO 3166 格式返回该区域设置的国家/地区代码。
2String getDisplayCountry()
该方法返回适合向用户显示的区域设置的国家的名称。
3String getLanguage()
该方法以小写字母形式的 ISO 639 格式返回该区域设置的语言代码。
4String getDisplayLanguage()
该方法返回适合向用户显示的区域设置的语言的名称。
5String getISO3Country()
该方法返回该区域设置的国家的三个字母缩写。
6String getISO3Language()
该方法返回该区域设置的语言的三个字母的缩写。

Esempi

Questo esempio dimostra come visualizzare la lingua nazionale pertinente e una richiesta:

import java.io. *;
import javax.servlet * .;
import javax.servlet.http * .;
import java.util.Locale;

public class GetLocale estende HttpServlet {
    
  pubblico doGet void (richiesta HttpServletRequest,
                    HttpServletResponse risposta)
            getta ServletException, IOException
  {
      // Prendi il locale del client locale locale = request.getLocale ();
      lingua String = locale.getLanguage ();
      String country = locale.getCountry ();

      // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

      titolo String = "impostazioni di zona di rilevazione";
      String docType = "\ n <DOCTYPE html!>";
      out.println (docType +
        "<HTML> \ n" +
        "<Head> <title>" + titolo + "</ title> </ head> \ n" +
        "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
        "<H1 align = \" centro \ ">" + lingua + "</ h1> \ n" +
        "<H2 align = \" centro \ ">" + paese + "</ h2> \ n" +
        "</ Body> </ html>");
  }
} 

Impostazioni lingua

Servlet può essere esportato in lingue dell'Europa occidentale (come l'inglese, spagnolo, tedesco, francese, italiano, olandese, ecc) pagine scritte. Qui, al fine di visualizzare correttamente tutti i caratteri, impostare l'intestazione Content-Language è molto importante.

Il secondo punto è quello di utilizzare entità HTML per visualizzare tutti i caratteri speciali, come ad esempio "& # 241;" rappresenta "N", "& # 161;" significa "¡" come segue:

import java.io. *;
import javax.servlet * .;
import javax.servlet.http * .;
import java.util.Locale;

public class DisplaySpanish estende HttpServlet {
    
  pubblico doGet void (richiesta HttpServletRequest,
                    HttpServletResponse risposta)
            getta ServletException, IOException
  {
    // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter out = response.getWriter ();
    // Imposta lingua spagnola Codice response.setHeader ( "Content-Language", "es");

    Titolo String = "En Espa & ntilde; ol";
    String docType = "\ n <DOCTYPE html!>";
     out.println (docType +
     "<HTML> \ n" +
     "<Head> <title>" + titolo + "</ title> </ head> \ n" +
     "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
     "<H1>" + "En Espa & ntilde; ol:" + "</ h1> \ n" +
     "<H1>" + "e iexcl ;! Hola Mundo" + "</ h1> \ n" +
     "</ Body> </ html>");
  }
} 

locale specifica Data

È possibile utilizzare la classe java.text.DateFormat e metodi statici getDateTimeInstance () per data e ora specifica per il locale formato. L'esempio seguente mostra come formattare una data specifica per un determinato locale:

import java.io. *;
import javax.servlet * .;
import javax.servlet.http * .;
import java.util.Locale;
import java.text.DateFormat;
import java.util.Date;

public class DateLocale estende HttpServlet {
    
  pubblico doGet void (richiesta HttpServletRequest,
                    HttpServletResponse risposta)
            getta ServletException, IOException
  {
    // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter out = response.getWriter ();
    // Prendi il locale del client locale locale = request.getLocale ();
    Data String = DateFormat.getDateTimeInstance (
                                  DateFormat.FULL, 
                                  DateFormat.SHORT, 
                                  locale) .format (new Date ());

    Titolo String = "specifica locale data";
    String docType = "\ n <DOCTYPE html!>";
      out.println (docType +
      "<HTML> \ n" +
      "<Head> <title>" + titolo + "</ title> </ head> \ n" +
      "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
      "<H1 align = \" centro \ ">" + data + "</ h1> \ n" +
      "</ Body> </ html>");
  }
} 

locale specifica valuta

È possibile utilizzare la classe java.text.NumberFormat e metodi statici getCurrencyInstance () per formattare i numeri (come ad esempio lungo tipo double o tipo) come locale specifica-valuta. L'esempio seguente mostra come formattare una valuta specifica per un determinato locale:

import java.io. *;
import javax.servlet * .;
import javax.servlet.http * .;
import java.util.Locale;
import java.text.NumberFormat;
import java.util.Date;

public class CurrencyLocale estende HttpServlet {
    
  pubblico doGet void (richiesta HttpServletRequest,
                    HttpServletResponse risposta)
            getta ServletException, IOException
  {
    // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter out = response.getWriter ();
    // Prendi il locale del client locale locale = request.getLocale ();
    NumberFormat NFT = NumberFormat.getCurrencyInstance (locale);
    String = formattedCurr nft.format (1000000);

    Titolo String = "valuta specifica-locale";
    String docType = "\ n <DOCTYPE html!>";
      out.println (docType +
      "<HTML> \ n" +
      "<Head> <title>" + titolo + "</ title> </ head> \ n" +
      "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
      "<H1 align = \" centro \ ">" + formattedCurr + "</ h1> \ n" +
      "</ Body> </ html>");
  }
} 

locale specifica Percentuale

È possibile utilizzare la classe java.text.NumberFormat e metodi statici getPercentInstance () per formattare il locale specifica percentuale. L'esempio seguente mostra come formattare una percentuale specifica di un determinato locale:

import java.io. *;
import javax.servlet * .;
import javax.servlet.http * .;
import java.util.Locale;
import java.text.NumberFormat;
import java.util.Date;

public class PercentageLocale estende HttpServlet {
    
  pubblico doGet void (richiesta HttpServletRequest,
                    HttpServletResponse risposta)
            getta ServletException, IOException
  {
    // Impostare il tipo di contenuto della risposta response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter out = response.getWriter ();
    // Prendi il locale del client locale locale = request.getLocale ();
    NumberFormat NFT = NumberFormat.getPercentInstance (locale);
    String = formattedPerc nft.format (0,51);

    Titolo String = "locale percentuale specifica";
    String docType = "\ n <DOCTYPE html!>";
      out.println (docType +
      "<HTML> \ n" +
      "<Head> <title>" + titolo + "</ title> </ head> \ n" +
      "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
      "<H1 align = \" centro \ ">" + formattedPerc + "</ h1> \ n" +
      "</ Body> </ html>");
  }
}