unTranslit method
Method for converting from translit for the source
value
Implementation
String unTranslit({required String source}) {
if (source.isEmpty) return source;
final regExp = RegExp('([a-z]+)', caseSensitive: false, multiLine: true);
if (!regExp.hasMatch(source)) return source;
final sourceSymbols = <String>[];
final unTranslit = <String>[];
final deTransliteratedSymbol = <String, String>{};
_complicatedSymbols.forEach((key, value) {
source = source.replaceAll(value, key);
});
sourceSymbols.addAll(source.split(''));
_transliteratedSymbol.forEach((key, value) {
deTransliteratedSymbol[value] = key;
});
for (final element in sourceSymbols) {
final transElement = deTransliteratedSymbol.containsKey(element)
? deTransliteratedSymbol[element] ?? ''
: element;
unTranslit.add(transElement);
}
return unTranslit.join();
}