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