isRtlText function
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;
}