Java Internationalization (i18n) হল একটি প্রক্রিয়া যার মাধ্যমে Java অ্যাপ্লিকেশনগুলি বিভিন্ন ভাষা, সংস্কৃতি, এবং অঞ্চল অনুযায়ী কাস্টমাইজড হতে পারে। এটি বিভিন্ন ভাষা এবং দেশীয় বৈশিষ্ট্যের ভিত্তিতে অ্যাপ্লিকেশন কনফিগারেশন এবং প্রদর্শন পরিবর্তন করার অনুমতি দেয়। এই প্রক্রিয়াতে Locale ক্লাস একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যা সিস্টেমের ভাষা, দেশ, এবং সংস্কৃতি সম্পর্কিত তথ্য ধারণ করে।
Locale Class এর ভূমিকা:
Locale ক্লাসটি Java-তে একটি বিশেষ শ্রেণী যা ভাষা, দেশ, এবং সংস্কৃতি সম্পর্কিত তথ্য ধারণ করে। এটি Java Internationalization (i18n) এবং Localization (l10n) এর প্রক্রিয়া সমর্থন করে, যেখানে বিভিন্ন ভাষা এবং সংস্কৃতির ভিত্তিতে অ্যাপ্লিকেশনটি কাস্টমাইজ করা হয়।
Locale ব্যবহার করে আমরা:
- ব্যবহারকারীর ভাষা এবং সংস্কৃতির জন্য কনফিগারেশন তৈরি করতে পারি।
- তার ভিত্তিতে
Date,Currency,Time,Numberইত্যাদি প্রপার্টি এবং formatting কাস্টমাইজ করতে পারি।
Locale ক্লাসের বৈশিষ্ট্য:
- Language: এটি নির্দিষ্ট ভাষার প্রতিনিধিত্ব করে (যেমন ইংরেজি, বাংলা, ফরাসি, ইত্যাদি)।
- Country: এটি একটি নির্দিষ্ট দেশের প্রতিনিধিত্ব করে (যেমন বাংলাদেশ, যুক্তরাষ্ট্র, জার্মানি, ইত্যাদি)।
- Variant: এটি একটি ভাষা বা দেশের নির্দিষ্ট সংস্করণ বা বৈকল্পিক।
Locale Class এর মূল মেথডসমূহ:
| মেথড | বর্ণনা |
|---|---|
| getLanguage() | এই মেথড ভাষা কোড রিটার্ন করে (যেমন "en" ইংরেজির জন্য)। |
| getCountry() | এই মেথড দেশ কোড রিটার্ন করে (যেমন "US" যুক্তরাষ্ট্রের জন্য)। |
| getDisplayLanguage() | বর্তমান লোকে অনুযায়ী ভাষা নাম প্রদর্শন করে। |
| getDisplayCountry() | বর্তমান লোকে অনুযায়ী দেশের নাম প্রদর্শন করে। |
| setDefault(Locale newLocale) | নতুন লোকে সেট করার জন্য ব্যবহার করা হয়। |
| getDefault() | বর্তমান ডিফল্ট লোকে রিটার্ন করে। |
Locale Class এর ব্যবহার:
1. Locale তৈরি এবং ভাষা, দেশ এবং সংস্কৃতি অনুযায়ী ফরম্যাটিং করা:
import java.util.Locale;
public class LocaleExample {
public static void main(String[] args) {
// Locale তৈরি করা
Locale localeUS = new Locale("en", "US"); // ইংরেজি ভাষা, যুক্তরাষ্ট্র
Locale localeFrance = new Locale("fr", "FR"); // ফরাসি ভাষা, ফ্রান্স
// ভাষা এবং দেশ প্রদর্শন
System.out.println("Language: " + localeUS.getLanguage());
System.out.println("Country: " + localeUS.getCountry());
System.out.println("Display Language: " + localeUS.getDisplayLanguage());
System.out.println("Display Country: " + localeUS.getDisplayCountry());
// ফরাসি ভাষার জন্য
System.out.println("Language (French): " + localeFrance.getLanguage());
System.out.println("Country (French): " + localeFrance.getCountry());
System.out.println("Display Language (French): " + localeFrance.getDisplayLanguage());
System.out.println("Display Country (French): " + localeFrance.getDisplayCountry());
}
}
আউটপুট:
Language: en
Country: US
Display Language: English
Display Country: United States
Language (French): fr
Country (French): FR
Display Language (French): français
Display Country (French): France
ব্যাখ্যা:
- আমরা দুটি Locale তৈরি করেছি: একটি US-এর জন্য এবং অন্যটি France-এর জন্য।
getLanguage()এবংgetCountry()মেথড দিয়ে ভাষা এবং দেশের কোড রিটার্ন করা হয়েছে।getDisplayLanguage()এবংgetDisplayCountry()মেথড দিয়ে নির্দিষ্ট লোকে অনুযায়ী ভাষা এবং দেশের নাম প্রদর্শন করা হয়েছে।
2. Locale এর মাধ্যমে Date এবং Time Formatting:
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class LocaleDateExample {
public static void main(String[] args) {
// Locale তৈরি করা
Locale localeUS = new Locale("en", "US");
Locale localeFrance = new Locale("fr", "FR");
// বর্তমান তারিখ এবং সময়
Date date = new Date();
// DateFormat ব্যবহার করে ফরম্যাট করা
DateFormat dateFormatUS = DateFormat.getDateInstance(DateFormat.LONG, localeUS);
DateFormat dateFormatFrance = DateFormat.getDateInstance(DateFormat.LONG, localeFrance);
// তারিখ প্রিন্ট করা
System.out.println("Date in US format: " + dateFormatUS.format(date));
System.out.println("Date in France format: " + dateFormatFrance.format(date));
}
}
আউটপুট (যতটা ভিন্ন হতে পারে):
Date in US format: October 10, 2024
Date in France format: 10 octobre 2024
ব্যাখ্যা:
DateFormat.getDateInstance()মেথড ব্যবহার করে বিভিন্ন দেশের জন্য তারিখের ফরম্যাট পরিবর্তন করা হয়েছে।- ফরম্যাটটি লোকে অনুযায়ী পরিবর্তিত হয়েছে (যেমন, ফরাসিতে মাসের নাম এবং দিনের বিন্যাস ভিন্ন থাকে)।
3. Locale এর মাধ্যমে Currency Formatting:
import java.text.NumberFormat;
import java.util.Locale;
public class LocaleCurrencyExample {
public static void main(String[] args) {
// Locale তৈরি করা
Locale localeUS = new Locale("en", "US");
Locale localeIndia = new Locale("en", "IN");
// NumberFormat ব্যবহার করে মুদ্রার ফরম্যাটিং
NumberFormat currencyFormatUS = NumberFormat.getCurrencyInstance(localeUS);
NumberFormat currencyFormatIndia = NumberFormat.getCurrencyInstance(localeIndia);
// মুদ্রা প্রিন্ট করা
System.out.println("Currency in US format: " + currencyFormatUS.format(123456.78));
System.out.println("Currency in India format: " + currencyFormatIndia.format(123456.78));
}
}
আউটপুট:
Currency in US format: $123,456.78
Currency in India format: ₹1,23,456.78
ব্যাখ্যা:
NumberFormat.getCurrencyInstance()মেথড ব্যবহার করে currency ফরম্যাটিং করা হয়েছে। এটি দেশের মুদ্রার প্রতীক এবং নির্দিষ্ট দেশের মুদ্রার বিন্যাস অনুযায়ী ফরম্যাট করা হয়েছে।
Locale Class এর ব্যবহার এবং প্রয়োজনীয়তা:
- Internationalization (i18n):
- Locale ব্যবহার করে অ্যাপ্লিকেশন বিভিন্ন ভাষা এবং সংস্কৃতির জন্য কাস্টমাইজ করা যায়। এটি i18n প্রক্রিয়ার গুরুত্বপূর্ণ অংশ, যা অ্যাপ্লিকেশনকে ভাষা এবং সংস্কৃতি নির্ভর করে কনফিগার করা যায়।
- Localization (l10n):
- Locale ক্লাসের মাধ্যমে, আপনি নির্দিষ্ট অঞ্চলের ভাষা, মুদ্রা, তারিখ/সময় ফরম্যাটিং এবং অন্যান্য সংস্কৃতি নির্ভর বৈশিষ্ট্য কাস্টমাইজ করতে পারেন। এটি l10n প্রক্রিয়াতে ব্যবহৃত হয়।
- Cross-platform Support:
- Java অ্যাপ্লিকেশনটি একাধিক দেশে এবং অঞ্চলে চলতে সক্ষম করে, কারণ Locale ক্লাস বিভিন্ন দেশ ও ভাষার জন্য ফরম্যাট এবং কনফিগারেশন নির্ধারণ করে।
Localeক্লাস Java Internationalization এবং Localization-এর জন্য একটি গুরুত্বপূর্ণ উপাদান।- এটি language, country, এবং variant নির্ধারণ করতে ব্যবহৃত হয় এবং আপনি তার ভিত্তিতে ডেটা ফরম্যাটিং, মুদ্রা, তারিখ/সময় ইত্যাদি কাস্টমাইজ করতে পারেন।
Localeক্লাসের মাধ্যমে আপনি একাধিক ভাষা এবং সংস্কৃতির জন্য Java অ্যাপ্লিকেশন তৈরি করতে পারেন, যা আপনার অ্যাপ্লিকেশনকে আন্তর্জাতিক পর্যায়ে পৌঁছাতে সহায়ক।
Locale ক্লাস Java-তে আন্তর্জাতিকization এবং localization সমর্থন করে, যাতে অ্যাপ্লিকেশনটি বিশ্বব্যাপী বিভিন্ন ভাষা এবং সংস্কৃতির জন্য ব্যবহারযোগ্য হতে পারে।
Read more