Java EE তে i18n Configuration এবং Resource Handling

Java EE এবং Spring Framework এ i18n Integration - জাভা ইন্টারন্যাশনালাইজেশন (Java Internalization) - Java Technologies

311

Java EE (Enterprise Edition) ইন্টারন্যাশনালাইজেশন (i18n) সমর্থন করার জন্য বিভিন্ন টুল এবং কনফিগারেশন সরবরাহ করে, যার মাধ্যমে একটি অ্যাপ্লিকেশন বিভিন্ন ভাষা এবং অঞ্চলের জন্য অভিযোজিত হতে পারে। Java EE তে i18n কনফিগারেশন এবং রিসোর্স হ্যান্ডলিং সাধারণত Resource Bundles, Locale Handling, এবং Web Configuration এর মাধ্যমে করা হয়।

এখানে আমরা আলোচনা করবো কীভাবে Java EE তে i18n কনফিগারেশন ও রিসোর্স হ্যান্ডলিং করা যায়।


১. Resource Bundle Management

Resource Bundle হল একটি মূল উপাদান Java EE-তে আন্তর্জাতিককরণের জন্য। এটি key-value জোড়া হিসেবে লোড করা হয় এবং বিভিন্ন ভাষার জন্য কনটেন্ট প্রদানের জন্য ব্যবহৃত হয়। Java EE অ্যাপ্লিকেশন সাধারণত .properties ফাইল ব্যবহার করে রিসোর্স স্টোর করে।

Resource Bundle ফাইল তৈরি:

Java EE অ্যাপ্লিকেশনগুলি বিভিন্ন ভাষার জন্য property files তৈরি করে। উদাহরণস্বরূপ, ইংরেজি, বাংলা, এবং ফরাসি ভাষার জন্য আলাদা আলাদা ফাইল হতে পারে:

  • messages_en.properties:

    greeting=Hello
    welcomeMessage=Welcome to our Application!
    
  • messages_bn.properties:

    greeting=হ্যালো
    welcomeMessage=আমাদের অ্যাপ্লিকেশনে স্বাগতম!
    
  • messages_fr.properties:

    greeting=Bonjour
    welcomeMessage=Bienvenue dans notre application!
    

Resource Bundle লোড করা:

Java EE তে Resource Bundle লোড করতে ResourceBundle ক্লাস ব্যবহার করা হয়। আপনি এটি @ResourceBundle বা @MessageDrivenBean ব্যবহার করে বিভিন্ন ইন্টারফেসে ব্যবহার করতে পারেন।

Example:

import java.util.ResourceBundle;
import java.util.Locale;

public class GreetingService {
    public String getGreeting(Locale locale) {
        ResourceBundle bundle = ResourceBundle.getBundle("messages", locale);
        return bundle.getString("greeting");
    }
}

এখানে, messages ফাইল থেকে Locale এর ভিত্তিতে রিসোর্স পাওয়া যাবে।

২. Locale Handling in Java EE

Java EE তে Locale Handling অনেক গুরুত্বপূর্ণ, কারণ এটি ভাষা এবং সংস্কৃতি অনুযায়ী কনটেন্ট প্রদান করতে সহায়তা করে। Java EE অ্যাপ্লিকেশনগুলোতে Locale পরিবর্তন করা এবং প্রাসঙ্গিক কনটেন্ট সঠিকভাবে প্রদর্শন করা যায়।

Locale Configuration in Web Applications:

  1. Web.xml Configuration: Java EE ওয়েব অ্যাপ্লিকেশনের web.xml ফাইলে Locale Filter কনফিগার করা যেতে পারে, যাতে একটি নির্দিষ্ট লোকাল (ভাষা) ডিফল্ট হিসেবে সেট করা যায়।

    Example:

    <web-app>
        <filter>
            <filter-name>LocaleFilter</filter-name>
            <filter-class>com.example.LocaleFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>LocaleFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    </web-app>
    
  2. Locale Filter Implementation: একটি Locale Filter ব্যবহার করে আপনার অ্যাপ্লিকেশনকে একটি নির্দিষ্ট ভাষার মাধ্যমে সব রিকোয়েস্ট হ্যান্ডলিং করতে পারেন।

    Example:

    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import java.io.IOException;
    import java.util.Locale;
    
    public class LocaleFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {}
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            HttpServletRequest httpRequest = (HttpServletRequest) request;
            String lang = httpRequest.getParameter("lang");
            Locale locale = (lang != null) ? new Locale(lang) : Locale.getDefault();
            request.setAttribute("locale", locale);
            chain.doFilter(request, response);
        }
    
        @Override
        public void destroy() {}
    }
    

    এখানে, lang প্যারামিটার ব্যবহার করে ভাষা পরিবর্তন করা হয়েছে।

