Latest web development tutorials

JSP التدويل

قبل أن تبدأ، تحتاج إلى شرح بعض المفاهيم الهامة:

  • التدويل (I18N): يشير إلى أن صفحة على أساس اللغة الزائر أو دولة قدمت ترجمات مختلفة.
  • التعريب (L10N): إضافة موارد للموقع، من أجل تكييفه لمختلف المناطق والثقافات. على سبيل المثال، واللغات الهندية للموقع.
  • المنطقة: هذه هي منطقة معينة أو ثقافة، يعتبر عموما أن تكون لغة الإشارة والرموز الوطنية ترتبط بها تسطير. مثل "en_US" للمناطق الولايات المتحدة الإنجليزية.

إذا كنت ترغب في إنشاء موقع على الشبكة العالمية، تحتاج إلى أن تشعر بالقلق إزاء عدد من المشاريع. وهذا الفصل تظهر لك بالتفصيل كيفية التعامل مع القضايا الدولية، ويعطي بعض الأمثلة لتعميق التفاهم.

JSP حاوية يمكن طلب وفقا لسمة اللغة المحلية لتوفير الإصدار الصحيح من الصفحة. التالي نظهر كيفية الحصول على جسم الإعدادات المحلية التي كتبها تركيب وجوه الطلب:

java.util.Locale request.getLocale() 

الكشف عن اللغة

يسرد الجدول التالي كائن الإعدادات المحلية طريقة أكثر أهمية للكشف عن طلب المنطقة الكائن، واللغة، والمنطقة. وجميع هذه الأساليب عرض اسم البلد واسم اللغة في المتصفح:

لا. طريقة ووصف
1 سلسلة getCountry ()

العودة البلد رمز المنطقة / منطقة العاصمة، أو ISO 3166 شكل 2-بريد إلكتروني
2 سلسلة getDisplayCountry ()

بإرجاع اسم البلد ليتم عرضها للمستخدم
3 سلسلة getLanguage ()

ترجع صغيرة الإنجليزية رمز اللغة، أو صيغ الإقليمية ISO 639
4 سلسلة getDisplayLanguage ()

العودة إلى إعطاء المستخدم لمعرفة اسم من اللغة
5 سلسلة getISO3Country ()

يعود اسم اختصار ثلاثة أحرف في البلاد
6 سلسلة getISO3Language ()

3 إرجاع بالاحرف الاولى اسم اللغة

أمثلة تجريبي

يوضح هذا المثال كيفية عرض اللغة والبلد في التخطيط الاستراتيجي المشترك:

<%@ 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 يمكن استخدامها لانتاج صفحة للغات أوروبا الغربية، مثل الإنجليزية والإسبانية والألمانية والفرنسية والإيطالية وهلم جرا. وهكذا، تعيين معلومات رأس Content-اللغة يعرض بشكل صحيح جميع الشخصيات هي مهمة جدا.

والنقطة الثانية هي أننا بحاجة إلى استخدام عناصر HTML لعرض أحرف خاصة مثل "& # 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>