normalize method

  1. @override
String normalize(
  1. String text
)
override

Normalizes text based on language-specific rules

Implementation

@override
String normalize(String text) {
  var normalized = text.trim().replaceAll(RegExp(r'\s+'), ' ');

  // Remove Arabic diacritics (Tashkeel)
  const diacritics = 'ًٌٍَُِّْٰٖٕٗٓٔ';
  for (int i = 0; i < diacritics.length; i++) {
    normalized = normalized.replaceAll(diacritics[i], '');
  }

  // Normalize similar letters
  const letterSubstitutions = {
    'أ': 'ا', 'إ': 'ا', 'آ': 'ا',
    'ة': 'ه',
    'ى': 'ي',
    'ؤ': 'و',
    'ئ': 'ي'
  };

  letterSubstitutions.forEach((key, value) {
    normalized = normalized.replaceAll(key, value);
  });

  return normalized.trim();
}