Swing Components (JLabel, JButton) এর Localization

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

241

জাভা Swing অ্যাপ্লিকেশনগুলি ইন্টারন্যাশনালাইজ করার সময়, Swing কম্পোনেন্ট (যেমন JLabel, JButton, JTextField ইত্যাদি) এর টেক্সট লোকালাইজেশন করতে হয় যাতে সেগুলি বিভিন্ন ভাষায় প্রদর্শিত হতে পারে। এই প্রক্রিয়াটি সাধারণত Localization নামে পরিচিত।

Swing কম্পোনেন্টগুলোর টেক্সট লোকালাইজ করতে, আমরা Java Resource Bundles ব্যবহার করি। এটি একটি কৌশল যা ভিন্ন ভিন্ন ভাষার জন্য আলাদা আলাদা রিসোর্স ফাইল (যেমন .properties ফাইল) তৈরি করে এবং সেই ফাইলগুলো ব্যবহার করে টেক্সট প্রদর্শন করা হয়।

Localization এর মাধ্যমে Swing কম্পোনেন্টের টেক্সট পরিবর্তন:

1. Resource Bundle তৈরি করা:

প্রথমে, আমাদের দুটি .properties ফাইল তৈরি করতে হবে, যেগুলো বিভিন্ন ভাষার জন্য কনফিগারেশন রাখবে। উদাহরণস্বরূপ, একটি ইংরেজি এবং একটি বাংলা ভাষার জন্য ফাইল তৈরি করা হবে।

messages_en.properties (ইংরেজি ভাষার জন্য)

label.hello=Hello
button.clickMe=Click Me

messages_bn.properties (বাংলা ভাষার জন্য)

label.hello=হ্যালো
button.clickMe=আমাকে ক্লিক করুন

2. Swing অ্যাপ্লিকেশন তৈরি করা:

এখন আমরা একটি Swing অ্যাপ্লিকেশন তৈরি করব যা JLabel এবং JButton কম্পোনেন্টগুলির টেক্সট লোকালাইজ করবে।

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

public class LocalizationExample {

    // মেথডটি লোকেল অনুযায়ী রিসোর্স বান্ডেল লোড করবে
    private static ResourceBundle messages;

    public static void main(String[] args) {
        // লোকেল সেট করা (এখানে বাংলা লোকেল ব্যবহার করা হচ্ছে)
        Locale locale = new Locale("bn", "BD");
        messages = ResourceBundle.getBundle("messages", locale);  // ResourceBundle লোড করা

        // GUI তৈরির জন্য Swing কোড
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                createGUI();
            }
        });
    }

    // GUI কম্পোনেন্ট তৈরি করা
    private static void createGUI() {
        JFrame frame = new JFrame("Swing Localization Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);

        // JLabel এবং JButton তৈরি এবং লোকালাইজেশন
        JLabel label = new JLabel(messages.getString("label.hello"));
        JButton button = new JButton(messages.getString("button.clickMe"));

        // কন্টেইনারে কম্পোনেন্ট যোগ করা
        frame.setLayout(new FlowLayout());
        frame.add(label);
        frame.add(button);

        frame.setVisible(true);
    }
}

3. কোড ব্যাখ্যা:

  • ResourceBundle.getBundle("messages", locale): এখানে messages নামের রিসোর্স বান্ডেলটি লোড করা হচ্ছে। locale অনুযায়ী এটি ইংরেজি বা বাংলা ফাইলটি লোড করবে।
  • JLabel এবং JButton: এই কম্পোনেন্টগুলির টেক্সট messages.getString("label.hello") এবং messages.getString("button.clickMe") এর মাধ্যমে লোকালাইজড করা হচ্ছে।
  • Swing UI: একটি JFrame তৈরি করা হচ্ছে যাতে একটি JLabel এবং একটি JButton যোগ করা হয়। এই দুটি কম্পোনেন্টের টেক্সট সেই ভাষায় প্রদর্শিত হবে যা ResourceBundle থেকে লোড করা হয়েছে।

4. ফলাফল:

যদি আপনি কোডটি ইংরেজি messages_en.properties ফাইলের সাথে চালান, তবে আউটপুট হবে:

  • JLabel: Hello
  • JButton: Click Me

এবং যদি আপনি বাংলা messages_bn.properties ফাইলটি ব্যবহার করেন, তবে আউটপুট হবে:

  • JLabel: হ্যালো
  • JButton: আমাকে ক্লিক করুন

এইভাবে, আপনি জাভা Swing অ্যাপ্লিকেশনে JLabel, JButton ইত্যাদি কম্পোনেন্টের টেক্সট লোকালাইজ করতে পারেন। আপনি বিভিন্ন ভাষার জন্য আলাদা আলাদা .properties ফাইল তৈরি করে, প্রতিটি ফাইলে বিভিন্ন ভাষায় টেক্সট সংরক্ষণ করে এবং ResourceBundle ব্যবহার করে তা লোড করতে পারেন। এর মাধ্যমে আপনার অ্যাপ্লিকেশনটি বিভিন্ন ভাষায় স্বয়ংক্রিয়ভাবে পরিবর্তিত হতে পারে, যা ইন্টারন্যাশনালাইজেশন এবং লোকালাইজেশনকে সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...