normalize method
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();
}