Latest web development tutorials

JSP สากล

ก่อนที่คุณจะเริ่มต้นคุณจะต้องอธิบายแนวคิดที่สำคัญไม่กี่:

  • สากล (i18n) บ่งชี้ว่าหน้าขึ้นอยู่กับภาษาของผู้เข้าชมงานหรือประเทศเพื่อนำเสนอการแปลที่แตกต่างกัน
  • รองรับหลายภาษา (l10n): เพิ่มทรัพยากรในเว็บไซต์เพื่อที่จะปรับตัวเข้ากับมันไปยังภูมิภาคที่แตกต่างกันและวัฒนธรรม ยกตัวอย่างเช่นรุ่นภาษาอินเดียของเว็บไซต์
  • พื้นที่นี้เป็นพื้นที่หรือเฉพาะวัฒนธรรมการพิจารณาโดยทั่วไปจะเป็นภาษาสัญลักษณ์และสัญลักษณ์ประจำชาติที่เชื่อมต่อด้วยการขีดเส้นใต้ เช่น "en_US" สำหรับภูมิภาคภาษาอังกฤษของสหรัฐอเมริกา

หากคุณต้องการที่จะสร้างเว็บไซต์ทั่วโลกคุณจะต้องมีความกังวลเกี่ยวกับจำนวนของโครงการ บทนี้จะแสดงรายละเอียดวิธีการจัดการกับปัญหาระหว่างประเทศและให้ตัวอย่างบางอย่างเพื่อให้เข้าใจลึกซึ้งยิ่งขึ้น

JSP ภาชนะที่สามารถขอตามคุณลักษณะที่เกิดเหตุเพื่อให้รุ่นที่ถูกต้องของหน้า ต่อไปเราจะแสดงวิธีการที่จะได้รับวัตถุสถานที่เกิดเหตุโดยไวยากรณ์ Object Request:

java.util.Locale request.getLocale() 

การตรวจสอบสถานที่เกิดเหตุ

ตารางต่อไปนี้แสดงวิธีการที่สำคัญวัตถุสถานที่เกิดเหตุมากขึ้นสำหรับการตรวจสอบคำขอภูมิภาควัตถุภาษาและภูมิภาค ทั้งหมดของวิธีการเหล่านี้จะแสดงชื่อของประเทศและชื่อภาษาในเบราว์เซอร์:

เลขที่ วิธีการและคำอธิบาย
1 สตริง getCountry ()

กลับประเทศรหัสพื้นที่ / พื้นที่ของเมืองหลวงหรือ ISO 3166 รูปแบบตัวอักษร 2 ตัว
2 สตริง getDisplayCountry ()

ส่งกลับชื่อของประเทศที่จะแสดงให้กับผู้ใช้
3 สตริง getLanguage ()

ส่งกลับตัวพิมพ์เล็กภาษาอังกฤษรหัสภาษาหรือภูมิภาค ISO 639 รูปแบบ
4 สตริง getDisplayLanguage ()

กลับไปให้ผู้ใช้สามารถเห็นชื่อของภาษา
5 สตริง getISO3Country ()

ผลตอบแทนที่ได้ชื่อของประเทศที่ย่อสามตัวอักษร
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 สามารถนำมาใช้เพื่อการส่งออกหน้าสำหรับภาษายุโรปตะวันตกเช่นอังกฤษ, สเปน, เยอรมัน, ฝรั่งเศส, อิตาลีและอื่น ๆ ดังนั้นการตั้งค่าข้อมูลส่วนหัวเนื้อหาภาษาได้อย่างถูกต้องแสดงตัวละครทุกตัวมีความสำคัญมาก

จุดที่สองคือเราต้องใช้ HTML หน่วย Character เพื่อแสดงตัวอักษรพิเศษเช่น "& # 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 () เพื่อจัดรูปแบบหมายเลข ยกตัวอย่างเช่นในพื้นที่หนึ่งของประเภทสกุลเงินยาวและประเภทคู่ ตัวอย่างต่อไปนี้แสดงให้เห็นว่าการจัดรูปแบบตามที่ระบุไว้ในพื้นที่สกุลเงิน:

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