getPluralCategory static method
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);
}
}