untransliterate static method

String untransliterate({
  1. required String source,
})

Method for converting from translit for the source value

Implementation

static String untransliterate({required String source}) {
  if (source.isEmpty) return source;

  RegExp regExp = RegExp(
    r'([a-z]+)',
    caseSensitive: false,
    multiLine: true,
  );

  if (!regExp.hasMatch(source)) return source;

  List sourceSymbols = [];
  List unTranslit = [];
  Map deTransliteratedSymbol = {};

  _compSymbols.forEach((key, value) {
    source = source.replaceAll(value, key);
  });

  sourceSymbols = source.split('');

  _symbols.forEach((key, value) {
    deTransliteratedSymbol[value] = key;
  });

  for (final element in sourceSymbols) {
    unTranslit.add(deTransliteratedSymbol.containsKey(element)
        ? deTransliteratedSymbol[element]
        : element);
  }

  return unTranslit.join();
}