Skip to content

GlobalWebIndex/elm-plural-rules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GlobalWebIndex/elm-plural-rules

An abstraction for working with pluralization rules.

Based largely on Unicode Language Plural Rules.

Screenshot of English rules

Screenshot of Czech rules

(For the description of what the v = 0 conditions in the above screenshots mean, look at the Plural Operand Meanings table or check the Plural Operands section of the PluralRules module!)


This library helps you arrive at an API like:

pluralize 1 "message" --> "message"
pluralize 5 "message" --> "messages"

pluralize 1 "man" --> "man"
pluralize 5 "man" --> "men"

pluralize 1 "query" --> "query"
pluralize 5 "query" --> "queries"

See the examples/ folder for how to get there!

There are also helpers for writing pluralization logic for languages not included in this package. Obviously, there's a lot of languages and each of those has its own rules for how it pluralizes. Check them here!

Currently supported Languages

  • English
  • Czech
  • French
  • Dutch

FAQ

Where do the rules come from?

You're supposed to make your own dictionary of Rules and add words into it as you start using them in the app.

Each language has its own ways of pluralizing words and we've opted out to let you "grow your own dictionary" based on the words you're using in your app, because:

  • it would be impractical for the package to contain a whole dictionary in that given language,
  • and we believe it would be impossible / very impractical to try to implement that behaviour with some kind of function. This is not a NLP package :)

See examples/Pluralize.elm for how rules for specific words can be created.

About

Abstraction for working with pluralization rules

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages