GUI Components এর জন্য Dynamic Locale Switching

JavaFX এবং Swing এ i18n Support - জাভা ইন্টারন্যাশনালাইজেশন (Java Internalization) - Java Technologies

277

Java GUI (Graphical User Interface) অ্যাপ্লিকেশনগুলিতে ইন্টারন্যাশনালাইজেশন (i18n) বা আন্তর্জাতিককরণের জন্য Dynamic Locale Switching খুবই গুরুত্বপূর্ণ। এটি ব্যবহারকারীদের তাদের পছন্দসই ভাষায় অ্যাপ্লিকেশন ব্যবহার করার সুযোগ দেয়, এবং ডাইনামিকভাবে ভাষা পরিবর্তন করার সময় GUI কম্পোনেন্টগুলোর কনটেন্ট আপডেট হয়।

Java Swing ব্যবহার করে GUI তৈরি করা হয়, এবং ResourceBundle ব্যবহার করে বিভিন্ন ভাষার রিসোর্স লোড করা হয়। Dynamic Locale Switching এর মাধ্যমে ব্যবহারকারী সহজেই GUI-এর ভাষা পরিবর্তন করতে পারে।

এখানে একটি উদাহরণ দেওয়া হচ্ছে, যেখানে Java Swing GUI-তে Dynamic Locale Switching করা হয়েছে:

উদাহরণ: Dynamic Locale Switching in Java GUI

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class DynamicLocaleSwitching extends JFrame {

    private JLabel label;
    private JButton button;
    private JComboBox<String> languageComboBox;
    private ResourceBundle bundle;

    public DynamicLocaleSwitching() {
        // JFrame সেটআপ
        setTitle("Dynamic Locale Switching Example");
        setSize(400, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        // JComboBox ড্রপডাউন তৈরি করে, যেখান থেকে ভাষা সিলেক্ট করা হবে
        languageComboBox = new JComboBox<>(new String[] { "English", "বাংলা", "Français" });
        languageComboBox.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                updateLocale();
            }
        });

        // লেবেল এবং বাটন
        label = new JLabel("Greeting");
        button = new JButton("Click Me");

        // লেআউট সেট করা
        setLayout(new FlowLayout());
        add(languageComboBox);
        add(label);
        add(button);

        // প্রথমে ইংরেজি ভাষা লোড করা
        updateLocale();
    }

    private void updateLocale() {
        // সিলেক্ট করা ভাষার উপর ভিত্তি করে Locale সেট করা
        Locale locale = Locale.ENGLISH; // Default to English
        String selectedLanguage = (String) languageComboBox.getSelectedItem();
        if (selectedLanguage.equals("বাংলা")) {
            locale = new Locale("bn", "BD");
        } else if (selectedLanguage.equals("Français")) {
            locale = Locale.FRENCH;
        }

        // Locale অনুযায়ী ResourceBundle লোড করা
        bundle = ResourceBundle.getBundle("messages", locale);

        // UI কম্পোনেন্টগুলো আপডেট করা
        label.setText(bundle.getString("greeting"));
        button.setText(bundle.getString("button"));
    }

    public static void main(String[] args) {
        // GUI টিকে দেখানোর জন্য main মেথড
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new DynamicLocaleSwitching().setVisible(true);
            }
        });
    }
}

ব্যাখ্যা:

  1. Locale এবং ResourceBundle:
    • Locale ব্যবহার করে আমরা স্থানীয় ভাষার জন্য সেটিংস তৈরি করি। উদাহরণস্বরূপ, "বাংলা" ভাষার জন্য new Locale("bn", "BD") ব্যবহার করা হয়।
    • ResourceBundle ব্যবহার করে আমরা সেই ভাষার জন্য স্ট্রিং রিসোর্স লোড করি, যা UI কম্পোনেন্টে দেখানো হবে।
  2. JComboBox (Language Selection):
    • এখানে একটি JComboBox ব্যবহার করা হয়েছে, যেখানে ব্যবহারকারী তার পছন্দের ভাষা নির্বাচন করতে পারেন (ইংরেজি, বাংলা, ফরাসি)।
  3. Dynamic Locale Switching:
    • updateLocale() মেথডে ভাষা পরিবর্তন করার জন্য Locale এবং ResourceBundle পুনরায় লোড করা হয়। এরপর UI কম্পোনেন্ট যেমন JLabel এবং JButton এ রিসোর্সের মান সেট করা হয়।
  4. Resource Bundle:

    • একটি messages.properties ফাইল তৈরি করতে হবে, যেখানে কীগুলির জন্য বিভিন্ন ভাষার মান রাখা হবে। যেমন:

    messages_en.properties:

    greeting=Hello
    button=Click Me
    

    messages_bn.properties:

    greeting=হ্যালো
    button=আমাকে ক্লিক করুন
    

    messages_fr.properties:

    greeting=Bonjour
    button=Cliquez sur moi
    
  5. GUI উপাদান আপডেট:
    • ভাষা পরিবর্তন হলে, UI কম্পোনেন্টগুলি যেমন লেবেল এবং বাটন ডাইনামিকভাবে আপডেট হয়।

এই প্রযুক্তি ব্যবহারের সুবিধা:

  • ব্যবহারকারীর পছন্দ অনুযায়ী ভাষা পরিবর্তন: ব্যবহারকারীরা তাদের পছন্দের ভাষায় অ্যাপ্লিকেশন ব্যবহার করতে পারেন।
  • স্বচ্ছতা: সমস্ত ভাষার জন্য পৃথক রিসোর্স ফাইল তৈরি করা হয়, যা অ্যাপ্লিকেশনটিকে আরও পরিষ্কার ও ব্যাবহারযোগ্য করে তোলে।
  • নির্ভরযোগ্যতা: এটি সরাসরি Locale এবং ResourceBundle ব্যবহারের মাধ্যমে কাজ করে, যা Java এর ইন্টারন্যাশনালাইজেশন সুবিধার সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ।

এইভাবে Java GUI অ্যাপ্লিকেশনগুলিতে ডাইনামিক লোকল সুইচিং সহজেই ব্যবহার করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...