isRtlText function

bool isRtlText(
  1. String text
)

Whether text reads right to left: its first strong character is Hebrew, Arabic, Syriac, Thaana, N'Ko or another right-to-left script (UAX #9 rule P2).

Implementation

bool isRtlText(String text) {
  for (final r in text.runes) {
    if ((r >= 0x0590 && r <= 0x08FF) ||
        (r >= 0xFB1D && r <= 0xFDFF) ||
        (r >= 0xFE70 && r <= 0xFEFF) ||
        (r >= 0x10800 && r <= 0x10FFF) ||
        (r >= 0x1E800 && r <= 0x1EFFF)) {
      return true;
    }
    if ((r >= 0x41 && r <= 0x5A) ||
        (r >= 0x61 && r <= 0x7A) ||
        (r >= 0xC0 && r <= 0x24F) ||
        (r >= 0x370 && r <= 0x58F) ||
        (r >= 0x900 && r <= 0x1FFF) ||
        (r >= 0x3040 && r <= 0x9FFF) ||
        (r >= 0xAC00 && r <= 0xD7AF)) {
      return false;
    }
  }
  return false;
}