arabic_name_transliterator 0.6.0
arabic_name_transliterator: ^0.6.0 copied to clipboard
A comprehensive Flutter package for bidirectional transliteration of Arabic names (Saudi, Egyptian) ↔ English with a large database of common names and automatic transliteration for unknown names.
example/example.dart
import 'package:arabic_name_transliterator/arabic_name_transliterator.dart';
void main() {
print('=== أمثلة على استخدام حزمة Arabic Name Transliterator ===\n');
// ========== مثال 1: ترجمة أسماء موجودة في القاعدة ==========
print('1. ترجمة أسماء موجودة في القاعدة:');
print(' محمد → ${ArabicNameTransliterator.transliterate('محمد')}');
print(' فاطمة → ${ArabicNameTransliterator.transliterate('فاطمة')}');
print(' أحمد → ${ArabicNameTransliterator.transliterate('أحمد')}');
print(' عائشة → ${ArabicNameTransliterator.transliterate('عائشة')}');
print(' خالد → ${ArabicNameTransliterator.transliterate('خالد')}');
print(' مريم → ${ArabicNameTransliterator.transliterate('مريم')}\n');
// ========== مثال 2: ترجمة أسماء غير موجودة (ترجمة تلقائية) ==========
print('2. ترجمة أسماء غير موجودة (ترجمة تلقائية):');
print(' إذا كان الاسم غير موجود في القاعدة، يتم ترجمته تلقائياً حرف بحرف:');
print(' غيرموجود → ${ArabicNameTransliterator.transliterate('غيرموجود')}');
print(' اسم جديد → ${ArabicNameTransliterator.transliterate('اسم جديد')}');
print(
' ملاحظة: الناتج قد لا يكون دقيقاً مثل الأسماء الموجودة في القاعدة\n');
// ========== مثال 3: ترجمة أسماء مركبة ==========
print('3. ترجمة أسماء مركبة:');
print(' عبدالله → ${ArabicNameTransliterator.transliterate('عبدالله')}');
print(
' عبدالرحمن → ${ArabicNameTransliterator.transliterate('عبدالرحمن')}');
print(
' محمد علي → ${ArabicNameTransliterator.transliterate('محمد علي')}\n');
// ========== مثال 3.5: ترجمة أسماء رباعية وطويلة ==========
print('3.5. ترجمة أسماء رباعية وطويلة:');
print(
' محمد علي أحمد خالد → ${ArabicNameTransliterator.transliterate('محمد علي أحمد خالد')}');
print(
' فاطمة أحمد محمد علي → ${ArabicNameTransliterator.transliterate('فاطمة أحمد محمد علي')}');
print(
' عبدالله محمد علي أحمد → ${ArabicNameTransliterator.transliterate('عبدالله محمد علي أحمد')}\n');
// ========== مثال 4: التحقق من وجود الاسم ==========
print('4. التحقق من وجود الاسم في القاعدة:');
print(
' هل "محمد" موجود؟ ${ArabicNameTransliterator.hasCommonName('محمد')}');
print(
' هل "اسمغيرموجود" موجود؟ ${ArabicNameTransliterator.hasCommonName('اسمغيرموجود')}\n');
// ========== مثال 5: الحصول على الترجمة مباشرة ==========
print('5. الحصول على الترجمة مباشرة:');
final translation = ArabicNameTransliterator.getCommonName('فاطمة');
print(' ترجمة "فاطمة": $translation');
final translation2 = ArabicNameTransliterator.getCommonName('غيرموجود');
print(' ترجمة "غيرموجود": $translation2');
print(' ملاحظة: إذا كان الاسم غير موجود، يرجع null\n');
// ========== مثال 8: الفرق بين transliterate و getCommonName ==========
print('8. الفرق بين transliterate() و getCommonName():');
print(
' transliterate() - يعمل دائماً (يرجع ترجمة تلقائية إذا لم يكن موجوداً):');
print(
' "غيرموجود" → ${ArabicNameTransliterator.transliterate('غيرموجود')}');
print(' getCommonName() - يرجع null إذا لم يكن موجوداً:');
print(
' "غيرموجود" → ${ArabicNameTransliterator.getCommonName('غيرموجود')}');
print(' نصيحة: استخدم transliterate() إذا أردت ترجمة دائماً،');
print(
' استخدم getCommonName() إذا أردت التحقق من وجود الاسم أولاً\n');
// ========== مثال 6: ترجمة قائمة من الأسماء ==========
print('6. ترجمة قائمة من الأسماء:');
final names = ['محمد', 'أحمد', 'علي', 'فاطمة', 'مريم', 'خالد'];
final translated = names
.map(
(name) => '${name} → ${ArabicNameTransliterator.transliterate(name)}')
.toList();
translated.forEach((item) => print(' $item'));
print('');
// ========== مثال 7: الترجمة العكسية (من الإنجليزية إلى العربية) ==========
print('7. الترجمة العكسية (من الإنجليزية إلى العربية):');
print(
' Mohammed → ${ArabicNameTransliterator.reverseTransliterate('Mohammed')}');
print(
' Fatima → ${ArabicNameTransliterator.reverseTransliterate('Fatima')}');
print(' Ahmed → ${ArabicNameTransliterator.reverseTransliterate('Ahmed')}');
print(' Ali → ${ArabicNameTransliterator.reverseTransliterate('Ali')}');
print(
' Khalid → ${ArabicNameTransliterator.reverseTransliterate('Khalid')}');
print(
' Ahmed Ali → ${ArabicNameTransliterator.reverseTransliterate('Ahmed Ali')}');
print(
' Mohammed Ali Ahmed → ${ArabicNameTransliterator.reverseTransliterate('Mohammed Ali Ahmed')}\n');
// ========== مثال 8: التحقق من وجود الاسم الإنجليزي ==========
print('8. التحقق من وجود الاسم الإنجليزي في القاعدة:');
print(
' هل "Mohammed" موجود؟ ${ArabicNameTransliterator.hasEnglishName('Mohammed')}');
print(
' هل "UnknownName" موجود؟ ${ArabicNameTransliterator.hasEnglishName('UnknownName')}\n');
// ========== مثال 9: الحصول على الترجمة العربية مباشرة ==========
print('9. الحصول على الترجمة العربية مباشرة:');
final arabicName = ArabicNameTransliterator.getArabicName('Fatima');
print(' ترجمة "Fatima": $arabicName');
final arabicName2 = ArabicNameTransliterator.getArabicName('UnknownName');
print(' ترجمة "UnknownName": $arabicName2');
print(' ملاحظة: إذا كان الاسم غير موجود، يرجع null\n');
// ========== مثال 10: استخدام في تطبيق Flutter ==========
print('10. مثال على الاستخدام في Flutter:');
print('''
import 'package:flutter/material.dart';
import 'package:arabic_name_transliterator/arabic_name_transliterator.dart';
class NameTranslator extends StatelessWidget {
@override
Widget build(BuildContext context) {
// الترجمة من العربية إلى الإنجليزية
final arabicName = 'محمد';
final englishName = ArabicNameTransliterator.transliterate(arabicName);
// الترجمة العكسية من الإنجليزية إلى العربية
final englishInput = 'Mohammed';
final arabicOutput = ArabicNameTransliterator.reverseTransliterate(englishInput);
return Column(
children: [
Text('\$arabicName = \$englishName'),
Text('\$englishInput = \$arabicOutput'),
],
);
}
}
''');
}