Skill

জাভা ইন্টারন্যাশনালাইজেশন (Java Internalization)

300

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


Java Internationalization (i18n): একটি বিস্তারিত বাংলা টিউটোরিয়াল


Java Internationalization (i18n) কি?

Internationalization (i18n) হলো এমন একটি প্রক্রিয়া, যার মাধ্যমে একটি অ্যাপ্লিকেশন বা সফটওয়্যারকে বিভিন্ন ভাষা, দেশ এবং সাংস্কৃতিক প্রেক্ষাপট অনুযায়ী অভিযোজিত করা যায়। Java-তে i18n প্রক্রিয়াটি ব্যবহার করে অ্যাপ্লিকেশনগুলিকে বিভিন্ন ভাষায় বা অঞ্চল অনুযায়ী localize করা সম্ভব। Java এর java.util.Locale এবং ResourceBundle ক্লাস ব্যবহার করে i18n এর কাজ করা হয়।


Java Internationalization এর মূল উপাদানসমূহ

Locale Class:

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

ResourceBundle Class:

  • ResourceBundle হলো এমন একটি ক্লাস, যা কী-ভিত্তিক ডাটা সংগ্রহ করে এবং বিভিন্ন ভাষায় বিভিন্ন properties file ব্যবহার করে সেই ডাটা পরিচালনা করতে সাহায্য করে। এই ফাইলগুলোতে কী-ভ্যালু পেয়ার থাকে, যা নির্দিষ্ট ভাষা অনুযায়ী ডাটা সরবরাহ করে।

NumberFormat Class:

  • NumberFormat ব্যবহার করে আপনি সংখ্যাগুলো বিভিন্ন Locale অনুযায়ী ফরম্যাট করতে পারেন। উদাহরণস্বরূপ, বিভিন্ন দেশে সংখ্যার ফরম্যাট ভিন্ন হতে পারে, যেমন 1,000.50 যুক্তরাষ্ট্রে এবং 1.000,50 জার্মানিতে।

DateFormat Class:

  • DateFormat ক্লাস ব্যবহার করে তারিখ এবং সময়কে বিভিন্ন Locale অনুযায়ী ফরম্যাট করা যায়।

MessageFormat Class:

  • MessageFormat ব্যবহার করে ডাইনামিক মেসেজ তৈরি করা যায়, যেখানে একাধিক প্যারামিটার যোগ করা হয়। এটি i18n এর ক্ষেত্রে অত্যন্ত কার্যকর।

Java i18n এর কাজের ধাপসমূহ

1. Locale তৈরি করা

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

Locale localeBn = new Locale("bn", "BD"); // বাংলা ভাষা ও বাংলাদেশ
Locale localeEn = new Locale("en", "US"); // ইংরেজি ভাষা ও যুক্তরাষ্ট্র

2. ResourceBundle ব্যবহার করে মেসেজ লোড করা

ResourceBundle ব্যবহার করে বিভিন্ন properties file থেকে ডাটা লোড করা যায়। উদাহরণস্বরূপ, আমরা দুটি properties file তৈরি করেছি:

messages_en.properties:

greeting=Hello
farewell=Goodbye

messages_bn.properties:

greeting=স্বাগতম
farewell=বিদায়

এখন এই ফাইলগুলো ব্যবহার করে কী-ভ্যালু পেয়ার অনুযায়ী মেসেজ লোড করা যাবে:

import java.util.*;

public class I18nExample {
    public static void main(String[] args) {
        Locale localeBn = new Locale("bn", "BD");
        ResourceBundle bundleBn = ResourceBundle.getBundle("messages", localeBn);

        System.out.println(bundleBn.getString("greeting")); // Output: স্বাগতম
        System.out.println(bundleBn.getString("farewell")); // Output: বিদায়
    }
}

3. Date এবং Number ফরম্যাট করা

Locale অনুযায়ী তারিখ এবং সংখ্যা ফরম্যাট করতে DateFormat এবং NumberFormat ব্যবহার করা হয়।

import java.text.*;
import java.util.*;

public class FormatExample {
    public static void main(String[] args) {
        Locale localeFr = new Locale("fr", "FR");

        // তারিখ ফরম্যাট
        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG, localeFr);
        System.out.println(dateFormat.format(new Date())); // Output: 1 janvier 2024

