toHuman method
Largest two units in words. 3725 s → "1h 2m", persian → "۱ ساعت و ۲ دقیقه"
Implementation
String toHuman({bool persian = false}) {
final List<(int, String, String)> parts = <(int, String, String)>[
(inDays, "d", "روز"),
(inHours % 24, "h", "ساعت"),
(inMinutes % 60, "m", "دقیقه"),
(inSeconds % 60, "s", "ثانیه"),
].where(((int, String, String) p) => p.$1 > 0).take(2).toList();
if (parts.isEmpty) return persian ? "۰ ثانیه" : "0s";
return persian ? parts.map(((int, String, String) p) => "${p.$1.toString().toPersianNumber()} ${p.$3}").join(" و ") : parts.map(((int, String, String) p) => "${p.$1}${p.$2}").join(" ");
}