cldr_collation

Common Locale Data Repository (CLDR) icu4c NIF-based collator providing locale-sensitive sorting.


License
Other

Documentation

Cldr Collation

A NIF-based Unicode collator based upon the Unicode library libicu4c. Builds upon the erlang library erlang-ucol by Benoît Chesneau benoitc@e-engura.org and Nicolas Dufour nrdufour@gmail.com

This initial version uses only the "root" locale collator which is the CLDR DUCET collator.

Requirements

This module requires the package icu4c be installed on your system.

For Mac OS users, the standard installation that is delivered with Mac OS is used. No separate installation is required.

Examples

  # Sorting using Cldr.Collator.sort/2
  iex> Cldr.Collation.sort(["á", "b", "A"], casing: :sensitive)
  ["A", "á", "b"]

  iex> Cldr.Collation.sort(["á", "b", "A"], casing: :insensitive)
  ["á", "A", "b"]

  # Comparing strings
  iex> Cldr.Collation.compare("a", "A", casing: :insensitive)
  :eq

  iex> Cldr.Collation.compare("a", "A", casing: :sensitive)
  :lt

  # Using Elixir 1.10 Enum.sort
  # Cldr.Collation.Sensitive, Cldr.Collation.Insensitive
  # comparise modules are provided

  iex> Enum.sort(["AAAA", "AAAa"], Cldr.Collation.Insensitive)
  ["AAAA", "AAAa"]

  iex> Enum.sort(["AAAA", "AAAa"], Cldr.Collation.Sensitive)
  ["AAAa", "AAAA"]

Installation

The package can be installed by adding cldr_collation to your list of dependencies in mix.exs:

def deps do
  [
    {:ex_cldr_collation, "~> 0.5.0"}
  ]
end

Ensure the package icu4c is installed on your system before invoking mix compile or iex -S mix.