Runtime Utilities
Bundled with fbt come a few useful utilities for constructing strings.
intlList(...)
intlList creates fbt instances with selectable conjunctions given an array.
As an example
const intlList = require('fbt/lib/intlList');
const CONJUNCTIONS = intlList.CONJUNCTIONS;
const DELIMITERS = intlList.DELIMITERS;
let people = ['Adam', 'Becky', fbt('4 others', 'last item')]
intlList(people, CONJUNCTIONS.AND, DELIMITERS.COMMA);
produces the fbt
<fbt
desc={
'A list of items of various types. {previous items} and' +
' {following items} are themselves lists that contain one or' +
' more items.'
}>
<fbt:param name="previous items">{output}</fbt:param>
{', '}
<fbt:param name="following items">{items[i]}</fbt:param>
</fbt>
recursively combining fbts.
Note that genders are not used in this fbt:param instances, so they default to UNKNOWN
intlNumUtils and intlSummarizeNumber
There are a few utilities in both intlNumUtils and
intlSummarizeNumber that are documented in the source.
In fact fbt.param and fbt.plural default to displaying numbers
using intlNumUtils.formatNumberWithThousandDelimiters.
You can override this behavior in fbt:param by setting the
number option and using your own
string in the replacement.
You can override this in fbt.plural by providing the value
option.