Internationalization (i18n) হল একটি সফটওয়্যার ডেভেলপমেন্ট পদ্ধতি যা বিভিন্ন ভাষায় এবং সংস্কৃতিতে সফটওয়্যার চালানোর জন্য সেটআপ করা হয়। জাভাতে Regex (Regular Expressions) ব্যবহার করে আন্তর্জাতিককরণ বা i18n এর জন্য বিভিন্ন ধরনের টেক্সট যাচাই এবং সংস্কৃতি নির্দিষ্ট বৈশিষ্ট্য পরিচালনা করা সম্ভব। Regex ব্যবহার করে বিভিন্ন ভাষার স্ট্রিং বা তথ্যের নির্দিষ্ট প্যাটার্ন যাচাই করা যেতে পারে, যেমন ফোন নম্বর, মুদ্রা, তারিখ, ইমেইল অ্যাড্রেস ইত্যাদি, যা একাধিক ভাষায় বা সংস্কৃতিতে ব্যবহৃত হতে পারে।
Internationalization (i18n) এর জন্য Regex ব্যবহার:
Regex জাভাতে internationalization (i18n) এর জন্য খুবই উপকারী হতে পারে যখন আপনি এমন কিছু যাচাই করতে চান যা নির্দিষ্ট দেশ বা ভাষার জন্য উপযুক্ত। উদাহরণস্বরূপ, ফোন নম্বর, তারিখ ফরম্যাট, মুদ্রার চিহ্ন, বা ভাষা নির্দিষ্ট অন্যান্য ফরম্যাট যা সংস্কৃতির ভিত্তিতে পরিবর্তিত হতে পারে।
নিচে কিছু উদাহরণ দেওয়া হলো যেখানে Regex ব্যবহার করে i18n নিশ্চিত করা যায়।
1. Phone Number Validation (i18n):
বিশ্বব্যাপী ফোন নম্বরের ফরম্যাটগুলি বিভিন্ন হতে পারে। কিছু দেশে + চিহ্ন থাকতে পারে, কিছু দেশে কেবল ডিজিট থাকতে পারে, আবার কিছু দেশে হাইফেনের মাধ্যমে পৃথকীকরণ করা হতে পারে। এখানে একটি সাধারণ Phone Number Validation রেগুলার এক্সপ্রেশন তৈরি করা হলো।
Phone Number Validation Example:
import java.util.regex.*;
public class PhoneNumberValidation {
public static void main(String[] args) {
// Example phone numbers for various countries
String[] phoneNumbers = {
"+1-800-555-1234", // US Format
"+44 20 7946 0958", // UK Format
"+91-9876543210", // India Format
"9876543210", // India without country code
"+33 1 70 18 99 80" // France Format
};
// Regex for validating international phone numbers
String phoneRegex = "^\\+?\\d{1,4}[-\\s]?\\(?\\d{1,4}\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}$";
// Compile the regex pattern
Pattern pattern = Pattern.compile(phoneRegex);
// Validate each phone number
for (String phoneNumber : phoneNumbers) {
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()) {
System.out.println(phoneNumber + " is a valid phone number.");
} else {
System.out.println(phoneNumber + " is not a valid phone number.");
}
}
}
}
ব্যাখ্যা:
- Regex:
^\\+?\\d{1,4}[-\\s]?\\(?\\d{1,4}\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}$\\+?:+চিহ্ন হতে পারে, তবে এটি ঐচ্ছিক।\\d{1,4}: ১ থেকে ৪ ডিজিট। এটি দেশ কোড বা ফোন নম্বরের অংশ হতে পারে।[-\\s]?: হাইফেন বা স্পেস থাকতে পারে (ঐচ্ছিক)।\\(?\\d{1,4}\\)?: অঞ্চল কোড, যা ঐচ্ছিকভাবে প্যারেনথেসিসের মধ্যে থাকতে পারে।[-\\s]?: পুনরায় হাইফেন বা স্পেস থাকতে পারে।\\d{1,4}: ফোন নম্বরের বাকি অংশ, যা ১ থেকে ৪ ডিজিট হতে পারে।
আউটপুট:
+1-800-555-1234 is a valid phone number.
+44 20 7946 0958 is a valid phone number.
+91-9876543210 is a valid phone number.
9876543210 is a valid phone number.
+33 1 70 18 99 80 is a valid phone number.
2. Date Format Validation (i18n):
তারিখের ফরম্যাট বিভিন্ন দেশে বিভিন্ন হতে পারে। উদাহরণস্বরূপ, মার্কিন যুক্তরাষ্ট্রে তারিখের ফরম্যাট হতে পারে MM/DD/YYYY, কিন্তু ইউরোপে এটি DD/MM/YYYY হতে পারে। এমন পরিস্থিতিতে Regex ব্যবহার করে নির্দিষ্ট ফরম্যাট যাচাই করা সম্ভব।
Date Format Validation Example (MM/DD/YYYY):
import java.util.regex.*;
public class DateFormatValidation {
public static void main(String[] args) {
// Example dates in MM/DD/YYYY format
String[] dates = {
"12/31/2020", // Valid
"02/29/2020", // Valid leap year
"02/30/2020", // Invalid date
"13/12/2020", // Invalid month
"01/01/2021" // Valid
};
// Regex for validating MM/DD/YYYY format
String dateRegex = "^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/([12][0-9]{3})$";
// Compile the regex pattern
Pattern pattern = Pattern.compile(dateRegex);
// Validate each date
for (String date : dates) {
Matcher matcher = pattern.matcher(date);
if (matcher.matches()) {
System.out.println(date + " is a valid date.");
} else {
System.out.println(date + " is not a valid date.");
}
}
}
}
ব্যাখ্যা:
- Regex:
^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/([12][0-9]{3})$(0[1-9]|1[0-2]): ১ থেকে ১২ পর্যন্ত মাসের সংখ্যা।(0[1-9]|[12][0-9]|3[01]): ১ থেকে ৩১ পর্যন্ত দিন।([12][0-9]{3}): ৪ ডিজিটের সাল (যেমন 2020, 1999)।
আউটপুট:
12/31/2020 is a valid date.
02/29/2020 is a valid date.
02/30/2020 is not a valid date.
13/12/2020 is not a valid date.
01/01/2021 is a valid date.
3. Currency Symbol Validation (i18n):
বিশ্বব্যাপী বিভিন্ন দেশের মুদ্রা চিহ্ন এবং মানের ফরম্যাট আলাদা। উদাহরণস্বরূপ, USD এর জন্য $, EUR এর জন্য €, এবং INR এর জন্য ₹ চিহ্ন ব্যবহার করা হয়। আপনি Regex ব্যবহার করে এই মুদ্রা চিহ্নের বৈধতা যাচাই করতে পারেন।
Currency Validation Example (USD, EUR, INR):
import java.util.regex.*;
public class CurrencyValidation {
public static void main(String[] args) {
// Example currency amounts
String[] currencies = {
"$123.45", // USD
"€99.99", // EUR
"₹5000", // INR
"$1234.56", // USD
"£300", // Invalid currency symbol
"1000¥" // Invalid currency symbol
};
// Regex for validating currency (USD, EUR, INR)
String currencyRegex = "^[\\$€₹]\\d+(\\.\\d{1,2})?$";
// Compile the regex pattern
Pattern pattern = Pattern.compile(currencyRegex);
// Validate each currency
for (String currency : currencies) {
Matcher matcher = pattern.matcher(currency);
if (matcher.matches()) {
System.out.println(currency + " is a valid currency format.");
} else {
System.out.println(currency + " is not a valid currency format.");
}
}
}
}
ব্যাখ্যা:
- Regex:
^[\\$€₹]\\d+(\\.\\d{1,2})?$^[\\$€₹]: এটি স্ট্রিংয়ের শুরুতে$,€, বা₹এর মধ্যে একটি মুদ্রা চিহ্ন চেক করে।\\d+: এটি একটি বা একাধিক ডিজিট চেক করে (যেমন 123, 1234)।(\\.\\d{1,2})?: এটি ঐচ্ছিক দশমিক এবং ১ অথবা ২ ডিজিটের সেন্ট চেক করে।
আউটপুট:
$123.45 is a valid currency format.
€99.99 is a valid currency format.
₹5000 is a valid currency format.
$1234.56 is a valid currency format.
£300 is not a valid currency format.
1000¥ is not a valid currency format.
- Regex ব্যবহার করে আপনি internationalization (i18n) প্রক্রিয়ায় বিভিন্ন দেশের ভিন্ন ভিন্ন ফরম্যাটের জন্য input validation করতে পারেন, যেমন ফোন নম্বর, তারিখ, মুদ্রা চিহ্ন, ইমেইল অ্যাড্রেস ইত্যাদি।
- জাভাতে Regex দ্বারা আপনি আন্তর্জাতিক ফরম্যাটে সঠিকভাবে ইনপুট যাচাই করতে পারবেন এবং আপনার সফটওয়্যারটি বিভিন্ন সংস্কৃতিতে সঠিকভাবে কাজ করবে।
Read more