normalizeNumbersLocale static method

String normalizeNumbersLocale(
  1. String str, {
  2. bool isArabic = false,
})

Implementation

static String normalizeNumbersLocale(String str,{bool isArabic = false}) {
  final Map<String, String> numberMapArToEn = <String, String>{
    '٠': '0',
    '١': '1',
    '٢': '2',
    '٣': '3',
    '٤': '4',
    '٥': '5',
    '٦': '6',
    '٧': '7',
    '٨': '8',
    '٩': '9',
  };

  final Map<String, String> numberMapEnToAr = <String, String>{
    '0': '٠',
    '1': '١',
    '2': '٢',
    '3': '٣',
    '4': '٤',
    '5': '٥',
    '6': '٦',
    '7': '٧',
    '8': '٨',
    '9': '٩',
  };

  final StringBuffer stringBuffer = StringBuffer();

  for (int i = 0; i < str.length; i++) {
    if (!isArabic && numberMapArToEn.containsKey(str[i])) {
      stringBuffer.write(numberMapArToEn[str[i]]);
    }else if (isArabic && numberMapEnToAr.containsKey(str[i])) {
      stringBuffer.write(numberMapEnToAr[str[i]]);
    } else {
      stringBuffer.write(str[i]);
    }
  }

  return stringBuffer.toString();
}