English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
قبل البدء، يجب توضيح بعض المفاهيم المهمة:
إذا كنت ترغب في إنشاء موقع عالمي، فإنك بحاجة إلى الانتباه إلى مجموعة من المشاريع. سيعرض هذا الفصل بشكل مفصل كيفية التعامل مع القضايا المتعلقة بالتوطين، ويقدم بعض الأمثلة لزيادة الفهم.
يستطيع محرك JSP تقديم نسخة الصفحة الصحيحة بناءً على خاصية locale من الطلب. يلي كيفية الحصول على كائن Locale من كائن الطلب:
java.util.Locale request.getLocale()
الجدول التالي يوضح الأنواع المهمة من الكائن Locale، التي تستخدم لتحديد المنطقة، اللغة، والمنطقة الجغرافية للطلب. كل هذه الطرق ستظهر اسم البلد واسم اللغة في المتصفح:
الرقم | الطريقة & الوصف |
---|---|
1 | String getCountry(); يعيد رمز المنطقة بالحروف الكبيرة أو المنطقة بتنسيق ISO 3166 2-letter |
2 | String getDisplayCountry(); يعيد اسم البلد الذي سيشاهدونه المستخدمون |
3 | String getLanguage(); يعيد رمز اللغة بالحروف الصغيرة أو المنطقة بتنسيق ISO 639 |
4 | String getDisplayLanguage(); يعيد اسم اللغة الذي سيشاهدونه المستخدمون |
5 | String getISO3Country(); يعيد رمز البلد بالرموز الثلاثية |
6 | String getISO3Language(); يعيد اسم اللغة بالرموز الثلاثية |
يعلمنا هذا المثال كيفية عرض اللغة والبلد في 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>كشف عن اللغة الإقليمية</title> </head> <body> <center> <h1>كشف عن اللغة الإقليمية</h1> </center> <p align="center"> <% out.println("Language : " + language + "<br />"); out.println("Country : " + country + "<br />"); %> </p> </body> </html>
يمكن لـ JSP استخدام اللغات الأوروبية الغربية لعرض صفحة، مثل اللغة الإنجليزية، الإسبانية، الألمانية، الفرنسية، الإيطالية، إلخ. من الواضح أن تعيين معلومات رأس Content-Language مهم لعرض جميع الحروف بشكل صحيح.
النقطة الثانية هي، يجب استخدام كيانات الحروف الخاصة في HTML لعرض الحروف الخاصة، مثل "ñ" تمثل ñ، "¡" تمثل ¡ :
<%@ page import="java.io.*,java.util.Locale" %> <%@ page import="javax.servlet.*,javax.servlet.http.* "%>" <% // تعيين نوع محتوى الرد response.setContentType("text/html"); // تعيين رمز اللغة الإسبانية. response.setHeader("Content-Language", "ar"); 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 = "تواريخ محددة بالمنطقة"; //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>تاريخ محلي: <% out.print(date); %></p> </div> </body> </html>
يمكن استخدام كلاً من java.text.NumberFormat وطرقها الثابتة getCurrencyInstance() لتشكيل الأرقام. على سبيل المثال، في العملات المحددة بالمنطقة من النوع long وdouble. يوضح المثال التالي كيفية تشكيل العملة بناءً على المنطقة المحددة:
<%@ page import="java.io.*,java.util.Locale" %> <%@ page import="javax.servlet.*,javax.servlet.http.* "%>" <%@ page import="java.text.NumberFormat,java.util.Date" %> <% String title = "عملة محددة بالمنطقة"; //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>عملة منسقة: <% 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>نسبة مئوية مناسبة: <% out.print(formattedPerc); %></p> </div> </body> </html>