JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 40171
  • Score
    100M100P100Q143284F
  • License Apache-2.0

Localization library for expressive translations.

Package Exports

  • @fluent/bundle
  • @fluent/bundle/esm/index.js
  • @fluent/bundle/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@fluent/bundle) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@fluent/bundle

@fluent/bundle is a JavaScript implementation of Project Fluent, optimized for runtime performance.

Installation

@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 the FluentBundle global).

npm install @fluent/bundle

How to use

The FluentBundle constructor provides the core functionality of formatting translations from FTL files.

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.

Compatibility

@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.