removeDiacriticsQuran method
Implementation
String removeDiacriticsQuran(String input) {
final diacriticsMap = {
'أ': 'ا',
'إ': 'ا',
'آ': 'ا',
'إٔ': 'ا',
'إٕ': 'ا',
'إٓ': 'ا',
'أَ': 'ا',
'إَ': 'ا',
'آَ': 'ا',
'إُ': 'ا',
'إٌ': 'ا',
'إً': 'ا',
'ة': 'ه',
'ً': '',
'ٌ': '',
'ٍ': '',
'َ': '',
'ُ': '',
'ِ': '',
'ّ': '',
'ْ': '',
'ـ': '',
'ٰ': '',
'ٖ': '',
'ٗ': '',
'ٕ': '',
'ٓ': '',
'ۖ': '',
'ۗ': '',
'ۘ': '',
'ۙ': '',
'ۚ': '',
'ۛ': '',
'ۜ': '',
'': '',
'۞': '',
'۟': '',
'۠': '',
'ۡ': '',
'ۢ': '',
};
StringBuffer buffer = StringBuffer();
Map<int, int> indexMapping =
{}; // Ensure indexMapping is declared if not already globally declared
for (int i = 0; i < input.length; i++) {
String char = input[i];
String? mappedChar = diacriticsMap[char];
if (mappedChar != null) {
buffer.write(mappedChar);
if (mappedChar.isNotEmpty) {
indexMapping[buffer.length - 1] = i;
}
} else {
buffer.write(char);
indexMapping[buffer.length - 1] = i;
}
}
return buffer.toString();
}