ruleForLocale static method

PluralizationRule ruleForLocale(
  1. String locale
)

Returns the rule for a given locale.

BytePluralization.ruleForLocale('en')    // PluralizationRule.english
BytePluralization.ruleForLocale('fr')    // PluralizationRule.french
BytePluralization.ruleForLocale('ja')    // PluralizationRule.eastAsian
BytePluralization.ruleForLocale('ru')    // PluralizationRule.slavic

Implementation

static PluralizationRule ruleForLocale(String locale) {
  final baseLocale = locale.split('_').first.split('-').first.toLowerCase();

  switch (baseLocale) {
    case 'fr': // French
    case 'pt': // Portuguese (Brazilian)
      return PluralizationRule.french;

    case 'ja': // Japanese
    case 'zh': // Chinese
    case 'ko': // Korean
    case 'vi': // Vietnamese
    case 'th': // Thai
      return PluralizationRule.eastAsian;

    case 'ru': // Russian
    case 'uk': // Ukrainian
    case 'pl': // Polish
    case 'cs': // Czech
    case 'sk': // Slovak
    case 'hr': // Croatian
    case 'sr': // Serbian
    case 'sl': // Slovenian
    case 'bg': // Bulgarian
      return PluralizationRule.slavic;

    case 'ar': // Arabic
    case 'he': // Hebrew
      return PluralizationRule.arabic;

    default:
      return PluralizationRule.english;
  }
}