What is @formatjs/intl-displaynames?
@formatjs/intl-displaynames is a JavaScript library that provides a way to display names of various international entities such as languages, regions, scripts, and currencies in a localized manner. It leverages the Internationalization API to format these names according to the specified locale.
What are @formatjs/intl-displaynames's main functionalities?
Display Language Names
This feature allows you to display the name of a language in a localized format. In this example, the name of the French language is displayed in English.
const { DisplayNames } = require('@formatjs/intl-displaynames');
const displayNames = new DisplayNames(['en'], { type: 'language' });
console.log(displayNames.of('fr')); // Output: French
Display Region Names
This feature allows you to display the name of a region in a localized format. In this example, the name of the United States is displayed in English.
const { DisplayNames } = require('@formatjs/intl-displaynames');
const displayNames = new DisplayNames(['en'], { type: 'region' });
console.log(displayNames.of('US')); // Output: United States
Display Script Names
This feature allows you to display the name of a script in a localized format. In this example, the name of the Latin script is displayed in English.
const { DisplayNames } = require('@formatjs/intl-displaynames');
const displayNames = new DisplayNames(['en'], { type: 'script' });
console.log(displayNames.of('Latn')); // Output: Latin
Display Currency Names
This feature allows you to display the name of a currency in a localized format. In this example, the name of the US Dollar is displayed in English.
const { DisplayNames } = require('@formatjs/intl-displaynames');
const displayNames = new DisplayNames(['en'], { type: 'currency' });
console.log(displayNames.of('USD')); // Output: US Dollar
Other packages similar to @formatjs/intl-displaynames
globalize
Globalize is a library for internationalization and localization in JavaScript. It provides functionalities for formatting and parsing dates, numbers, and currencies, as well as message translation. Compared to @formatjs/intl-displaynames, Globalize offers a broader range of internationalization features but may require more configuration.
i18next
i18next is a popular internationalization framework for JavaScript. It supports translation, formatting, and pluralization. While it does not specifically focus on displaying names of languages, regions, scripts, and currencies, it provides a comprehensive solution for managing translations and localization in web applications.
intl
The intl package is a polyfill for the ECMAScript Internationalization API, which includes functionalities for formatting dates, numbers, and currencies. It provides a lower-level API compared to @formatjs/intl-displaynames but can be used to achieve similar results with more manual effort.
intl-displaynames
A ponyfill/polyfill for intl-displaynames
.
Status
intl-displaynames
is beta quality software that hasn't been tested thoroughly.
Installation
npm install @formatjs/intl-displaynames
Features
Everything in https://github.com/tc39/proposal-intl-displaynames.
Usage
To use the ponyfill, import it along with its data:
import {DisplayNames} from '@formatjs/intl-displaynames';
DisplayNames.__addLocaleData(
require('@formatjs/intl-displaynames/dist/locale-data/en.json')
);
DisplayNames.__addLocaleData(
require('@formatjs/intl-displaynames/dist/locale-data/zh.json')
);
new DisplayNames('zh', {type: 'currency'}).of('USD');
To use this as a polyfill, override Intl.DisplayNames
as below:
import '@formatjs/intl-displaynames/polyfill';
import '@formatjs/intl-displaynames/dist/locale-data/en';
import '@formatjs/intl-displaynames/dist/locale-data/zh';
new Intl.DisplayNames('en').of('zh-Hans');
new Intl.DisplayNames('zh', {type: 'currency'}).of('USD');