        // সংখ্যা ফরম্যাট
        NumberFormat numberFormat = NumberFormat.getInstance(localeFr);
        System.out.println(numberFormat.format(1000.50)); // Output: 1 000,50
    }
}

4. MessageFormat ব্যবহার করে ডাইনামিক মেসেজ তৈরি করা

ডাইনামিক মেসেজ তৈরি করতে MessageFormat ব্যবহার করা হয়, যা প্যারামিটার নিয়ে মেসেজ ফরম্যাট করে:

import java.text.MessageFormat;

public class MessageFormatExample {
    public static void main(String[] args) {
        String pattern = "{0}, আপনার অর্ডার {1} প্রস্তুত!";
        MessageFormat messageFormat = new MessageFormat(pattern);

        Object[] params = {"রিয়াদ", "12345"};
        String message = messageFormat.format(params);

        System.out.println(message); // Output: রিয়াদ, আপনার অর্ডার 12345 প্রস্তুত!
    }
}

Java i18n এর সুবিধা

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

Java i18n শেখার জন্য রিসোর্সসমূহ

Oracle Official Documentation:
Java Internationalization

Baeldung Java i18n Guide:
Baeldung Internationalization Tutorial

GeeksforGeeks Java i18n:
GeeksforGeeks Internationalization


উপসংহার

Java Internationalization (i18n) হলো এমন একটি প্রক্রিয়া, যার মাধ্যমে আপনি আপনার Java অ্যাপ্লিকেশনকে বহুভাষিক এবং বহুঅঞ্চলিক ব্যবহারের উপযোগী করতে পারেন। এর মাধ্যমে অ্যাপ্লিকেশনগুলিকে বিভিন্ন ভাষায় উপস্থাপন করা, ডেটা ফরম্যাট করা এবং কাস্টম মেসেজ প্রদর্শন করা সম্ভব হয়। Java এর Locale, ResourceBundle, DateFormat, NumberFormat, এবং MessageFormat ক্লাসগুলো i18n প্রক্রিয়াকে সহজ এবং কার্যকরী করে তোলে।

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


Java Internationalization (i18n): একটি বিস্তারিত বাংলা টিউটোরিয়াল


Java Internationalization (i18n) কি?

Internationalization (i18n) হলো এমন একটি প্রক্রিয়া, যার মাধ্যমে একটি অ্যাপ্লিকেশন বা সফটওয়্যারকে বিভিন্ন ভাষা, দেশ এবং সাংস্কৃতিক প্রেক্ষাপট অনুযায়ী অভিযোজিত করা যায়। Java-তে i18n প্রক্রিয়াটি ব্যবহার করে অ্যাপ্লিকেশনগুলিকে বিভিন্ন ভাষায় বা অঞ্চল অনুযায়ী localize করা সম্ভব। Java এর java.util.Locale এবং ResourceBundle ক্লাস ব্যবহার করে i18n এর কাজ করা হয়।


Java Internationalization এর মূল উপাদানসমূহ

Locale Class:

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

ResourceBundle Class:

  • ResourceBundle হলো এমন একটি ক্লাস, যা কী-ভিত্তিক ডাটা সংগ্রহ করে এবং বিভিন্ন ভাষায় বিভিন্ন properties file ব্যবহার করে সেই ডাটা পরিচালনা করতে সাহায্য করে। এই ফাইলগুলোতে কী-ভ্যালু পেয়ার থাকে, যা নির্দিষ্ট ভাষা অনুযায়ী ডাটা সরবরাহ করে।

NumberFormat Class:

  • NumberFormat ব্যবহার করে আপনি সংখ্যাগুলো বিভিন্ন Locale অনুযায়ী ফরম্যাট করতে পারেন। উদাহরণস্বরূপ, বিভিন্ন দেশে সংখ্যার ফরম্যাট ভিন্ন হতে পারে, যেমন 1,000.50 যুক্তরাষ্ট্রে এবং 1.000,50 জার্মানিতে।

DateFormat Class:

  • DateFormat ক্লাস ব্যবহার করে তারিখ এবং সময়কে বিভিন্ন Locale অনুযায়ী ফরম্যাট করা যায়।

