Skill

ইন্টারন্যাশনালাইজেশন (i18n) এবং লোকালাইজেশন (l10n)

ভাডিন (Vaadin) - Web Development

271

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

ইন্টারন্যাশনালাইজেশন (i18n) কী?


ইন্টারন্যাশনালাইজেশন (i18n) একটি প্রক্রিয়া যা সফটওয়্যারের ডিজাইন এবং ডেভেলপমেন্টে বিভিন্ন ভাষা এবং সাংস্কৃতিক ব্যবধানের জন্য প্রস্তুত তৈরি করে। এর মধ্যে থাকে ভাষাগত পরিবর্তন, সংস্কৃতিগত পার্থক্য, মুদ্রা, সময়, তারিখ ফরম্যাট ইত্যাদি।

Vaadin এ i18n এর মাধ্যমে আপনি অ্যাপ্লিকেশনটির ইউআই ভাষা কাস্টমাইজ করতে পারেন এবং একাধিক ভাষা সমর্থন করতে পারেন, যা সফটওয়্যারটি বিভিন্ন অঞ্চলের ইউজারদের জন্য উপযুক্ত করে তোলে।

লোকালাইজেশন (l10n) কী?


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

Vaadin-এ লোকালাইজেশন ব্যবহার করে আপনি ইউজারের লোকাল ল্যাংগুয়েজ বা অঞ্চলের সাথে সঠিকভাবে যোগাযোগ করতে পারেন।


Vaadin এ i18n এবং l10n কিভাবে কাজ করে?


Vaadin এ i18n এবং l10n ব্যবস্থাপনা করার জন্য @Property এবং @Text অ্যানোটেশন ব্যবহার করা যায়, যা সহজেই বিভিন্ন ভাষার স্ট্রিং ম্যানেজমেন্টে সাহায্য করে। এছাড়া, Vaadin আপনাকে MessageSource এবং @CssImport এর মতো ফিচার সরবরাহ করে, যাতে আপনি একাধিক ভাষা এবং সংস্কৃতি সমর্থন করতে পারেন।

1. Vaadin i18n সিস্টেম কনফিগারেশন

Vaadin-এর i18n সিস্টেম কনফিগার করতে, আপনাকে প্রথমে এক বা একাধিক ভাষার রিসোর্স ফাইল তৈরি করতে হবে। সাধারণত এই ফাইলগুলো .properties ফরম্যাটে থাকে।

ইউরোপীয় ভাষা রিসোর্স ফাইল উদাহরণ:

  1. messages_en.properties (English)

    greeting=Hello, welcome to our website!
    button.submit=Submit
    
  2. messages_fr.properties (French)

    greeting=Bonjour, bienvenue sur notre site web!
    button.submit=Soumettre
    

2. MessagesSource ব্যবহার

Vaadin এ বিভিন্ন ভাষার স্ট্রিং অ্যাক্সেস করার জন্য MessageSource ব্যবহার করা হয়। এটি আপনাকে সহজেই বিভিন্ন ভাষার স্ট্রিং লোড এবং রেন্ডার করতে সাহায্য করে।

MessageSource কনফিগারেশন:

@Configuration
public class AppConfig {

    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasenames("messages/messages"); // পথ যেখানে messages_*.properties ফাইল রয়েছে
        return messageSource;
    }
}

3. ব্যবহার করা i18n স্ট্রিং

@Autowired এর মাধ্যমে MessageSource ইঞ্জেক্ট করার পর, আপনি অ্যাপ্লিকেশনটির ভেতরে যে কোনো জায়গায় এই স্ট্রিংগুলো ব্যবহার করতে পারবেন।

@Route("")
public class MainView extends VerticalLayout {

    @Autowired
    private MessageSource messageSource;

    public MainView() {
        // স্ট্রিং আনা
        String greetingMessage = messageSource.getMessage("greeting", null, Locale.getDefault());
        Button submitButton = new Button(messageSource.getMessage("button.submit", null, Locale.getDefault()));

        add(new H1(greetingMessage), submitButton);
    }
}

এখানে, getMessage() মেথডের মাধ্যমে বিভিন্ন ভাষার স্ট্রিং লোড করা হচ্ছে, এবং Locale.getDefault() ব্যবহার করা হচ্ছে বর্তমান ব্যবহারকারীর লোকাল সেটিংস অনুযায়ী।

