JSF এর মধ্যে Internationalization (i18n) কনফিগার করা

JSF এর মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট (i18n) - জেএসএফ (JSF) - Web Development

201

Internationalization (i18n) হল এমন একটি প্রক্রিয়া যার মাধ্যমে একটি অ্যাপ্লিকেশনকে বিভিন্ন ভাষা এবং অঞ্চল অনুযায়ী কাস্টমাইজ করা যায়, যাতে তা বিশ্বব্যাপী ব্যবহারকারীদের জন্য উপযুক্ত হয়। JSF ফ্রেমওয়ার্কে Internationalization (i18n) কনফিগার করা সহজ এবং এটি কয়েকটি গুরুত্বপূর্ণ পদক্ষেপের মাধ্যমে করা যায়। এর মাধ্যমে আপনি ভাষার ভিত্তিতে UI উপাদানগুলি, বার্তা, এবং অন্যান্য টেক্সট পরিবর্তন করতে পারেন।

JSF তে Internationalization (i18n) কনফিগারেশন


JSF ফ্রেমওয়ার্কে Internationalization (i18n) কনফিগার করার জন্য নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করতে হবে:

  1. মাল্টি-ল্যাঙ্গুয়েজ প্রপার্টি ফাইল তৈরি করা
  2. Faces Config ফাইলে কনফিগারেশন
  3. JSF পেজে বার্তা এবং লেবেল ব্যবহার করা
  4. ল্যাঙ্গুয়েজ চয়েস বা ভাষা পরিবর্তনের অপশন যুক্ত করা

১. মাল্টি-ল্যাঙ্গুয়েজ প্রপার্টি ফাইল তৈরি করা


প্রথমে, আপনি আপনার অ্যাপ্লিকেশনের জন্য একাধিক প্রপার্টি ফাইল তৈরি করবেন, যেখানে বিভিন্ন ভাষার জন্য বার্তা এবং লেবেল থাকবে। সাধারণত, প্রতিটি ভাষার জন্য একটি আলাদা প্রপার্টি ফাইল তৈরি করা হয়। প্রপার্টি ফাইলের নামের শেষে ল্যাঙ্গুয়েজ কোড এবং দেশের কোড ব্যবহার করা হয় (যেমন messages_en_US.properties বা messages_fr_FR.properties)।

উদাহরণ: messages_en_US.properties (ইংরেজি)

greeting=Welcome to our application!
login=Please login to continue.

উদাহরণ: messages_fr_FR.properties (ফরাসি)

greeting=Bienvenue dans notre application!
login=Veuillez vous connecter pour continuer.

এখানে, messages_en_US.properties ফাইলে ইংরেজি বার্তা এবং messages_fr_FR.properties ফাইলে ফরাসি বার্তা রয়েছে।

২. Faces Config ফাইলে কনফিগারেশন


এখন আপনাকে faces-config.xml ফাইলে আন্তর্জাতিকীকরণ কনফিগারেশন করতে হবে, যাতে JSF জানে কোন প্রপার্টি ফাইল ব্যবহার করতে হবে এবং কোন ভাষা বা লোকেল প্রদর্শিত হবে।

উদাহরণ: faces-config.xml কনফিগারেশন

<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                  http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
              version="2.0">
  
    <application>
        <locale-config>
            <default-locale>en_US</default-locale>
        </locale-config>
    </application>
  
</faces-config>

এখানে:

  • <default-locale>: এটি অ্যাপ্লিকেশনের ডিফল্ট লোকেল (ভাষা) সেট করে। আপনি এটিকে en_US বা অন্য ভাষার লোকেলে পরিবর্তন করতে পারেন।

৩. JSF পেজে বার্তা এবং লেবেল ব্যবহার করা


এখন, JSF পেজে বিভিন্ন ভাষার বার্তা প্রদর্শন করতে হবে। এটি করার জন্য, <h:outputText> বা <h:message> ট্যাগের মাধ্যমে প্রপার্টি ফাইল থেকে বার্তা লোড করা যেতে পারে।

