Vaadin অ্যাপ্লিকেশনগুলিতে Resource Bundle এবং Translation Files ব্যবহার করা একটি গুরুত্বপূর্ণ ফিচার, যা আপনার অ্যাপ্লিকেশনকে বিভিন্ন ভাষায় অনুবাদ করতে সহায়তা করে। এটি বিশেষভাবে ইন্টারন্যাশনালাইজেশন (i18n) এবং লোকালাইজেশন (l10n) নিশ্চিত করতে ব্যবহৃত হয়, যাতে অ্যাপ্লিকেশনটি বিভিন্ন ভাষায় কাজ করতে পারে।
Resource Bundle কী?
Resource Bundle হল একটি ক্লাস যা বিভিন্ন ভাষার জন্য স্ট্রিং রিসোর্স সংরক্ষণ করে। আপনি যখন অ্যাপ্লিকেশনটি বিভিন্ন ভাষায় চালাতে চান, তখন আপনি একটি রিসোর্স বান্ডল তৈরি করেন যা একটি নির্দিষ্ট ভাষায় আপনার অ্যাপ্লিকেশনের স্ট্রিংগুলো ধারণ করবে। এই ফিচারটি আপনাকে অ্যাপ্লিকেশনটিকে একাধিক ভাষায় কাস্টমাইজ করার সুযোগ দেয়।
Translation Files কী?
Translation Files সাধারণত একটি .properties ফাইল হিসেবে থাকে, যেখানে ভাষাভিত্তিক স্ট্রিংগুলি সংরক্ষিত থাকে। যেমন, ইংরেজি ভাষার জন্য একটি messages_en.properties ফাইল, বাংলা ভাষার জন্য messages_bn.properties ফাইল ইত্যাদি। এই ফাইলগুলিতে আপনি ইউজার ইন্টারফেসের বিভিন্ন টেক্সট স্ট্রিং যেমন বাটন টেক্সট, ট্যাব নাম, লেবেল ইত্যাদি স্টোর করেন।
Vaadin-এ Resource Bundle এবং Translation Files ব্যবহার করা
Vaadin অ্যাপ্লিকেশনে Resource Bundle এবং Translation Files ব্যবহার করার জন্য কিছু ধাপ অনুসরণ করতে হবে:
১. Translation Files তৈরি করা
আপনার অ্যাপ্লিকেশনের জন্য বিভিন্ন ভাষায় অনুবাদ সংরক্ষণ করতে .properties ফাইল ব্যবহার করা হয়। আপনি অ্যাপ্লিকেশনটির জন্য একটি src/main/resources ডিরেক্টরির মধ্যে একটি messages ফোল্ডার তৈরি করবেন, যেখানে ভাষাভিত্তিক .properties ফাইল থাকবে।
উদাহরণ:
messages_en.properties (ইংরেজি)
greeting=Hello welcome=Welcome to Vaadin Application submitButton=Submitmessages_bn.properties (বাংলা)
greeting=হ্যালো welcome=ভাডিন অ্যাপ্লিকেশনে স্বাগতম submitButton=জমা দিন
এইভাবে আপনি বিভিন্ন ভাষার জন্য .properties ফাইল তৈরি করতে পারেন।
২. Resource Bundle তৈরি করা
Vaadin অ্যাপ্লিকেশনে Resource Bundle ব্যবহার করার জন্য Java ক্লাসে ResourceBundle লোড করতে হয় এবং সেই রিসোর্সগুলি অ্যাক্সেস করতে হয়।
import java.util.ResourceBundle;
public class Localization {
private static ResourceBundle bundle;
static {
// Default language (English)
bundle = ResourceBundle.getBundle("messages");
}
public static String getTranslation(String key) {
return bundle.getString(key);
}
public static void setLocale(String language) {
// Load a specific language bundle
bundle = ResourceBundle.getBundle("messages", new Locale(language));
}
}
এখানে, ResourceBundle.getBundle("messages") দিয়ে ডিফল্ট ভাষা (যেমন ইংরেজি) এর .properties ফাইল লোড করা হচ্ছে। আপনি setLocale() মেথড ব্যবহার করে ভাষা পরিবর্তন করতে পারেন।
৩. Vaadin কম্পোনেন্টে Translation ব্যবহার করা
Vaadin অ্যাপ্লিকেশনে ResourceBundle এর স্ট্রিংগুলিকে UI কম্পোনেন্টে প্রদর্শন করতে পারেন। উদাহরণস্বরূপ, একটি Button এর টেক্সট নির্দিষ্ট ভাষায় প্রদর্শন করতে:
Button submitButton = new Button(Localization.getTranslation("submitButton"));
এখানে, Localization.getTranslation("submitButton") দিয়ে আপনি .properties ফাইল থেকে submitButton কী এর মান গ্রহণ করে বাটনের টেক্সট হিসেবে সেট করবেন।
৪. Locale পরিবর্তন করা
যখন ইউজার ভাষা পরিবর্তন করতে চান, তখন setLocale() মেথড ব্যবহার করে আপনি Resource Bundle এর ভাষা পরিবর্তন করতে পারেন।
// Change language to Bengali
Localization.setLocale("bn");
এর মাধ্যমে বাংলা ভাষার স্ট্রিংগুলি লোড হবে এবং অ্যাপ্লিকেশনটি বাংলা ভাষায় প্রদর্শিত হবে।
৫. Vaadin 14+ তে Localization এবং Translation
Vaadin 14 এবং তার পরবর্তী সংস্করণে @Translation অ্যানোটেশন এবং TranslationService ব্যবহারের মাধ্যমে লোকালাইজেশন সহজ করা হয়েছে।
উদাহরণ:
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.i18n.LocaleChangeEvent;
import com.vaadin.flow.i18n.LocaleChangeListener;
import com.vaadin.flow.i18n.Translatable;
@Route
public class MainView extends VerticalLayout implements LocaleChangeListener {
public MainView() {
Button submitButton = new Button(getTranslation("submitButton"));
add(submitButton);
}
@Override
public void localeChange(LocaleChangeEvent event) {
// Reload translations when language changes
submitButton.setText(getTranslation("submitButton"));
}
}
এখানে @Translation অ্যানোটেশন এবং getTranslation() মেথড ব্যবহার করে আপনি UI কম্পোনেন্টে অনুবাদগুলি সরাসরি প্রদর্শন করতে পারেন।
সারাংশ
Vaadin-এ Resource Bundle এবং Translation Files ব্যবহার করে আপনার অ্যাপ্লিকেশনকে একাধিক ভাষায় লোকালাইজ করা সম্ভব। এটি আপনাকে সহজে আন্তর্জাতিক ব্যবহারকারীদের জন্য অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। .properties ফাইলগুলি ভাষাভিত্তিক স্ট্রিং সংরক্ষণ করতে ব্যবহৃত হয়, এবং Java কোডের মাধ্যমে সেগুলি অ্যাক্সেস করা হয়। Vaadin-এ লোকালাইজেশন খুবই সহজ এবং কার্যকরী, যা UI কে বিভিন্ন ভাষায় কাস্টমাইজ করার সুযোগ দেয়।
Read more