Packages

ex_cldr

1.4.2
2.47.5 2.47.4 2.47.3 2.47.2 2.47.1 2.47.0 2.46.0 2.45.2 2.45.1 2.45.0 2.44.1 2.44.0 2.43.2 2.43.1 2.43.0 2.42.0 2.41.1 2.41.0 2.40.4 2.40.3 2.40.2 2.40.1 2.40.0 2.39.2 2.39.1 2.39.0 2.38.1 2.38.0 2.37.5 2.37.4 2.37.3 retired 2.37.2 2.37.1 2.37.0 2.36.0 2.35.1 2.35.0 retired 2.34.2 2.34.1 2.34.0 2.33.2 2.33.1 2.33.1-rc.0 2.33.0 2.32.1 2.32.0 2.31.0 2.30.0 2.29.0 2.28.0 2.27.1 2.27.0 retired 2.26.3 2.26.2 2.26.1 2.26.0 2.25.0 2.24.2 2.24.1 2.24.0 2.24.0-rc.6 2.24.0-rc.5 2.24.0-rc.4 2.24.0-rc.3 2.24.0-rc.2 2.24.0-rc.1 2.24.0-rc.0 2.23.2 2.23.1 2.23.0 2.22.1 2.22.0 2.21.0 2.20.0 2.20.0-rc.3 2.20.0-rc.2 2.20.0-rc.1 2.20.0-rc.0 2.19.1 2.19.0 2.18.2 2.18.1 2.18.0 2.18.0-rc.0 2.17.2 2.17.1 2.17.0 2.16.2 2.16.1 2.16.1-rc.0 2.16.0 2.15.0 2.14.1 2.14.0 2.14.0-rc.0 2.13.0 2.12.1 2.12.0 2.11.1 2.11.0 2.10.2 2.10.1 2.10.0 retired 2.9.0 2.8.1 2.8.0 2.7.2 2.7.1 2.7.0 2.6.2 2.6.1 2.6.0 2.5.0 2.4.3 2.4.2 2.4.1 2.4.0 2.3.2 2.3.1 2.3.0 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 2.2.1 2.2.0 2.1.0 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 2.0.0-rc.3 retired 2.0.0-rc.2 retired 2.0.0-rc.1 retired 2.0.0-rc.0 retired 1.8.2 1.8.1 1.8.0 1.7.1 1.7.0 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.2 1.5.1 1.5.0 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 retired 1.4.0-rc.3 retired 1.4.0-rc.2 retired 1.4.0-rc.1 retired 1.4.0-rc.0 retired 1.3.2 1.3.1 1.3.0 1.2.0 1.1.0 1.0.0 1.0.0-rc.3 retired 1.0.0-rc.2 retired 1.0.0-rc.1 retired 1.0.0-rc.0 retired 0.13.1 0.13.0 0.12.2 retired 0.12.1 retired 0.12.0 retired 0.11.0 retired 0.10.0 retired 0.9.0 retired 0.8.3 retired 0.8.2 retired 0.8.1 retired 0.8.0 retired 0.7.0 retired 0.6.2 retired 0.6.1 retired 0.6.0 retired 0.5.2 retired 0.5.1 retired 0.5.0 retired 0.4.2 retired 0.4.1 retired 0.4.0 retired 0.3.0 retired 0.2.1 retired 0.2.0 retired 0.1.3 retired 0.1.2 retired 0.1.1 retired 0.1.0 retired 0.0.20 retired 0.0.19 retired 0.0.18 retired 0.0.17 retired 0.0.16 retired 0.0.15 retired 0.0.14 retired 0.0.13 retired 0.0.12 retired 0.0.11 retired 0.0.10 retired 0.0.8 retired 0.0.7 retired 0.0.6 retired 0.0.5 retired 0.0.4 retired 0.0.3 retired

Common Locale Data Repository (CLDR) functions for Elixir to localize and format numbers, dates, lists, messages, languages, territories and units with support for over 700 locales for internationalized (i18n) and localized (L10N) applications.

Current section

Files

Jump to
ex_cldr CHANGELOG.md
Raw

CHANGELOG.md

