getPluralCategory static method

PluralCategory getPluralCategory(
  1. int value,
  2. String? locale
)

Determines the appropriate plural category for a given value and locale

Implementation

static PluralCategory getPluralCategory(int value, String? locale) {
  if (locale == null) {
    return _getEnglishPluralCategory(value);
  }

  final languageCode = locale.split('_').first.toLowerCase();

  switch (languageCode) {
    // Languages with 2 forms (like English)
    case 'en':
    case 'de':
    case 'es':
    case 'fr':
    case 'it':
    case 'pt':
    case 'nl':
    case 'sv':
    case 'da':
    case 'no':
    case 'fi':
    case 'tr':
    case 'he':
    case 'ja':
    case 'ko':
    case 'zh':
    case 'th':
    case 'vi':
      return _getEnglishPluralCategory(value);

    // Languages with 3 forms (like Russian)
    case 'ru':
    case 'uk':
    case 'be':
    case 'sr':
    case 'hr':
    case 'bs':
    case 'mk':
    case 'bg':
      return _getSlavicPluralCategory(value);

    // Languages with 4 forms (like Polish)
    case 'pl':
    case 'cs':
    case 'sk':
      return _getPolishPluralCategory(value);

    // Languages with 6 forms (like Arabic)
    case 'ar':
      return _getArabicPluralCategory(value);

    // Languages with special rules
    case 'ga': // Irish
      return _getIrishPluralCategory(value);

    case 'cy': // Welsh
      return _getWelshPluralCategory(value);

    case 'mt': // Maltese
      return _getMaltesePluralCategory(value);

    default:
      return _getEnglishPluralCategory(value);
  }
}