JavaFX তে i18n কনফিগার করা

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

290

JavaFX এর মাধ্যমে GUI অ্যাপ্লিকেশন তৈরি করার সময়, আন্তর্জাতিককরণের (i18n) মাধ্যমে বিভিন্ন ভাষায় অ্যাপ্লিকেশনকে স্থানীয়করণের জন্য প্রস্তুত করা গুরুত্বপূর্ণ। JavaFX অ্যাপ্লিকেশনগুলিতে i18n কনফিগার করার জন্য, রিসোর্স ব্যান্ডল (Resource Bundle) ব্যবহার করা হয়, যা স্থানীয় ভাষায় স্ট্রিং এবং অন্যান্য উপাদান সংরক্ষণ করে।

JavaFX তে i18n কনফিগার করার জন্য নিচে কিছু গুরুত্বপূর্ণ পদক্ষেপ দেওয়া হলো:

1. Resource Bundle তৈরি করুন

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

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

greeting=Hello
exitButton=Exit

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

greeting=Bonjour
exitButton=Sortir

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

JavaFX অ্যাপ্লিকেশন তৈরির জন্য একটি Application ক্লাস তৈরি করতে হবে। এখানে আপনি ResourceBundle ব্যবহার করে ভাষার নির্দিষ্ট স্ট্রিংগুলি লোড করবেন।

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.util.Locale;
import java.util.ResourceBundle;

public class MainApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        // বর্তমান Locale সংগ্রহ করা
        Locale currentLocale = Locale.getDefault(); // ডিফল্ট লোকাল (যেমন en_US)
        
        // ResourceBundle লোড করা
        ResourceBundle resources = ResourceBundle.getBundle("messages", currentLocale);

        // JavaFX UI তৈরি করা
        StackPane root = new StackPane();
        Button btn = new Button();
        
        // ResourceBundle থেকে স্ট্রিং লোড করা
        btn.setText(resources.getString("greeting"));  // greeting = "Hello" or "Bonjour"
        
        // বাটন টেক্সট সেট করা
        btn.setOnAction(event -> System.out.println(resources.getString("exitButton"))); // exitButton = "Exit" or "Sortir"
        
        root.getChildren().add(btn);
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("Internationalization Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

3. FXML ফাইলের সাথে সংযুক্ত করা

আপনি যদি JavaFX এর FXML ব্যবহার করেন, তবে আপনি UI উপাদানগুলিকে Resource Bundle এর মাধ্যমে লোকালাইজ করতে পারেন। নিচে একটি উদাহরণ দেয়া হলো:

MainApp.fxml

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.StackPane?>

<StackPane xmlns:fx="http://javafx.com/fxml" fx:controller="MainController">
    <Button text="%greeting"/>
</StackPane>

MainController.java

import javafx.fxml.FXML;
import javafx.scene.control.Button;

import java.util.ResourceBundle;

public class MainController {
    
    @FXML
    private Button greetingButton;

    public void initialize() {
        // রিসোর্স ব্যান্ডল লোড করা
        ResourceBundle resources = ResourceBundle.getBundle("messages", Locale.getDefault());
        greetingButton.setText(resources.getString("greeting"));
    }
}

4. Locale পরিবর্তন করা (Dynamic Language Switching)

আপনার অ্যাপ্লিকেশনে যদি ব্যবহারকারীকে ভাষা পরিবর্তন করার সুযোগ দিতে চান, তবে আপনি Locale পরিবর্তন করে UI পুনরায় লোড করতে পারেন। এখানে একটি উদাহরণ দেওয়া হলো:

public void changeLanguage(Locale locale) {
    ResourceBundle resources = ResourceBundle.getBundle("messages", locale);
    greetingButton.setText(resources.getString("greeting"));
}

এখানে changeLanguage মেথড ব্যবহার করে আপনি ভাষা পরিবর্তন করতে পারবেন এবং UI-তে তা প্রতিফলিত হবে।

5. কিছু সেরা অভ্যাস

  • Unicode ব্যবহার করুন: আপনার অ্যাপ্লিকেশনটি সমস্ত ভাষার চরিত্র সঠিকভাবে প্রদর্শন করতে UTF-8 বা UTF-16 এনকোডিং ব্যবহার করুন।
  • ব্যবহারকারী ইন্টারফেস নমনীয় করুন: বিভিন্ন ভাষার মধ্যে শব্দের দৈর্ঘ্য পরিবর্তন হতে পারে, তাই UI উপাদানগুলির আকারে নমনীয়তা নিশ্চিত করুন।
  • কী-ভ্যালু পেয়ার ব্যবহার করুন: স্ট্রিংগুলি কোডের মধ্যে রেখে তাদের পরিবর্তন করা কঠিন হতে পারে, তাই রিসোর্স ব্যান্ডল ব্যবহার করুন।
  • বিভিন্ন ভাষার জন্য আলাদা ফাইল: প্রতি ভাষার জন্য আলাদা .properties ফাইল রাখুন, যেমন messages_en.properties, messages_fr.properties

এইভাবে আপনি JavaFX অ্যাপ্লিকেশন তৈরি করতে পারবেন যা সহজেই বিভিন্ন ভাষা এবং অঞ্চল অনুযায়ী স্থানীয়করণ করা যাবে।

Content added By
Promotion

Are you sure to start over?

Loading...