Arabic Converters 🇸🇦
A comprehensive Flutter package for converting numbers between Arabic and English formats, and converting dates between Gregorian and Hijri calendars.
Features ✨
- 🔢 Convert numbers between Arabic (٠١٢٣٤٥٦٧٨٩) and English (0123456789) digits
- 📅 Convert dates between Gregorian and Hijri calendars
- 🌙 Get current Hijri date
- 📝 Format dates in Arabic
- ✅ Check for Arabic or English digits in strings
Installation 📦
Add this to your package's pubspec.yaml file:
dependencies:
arabic_converters: ^1.0.0
Then run:
flutter pub get
Usage 🚀
Number Conversion
import 'package:arabic_converters/arabic_converters.dart';
// Convert English to Arabic digits
String arabic = NumberConverter.toArabic('12345');
print(arabic); // ١٢٣٤٥
// Convert Arabic to English digits
String english = NumberConverter.toEnglish('١٢٣٤٥');
print(english); // 12345
// Convert integer to Arabic
String arabicNum = NumberConverter.intToArabic(2024);
print(arabicNum); // ٢٠٢٤
// Convert Arabic string to integer
int number = NumberConverter.arabicToInt('٢٠٢٤');
print(number); // 2024
// Check for Arabic digits
bool hasArabic = NumberConverter.hasArabicDigits('١٢٣');
print(hasArabic); // true
// Check for English digits
bool hasEnglish = NumberConverter.hasEnglishDigits('123');
print(hasEnglish); // true
Date Conversion
import 'package:arabic_converters/arabic_converters.dart';
// Convert Gregorian to Hijri
DateTime gregorian = DateTime(2024, 3, 11);
HijriDate hijri = DateConverter.toHijri(gregorian);
print(hijri.toArabicFormat()); // ١ رمضان ١٤٤٥
print(hijri.toEnglishFormat()); // 1 Ramadan 1445
print(hijri.toNumericFormat()); // 01/09/1445
// Convert Hijri to Gregorian
HijriDate hijriDate = HijriDate(year: 1445, month: 9, day: 1);
DateTime gregorianDate = DateConverter.toGregorian(hijriDate);
print(gregorianDate); // 2024-03-11
// Get current Hijri date
HijriDate today = DateConverter.getCurrentHijriDate();
print(today.toArabicFormat());
// Format date in Arabic
String arabicDate = DateConverter.formatArabicDate(DateTime.now());
print(arabicDate); // الجمعة، ١ نوفمبر ٢٠٢٤
// Get month name
print(hijri.monthName); // رمضان
print(hijri.monthNameEnglish); // Ramadan
API Reference 📚
NumberConverter
String toArabic(String input)- Converts English digits to ArabicString toEnglish(String input)- Converts Arabic digits to EnglishString intToArabic(int number)- Converts integer to Arabic digit stringint arabicToInt(String arabicNumber)- Converts Arabic digit string to integerbool hasArabicDigits(String input)- Checks if string contains Arabic digitsbool hasEnglishDigits(String input)- Checks if string contains English digits
DateConverter
HijriDate toHijri(DateTime gregorianDate)- Converts Gregorian to Hijri dateDateTime toGregorian(HijriDate hijriDate)- Converts Hijri to Gregorian dateHijriDate getCurrentHijriDate()- Gets current date in Hijri calendarString formatArabicDate(DateTime date)- Formats date in Arabic
HijriDate
Properties:
int year- Hijri yearint month- Hijri month (1-12)int day- Day of monthString monthName- Arabic month nameString monthNameEnglish- English month name
Methods:
String toArabicFormat()- Format as "١٥ رمضان ١٤٤٦"String toEnglishFormat()- Format as "15 Ramadan 1446"String toNumericFormat()- Format as "DD/MM/YYYY"
Example App 📱
Check out the example directory for a complete sample application demonstrating all features.
Hijri Calendar Notes 📝
The Hijri calendar conversion uses astronomical calculations. Please note:
- The Hijri calendar is lunar-based with 354 or 355 days per year
- Actual moon sighting may vary by 1-2 days from calculated dates
- Different Islamic authorities may observe different dates
Contributing 🤝
Contributions are welcome! Please feel free to submit a Pull Request.
License 📄
This project is licensed under the MIT License - see the LICENSE file for details.
Author ✍️
Created with ❤️ by Ahmed Algzery
Support 💬
For issues, questions, or suggestions, please file an issue on the GitHub repository.# arabic_converters