# Changelog for Cldr v1.4.2
This is the changelog for Cldr v1.4.1 released on February 11th, 2018. For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/cldr/tags)
### Bug Fixes
* Remove the hard-coded reference to the `Poison` library in `Cldr.Rbnf.Config` and replace it with the canonical `Cldr.Config.json_library/0`
### Enhancements
* Improve the error message raised at compile time if no valid json library has been detected
# Changelog for Cldr v1.4.1
As reported by @marceldegraaf there has been a regression in the performance of `Cldr.DateTime.to_string/2`. The use case he reported involved calls with `locale: "nl"`; ie using a binary `:locale`.
In all cases, locale resolution is passed through `Cldr.validate_locale/1`. In prior releases of `Cldr` this would require parsing the locale name which is a relatively expensive operation.
Therefore the major focus on this small release is to pre-parse all configured locale names into their corresponding language tag. As a result performance is largely the same whether locale is specified as a binary or as a language tag.
## Enhancements
* Precompiles all known locale names into a language tag which are then used to generate locale specific versions of `Cldr.validate_locale/1` when the parameter is a binary.
* Adds a mix task (available in github, not in the hex package) to generate the language tags for all available locales to support the performance optimization of locale to langauge tag lookup which is used in `Cldr.validate_locale/1` in many places in `Cldr`.
* Automatically detects the presence of `Jason` and `Poison` and configures the default `:json_library` appropriately.
# Changelog for Cldr v1.4.0
## Enhancements
* Updates CLDR data to version 32.0.1
* The primary focus on this release to automate the process of recompiling those parts of Cldr that are sensitive to configuration change. This release:
* Adds a `compiler.cldr` as a Mix compiler. This provides the functions that identify a locale configuration change and then recompile the relevant modules of Cldr. Basically it looks in all dependencies for any module that calls functions in `Cldr.Config` Therefore it is expected to work for Cldr and any package that depends on Cldr.
* To enable this functionality, the `compiler.cldr` mix task needs to be added in `mix.exs` as the last compiler in the list. For example
```
def project do
[
app: :app_name,
...
compilers: Mix.compilers ++ [:cldr],
start_permanent: Mix.env == :prod,
deps: deps()
]
end
```
* With this enhancement it will be no longer necessary to force recompile Cldr or packages that depend on it since they will be compiled whenever a locale configuration change is detected.
* The [Jason](https://hex.pm/packages/jason) json library is added to the dependency list as an optional dependency.
* Adds `:iso_digits` to the currency data maintained in CLDR. Cldr currency data does not always align with the ISO definition of a currency - notably for digits (subunit) definitions. For example, the Colombian Peso has an official subunit of the _pesavo_. One hundred _pesavos_ equals one _peso_. There are no notes/cash/coins for the _centavo_ but it is an offical part of the currency and it's important to be maintained for financial transactions.
* Adds a `Mix` task to download the ISO currency data that is used during locale consolidation to include ISO currency digits (subunits) in the currency definition. This is used downstream in the `ex_money` package.
## Bug Fixes
* Don't raise an exception if a Gettext backend is defined but it has no configuration for `:default_locale`. Fixes #38. Thanks to @schultzer.
* Fix incorrect boolean expression, replace with `&&` when determining if `Gettext` is configured.
* Remove unused var warnings when compiing on Elixir 1.7.0 master branch. Fixes #40. Thanks to @michalmuskala.
* Fix README `config.exs` examples to use the correct config key `:ex_cldr`. Fixes #41. Thanks to @phtrivier.
* Fix detecting a Gettext locale configuration by adding the `:cldr` compiler. Fixes #31. Thanks to @BrummbQ.
* Ensure that the default locale is also expanded. If no default locale is configured, the package default "en-001" is defined. This locale should also be expanded to include "en" since plural rules are often defined on the language rather than the territory-specific locale.
# Changelog for Cldr v1.3.2
This is the changelog for Cldr v1.3.2 released on January 20th, 2018. For older changelogs please consult the release tag on [GitHub](https://github.com/kipcole9/cldr/tags)
### Bug Fixes
* Correctly retrieve the default locale from a configured Gettext backend module. Fixes #32.
# Changelog for Cldr v1.3.1
### Bug Fixes
* Correctly use `conn.path_params` not the incorrect `conn.url_params` in `Cldr.Plug.SetLocale` and add plug router tests. Fixes #33.
* Correctly set the default locale using the Gettext default locale if the Cldr default locale isn't set but Gettext is.
# Changelog for Cldr v1.3.0
### Enhancements
* Add `Cldr.Digits.number_of_digits/1` that returns the number of digits (precision) of a float, integer or Decimal. The primary intent is to support better detection of precision errors after parsing a float string. A double precision 64-bit float (which is what Erlang/Elixir use) can safely support 15 digits. According to [Wikipedia](https://en.wikipedia.org/wiki/IEEE_754#Character_representation) a decimal floating point number should round-trip convert to string representation and back for 16 digits without rounding (and 17 using "round to even"). Some examples:
```
iex> Cldr.Digits.number_of_digits(1234)
4
iex> Cldr.Digits.number_of_digits(Decimal.new("123456789"))
9
iex> Cldr.Digits.number_of_digits(1234.456)
7
iex> Cldr.Digits.number_of_digits(1234.56789098765)
15
iex> Cldr.Digits.number_of_digits '12345'
5
```
# Changelog for Cldr v1.2.0
### Bug Fixes
* The changelog refers to the configuration key `json_library` but the readme and the code refer to `json_lib`. Standardise on `json_library`. Thanks to @lostkobrakai.
### Enhancements
* Fix the spec for `Cldr.known_currencies/0`. Thanks to @lostkobrakai.
# Changelog for Cldr v1.1.0
## Enhancements
* When configuring a locale name of the form "language-Script" or "language-Variant" the base "language" is also configured since plural rules will fall back to the base language if the locale name does not contain plural rules.
* When expanding wildcard locale names a more informative exception and error is produced if the regex for the locale names is invalid
* When a locale doesn't have any plural rules the error tuple `{:error, {Cldr.UnknownPluralRules, message}}` is returned instead of the current behaviour which raises an exception.
* The json library is now configurable. This permits the use of the new json library [jason](https://hex.pm/packages/jason) or any other library that provides `decode!/1` and `encode!/1`. The library is configured in `config.exs` as follows:
```
config :ex_cldr,
json_library: Jason # The default is Poison
```