Cldr v0.1.0 Cldr.Unit

Supports the CLDR Units definitions which provide for the localization of many unit types.

The public API defines two primary functions:

Summary

Functions

Returns the available styles for a unit localiation

Returns the available units for a given locale and style

Formats a number into a string according to a unit definition for a locale

Formats a list using to_string/3 but raises if there is an error

Functions

available_styles()

Returns the available styles for a unit localiation.

Example

iex> Cldr.Unit.available_styles
[:long, :short, :narrow]
available_units(locale \\ Cldr.get_locale(), style \\ :long)

Returns the available units for a given locale and style.

  • locale is any configured locale. See Cldr.known_locales(). The default is locale: Cldr.get_locale()

  • style is one of those returned by Cldr.Unit.available_styles. The current styles are :long, :short and :narrow. The default is style: :long

Example

Cldr.Unit.available_units
[:volume_gallon, :pressure_pound_per_square_inch, :digital_terabyte,
 :digital_bit, :digital_gigabit, :digital_kilobit, :volume_pint,
 :speed_kilometer_per_hour, :concentr_part_per_million, :energy_calorie,
 :volume_milliliter, :length_fathom, :length_foot, :volume_cubic_yard,
 :mass_microgram, :length_nautical_mile, :volume_deciliter,
 :consumption_mile_per_gallon, :volume_bushel, :volume_cubic_centimeter,
 :length_light_year, :volume_gallon_imperial, :speed_meter_per_second,
 :power_kilowatt, :power_watt, :length_millimeter, :digital_gigabyte,
 :duration_nanosecond, :length_centimeter, :volume_cup_metric,
 :length_kilometer, :angle_degree, :acceleration_g_force, :electric_ampere,
 :volume_quart, :duration_century, :angle_revolution, :volume_hectoliter,
 :area_square_meter, :digital_megabyte, :light_lux, :duration_year,
 :energy_kilocalorie, :frequency_megahertz, :power_horsepower,
 :volume_cubic_meter, :area_hectare, :frequency_hertz, :length_furlong,
 :length_astronomical_unit, ...]
to_string(number, unit, options \\ [])
to_string(Cldr.Math.number_or_decimal, atom, Keyword.t) ::
  String.t |
  {:error, {atom, binary}}

Formats a number into a string according to a unit definition for a locale.

  • number is any number (integer, float or Decimal)

  • unit is any unit returned by Cldr.Unit.available_units/0

  • options are:

  • locale is any configured locale. See Cldr.known_locales(). The default is locale: Cldr.get_locale()

  • style is one of those returned by Cldr.Unit.available_styles. THe current styles are :long, :short and :narrow. The default is style: :long

  • Any other options are passed to Cldr.Number.to_string/2 which is used to format the number

Examples

iex> Cldr.Unit.to_string 123, :volume_gallon
"123 gallons"

iex> Cldr.Unit.to_string 1, :volume_gallon
"1 gallon"

iex> Cldr.Unit.to_string 1, :volume_gallon, locale: "af"
"1 gelling"

iex> Cldr.Unit.to_string 1, :volume_gallon, locale: "af-NA"
"1 gelling"

iex> Cldr.Unit.to_string 1, :volume_gallon, locale: "bs"
"1 galona"

iex> Cldr.Unit.to_string 1234, :volume_gallon, format: :long
"1 thousand gallons"

iex> Cldr.Unit.to_string 1234, :volume_gallon, format: :short
"1K gallons"

iex> Cldr.Unit.to_string 1234, :frequency_megahertz
"1,234 megahertz"

iex> Cldr.Unit.to_string 1234, :frequency_megahertz, style: :narrow
"1,234MHz"

Cldr.Unit.to_string 123, :digital_megabyte, locale: "en-XX"
{:error, {Cldr.UnknownLocaleError, "The locale "en-XX" is not known."}}

Cldr.Unit.to_string 123, :digital_megabyte, locale: "en", style: :unknown
{:error, {Cldr.UnknownFormatError, "The unit style :unknown is not known."}}
to_string!(number, unit, options \\ [])
to_string!(List.t, atom, Keyword.t) ::
  String.t |
  Exception.t

Formats a list using to_string/3 but raises if there is an error.