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.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size elm_fluent-0.6.0-py3-none-any.whl (47.4 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size elm_fluent-0.6.0.tar.gz (117.9 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for elm_fluent-0.6.0-py3-none-any.whl