@messageformat/fluent

This library provides conversion and compatibility tools for using Fluent resources with the Unicode MessageFormat 2.0 -based ECMA-402 Intl.MessageFormat proposal.

The Fluent message representation relies on @fluent/syntax, while the MessageFormat 2 representation uses messageformat.

This package is distributed only as an ES module.

npm install @messageformat/fluent
import { fluentToResource } from '@messageformat/fluent';

const locale = 'en-US';
const src = 'msg = Today is {DATETIME($today, dateStyle: "medium")}\n';

const resource = fluentToResource(locale, src);
const msg = resource.get('msg').get('');

msg.format({ today: new Date('2022-02-02') });
// 'Today is Feb 2, 2022'

msg.formatToParts({ today: new Date('2022-02-02') });
// [
// { type: 'text', value: 'Today is ' },
// {
// type: 'datetime',
// dir: 'ltr',
// locale: 'en',
// parts: [
// { type: 'month', value: 'Feb' },
// { type: 'literal', value: ' ' },
// { type: 'day', value: '2' },
// { type: 'literal', value: ', ' },
// { type: 'year', value: '2022' }
// ]
// }
// ]
import {
fluentToMessage,
fluentToResource,
fluentToResourceData,
getMessageFunction,
messageToFluent,
resourceToFluent
} from '@messageformat/fluent';

import type {
FluentMessageResource,
FluentMessageResourceData
} from '@messageformat/fluent';

For more information, see the documentation site.

Interfaces

MessageReferencePart
MessageReferenceValue

Type Aliases

FluentMessageResource
FluentMessageResourceData

Functions

fluentToMessage
fluentToResource
fluentToResourceData
getMessageFunction
messageToFluent
resourceToFluent