Java Internationalization (i18n) হল এমন একটি প্রক্রিয়া যার মাধ্যমে একটি অ্যাপ্লিকেশনকে বিভিন্ন ভাষা এবং সংস্কৃতির জন্য প্রস্তুত করা হয়। এর মাধ্যমে আমরা Locale-specific (ভাষা এবং অঞ্চল অনুযায়ী) রিসোর্স ফাইল তৈরি এবং ব্যবহার করতে পারি, যেমন text strings এবং অন্যান্য কনফিগারেশন যা স্থানীয় ভাষায় পরিবর্তিত হতে পারে।
Properties files হল text files যা কনফিগারেশন বা লোগিকাল ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। এই ফাইলগুলো সহজে localization (l10n) এর জন্য ব্যবহার করা যেতে পারে, যেখানে একটি প্রপার্টিজ ফাইল ভাষা বা অঞ্চল অনুযায়ী কনফিগারেশন প্রদান করে।
Multiple Properties ফাইল তৈরি করার ধারণা:
- Language-specific Properties Files:
- ভাষা ভিত্তিক properties ফাইল তৈরি করা হয়। উদাহরণস্বরূপ, messages_en.properties (English) এবং messages_fr.properties (French)।
- Region-specific Properties Files:
- একে region-specific বা country-specific ফাইলও বলা হয়। উদাহরণস্বরূপ, messages_en_US.properties (English for the US) এবং messages_en_GB.properties (English for the UK)।
- Default Properties File:
- একটি ডিফল্ট ফাইল রাখা যেতে পারে, যেমন messages.properties, যা কোনো নির্দিষ্ট ভাষা বা অঞ্চলের জন্য প্রযোজ্য না হলে ব্যবহার করা হবে।
Properties ফাইলের উদাহরণ:
messages_en.properties (English messages)
greeting=Hello
farewell=Goodbye
messages_fr.properties (French messages)
greeting=Bonjour
farewell=Au revoir
messages_en_US.properties (English messages for the US)
greeting=Howdy
farewell=Take care
messages_en_GB.properties (English messages for the UK)
greeting=Hello
farewell=Goodbye
Java কোড উদাহরণ: ResourceBundle ব্যবহার করে Localization
import java.util.*;
public class LocalizationExample {
public static void main(String[] args) {
// Locale সেট করা (ফ্রেঞ্চ ভাষার জন্য)
Locale locale = new Locale("fr", "FR");
// ResourceBundle ব্যবহার করে ফাইল লোড করা
ResourceBundle messages = ResourceBundle.getBundle("messages", locale);
// রিসোর্স ফাইল থেকে ম্যাসেজগুলো প্রিন্ট করা
System.out.println(messages.getString("greeting")); // Bonjour
System.out.println(messages.getString("farewell")); // Au revoir
}
}
ব্যাখ্যা:
Localeব্যবহার করে একটি নির্দিষ্ট ভাষা এবং অঞ্চল নির্ধারণ করা হয়েছে।ResourceBundle.getBundle()মেথড ব্যবহার করে আমরা messages নামক প্রপার্টিজ ফাইলটি লোড করেছি যা নির্দিষ্ট locale এর জন্য অনুকূল।
Locale.forLanguageTag() এবং Locale.Builder এর ব্যবহার:
- Locale.forLanguageTag():
- এই মেথডটি একটি ভাষা ট্যাগ গ্রহণ করে একটি Locale অবজেক্ট তৈরি করে, যেমন
"en-US"বা"fr-FR"।
- এই মেথডটি একটি ভাষা ট্যাগ গ্রহণ করে একটি Locale অবজেক্ট তৈরি করে, যেমন
Locale locale = Locale.forLanguageTag("en-US");
System.out.println("Language: " + locale.getLanguage());
System.out.println("Country: " + locale.getCountry());
আউটপুট:
Language: en
Country: US
- Locale.Builder:
- এই কনস্ট্রাক্টরটি উন্নত কনফিগারেশনের জন্য ব্যবহার করা হয়, যেখানে ভাষা, অঞ্চল, স্ক্রিপ্ট এবং অন্যান্য বৈশিষ্ট্য নির্দিষ্ট করা যেতে পারে।
Locale locale = new Locale.Builder()
.setLanguage("en")
.setRegion("GB")
.build();
System.out.println("Language: " + locale.getLanguage());
System.out.println("Country: " + locale.getCountry());
আউটপুট:
Language: en
Country: GB
Java ResourceBundle এর সাহায্যে Localization (l10n) বাস্তবায়ন:
- Default Resource File:
- যদি কোন নির্দিষ্ট ভাষার বা অঞ্চলের প্রপার্টি ফাইল পাওয়া না যায়, তবে
messages.propertiesডিফল্ট ফাইল ব্যবহার করা হবে।
- যদি কোন নির্দিষ্ট ভাষার বা অঞ্চলের প্রপার্টি ফাইল পাওয়া না যায়, তবে
- Language-Specific Properties Files:
- প্রপার্টি ফাইলের নাম
messages_<language>.properties(যেমন messages_fr.properties, messages_en.properties) রাখতে হবে।
- প্রপার্টি ফাইলের নাম
- Region-Specific Properties Files:
- এর মাধ্যমে আমরা বিশেষভাবে country বা region ভিত্তিক ফাইল তৈরি করতে পারি, যেমন messages_en_US.properties, messages_en_GB.properties ইত্যাদি।
Localization এবং Internationalization এর মধ্যে পার্থক্য:
- Internationalization (i18n):
- একটি অ্যাপ্লিকেশনকে এমনভাবে ডিজাইন করা যাতে এটি সহজে বিভিন্ন ভাষা এবং সংস্কৃতির জন্য localization করা যায়।
- উদাহরণ: UI, ডেটা ফরম্যাট, এবং ভাষার ফাইলগুলো i18n এর অন্তর্ভুক্ত।
- Localization (l10n):
- i18n প্রক্রিয়া অনুসরণ করে, একটি অ্যাপ্লিকেশনকে একটি নির্দিষ্ট ভাষা বা অঞ্চলের জন্য কাস্টমাইজ করা। এটি মূলত ভাষার ফাইল তৈরি এবং ব্যবহারকারী ভাষার উপর ভিত্তি করে কনটেন্ট প্রদর্শনের কাজ করে।
- ResourceBundle এবং properties files ব্যবহারের মাধ্যমে Java অ্যাপ্লিকেশনকে বিভিন্ন ভাষা এবং সংস্কৃতির জন্য localize করা যায়।
- Multiple properties files তৈরি করার মাধ্যমে আপনি language-specific এবং region-specific কনটেন্ট আলাদা করে রাখতে পারেন এবং সহজে internationalization (i18n) এবং localization (l10n) প্রক্রিয়া বাস্তবায়ন করতে পারেন।
Content added By
Read more