JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 37611
  • Score
    100M100P100Q155773F
  • License MIT

fluent2js and js2fluent converter

Package Exports

  • fluent_conv
  • fluent_conv/ftl2js
  • fluent_conv/js2ftl

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_conv) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

travis npm

Download

The source is available for download from GitHub. Alternatively, you can install using npm:

npm install --save fluent_conv

You can then require() fluent_conv as normal:

const fluent = require("fluent_conv");

Or you can direclty require() its functions:

const ftl2js = require("fluent_conv/ftl2js");

Usage

const ftl = `
emails =
  { $unreadEmails ->
    [one] You have one unread email.
   *[other] You have { $unreadEmails } unread emails.
  }

-brand-name =
  {
   *[nominative] Firefox
    [accusative] Firefoxa
  }

-another-term = another term

app-title = { -brand-name }

restart-app = Zrestartuj { -brand-name[accusative] }.

# Note: { $title } is a placeholder for the title of the web page
# captured in the screenshot. The default, for pages without titles, is
# creating-page-title-default.
login = Predefined value
  .placeholder = example@email.com
  .aria-label = Login input value
  .title = Type your login email

logout = Logout
`;

const js = {
  emails:
    "{ $unreadEmails ->\n  [one] You have one unread email.\n *[other] You have { $unreadEmails } unread emails.\n}",
  "-brand-name": "{\n *[nominative] Firefox\n  [accusative] Firefoxa\n}",
  "-another-term": "another term",
  "app-title": "{ -brand-name }",
  "restart-app": "Zrestartuj { -brand-name[accusative] }.",
  login: {
    comment:
      "Note: { $title } is a placeholder for the title of the web page\ncaptured in the screenshot. The default, for pages without titles, is\ncreating-page-title-default.",
    val: "Predefined value",
    placeholder: "example@email.com",
    "aria-label": "Login input value",
    title: "Type your login email"
  },
  logout: "Logout"
};

const ftl2js = require("fluent_conv/ftl2js");
ftl2js(ftl, (err, res) => {
  // res is like js
});
// or without callback
const res = ftl2js(ftl);
// res is like js


const js2ftl = require("fluent_conv/js2ftl");
js2ftl(js, (err, res) => {
  // res is like ftl
});
// or without callback
const res = js2ftl(js);
// res is like ftl