Localization library for expressive translations.
npm install @fluent/bundle@fluent/bundle is a JavaScript implementation of [Project Fluent][],
optimized for runtime performance.
[project fluent]: https://projectfluent.org
@fluent/bundle can be used both on the client-side and the server-side. You
can install it from the npm registry or use it as a standalone script (as theFluentBundle global).
npm install @fluent/bundle
The FluentBundle constructor provides the core functionality of formatting
translations from FTL files.
``javascript
import { FluentBundle, FluentResource } from "@fluent/bundle";
let resource = new FluentResource(
-brand-name = Foo 3000
welcome = Welcome, {$name}, to {-brand-name}!);
let bundle = new FluentBundle("en-US");
let errors = bundle.addResource(resource);
if (errors.length) {
// Syntax errors are per-message and don't break the whole resource
}
let welcome = bundle.getMessage("welcome");
if (welcome.value) {
bundle.formatPattern(welcome.value, { name: "Anna" });
// → "Welcome, Anna, to Foo 3000!"
}
`
The API reference is available at https://projectfluent.org/fluent.js/bundle.
@fluent/bundle requires the following Intl formatters:
- Intl.DateTimeFormat (standard, well-supported)Intl.NumberFormat
- (standard, well-supported)Intl.PluralRules
- (standard, well-supported)
See also the [Compatibility][] article on the fluent.js` wiki.
[compatibility]: https://github.com/projectfluent/fluent.js/wiki/Compatibility