Fluent i18n solution for Elm
elm-fluent is a Fluent implementation for Elm.
Fluent is a next-generation translation/localization solution, designed by the folks at Mozilla, based on many years of experience with localizing into a large number of different languages. Mozilla have extracted parts of their ‘l20n’ solution (used by apps like Firefox and Thunderbird) into a re-usable specification designed specifically for the web.
elm-fluent is a full implementation of this specification for Elm (see the change log for exact version support).
It operates as a command line tool that compiles .ftl files to .elm files. The result is that each message becomes a function that will generate a translated string (or HTML fragment) for a given locale and an optional set of strongly typed parameters (string, dates or numbers).
Dates and numbers can also be passed with formatting parameters supplied - for example, to attach a currency to a number, so that it can be correctly formatted as a currency according to the rules of the locale in use.
Please see the docs for more information.
For discussion regarding Fluent, including elm-fluent, see also the Mozilla Discourse Fluent category.
Rough around the edges, but being used in production. Please see the list of open issues.
A pretty complete test suite, and sufficient docs.
Good attention to usability in terms of nice error messages.
Compatibility: Elm 0.18 only.
Elm 0.19 is problematic - we require a wrapper for Intl, but Elm doesn’t have one yet and the restriction on native modules blocks us from writing our own.
It is unclear if/when an official wrapper will be provided, or whether it will be suitable for elm-fluent. We use elm-intl which has proved ideal for our usage, but the core team apparently quickly dismissed adoption of a library like that.
In light of this, and other problems caused by the restriction on native modules in 0.19, the author of elm-fluent may well be forced to move away from Elm. In this event the most likely outcome is a migration to bucklescript with bucklescript-tea and elm-fluent will be forked to target that platform instead. This repo will not be deleted but further development will likely stop.
Free software: MIT license
Big rewrite of the type inference/checking mechanism, with more accurate error messages now.
Updated to Syntax 1.0 (fluent.syntax 0.15)
Various bug fixes and small improvements
ftl2elm –include option
Dropped Python 2.7 support
Syntax 0.8 support, including parameterized terms.
Better compile-time resolution of some expressions.
Fixed python-fluent dependency to an older version (< 0.9), because it doesn’t work with newer versions. Thanks @stasm for the report.
Better handling for a large variety of error conditions
Proper fallback mechanism implemented
Added --watch option.
Eliminate unused imports from generated code
Various bug fixes:
Avoid outputting .elm files with no exports
Bugs with HTML attributes and non-string message args
Crasher with multi-line messages
Crasher when a message is missing from default locale
First release on PyPI.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for elm_fluent-0.6.0-py3-none-any.whl