What is full-icu?
The full-icu npm package provides full ICU (International Components for Unicode) data for Node.js, enabling comprehensive internationalization support. This includes features like date and time formatting, number formatting, and collation, which are essential for applications that need to support multiple languages and locales.
What are full-icu's main functionalities?
Date and Time Formatting
This feature allows you to format dates and times according to different locales. In this example, the date is formatted in French (France) locale.
const { DateTimeFormat } = require('intl');
const dtf = new DateTimeFormat('fr-FR', { year: 'numeric', month: 'long', day: 'numeric' });
console.log(dtf.format(new Date()));
Number Formatting
This feature enables number formatting according to different locales. The example shows how to format a number as a currency in German (Germany) locale.
const { NumberFormat } = require('intl');
const nf = new NumberFormat('de-DE', { style: 'currency', currency: 'EUR' });
console.log(nf.format(123456.789));
Collation
Collation allows for locale-aware string comparison and sorting. The example demonstrates sorting an array of strings in Spanish (Spain) locale.
const { Collator } = require('intl');
const collator = new Collator('es-ES');
const sorted = ['z', 'a', 'ä'].sort(collator.compare);
console.log(sorted);
Other packages similar to full-icu
globalize
Globalize is a comprehensive internationalization library that provides similar functionalities to full-icu, such as date and time formatting, number formatting, and message formatting. It is built on top of the Unicode CLDR data and provides a rich set of features for handling various internationalization needs.
i18next
i18next is a popular internationalization framework for JavaScript that focuses on providing a complete solution for translating applications. While it does not provide low-level ICU functionalities like full-icu, it excels in managing translations and localization workflows, making it a good complement to full-icu for applications that need both translation management and ICU features.
moment
Moment.js is a widely-used library for parsing, validating, manipulating, and formatting dates. While it does not provide the full range of ICU functionalities, it offers extensive support for date and time operations, including localization features. It is often used in conjunction with other libraries to provide comprehensive internationalization support.
Install full ICU data
to use:
npm install full-icu
or for global install:
npm install -g full-icu
Instructions will be printed out on how to activate this data for your version of node.
The work gets done in a postinstall
script which copies the icudt*.dat
file
up to this module's level.
API
require('full-icu')
returns a few properties:
-
nodever
- the full Node version (ex: 4.2.0
)
-
node_maj
- the major part of the node version (ex: 4
)
-
node_min
- the minor part of the node version (ex 2
)
-
icu_small
- if truthy, means that node was built with
small-icu (English only). If falsy, means that the full-icu
package is not relevant.
-
icuver
- full ICU version, if available, such as 55.1. Sometimes only the major
version is available.
-
icumaj
- ICU major ver, such as 55
. May be === icuver
.
-
icumin
- ICU minor version, such as 1
if available.
-
icuend
- ICU endianness - little, big or ebcdic.
-
icupkg
- the npm
package needed to get full ICU data, if any.
-
icudat
- the raw data file ICU expects to find for full data, if any.
-
noi18n
- if truthy, no ICU / Intl build was enabled for your node version. Sorry.
-
oldNode
- Node is older (<0.12
) than this package can really think about.
BIN
node-full-icu-path
will print the full icudt*.dat
path, if available.
MIRROR
This is a mirror of source currently in
http://source.icu-project.org/repos/icu/tools/branches/srl/npm11617/release/c/icu4c-data-npm/full-icu
COPYRIGHT
This software is part of ICU, and as such is:
Copyright (C) 2015 IBM Corporation and Others. All Rights Reserved.
A copy of the ICU license is in LICENSE
or is available at http://bugs.icu-project.org/trac/browser/icu/tags/latest/LICENSE