Spring MVC তে Dynamic Locale Management

Java EE এবং Spring Framework এ i18n Integration - জাভা ইন্টারন্যাশনালাইজেশন (Java Internalization) - Java Technologies

330

Spring MVC-তে Dynamic Locale Management (ডাইনামিক লোকেল ব্যবস্থাপনা) একটি গুরুত্বপূর্ণ বিষয়, যখন আপনার ওয়েব অ্যাপ্লিকেশনটি বিভিন্ন ভাষার জন্য স্থানিককরণ (Localization) সমর্থন করে। এটি ব্যবহারকারীদের তাদের পছন্দের ভাষায় অ্যাপ্লিকেশনটি ব্যবহারের সুযোগ দেয়। Spring MVC-তে LocaleResolver, LocaleChangeInterceptor, এবং অন্যান্য কনফিগারেশন ব্যবহার করে আপনি ডাইনামিকভাবে ব্যবহারকারীদের লোকেল পরিবর্তন করতে পারেন।

Spring MVC তে Dynamic Locale Management বাস্তবায়ন

Spring MVC-তে ডাইনামিক লোকেল ব্যবস্থাপনা কার্যকর করতে, আপনাকে কয়েকটি পদক্ষেপ অনুসরণ করতে হবে:

1. LocaleResolver কনফিগার করা

Spring MVC তে LocaleResolver ক্লাসটি ব্যবহারকারীর ভাষার পছন্দ বুঝতে এবং সেই অনুযায়ী কনটেন্ট লোড করতে ব্যবহৃত হয়। SessionLocaleResolver বা AcceptHeaderLocaleResolver এর মতো বিভিন্ন প্রকারের LocaleResolver ক্লাস রয়েছে, কিন্তু SessionLocaleResolver সবচেয়ে সাধারণভাবে ব্যবহৃত হয়।

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

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver resolver = new SessionLocaleResolver();
        resolver.setDefaultLocale(Locale.ENGLISH);  // ডিফল্ট ভাষা ইংরেজি সেট করা
        return resolver;
    }

    // অন্যান্য কনফিগারেশন যেমন, ViewResolvers, Controller etc.
}

এখানে, SessionLocaleResolver ব্যবহার করা হয়েছে, যা ব্যবহারকারীর সেশনেই লোকেল সংরক্ষণ করে। এটি ব্যবহারকারী যখন পরবর্তী সময়ে ওয়েবসাইটে ফিরে আসবে, তখন আগের নির্বাচিত ভাষা পুনরুদ্ধার করবে।

2. LocaleChangeInterceptor কনফিগার করা

যতবার ব্যবহারকারী ভাষা পরিবর্তন করতে চায়, তা ট্র্যাক করার জন্য Spring MVC-তে LocaleChangeInterceptor ব্যবহার করা হয়। এটি একটি ইন্টারসেপ্টর যা ইনকামিং HTTP রিকোয়েস্টে লোকেল পরিবর্তন করার জন্য প্যারামিটার শনাক্ত করতে সহায়তা করে।

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

@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
    LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
    interceptor.setParamName("lang");  // প্যারামিটার নাম যা URL-এ ব্যবহারকারী ভাষা পরিবর্তন করতে ব্যবহৃত হবে
    return interceptor;
}

এখানে, lang প্যারামিটারটি URL এ ব্যবহারকারীর ভাষা পরিবর্তন করার জন্য ট্র্যাক করবে। যেমন:

http://example.com/home?lang=fr  // ফরাসি ভাষায় পরিবর্তন হবে

3. Interceptor Configuration

যেহেতু আমরা LocaleChangeInterceptor ব্যবহার করছি, এটি Spring MVC-এর ইন্টারসেপ্টর চেইনে যুক্ত করতে হবে।

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(localeChangeInterceptor());
}

4. Locale-Specific Resource Bundles ব্যবহার করা

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

উদাহরণস্বরূপ:

  • messages_en.properties (ইংরেজি)
  • messages_fr.properties (ফরাসি)

messages_en.properties:

greeting=Hello!

messages_fr.properties:

greeting=Bonjour!

5. Locale ব্যবহার করে থেমপ্লেট-এ কনটেন্ট প্রদর্শন

Spring MVC তে JSP বা Thymeleaf টেমপ্লেট ব্যবহার করলে, আপনি ResourceBundle থেকে কনটেন্ট টেক্সট ডাইনামিকভাবে লোড করতে পারবেন।

Thymeleaf উদাহরণ:

<p th:text="#{greeting}"></p> <!-- এখানে 'greeting' স্ট্রিংটি লোকেল অনুযায়ী পরিবর্তিত হবে -->

এটি ব্যবহারকারীর বর্তমান লোকেলের ওপর ভিত্তি করে সঠিক ভাষায় স্ট্রিংটি প্রদর্শন করবে।

6. URL প্যারামিটার দিয়ে লোকেল পরিবর্তন

আপনার ওয়েব অ্যাপ্লিকেশনটি যখন ব্যবহারকারীদের ভাষা পরিবর্তনের সুযোগ দেয়, তখন আপনি তাদের জন্য একটি ড্রপডাউন বা বাটন তৈরি করতে পারেন, যার মাধ্যমে তারা ভাষা পরিবর্তন করতে পারে।

ড্রপডাউন বা ল্যাঙ্গুয়েজ চয়েস:

<form action="#" method="get">
    <select name="lang" onchange="this.form.submit()">
        <option value="en">English</option>
        <option value="fr">Français</option>
        <!-- অন্যান্য ভাষা -->
    </select>
</form>

এটি ব্যবহারকারীর পছন্দ অনুযায়ী URL প্যারামিটার lang-এর মান পরিবর্তন করবে, এবং LocaleChangeInterceptor এই প্যারামিটারটি ধরে ভাষা পরিবর্তন করবে।

7. LocaleResolver সেশন এবং কুকির মাধ্যমে ভাষা সংরক্ষণ

যদি আপনি ব্যবহারকারীর ভাষা সেশন বা কুকির মাধ্যমে সংরক্ষণ করতে চান, তাহলে SessionLocaleResolver বা CookieLocaleResolver ব্যবহার করতে পারেন।

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

@Bean
public LocaleResolver localeResolver() {
    CookieLocaleResolver resolver = new CookieLocaleResolver();
    resolver.setDefaultLocale(Locale.ENGLISH);
    resolver.setCookieName("localeInfo");
    return resolver;
}

এটি ব্যবহারকারীর ভাষা কুকিতে সংরক্ষণ করে রাখবে, যাতে তারা পরবর্তী সময়ে একই ভাষায় ওয়েবসাইটটি দেখতে পারে।

Spring MVC-তে Dynamic Locale Management ব্যবহারকারীদের একটি ব্যক্তিগত অভিজ্ঞতা দেয়, কারণ তারা তাদের পছন্দসই ভাষায় অ্যাপ্লিকেশন ব্যবহার করতে পারে। LocaleResolver, LocaleChangeInterceptor, এবং ResourceBundle ব্যবহার করে আপনি Spring MVC অ্যাপ্লিকেশনে ডাইনামিকভাবে ভাষা পরিবর্তন এবং স্থানিককরণ সহজেই বাস্তবায়ন করতে পারেন।

এই ব্যবস্থা আপনার অ্যাপ্লিকেশনকে গ্লোবাল ইউজারবেসের জন্য আরও উন্নত এবং ব্যবহারকারী-বান্ধব করে তুলবে।

Content added By
Promotion

Are you sure to start over?

Loading...