MessageFormat Class:

  • MessageFormat ব্যবহার করে ডাইনামিক মেসেজ তৈরি করা যায়, যেখানে একাধিক প্যারামিটার যোগ করা হয়। এটি i18n এর ক্ষেত্রে অত্যন্ত কার্যকর।

Java i18n এর কাজের ধাপসমূহ

1. Locale তৈরি করা

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

Locale localeBn = new Locale("bn", "BD"); // বাংলা ভাষা ও বাংলাদেশ
Locale localeEn = new Locale("en", "US"); // ইংরেজি ভাষা ও যুক্তরাষ্ট্র

2. ResourceBundle ব্যবহার করে মেসেজ লোড করা

ResourceBundle ব্যবহার করে বিভিন্ন properties file থেকে ডাটা লোড করা যায়। উদাহরণস্বরূপ, আমরা দুটি properties file তৈরি করেছি:

messages_en.properties:

greeting=Hello
farewell=Goodbye

messages_bn.properties:

greeting=স্বাগতম
farewell=বিদায়

এখন এই ফাইলগুলো ব্যবহার করে কী-ভ্যালু পেয়ার অনুযায়ী মেসেজ লোড করা যাবে:

import java.util.*;

public class I18nExample {
    public static void main(String[] args) {
        Locale localeBn = new Locale("bn", "BD");
        ResourceBundle bundleBn = ResourceBundle.getBundle("messages", localeBn);

        System.out.println(bundleBn.getString("greeting")); // Output: স্বাগতম
        System.out.println(bundleBn.getString("farewell")); // Output: বিদায়
    }
}

3. Date এবং Number ফরম্যাট করা

Locale অনুযায়ী তারিখ এবং সংখ্যা ফরম্যাট করতে DateFormat এবং NumberFormat ব্যবহার করা হয়।

import java.text.*;
import java.util.*;

public class FormatExample {
    public static void main(String[] args) {
        Locale localeFr = new Locale("fr", "FR");

        // তারিখ ফরম্যাট
        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG, localeFr);
        System.out.println(dateFormat.format(new Date())); // Output: 1 janvier 2024

        // সংখ্যা ফরম্যাট
        NumberFormat numberFormat = NumberFormat.getInstance(localeFr);
        System.out.println(numberFormat.format(1000.50)); // Output: 1 000,50
    }
}

4. MessageFormat ব্যবহার করে ডাইনামিক মেসেজ তৈরি করা

ডাইনামিক মেসেজ তৈরি করতে MessageFormat ব্যবহার করা হয়, যা প্যারামিটার নিয়ে মেসেজ ফরম্যাট করে:

import java.text.MessageFormat;

public class MessageFormatExample {
    public static void main(String[] args) {
        String pattern = "{0}, আপনার অর্ডার {1} প্রস্তুত!";
        MessageFormat messageFormat = new MessageFormat(pattern);

        Object[] params = {"রিয়াদ", "12345"};
        String message = messageFormat.format(params);

        System.out.println(message); // Output: রিয়াদ, আপনার অর্ডার 12345 প্রস্তুত!
    }
}

Java i18n এর সুবিধা

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

Java i18n শেখার জন্য রিসোর্সসমূহ

Oracle Official Documentation:
Java Internationalization

Baeldung Java i18n Guide:
Baeldung Internationalization Tutorial

GeeksforGeeks Java i18n:
GeeksforGeeks Internationalization


উপসংহার

Java Internationalization (i18n) হলো এমন একটি প্রক্রিয়া, যার মাধ্যমে আপনি আপনার Java অ্যাপ্লিকেশনকে বহুভাষিক এবং বহুঅঞ্চলিক ব্যবহারের উপযোগী করতে পারেন। এর মাধ্যমে অ্যাপ্লিকেশনগুলিকে বিভিন্ন ভাষায় উপস্থাপন করা, ডেটা ফরম্যাট করা এবং কাস্টম মেসেজ প্রদর্শন করা সম্ভব হয়। Java এর Locale, ResourceBundle, DateFormat, NumberFormat, এবং MessageFormat ক্লাসগুলো i18n প্রক্রিয়াকে সহজ এবং কার্যকরী করে তোলে।

Promotion

Are you sure to start over?

Loading...