4. লোকাল এবং ল্যাঙ্গুয়েজ চেঞ্জ করা

আপনি যদি চান ব্যবহারকারীর ভাষা পরিবর্তন করা, তবে তাদের জন্য একটি ড্রপডাউন বা বাটন যুক্ত করতে পারেন, যাতে তারা বিভিন্ন ভাষা সিলেক্ট করতে পারে।

ComboBox<String> languageComboBox = new ComboBox<>("Select Language");
languageComboBox.setItems("English", "Français");
languageComboBox.addValueChangeListener(event -> {
    if (event.getValue().equals("English")) {
        Locale.setDefault(Locale.ENGLISH);
    } else if (event.getValue().equals("Français")) {
        Locale.setDefault(Locale.FRENCH);
    }
});
add(languageComboBox);

এখানে, ব্যবহারকারী যখন একটি ভাষা নির্বাচন করবেন, তখন Locale.setDefault() এর মাধ্যমে সিস্টেমের লোকাল সেটিং পরিবর্তন হবে।

Vaadin এ i18n এবং l10n এর সুবিধা


  1. সহজ ভাষা পরিবর্তন: Vaadin আপনাকে অ্যাপ্লিকেশনে সহজে ভাষা পরিবর্তন করার সুবিধা দেয়, যা বিভিন্ন অঞ্চলের ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ।
  2. বিভিন্ন সংস্কৃতি সমর্থন: আপনি আপনার অ্যাপ্লিকেশনটি বিভিন্ন সংস্কৃতি এবং অঞ্চলের জন্য কাস্টমাইজ করতে পারেন, যেমন তারিখ, সময়, মুদ্রা ইত্যাদি।
  3. ডাইনামিক ভাষা সমর্থন: একাধিক ভাষা সমর্থন করার মাধ্যমে আপনি একটি গ্লোবাল ইউজার বেস তৈরি করতে পারেন।
  4. ফ্লেক্সিবল রিসোর্স ম্যানেজমেন্ট: .properties ফাইলের মাধ্যমে আপনি খুব সহজেই স্ট্রিং ফাইলগুলো ম্যানেজ করতে পারবেন এবং বিভিন্ন ভাষায় অ্যাপ্লিকেশন কনফিগার করতে পারবেন।

সারাংশ


Vaadin এ i18n এবং l10n ব্যবস্থাপনা খুবই সহজ এবং শক্তিশালী। আপনি MessageSource, @Property, এবং .properties ফাইল ব্যবহার করে বিভিন্ন ভাষার জন্য স্ট্রিং রিসোর্স ম্যানেজ করতে পারেন এবং ইউজারের লোকাল সেটিং অনুযায়ী অ্যাপ্লিকেশন কনফিগার করতে পারেন। এটি আপনার অ্যাপ্লিকেশনকে বৈশ্বিক ব্যবহারকারীদের জন্য উপযুক্ত এবং আরও অ্যাক্সেসযোগ্য করে তোলে।

Content added By

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

ইন্টারন্যাশনালাইজেশন কীভাবে কাজ করে?


Vaadin এ ইন্টারন্যাশনালাইজেশন মূলত টেক্সটের স্থানান্তর (translation) এবং লোকালাইজেশন (localization) এর মাধ্যমে কাজ করে। এর মধ্যে, টেক্সটের স্থানান্তর হল একটি ভাষা থেকে অন্য ভাষায় টেক্সট পরিবর্তন করা, আর লোকালাইজেশন হল সেই ভাষার সংস্কৃতি অনুযায়ী উপযুক্ত ফর্ম্যাট, মুদ্রা, তারিখ, সময় ইত্যাদি সেট করা।

Vaadin ইন্টারন্যাশনালাইজেশনের জন্য @DataProvider এবং @PropertyModel এর মতো কিছু বৈশিষ্ট্য ব্যবহার করে থাকে যা ডেটা ও UI উপাদানগুলোর ভাষাগত পার্থক্য পরিচালনা করতে সহায়ক হয়।

কেন ইন্টারন্যাশনালাইজেশন প্রয়োজন?


1. বিভিন্ন ভাষার সমর্থন

