format method

  1. @override
Future<String?> format(
  1. int number, [
  2. String? localeCode
])
override

Implementation

@override
Future<String?> format(int number, [String? localeCode]) async {
  //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules
  var locale = localeCode?.replaceAll('_', '-');
  var ordinalRules = getOrdinalRules(number, locale);
  if (ordinalRules == null && (locale?.contains('-') ?? false)) {
    locale = locale?.split('-')[0];
    ordinalRules = getOrdinalRules(number, locale);
  }
  if (ordinalRules == null) {
    locale = defaultLocale;
    ordinalRules ??= getOrdinalRules(number, locale);
  }
  final suffix = ordinalSuffixes[locale]?[ordinalRules];
  if (suffix == null) {
    return null;
  }
  return '$number$suffix';
}