package:intl4x Pub package publisher

A lightweight modular library for internationalization (i18n) functionality.

Features

  • Formatting for dates, numbers, and lists.
  • Collation.
  • Display names.

Status - experimental

We're actively iterating on the API for this package (please provide feedback via our issue tracker).

Number format List format Date format Collation Display names Plural Rules
ECMA402 (web) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
ICU4X (web/native) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

Implementation and Goals

  • Wraps around ICU4X on native or web platforms.
  • Wraps around the built-in browser functionalities on the web.
    • Select which locales you want to use the browser for through an EcmaPolicy.

Example

The functionalities are called through getters on an Intl instance, i.e.

import 'package:intl4x/ecma_policy.dart';
import 'package:intl4x/intl4x.dart';
import 'package:intl4x/number_format.dart';

void main() {
  final numberFormat = Intl(
    ecmaPolicy: const AlwaysEcma(),
    locale: const Locale(language: 'en', region: 'US'),
  ).numberFormat(NumberFormatOptions.percent());

  print(numberFormat.format(0.5)); // prints 50%
}