ইন্টারন্যাশনালাইজেশন অ্যাপ্লিকেশনটির মাধ্যমে বিভিন্ন ভাষার ব্যবহারকারীদের সেবা প্রদান করতে সক্ষম হয়। যেমন, একটি অ্যাপ্লিকেশন যদি শুধুমাত্র ইংরেজি ভাষায় থাকে, তবে অন্যান্য ভাষাভাষী ব্যবহারকারীরা এটি ব্যবহার করতে অক্ষম হতে পারে। ইন্টারন্যাশনালাইজেশন অ্যাপ্লিকেশনটিকে একাধিক ভাষায় রূপান্তরিত করে ব্যবহারকারীদের জন্য এটি আরও সহজলভ্য করে তোলে।

2. বিশ্বব্যাপী ব্যবহারকারীর কাছে অ্যাপ্লিকেশন পৌঁছানো

ইন্টারন্যাশনালাইজেশন অ্যাপ্লিকেশনকে বিশ্বের বিভিন্ন অঞ্চলের ব্যবহারকারীদের জন্য উপযোগী করে তোলে। এটা বিশেষভাবে গুরুত্বপূর্ণ যখন আপনি একটি অ্যাপ্লিকেশন বা ওয়েবসাইটকে আন্তর্জাতিক বাজারে প্রবেশ করতে চান।

3. সংস্কৃতি অনুসারে উপযুক্ততা

লোকালাইজেশন শুধুমাত্র ভাষা নয়, বরং বিভিন্ন সংস্কৃতির উপযোগিতা এবং চাহিদা অনুযায়ী অ্যাপ্লিকেশনটির উপস্থাপনাও পরিবর্তন করে। যেমন, কিছু সংস্কৃতিতে তারিখের বিন্যাস বা মুদ্রার চিহ্ন ভিন্ন হতে পারে, সেগুলো লোকালাইজেশন প্রক্রিয়ার মাধ্যমে সহজেই সমন্বয় করা যায়।

4. ব্যবহারকারীর অভিজ্ঞতা উন্নত করা

যদি কোনো অ্যাপ্লিকেশন ব্যবহারকারী তাদের মাতৃভাষায় ব্যবহার করতে পারে, তবে তাদের জন্য অ্যাপ্লিকেশনটি আরও সহজ ও বুঝতে সুবিধাজনক হয়ে ওঠে। এটি তাদের অভিজ্ঞতা উন্নত করে এবং অ্যাপ্লিকেশনের প্রতি আকর্ষণ বাড়ায়।

5. বাজারের বিস্তার

ইন্টারন্যাশনালাইজেশন একটি অ্যাপ্লিকেশনকে নতুন বাজারে প্রবেশ করার সুযোগ দেয়। বিশ্বের বিভিন্ন ভাষাভাষী জনগণের জন্য এটি অ্যাপ্লিকেশনটি উপযুক্ত করে তোলে, এবং এতে ব্যবসার বিকাশ সম্ভব হয়।

Vaadin এ ইন্টারন্যাশনালাইজেশন কিভাবে কাজ করে?


Vaadin এর মাধ্যমে ইন্টারন্যাশনালাইজেশন চালু করতে, আপনি কিছু সহজ পদক্ষেপ অনুসরণ করতে পারেন:

1. অনুবাদ ফাইল তৈরি

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

2. এপ্লিকেশন এর ভাষা পরিবর্তন করা

Vaadin ব্যবহার করে আপনি ইউজারের ভাষা অনুযায়ী অ্যাপ্লিকেশনটির ভাষা পরিবর্তন করতে পারেন। উদাহরণস্বরূপ:

Locale.setDefault(new Locale("fr", "FR")); // ফরাসি ভাষা সেট করা

3. টেক্সট অনুবাদ করা

যখন কোনো ব্যবহারকারী তাদের ভাষার মাধ্যমে অ্যাপ্লিকেশনটি ব্যবহার করবে, তখন সেই ভাষার জন্য প্রস্তুত করা অনুবাদ ফাইল থেকে টেক্সটগুলো প্রদর্শিত হবে।

Button button = new Button(getTranslation("login.button"));
  • getTranslation("login.button") এর মাধ্যমে অ্যাপ্লিকেশনটি ব্যবহারকারীর ভাষায় "login.button" এর অনুবাদ দেখাবে।

4. থিম এবং আঞ্চলিকতা সমর্থন