৩. i18n in JavaServer Pages (JSP)

Java EE তে JSP তে i18n কনফিগারেশন করার জন্য JSTL (JavaServer Pages Standard Tag Library) ব্যবহার করা হয়। fmt:message ট্যাগ ব্যবহার করে Resource Bundle থেকে কনটেন্ট লোড এবং প্রদর্শন করা হয়।

JSP Example:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
  <body>
    <fmt:message key="greeting"/>
    <fmt:message key="welcomeMessage"/>
  </body>
</html>

এখানে, fmt:message ট্যাগ messages.properties ফাইল থেকে কনটেন্ট লোড করবে এবং বর্তমান Locale অনুযায়ী প্রদর্শন করবে।

৪. Locale-Sensitive Date and Number Formatting

Java EE তে Date এবং Number ফরম্যাটিং অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি প্রতিটি লোকাল অনুযায়ী বিভিন্নভাবে ফরম্যাট হতে পারে। Java EE তে Java.text.NumberFormat এবং Java.text.DateFormat ক্লাস ব্যবহার করা হয়।

Example: Number Formatting in Java EE:

import java.text.NumberFormat;
import java.util.Locale;

public class NumberService {
    public String formatNumber(double number, Locale locale) {
        NumberFormat formatter = NumberFormat.getInstance(locale);
        return formatter.format(number);
    }
}

এখানে, Locale অনুযায়ী সংখ্যা ফরম্যাট করা হচ্ছে।

Example: Date Formatting in Java EE:

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class DateService {
    public String formatDate(Date date, Locale locale) {
        DateFormat formatter = DateFormat.getDateInstance(DateFormat.LONG, locale);
        return formatter.format(date);
    }
}

এখানে, Locale অনুযায়ী তারিখ ফরম্যাট করা হচ্ছে।

৫. Locale Switching in Java EE

Java EE তে লোকাল পরিবর্তন করার জন্য সেশন বা কুকি ব্যবহার করা হয় যাতে ব্যবহারকারীর ভাষা/লোকাল পরিবর্তন সেশনভিত্তিকভাবে সেভ করা যায় এবং পরবর্তী রিকোয়েস্টে তা স্বয়ংক্রিয়ভাবে গ্রহণ করা যায়।

Example: Locale Switching Using Session:

public class LocaleSwitcher {
    public void setLocale(HttpServletRequest request, HttpServletResponse response) {
        String lang = request.getParameter("lang");
        Locale locale = new Locale(lang);
        request.getSession().setAttribute("locale", locale);
        response.sendRedirect(request.getHeader("Referer"));
    }
}

এখানে, lang প্যারামিটার ব্যবহার করে লোকাল পরিবর্তন করা হয়েছে এবং সেশন এ সেট করা হয়েছে।


Java EE তে i18n কনফিগারেশন এবং রিসোর্স হ্যান্ডলিং এর মাধ্যমে অ্যাপ্লিকেশনগুলোকে বিভিন্ন ভাষা এবং সংস্কৃতির জন্য সমর্থনযোগ্য করা যায়। Resource Bundle ব্যবহার, Locale Handling, JSP i18n ট্যাগ এবং Date/Number Formatting এর মাধ্যমে আপনি Java EE অ্যাপ্লিকেশনগুলিকে সঠিকভাবে ইন্টারন্যাশনালাইজড করতে পারবেন। এছাড়া, Locale Switching এর মাধ্যমে ব্যবহারকারীর অভিজ্ঞতাকে আরো কাস্টমাইজড করা যায়, এবং প্রয়োজন অনুযায়ী নতুন ভাষা যোগ করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...