জাভা ইন্টারন্যাশনালাইজেশন (i18n) হল এমন একটি প্রক্রিয়া, যার মাধ্যমে অ্যাপ্লিকেশনগুলিকে একাধিক ভাষা এবং অঞ্চল অনুযায়ী কাস্টমাইজ করা যায়। এতে ব্যবহারকারীদের ভাষা, স্থান এবং সাংস্কৃতিক পরিপ্রেক্ষিত অনুযায়ী প্রাসঙ্গিক কনটেন্ট দেখানো হয়।
Java Servlets এবং JSP (JavaServer Pages)-এ Locale Handling হল এমন একটি প্রক্রিয়া যা সার্ভার-সাইড অ্যাপ্লিকেশনগুলিকে একাধিক ভাষা এবং অঞ্চল অনুযায়ী কনটেন্ট প্রদান করতে সাহায্য করে।
Java Servlets এবং JSP তে Locale Handling এর প্রক্রিয়া
- Locale ইনফরমেশন প্রাপ্তি:
- Locale হল একটি ক্লাস যা একটি নির্দিষ্ট ভাষা, অঞ্চল এবং সংস্কৃতির সেটিংস নির্ধারণ করে।
- Locale কনফিগারেশন বিভিন্ন ধরনের অপারেশন (যেমন ভাষা, দেশ, কালচার) নির্ধারণ করতে ব্যবহৃত হয়।
Locale সনাক্তকরণ (Detection) এবং সেট করা:
- Servlet এবং JSP অ্যাপ্লিকেশনগুলি স্বয়ংক্রিয়ভাবে ইউজারের লোকাল ঠিক করতে পারে এবং সেই অনুযায়ী কনটেন্ট প্রদর্শন করতে পারে।
Locale ডিফল্ট সেটিং:
- ডিফল্টভাবে, Locale সাধারণত ক্লায়েন্টের ব্রাউজার সেটিংস থেকে নেওয়া হয়।
Locale সেট করা Servlet এ:
Locale locale = request.getLocale(); // ইউজারের ব্রাউজারের লোকাল তথ্য নেয়- Locale পাওয়ার পর, অ্যাপ্লিকেশন ব্যবহারকারীকে সংশ্লিষ্ট ভাষায় কনটেন্ট দেখাতে সক্ষম হয়।
- JSP তে Locale Handling:
- JSP ফাইলগুলিতে
pageডিরেকটিভ ব্যবহার করে ভাষা এবং লোকাল কনফিগারেশন করা যেতে পারে। উদাহরণ:
<%@ page contentType="text/html; charset=UTF-8" language="en" %> <html> <body> <h1><fmt:message key="welcome_message" /></h1> </body> </html>
- JSP ফাইলগুলিতে
- Resource Bundles:
- Java Servlets এবং JSP-তে স্থানিক কনটেন্ট (যেমন স্ট্রিং) সংরক্ষণের জন্য Resource Bundles ব্যবহার করা হয়।
- Resource Bundle একটি ক্লাস যা বিভিন্ন ভাষার জন্য কনটেন্ট ধারণ করে এবং লোকাল অনুসারে উপযুক্ত কনটেন্ট রিটার্ন করে।
- উদাহরণ:
- messages_en.properties (ইংরেজি)
- messages_fr.properties (ফরাসি)
কোডে এর ব্যবহার:
ResourceBundle messages = ResourceBundle.getBundle("messages", locale); String welcomeMessage = messages.getString("welcome_message");এখানে messages হলো রিসোর্স ফাইল, যা বিভিন্ন ভাষায় অনুবাদিত কনটেন্ট রাখে।
- JSP তে Resource Bundle ব্যবহার:
JSP তে
fmt:messageট্যাগ ব্যবহার করে রিসোর্স ফাইল থেকে অনুবাদিত কনটেন্ট পাওয়া যায়:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <fmt:message key="welcome_message"/>
- Locale এবং Language Preferences পরিবর্তন:
- ক্লায়েন্টের ভাষা বা অঞ্চল পরিবর্তন করতে হলে, Locale অবজেক্ট ব্যবহার করে নতুন লোকাল সেট করতে হয়।
উদাহরণ:
Locale locale = new Locale("fr", "FR"); // ফরাসি ভাষা, ফ্রান্স request.setAttribute("locale", locale);
- Locale Switching (লোকাল সুইচিং):
- ব্যবহারকারীরা সাইটের ভাষা পরিবর্তন করতে চাইলে, Locale পরিবর্তন করা হয়। এটি সাইটের বিভিন্ন পৃষ্ঠা বা সেশন অনুযায়ী কনটেন্ট প্রদর্শন করার জন্য প্রয়োজনীয়।
উদাহরণ:
Locale newLocale = new Locale("de", "DE"); // জার্মান ভাষা, জার্মানি session.setAttribute("locale", newLocale); response.sendRedirect("welcome.jsp");
উদাহরণ:
Servlet Example:
@WebServlet("/welcome")
public class WelcomeServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Get locale from the request
Locale locale = request.getLocale();
// Load resource bundle based on locale
ResourceBundle messages = ResourceBundle.getBundle("messages", locale);
String welcomeMessage = messages.getString("welcome_message");
// Set the message in the request attribute and forward to the JSP
request.setAttribute("welcomeMessage", welcomeMessage);
RequestDispatcher dispatcher = request.getRequestDispatcher("/welcome.jsp");
dispatcher.forward(request, response);
}
}
JSP Example (welcome.jsp):
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<body>
<h1><fmt:message key="welcomeMessage" /></h1>
</body>
</html>
Java Servlets এবং JSP-এ Locale Handling-এর মাধ্যমে অ্যাপ্লিকেশনগুলো ভাষা এবং সাংস্কৃতিক বৈচিত্র্য অনুযায়ী কনটেন্ট প্রদর্শন করতে সক্ষম হয়। এটি ব্যবহারকারীদের জন্য একটি আরো ইন্টারন্যাশনাল এবং কাস্টমাইজড অভিজ্ঞতা প্রদান করে। Resource Bundles, Locale Objects এবং JSP Tags ব্যবহার করে এটি সহজেই বাস্তবায়ন করা সম্ভব।
Read more