Vaadin এর মাধ্যমে আপনি বিভিন্ন থিম, মুদ্রা, তারিখের ফরম্যাট এবং টাইমজোন সেট করতে পারবেন যা নির্দিষ্ট অঞ্চলের সংস্কৃতি অনুযায়ী কাস্টমাইজ করা যাবে।

সারাংশ


ইন্টারন্যাশনালাইজেশন (i18n) হল এমন একটি প্রক্রিয়া যার মাধ্যমে অ্যাপ্লিকেশনটি বিভিন্ন ভাষায় এবং সংস্কৃতিতে কাজ করার উপযোগী হয়ে ওঠে। Vaadin এর মাধ্যমে সহজেই ইন্টারন্যাশনালাইজেশন পরিচালনা করা যায়, যা অ্যাপ্লিকেশনকে বিশ্বের বিভিন্ন ভাষাভাষী জনগণের জন্য প্রাপ্য ও ব্যবহারযোগ্য করে তোলে। এটি ব্যবসার বিস্তার, ব্যবহারকারীর অভিজ্ঞতা উন্নয়ন এবং আন্তর্জাতিক বাজারে প্রবেশের জন্য অপরিহার্য।

Content added By

লোকালাইজেশন একটি প্রক্রিয়া, যা ওয়েব অ্যাপ্লিকেশনকে বিভিন্ন ভাষায় বা অঞ্চলের জন্য কাস্টমাইজ করার মাধ্যমে তার ব্যবহারের অভিজ্ঞতাকে আরও উন্নত এবং ব্যবহারকারীদের ভাষা বা সংস্কৃতির সাথে সামঞ্জস্যপূর্ণ করে তোলে। Vaadin এ লোকালাইজেশন ইমপ্লিমেন্ট করার মাধ্যমে আপনি অ্যাপ্লিকেশনটি বিভিন্ন ভাষায় অনুবাদ করতে পারবেন এবং ইউজারের লোকাল সেটিংস অনুযায়ী প্রয়োজনীয় ভাষায় উপস্থাপন করতে পারবেন।

Vaadin এ লোকালাইজেশন এর মূল দিক


Vaadin এ লোকালাইজেশন প্রক্রিয়া সাধারণত Message Bundle এবং Locale ব্যবহারের মাধ্যমে করা হয়। এর মাধ্যমে আপনি অ্যাপ্লিকেশনের স্ট্যাটিক টেক্সট (যেমন: বোতাম, লেবেল, এবং মেসেজ) বিভিন্ন ভাষায় প্রদর্শন করতে পারবেন। এছাড়া, Locale এর মাধ্যমে আপনি ব্যবহারকারীর সিলেক্ট করা ভাষা বা অঞ্চল অনুযায়ী উপস্থাপনা পরিবর্তন করতে পারেন।

লোকালাইজেশন ইমপ্লিমেন্ট করার ধাপসমূহ


  1. Message Bundle তৈরি করা
  2. Locale সাপোর্ট যোগ করা
  3. ইউজারের ভাষা অনুসারে কনটেন্ট প্রদর্শন করা

1. Message Bundle তৈরি করা


Vaadin এ লোকালাইজেশন বাস্তবায়নের জন্য প্রথম ধাপ হলো একটি Message Bundle তৈরি করা, যা বিভিন্ন ভাষার জন্য কনফিগারেশন ফাইল হিসেবে কাজ করবে। সাধারণত, এটি messages.properties ফাইলের মাধ্যমে করা হয়।

উদাহরণ:

messages.properties (ডিফল্ট ইংরেজি)

welcome.message=Welcome to our application!
submit.button=Submit
cancel.button=Cancel

messages_fr.properties (ফরাসি)

welcome.message=Bienvenue dans notre application!
submit.button=Soumettre
cancel.button=Annuler

এখানে, messages.properties ফাইলটি ডিফল্ট ইংরেজি ভাষার জন্য এবং messages_fr.properties ফাইলটি ফরাসি ভাষার জন্য ব্যবহৃত হয়েছে।

2. Locale সাপোর্ট যোগ করা


Vaadin অ্যাপ্লিকেশনটি বিভিন্ন ভাষা সমর্থন করতে, আপনি Locale কনফিগারেশন করতে পারেন, যা ইউজারের ভাষা বা অঞ্চলের উপর ভিত্তি করে অ্যাপ্লিকেশনটি কনফিগার করবে।

উদাহরণ:

@Route("")
public class MainView extends VerticalLayout {
    public MainView() {
        // ইউজারের লোকাল অনুসারে ভাষা পরিবর্তন
        Locale locale = Locale.getDefault(); // ডিফল্ট লোকাল সেট করা
        setLocale(locale);  // লোকাল সেট করা

        // লোকালাইজড টেক্সট ফেচ করা
        String welcomeMessage = getTranslation("welcome.message");
        Button submitButton = new Button(getTranslation("submit.button"));
        Button cancelButton = new Button(getTranslation("cancel.button"));

        add(new Text(welcomeMessage), submitButton, cancelButton);
    }
}

এখানে, getTranslation() মেথড ব্যবহার করে বিভিন্ন ভাষার টেক্সট ফেচ করা হয়েছে। setLocale() মেথডটি ব্যবহারকারীর ডিফল্ট ভাষা বা নির্দিষ্ট ভাষা সেট করতে সাহায্য করে।

3. ইউজারের ভাষা অনুসারে কনটেন্ট প্রদর্শন করা


আপনি যদি অ্যাপ্লিকেশনে ডাইনামিক ভাষা স্যুইচ করার সুবিধা দিতে চান, তবে একটি ড্রপডাউন বা অন্যান্য ইউজার ইন্টারফেস উপাদান ব্যবহার করে ইউজারকে ভাষা নির্বাচন করতে সক্ষম করবেন। যেমন, একটি ভাষা পরিবর্তন করার বাটন বা ড্রপডাউন।

উদাহরণ:

@Route("")
public class MainView extends VerticalLayout {
    public MainView() {
        // ড্রপডাউন তৈরি করে ভাষা সিলেকশন
        ComboBox<String> languageComboBox = new ComboBox<>("Select Language");
        languageComboBox.setItems("English", "French");

        languageComboBox.addValueChangeListener(event -> {
            if (event.getValue().equals("French")) {
                setLocale(Locale.FRENCH);  // ফরাসি ভাষায় পরিবর্তন
            } else {
                setLocale(Locale.ENGLISH);  // ইংরেজি ভাষায় পরিবর্তন
            }
            getUI().ifPresent(ui -> ui.getPage().reload()); // UI রিলোড করা
        });

        String welcomeMessage = getTranslation("welcome.message");
        Button submitButton = new Button(getTranslation("submit.button"));

        add(languageComboBox, new Text(welcomeMessage), submitButton);
    }
}

এখানে, একটি ComboBox ব্যবহার করা হয়েছে যা ইউজারকে ভাষা নির্বাচন করতে দেয়। যখন ইউজার একটি ভাষা নির্বাচন করবে, তখন অ্যাপ্লিকেশনটি সেই ভাষায় রিলোড হবে এবং কনটেন্ট সেই ভাষায় প্রদর্শিত হবে।

4. ডেটা লোকালাইজেশন (ফর্ম্যাটিং)


Vaadin এ লোকালাইজেশন কেবল টেক্সটের অনুবাদ নয়, বরং ডেটা ফর্ম্যাটিংয়ের ক্ষেত্রেও গুরুত্বপূর্ণ। উদাহরণস্বরূপ, বিভিন্ন অঞ্চলের জন্য তারিখ বা সংখ্যা ফর্ম্যাট ভিন্ন হতে পারে। Vaadin এ NumberFormat এবং DateTimeFormat এর মাধ্যমে আপনি ডেটার ফরম্যাটও লোকালাইজ করতে পারেন।

উদাহরণ:

// তারিখ লোকালাইজেশন
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG)
        .withLocale(getLocale());
String formattedDate = LocalDate.now().format(formatter);

// সংখ্যা লোকালাইজেশন
NumberFormat numberFormat = NumberFormat.getInstance(getLocale());
String formattedNumber = numberFormat.format(123456.789);

add(new Text("Formatted Date: " + formattedDate));
add(new Text("Formatted Number: " + formattedNumber));

এখানে, DateTimeFormatter এবং NumberFormat ব্যবহার করে ডেটা লোকালাইজ করা হয়েছে।


সারাংশ


