Skip to main content

Crate i18n_inflector

Crate i18n_inflector 

Source
Expand description

Multilingual noun singularization and pluralization.

i18n_inflector provides functions to convert between singular and plural forms of nouns across ISO 639 two-letter language codes.

§Quick Start

use i18n_inflector::{language_rules, LanguageRules};

// English
let en = language_rules("en").unwrap();
assert_eq!(en.singularize("users"), "user");
assert_eq!(en.singularize("categories"), "category");
assert_eq!(en.singularize("children"), "child");

let plurals = en.pluralize("user");
assert!(plurals.iter().any(|v| v == "users"));

// Spanish
assert_eq!(language_rules("es").unwrap().singularize("ciudades"), "ciudad");

// French
assert_eq!(language_rules("fr").unwrap().singularize("journaux"), "journal");

// Japanese
assert_eq!(language_rules("ja").unwrap().singularize("user"), "user");

// Unsupported locale returns an error
assert!(language_rules("xx").is_err());

Structs§

Error
An error returned when an unsupported locale is provided.
LanguageRuleSet
A concrete implementation of LanguageRules backed by function pointers.

Traits§

LanguageRules
A standardized interface for language-specific inflection rules.

Functions§

language_rules
Returns the LanguageRuleSet for the given locale.

Type Aliases§

Result
Result type for inflector operations.