Latest web development tutorials

servlet ระหว่างประเทศ

ก่อนที่เราจะเริ่มต้นให้ดูที่สามข้อตกลงที่สำคัญ:

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

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

Servlet สามารถเลือกรุ่นที่เหมาะสมของเว็บไซต์ตามสถานที่เกิดเหตุของการร้องขอและให้รุ่นที่เหมาะสมของเว็บไซต์ตามภาษาท้องถิ่นวัฒนธรรมและความต้องการ ต่อไปนี้เป็นคำขอวัตถุกลับวัตถุสถานที่เกิดเหตุ

java.util.Locale request.getLocale () 

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

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

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

ตัวอย่าง

ตัวอย่างนี้แสดงให้เห็นถึงวิธีการแสดงภาษาประจำชาติที่เกี่ยวข้องและการร้องขอ:

นำเข้า java.io. *;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า java.util.Locale;

เรียนสาธารณะ GetLocale ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
      // รับลูกค้าสถานที่เกิดเหตุตำแหน่งที่ตั้ง = request.getLocale ();
      ภาษา String = locale.getLanguage ();
      สตริงประเทศ = locale.getCountry ();

      // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter ออก = response.getWriter ();

      ชื่อ String = "การตั้งค่าโซนการตรวจสอบ";
      สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
      out.println (DOCTYPE +
        "<html> \ n" +
        "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
        "<body bgcolor = \" # f0f0f0 \ "> \ n" +
        "<h1 align = \" ศูนย์ \ ">" + ภาษา + "</ h1> \ n" +
        "<H2 align = \" ศูนย์ \ ">" + รหัสประเทศ + "</ h2> \ n" +
        "</ body> </ html>");
  }
} 

การตั้งค่าภาษา

Servlet สามารถส่งออกไปยุโรปตะวันตกภาษา (เช่นอังกฤษ, สเปน, เยอรมัน, ฝรั่งเศส, อิตาลี, เนเธอร์แลนด์, ฯลฯ ) หน้าที่เขียน ที่นี่เพื่อที่จะแสดงทุกตัวอักษรอย่างถูกต้องตั้งหัวเนื้อหาภาษาเป็นสิ่งสำคัญมาก

จุดที่สองคือการใช้หน่วยงาน HTML เพื่อแสดงทั้งหมดอักขระพิเศษเช่น "& # 241;" หมายถึง "N", "& # 161;" หมายถึง "¡" ดังต่อไปนี้:

นำเข้า java.io. *;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า java.util.Locale;

เรียนสาธารณะ DisplaySpanish ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
    // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter ออก = response.getWriter ();
    // ตั้งค่าภาษารหัส response.setHeader ( "เนื้อหาภาษา", "ES");

    ชื่อ String = "en Espa & ntilde; ol";
    สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
     out.println (DOCTYPE +
     "<html> \ n" +
     "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
     "<body bgcolor = \" # f0f0f0 \ "> \ n" +
     "<h1>" + "en Espa & ntilde; OL:" + "</ h1> \ n" +
     "<h1>" + "& iexcl ;! Hola Mundo" + "</ h1> \ n" +
     "</ body> </ html>");
  }
} 

วันที่สถานที่เฉพาะเจาะจง

คุณสามารถใช้ java.text.DateFormat ชั้นเรียนและวิธีการคง getDateTimeInstance () เพื่อรูปแบบวันที่และเวลาที่เฉพาะเจาะจงกับสถานที่เกิดเหตุ ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการรูปแบบวันที่เฉพาะเจาะจงกับสถานที่ที่กำหนด:

นำเข้า java.io. *;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า java.util.Locale;
นำเข้า java.text.DateFormat;
นำเข้า java.util.Date;

เรียนสาธารณะ DateLocale ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
    // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter ออก = response.getWriter ();
    // รับลูกค้าสถานที่เกิดเหตุตำแหน่งที่ตั้ง = request.getLocale ();
    วัน String = DateFormat.getDateTimeInstance (
                                  DateFormat.FULL, 
                                  DateFormat.SHORT, 
                                  สถานที่เกิดเหตุ) .format (วันที่ใหม่ ());

    ชื่อ String = "วันที่สถานที่เฉพาะเจาะจง";
    สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
      out.println (DOCTYPE +
      "<html> \ n" +
      "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
      "<body bgcolor = \" # f0f0f0 \ "> \ n" +
      "<h1 align = \" ศูนย์ \ ">" + วันที่ + "</ h1> \ n" +
      "</ body> </ html>");
  }
} 

สกุลเงินสถานที่เฉพาะเจาะจง

คุณสามารถใช้ระดับ java.text.NumberFormat และวิธีการคง getCurrencyInstance () ไปยังหมายเลขรูปแบบ (เช่นชนิด double ยาวหรือพิมพ์) เป็นสกุลเงินสถานที่เฉพาะเจาะจง ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการรูปแบบสกุลเงินที่เฉพาะเจาะจงไปยังสถานที่เกิดเหตุได้รับ:

นำเข้า java.io. *;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า java.util.Locale;
นำเข้า java.text.NumberFormat;
นำเข้า java.util.Date;

เรียนสาธารณะ CurrencyLocale ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
    // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter ออก = response.getWriter ();
    // รับลูกค้าสถานที่เกิดเหตุตำแหน่งที่ตั้ง = request.getLocale ();
    NumberFormat NFT = NumberFormat.getCurrencyInstance (สถานที่);
    สตริง formattedCurr = nft.format (1000000);

    ชื่อ String = "สกุลเงินเฉพาะสถานที่";
    สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
      out.println (DOCTYPE +
      "<html> \ n" +
      "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
      "<body bgcolor = \" # f0f0f0 \ "> \ n" +
      "<h1 align = \" ศูนย์ \ ">" + formattedCurr + "</ h1> \ n" +
      "</ body> </ html>");
  }
} 

ร้อยละสถานที่เฉพาะเจาะจง

คุณสามารถใช้ java.text.NumberFormat ชั้นเรียนและวิธีการคง getPercentInstance () เพื่อจัดรูปแบบสถานที่เฉพาะเจาะจงร้อยละ ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการจัดรูปแบบเป็นเปอร์เซ็นต์ที่เฉพาะเจาะจงกับสถานที่ได้รับ:

นำเข้า java.io. *;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า java.util.Locale;
นำเข้า java.text.NumberFormat;
นำเข้า java.util.Date;

เรียนสาธารณะ PercentageLocale ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
    // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
    PrintWriter ออก = response.getWriter ();
    // รับลูกค้าสถานที่เกิดเหตุตำแหน่งที่ตั้ง = request.getLocale ();
    NumberFormat NFT = NumberFormat.getPercentInstance (สถานที่);
    สตริง formattedPerc = nft.format (0.51);

    ชื่อ String = "ภาษาเปอร์เซ็นต์เฉพาะ";
    สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
      out.println (DOCTYPE +
      "<html> \ n" +
      "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
      "<body bgcolor = \" # f0f0f0 \ "> \ n" +
      "<h1 align = \" ศูนย์ \ ">" + formattedPerc + "</ h1> \ n" +
      "</ body> </ html>");
  }
}