Vaadin অ্যাপ্লিকেশনে লোকালাইজেশন ইমপ্লিমেন্ট করার জন্য Message Bundle, Locale, এবং UI কাস্টমাইজেশন ব্যবহার করা হয়। এটি ইউজারকে তাদের ভাষা বা অঞ্চলের জন্য অ্যাপ্লিকেশনটি কাস্টমাইজ করে দেয়। getTranslation() মেথডের মাধ্যমে আপনি অ্যাপ্লিকেশনের টেক্সট বা বার্তাগুলো বিভিন্ন ভাষায় অনুবাদ করতে পারবেন, এবং Locale কনফিগারেশন ব্যবহার করে ইউজারের ভাষা সেট করতে পারবেন। Vaadin এর সাথে ডেটা ফর্ম্যাটিংয়ের মাধ্যমে আপনি সংখ্যা, তারিখ, এবং অন্যান্য ডেটার ফরম্যাটও সঠিকভাবে লোকালাইজ করতে পারেন।

Content added By

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 ফাইল থাকবে।

উদাহরণ:

  1. messages_en.properties (ইংরেজি)

    greeting=Hello
    welcome=Welcome to Vaadin Application
    submitButton=Submit
    
  2. messages_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 কে বিভিন্ন ভাষায় কাস্টমাইজ করার সুযোগ দেয়।

Content added By

Vaadin ফ্রেমওয়ার্কে Locale Switching এবং Multi-language Support প্রদান করা একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যার মাধ্যমে একটি ওয়েব অ্যাপ্লিকেশনকে বিভিন্ন ভাষায় কনফিগার করা যায়। এটি বিশেষত গ্লোবাল অ্যাপ্লিকেশন ডেভেলপ করার সময় উপকারী, যেখানে ব্যবহারকারীরা বিভিন্ন ভাষায় ইন্টারঅ্যাকশন করতে চান। Vaadin এর সাহায্যে আপনি সহজেই অ্যাপ্লিকেশনটি একাধিক ভাষায় সমর্থন প্রদান করতে পারবেন।

Locale কী?


Locale হলো ব্যবহারকারীর ভাষা, অঞ্চল এবং ভাষার সংস্করণ সম্পর্কিত সেটিংস। এটি অ্যাপ্লিকেশনের ভাষা পরিবর্তন, স্থানীয়তার ডেটা (যেমন তারিখ, সময়, মুদ্রা) প্রদর্শন এবং ইউজারের অভিজ্ঞতা কাস্টমাইজ করার জন্য ব্যবহৃত হয়।

Vaadin এ Locale Switching


Vaadin এ Locale Switching করার মাধ্যমে আপনি ব্যবহারকারীর ভাষা এবং আঞ্চলিক সেটিংস অনুযায়ী ইউআই কাস্টমাইজ করতে পারেন। Vaadin, Locale এবং I18N (Internationalization) সমর্থন প্রদান করে, যার মাধ্যমে আপনি অ্যাপ্লিকেশনে ভাষার পরিবর্তন করতে পারেন।

1. Locale পরিবর্তন করা

Vaadin অ্যাপ্লিকেশনে Locale পরিবর্তন করার জন্য আপনাকে Locale অবজেক্ট ব্যবহার করতে হবে। এই অবজেক্টের মাধ্যমে আপনি অ্যাপ্লিকেশনের ভাষা এবং আঞ্চলিক সেটিংস পরিবর্তন করতে পারবেন।

// Locale পরিবর্তন করা
Locale newLocale = new Locale("en", "US");  // ইংরেজি (যুক্তরাষ্ট্র)
UI.getCurrent().setLocale(newLocale);
  • এখানে new Locale("en", "US") দিয়ে ইংরেজি ভাষা এবং যুক্তরাষ্ট্রের অঞ্চলের জন্য Locale সেট করা হয়েছে।

2. Locale থেকে ভাষা ফাইল লোড করা

Vaadin আপনাকে ResourceBundle বা MessageSource ব্যবহার করে ভাষা ফাইল লোড করার সুযোগ দেয়। এই ফাইলগুলি properties ফাইল হিসেবে থাকে এবং সেগুলির মধ্যে প্রতিটি ভাষার জন্য বিভিন্ন মেসেজ থাকে।

উদাহরণ:

messages_en.properties:

greeting=Hello, welcome!

messages_fr.properties:

greeting=Bonjour, bienvenue!

এরপর, আপনি নিচের কোড ব্যবহার করে মেসেজ লোড করতে পারেন:

@Autowired
private MessageSource messageSource;

