Packages
gettext
0.17.4
1.0.2
1.0.1
retired
1.0.0
0.26.2
0.26.1
0.26.0
retired
0.25.0
0.24.0
0.23.1
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.2
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.1
0.16.0
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.1
0.6.0
0.5.0
Internationalization and localization through gettext
Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog
## v0.17.4
* Do not change the return types of `*_noop` macros (regression in v0.17.2 and v0.17.3)
* Fix dialyzer warnings
## v0.17.3
* Add `lgettext/4` back which was removeed in v0.17.2 - note `lgettext/4` is private API and may be removed in future once again
## v0.17.2
* Support `pgettext`
* Consider extracted comments when merging templates during extraction
## v0.17.1
* Store the `msgctxt` value in translation and dump it when dumping translations
* Fix a bug when dumping references
* Improve code generation
* Preserve whitespace in translation flags
## v0.17.0
* Require Elixir 1.6 and later
* Add stats reporting when merging PO files
## v0.16.1
* Optimize default locale lookup
## v0.16.0
* Fix bugs related to expanding arguments to Gettext macros
* Fix a bug where you couldn't have filenames with colons in them in reference comments
* Add `handle_missing_translation/4` and `handle_missing_plural_translation/6` callbacks to Gettext backends
* Fix a bug in `mix gettext.extract`, which was ignoring the `--merge` option
## v0.15.0
* Generate correct plural forms when dumping new translations in PO files
* Fix a bug where we were losing translator comments for fuzzy-merged translations
* Don't make an exact match when merging prevent later fuzzy matches
* Allow multiple translations to fuzzy-match against the same translation when merging
* Bump the Elixir requirement to v1.4 and on
## v0.14.1
* Copy flags from existing translations when merging translations
## v0.14.0
* Introduce a global locale (per-process) for all Gettext backends
* Warn when compiling and raise at runtime for missing plural forms
* Separate flags with commas when dumping and parsing .pot files
* Add support for extracted comments via `gettext_comment/1`
* Require Elixir v1.3 and fix warnings
* Improve compilation time of Gettext backends in roughtly 20%
* Add `:one_module_per_locale` for parallel compilation of backends (requires Elixir v1.6)
* Use the `elixir-format` flag to mark autogenerated translations
## v0.13.1
* Fix a bug with Dialyzer specs for the `Gettext.Backend.ngettext_noop/2` callback
* Parse `msgctxt` entries in PO and POT files so that they don't cause syntax errors, but ignore them in the parsed result
## v0.13.0
* Add the `gettext_noop/1`, `dgettext_noop/2`, `ngettext_noop/3`, and `dngettext_noop/4` macros to Gettext backends; these macros can be used to mark translations for extractions without tranlating the given string
## v0.12.2
* Fix a bug where we failed miserably with a "no process" error when extracting
translations without having the `:gettext` compiler run
* Slightly revisit the indentation of subsequent literal strings in dumped PO(T) files; before, they were dumped one per line, indented one level more than the parenttranslation, while now they're indented at the same level as the parent translation
## v0.12.1
* Ensure the Gettext application is started before running mix tasks
## v0.12.0
* Drop support for Elixir 1.1 and require ~> 1.2
* Add `:compiler_po_wildcard` to explicitly choose the po files that are tracked by the compiler
* Allow the developer to configure what happens when there are missing bindings in the translation. The default has been changed to log and return the incomplete string instead of raising
* Move the configuration for the `:gettext` application to compile-time config
in `project/0` in `mix.exs` (under the `:gettext` key, with configuration
options `:excluded_refs_from_purging`, `:compiler_po_wildcard` and `:fuzzy_threshold`)
* Show the file name in syntax errors when running `mix gettext.extract` and `mix gettext.merge`
* Don't print tokens as Erlang terms in syntax error when running `mix gettext.extract` and `mix gettext.merge`
* Allow duplicate interpolation keys
* Raise when the domain is not a binary at compile-time
* Fix many dialyzer warnings
* No longer traverse directories given to `gettext.merge` recursively (from now on `gettext.merge` expect specific locale directories)
* Reenable the "compile" task in `mix gettext.extract`
* Ensure translations are tracked to the proper child app when using umbrella apps
## v0.11.0
* Polish so many docs!
* Make an error in `Gettext.put_locale/2` clearer
* Pluralize `x_Y` locales as `x`, but fail with
`Gettext.Plural.UnknownLocaleError` for any other unknown locale
* Add a `Gettext.Backend` behaviour (automatically implemented if a module
calls `use Gettext`)
* Allow whitelisting of references via the `:excluded_refs_from_purging` option
in the `:gettext` application config
## v0.10.0
* Emit warnings when the domain passed to one of the `*gettext` macros has
slashes in it (as we don't support domains in subdirectories).
* Discard dangling comments when parsing/dumping PO(T) files (dangling comments
are comments that are not followed by a transaction they can be attached to).
* Updated informative comments for newly generated PO/POT files.
## v0.9.0
* Strip `##` comments from POT files when they're being merged into PO files;
these comments are comments meant to be generated by tools or directed at
developers (so they have no use for translators in PO files).
* Add informative comments at the top of newly generated PO/POT files.
* Add `Gettext.known_locales/1`
* Fix a bug with PO parsing when the PO file starts with a
[BOM](https://en.wikipedia.org/wiki/Byte_order_mark) character (which broke
the parser, now a warning is issued).
## v0.8.0
* Fix a bug with the `*gettext` macros, which raised an error when given
compile-time strings in the form of `~s`/`~S` sigils.
* Create missing locale directories (for example, `en/LC_MESSAGES`) when running the
`gettext.merge` Mix task.
* Fallback to default translations (that is, the `msgid`) when the `msgstr` (or one
or more `msgstr` strings for plural translations) is empty.
## v0.7.0
* When dumping PO files, dump as many references as possible on one line,
wrapping at the 80th column
* Parse multiple references in the same reference comment
* Remove `Gettext.locale/0-1` and `Gettext.with_locale/2` in favour of
`Gettext.get_locale/1`, `Gettext.put_locale/2`, and `Gettext.with_locale/3`
which now work by setting/getting the locale on a per-backend basis (instead
of a global one)
* Remove the `:default_locale` config option for the `:gettext` application in
favour of configuring the `:default_locale` for backends tied to their
`:otp_app` (for example, `config :my_app, MyApp.Gettext, default_locale: "pt_BR"`)
## v0.6.1
* Fix a bug with the `mix gettext.merge` task that was failing in Elixir v1.1.1
because `0.5 in 0..1` returns `false` with it
## v0.6.0
* Add a `:flags` field to the `Gettext.PO.Translation` and
`Gettext.PO.PluralTranslation` structs
* Add support for fuzzy matching translations in `gettext.merge` and
`gettext.extract --merge`
* Add the `:fuzzy_threshold` configuration option for the `:gettext` application
## v0.5.0
* Initial release