উদাহরণ: JSF পেজ (XHTML) – বার্তা লোড করা

<h:outputText value="#{msg.greeting}" />
<h:outputText value="#{msg.login}" />

এখানে:

  • #{msg.greeting} এবং #{msg.login} হল প্রপার্টি ফাইল থেকে বার্তা রিড করার জন্য JSF এর EL (Expression Language)।

প্রপার্টি ফাইল সেটআপ

JSF এর মাধ্যমে বার্তা প্রদর্শন করতে, আপনাকে msg নামক একটি Managed Bean তৈরি করতে হবে যা ResourceBundle ব্যবহার করবে।

import javax.faces.bean.ManagedBean;
import java.util.ResourceBundle;

@ManagedBean
public class MessageBean {
    private ResourceBundle bundle = ResourceBundle.getBundle("messages");

    public String getGreeting() {
        return bundle.getString("greeting");
    }

    public String getLogin() {
        return bundle.getString("login");
    }
}

এখানে:

  • ResourceBundle ব্যবহার করা হচ্ছে messages প্রপার্টি ফাইল থেকে বার্তা রিড করার জন্য।

৪. ল্যাঙ্গুয়েজ চয়েস বা ভাষা পরিবর্তনের অপশন যুক্ত করা


আপনি ব্যবহারকারীদের ভাষা পরিবর্তন করার জন্য একটি language selector বা dropdown menu তৈরি করতে পারেন। যখন ব্যবহারকারী ভাষা পরিবর্তন করবে, তখন অ্যাপ্লিকেশনটি নতুন ভাষায় রিফ্রেশ হবে।

উদাহরণ: Language Selection Dropdown

<h:form>
    <h:selectOneMenu value="#{languageBean.selectedLanguage}">
        <f:selectItem itemLabel="English" itemValue="en_US" />
        <f:selectItem itemLabel="French" itemValue="fr_FR" />
        <f:ajax listener="#{languageBean.changeLanguage}" render="messages" />
    </h:selectOneMenu>
</h:form>

<h:outputText id="messages" value="#{msg.greeting}" />

Managed Bean for Language Selection

import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import java.util.Locale;
import java.util.ResourceBundle;

@ManagedBean
public class LanguageBean {
    private String selectedLanguage = "en_US";

    public String getSelectedLanguage() {
        return selectedLanguage;
    }

    public void setSelectedLanguage(String selectedLanguage) {
        this.selectedLanguage = selectedLanguage;
    }

    public void changeLanguage() {
        FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(selectedLanguage));
    }
}

এখানে:

  • <f:ajax> ব্যবহার করে যখন ব্যবহারকারী ভাষা পরিবর্তন করবে, তখন changeLanguage মেথডটি কল হবে এবং পেজ রিফ্রেশ হবে নতুন ভাষায়।

সারাংশ


JSF তে Internationalization (i18n) কনফিগার করা একটি সহজ এবং কার্যকর প্রক্রিয়া। এটি আপনাকে একাধিক ভাষায় অ্যাপ্লিকেশন কনফিগার করার এবং বিভিন্ন ভাষায় বার্তা প্রদর্শন করতে সহায়তা করে। এর জন্য আপনাকে প্রপার্টি ফাইল, faces-config.xml এবং Managed Bean ব্যবহারের মাধ্যমে ভাষার সেটিংস এবং বার্তা লোড করতে হবে। ভাষা পরিবর্তনের জন্য আপনি JSF AJAX ব্যবহার করে ব্যবহারকারীদের জন্য একটি ডাইনামিক ভাষা চয়েস ইন্টারফেস তৈরি করতে পারেন, যা অ্যাপ্লিকেশনকে আন্তর্জাতিকীকরণের জন্য প্রস্তুত করে।

Content added By
Promotion

Are you sure to start over?

Loading...