public String getGreetingMessage() {
    return messageSource.getMessage("greeting", null, UI.getCurrent().getLocale());
}
  • এখানে messageSource.getMessage() মেথডটি ব্যবহার করে greeting কী-এর মাধ্যমে অনুবাদ করা মেসেজটি নেয়া হয়েছে, এবং UI.getCurrent().getLocale() দিয়ে বর্তমান Locale গ্রহণ করা হয়েছে।

3. Locale Switching UI তৈরি করা

আপনি একটি ড্রপডাউন বা বাটন ব্যবহার করে ব্যবহারকারীকে Locale পরিবর্তন করার সুযোগ দিতে পারেন। উদাহরণস্বরূপ, একটি ভাষা পরিবর্তন করার জন্য ComboBox ব্যবহার করা যেতে পারে:

ComboBox<String> languageSelector = new ComboBox<>("Select Language");
languageSelector.setItems("English", "French", "Spanish");

languageSelector.addValueChangeListener(event -> {
    String selectedLanguage = event.getValue();
    Locale selectedLocale;
    switch (selectedLanguage) {
        case "French":
            selectedLocale = new Locale("fr", "FR");
            break;
        case "Spanish":
            selectedLocale = new Locale("es", "ES");
            break;
        default:
            selectedLocale = new Locale("en", "US");
    }
    UI.getCurrent().setLocale(selectedLocale);
});
  • এখানে ComboBox ব্যবহার করা হয়েছে, যাতে ব্যবহারকারী একটি ভাষা নির্বাচন করতে পারেন এবং সেই ভাষায় Locale পরিবর্তন হয়।

Multi-language Support (অধিক ভাষার সমর্থন)


Vaadin এর মাধ্যমে আপনি একাধিক ভাষার সমর্থন প্রদান করতে পারেন। এর জন্য, আপনাকে ভাষার জন্য বিভিন্ন properties ফাইল তৈরি করতে হবে এবং সেগুলিকে প্রয়োগ করতে হবে।

1. Multiple Languages জন্য MessageSource ব্যবহার করা

আপনি বিভিন্ন ভাষায় মেসেজ প্রদর্শনের জন্য MessageSource ব্যবহার করতে পারেন। এটি আপনাকে পৃথক পৃথক properties ফাইলের মাধ্যমে ভাষার অনুবাদ করতে সাহায্য করবে।

উদাহরণ:

messages.properties:

greeting=Hello, welcome!

messages_fr.properties:

greeting=Bonjour, bienvenue!

messages_es.properties:

greeting=¡Hola, bienvenido!

আপনার Java ক্লাসে:

@Autowired
private MessageSource messageSource;

public String getGreetingMessage() {
    return messageSource.getMessage("greeting", null, UI.getCurrent().getLocale());
}
  • এখানে messageSource.getMessage() ব্যবহার করে প্রতিটি ভাষার জন্য অনুবাদ করা মেসেজ পাওয়া যাচ্ছে।

2. Locale অনুযায়ী ফর্ম্যাটিং

Vaadin Locale ব্যবহার করে আপনি ডেটা ফর্ম্যাটিংও কাস্টমাইজ করতে পারেন, যেমন তারিখ, সময়, মুদ্রা ইত্যাদি। উদাহরণস্বরূপ:

DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
        .withLocale(UI.getCurrent().getLocale());
String formattedDate = formatter.format(LocalDate.now());
  • এখানে DateTimeFormatter ব্যবহার করে তারিখের ফরম্যাট Locale অনুযায়ী কাস্টমাইজ করা হয়েছে।

সারাংশ


Vaadin ফ্রেমওয়ার্কে Locale Switching এবং Multi-language Support অ্যাপ্লিকেশনকে একাধিক ভাষায় কনফিগার করতে সাহায্য করে। আপনি Locale সেট করে, MessageSource ব্যবহার করে এবং properties ফাইলের মাধ্যমে ভাষার অনুবাদ করে একটি আন্তর্জাতিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। Vaadin এর মাধ্যমে আপনি সহজেই অ্যাপ্লিকেশনটিকে বিভিন্ন ভাষায় কাস্টমাইজ করতে পারেন, যা গ্লোবাল অডিয়েন্সের জন্য একটি সুবিধাজনক অভিজ্ঞতা তৈরি করে।

Content added By
Promotion

Are you sure to start over?

Loading...