Web Application এর জন্য ResourceBundle এবং Locale Configurations

Java Web Applications এ i18n ব্যবহার (Servlets এবং JSP) - জাভা ইন্টারন্যাশনালাইজেশন (Java Internalization) - Java Technologies

290

Java Web Applications এ ইন্টারন্যাশনালাইজেশন (i18n) এর জন্য দুটি গুরুত্বপূর্ণ উপাদান হলো ResourceBundle এবং Locale Configuration। এগুলি ব্যবহৃত হয় অ্যাপ্লিকেশনটিকে বিভিন্ন ভাষা এবং সংস্কৃতির জন্য অভিযোজিত করার জন্য। এদের সাহায্যে, বিভিন্ন অঞ্চলের জন্য আলাদা কনফিগারেশন, স্ট্রিং, তারিখ, সংখ্যা ইত্যাদি সামঞ্জস্য করা হয়।

1. ResourceBundle:

ResourceBundle হল একটি ক্লাস যা জাভাতে আন্তর্জাতিককরণের জন্য ব্যবহৃত হয়। এটি locale নির্ভর রিসোর্সগুলি (যেমন স্ট্রিং, বার্তা, ছবি ইত্যাদি) সংরক্ষণ এবং লোড করতে সাহায্য করে। প্রতিটি Locale এর জন্য আলাদা রিসোর্স ফাইল তৈরি করা হয়।

ResourceBundle এর কাজ কীভাবে হয়:

  • ResourceBundle সাধারণত Properties File হিসেবে থাকে, যেখানে মূল কী এবং তার মান (value) দেওয়া থাকে। একাধিক প্রপার্টি ফাইল ব্যবহার করে আপনি বিভিন্ন ভাষার জন্য আলাদা কনটেন্ট সংরক্ষণ করতে পারেন।

    উদাহরণ:

    • messages_en.properties (ইংরেজি)
    • messages_fr.properties (ফরাসি)
    • messages_bn.properties (বাংলা)

    messages_en.properties:

    greeting=Hello
    welcomeMessage=Welcome to the application!
    

    messages_fr.properties:

    greeting=Bonjour
    welcomeMessage=Bienvenue dans l'application!
    

    messages_bn.properties:

    greeting=হ্যালো
    welcomeMessage=অ্যাপ্লিকেশনে স্বাগতম!
    

কোডে ResourceBundle ব্যবহার:

import java.util.*;

public class InternationalizationExample {
    public static void main(String[] args) {
        Locale locale = new Locale("bn", "BD");  // বাংলা, বাংলাদেশ
        ResourceBundle bundle = ResourceBundle.getBundle("messages", locale);

        System.out.println(bundle.getString("greeting"));
        System.out.println(bundle.getString("welcomeMessage"));
    }
}

এখানে ResourceBundle.getBundle("messages", locale) এর মাধ্যমে উপযুক্ত locale অনুযায়ী প্রপার্টি ফাইলটি লোড করা হয়।

2. Locale Configuration:

Locale হল একটি ক্লাস যা একটি নির্দিষ্ট ভাষা এবং অঞ্চল বা সাংস্কৃতিক বৈশিষ্ট্য প্রতিনিধিত্ব করে। এটি বিভিন্ন ধরনের অঞ্চলের জন্য কাস্টমাইজড বার্তা প্রদর্শন করার জন্য ব্যবহৃত হয়।

Locale সেটআপ:

Locale ব্যবহারের মাধ্যমে আপনি নির্দিষ্ট ভাষা এবং অঞ্চলের জন্য কনফিগারেশন তৈরি করতে পারেন।

  • Locale তৈরি:

    Locale locale = new Locale("bn", "BD");  // বাংলা, বাংলাদেশ
    

    এটি বাংলা ভাষা এবং বাংলাদেশ অঞ্চল নির্বাচন করবে।

Locale এবং ResourceBundle ব্যবহার:

আপনি Locale ক্লাস ব্যবহার করে নির্দিষ্ট ভাষা ও অঞ্চলের জন্য ResourceBundle লোড করতে পারেন। উদাহরণস্বরূপ, যখন ইউজার বাংলা ভাষায় অ্যাপ্লিকেশন ব্যবহার করবে, তখন আপনাকে Locale সেট করতে হবে।

Web Application Configuration (Web.xml):

Java Web Application এর জন্য Locale কনফিগারেশন কিছু ক্ষেত্রে web.xml ফাইলে করা যেতে পারে, যেখানে আপনি ডিফল্ট ভাষা বা লোকাল সেট করতে পারেন।

web.xml এ Locale Filter কনফিগারেশন:

<filter>
    <filter-name>localeFilter</filter-name>
    <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>localeFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

এছাড়া, আপনি ব্যবহারকারীর ব্রাউজারের ভাষার উপর ভিত্তি করে অ্যাপ্লিকেশনটির Locale সেট করতে পারেন। Spring বা অন্যান্য Web Framework গুলিতে LocaleResolver ব্যবহার করে এটি করা সম্ভব।

Spring Framework এ LocaleResolver ব্যবহার:

@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver localeResolver = new SessionLocaleResolver();
    localeResolver.setDefaultLocale(Locale.ENGLISH); // ডিফল্ট ভাষা
    return localeResolver;
}

এছাড়া, LocaleChangeInterceptor ব্যবহার করে আপনি URL প্যারামিটার বা কুকি দিয়ে ব্যবহারকারীর ভাষা পরিবর্তন করতে পারেন।

@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
    LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
    interceptor.setParamName("lang"); // URL প্যারামিটার নাম
    return interceptor;
}

এখন, আপনি URL এর মধ্যে ?lang=fr বা ?lang=bn যোগ করে ভাষা পরিবর্তন করতে পারবেন।

3. Locale এবং ResourceBundle ব্যবহার Web Application-এ:

Java Web Application এ আপনি Locale এবং ResourceBundle ব্যবহার করে বিভিন্ন ভাষায় ডাইনামিকভাবে কন্টেন্ট প্রদর্শন করতে পারেন। এটি সাধারণত JSP বা Servlet এ করা হয়।

JSP উদাহরণ:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"%>
<%@ page import="java.util.*, java.text.*" %>
<%
    Locale locale = request.getLocale();  // ইউজারের লোকাল
    ResourceBundle bundle = ResourceBundle.getBundle("messages", locale);
%>
<html>
<head><title>Internationalization Example</title></head>
<body>
    <h1><%= bundle.getString("greeting") %></h1>
    <p><%= bundle.getString("welcomeMessage") %></p>
</body>
</html>

এখানে request.getLocale() ব্যবহার করে ব্যবহারকারীর লোকাল পাওয়া যায় এবং তার মাধ্যমে ResourceBundle থেকে ভাষানুযায়ী স্ট্রিংগুলি প্রদর্শিত হয়।

Java Web Application এ ResourceBundle এবং Locale Configuration ব্যবহার করে আপনি অ্যাপ্লিকেশনকে বিভিন্ন ভাষা ও অঞ্চলের জন্য ইন্টারন্যাশনালাইজড করতে পারেন। এটি নিশ্চিত করে যে, আপনার অ্যাপ্লিকেশনটি বিশ্বের বিভিন্ন অঞ্চলের ব্যবহারকারীদের জন্য উপযুক্ত, সঠিক এবং কাস্টমাইজড অভিজ্ঞতা প্রদান করবে।

Content added By
Promotion

Are you sure to start over?

Loading...