icu_kit 0.2.0 copy "icu_kit: ^0.2.0" to clipboard
icu_kit: ^0.2.0 copied to clipboard

Internationalization for Flutter and Dart on Unicode's ICU4X. Numbers, dates, plurals, lists, collation, segmentation, bidi, IDNA — same output on every platform, including web.

Changelog #

0.2.0 #

The number pipeline gains the full ECMA-402 formatting surface.

  • Engine updated — web: re-run flutter pub run icu_kit:setup --force web (native updates itself)
  • Added the complete ECMA-402 digit surface to format() — minimum/maximum fraction and integer digits, plus minimum/maximum significant digits — on all three engines.
  • Added IcuCompactFormat for compact notation (1.2M) on all three engines.
  • Added signDisplay, roundingMode, roundingIncrement, and trailingZeroDisplay across number, currency, percent, and unit formatting.
  • Added currencyDisplay: "code" and explicit useGrouping control to the currency, percent, and unit facades.
  • Added IcuPluralRules.categoryOfDecimal for operand-exact plural selection (trailing-zero aware).
Commits since v0.1.0 (25)
  • f04e861 stamp: asset hashes for v0.2.0
  • 33bef7a release: v0.2.0
  • 3a5a6c2 chore: promote dev to prod (0.2.0) (#11)
  • 1d7e705 fix: harden the ECMA-402 number surface against three review-flagged defects
  • e987b0c test: bump the chrome contract-guard module-class count to 81
  • a5c4ff2 refactor: drop the redundant toDecimalFfi bridge — relative-time uses the shared shapedDecimalFfi
  • 9e5a863 chore: format the 0.2.0 number-surface files
  • 31e0c1e docs(changelog): add the mandatory web re-fetch action bullet for the engine bump
  • 24bf817 test: regenerate browser-engine surface snapshot + count (81) for the new number classes
  • 07d97f8 Merge branch 'prod' into dev
  • 92f755d chore: bump pinned versions (#10)
  • 15377a8 docs: document the 0.2.0 number surface — compact, digit/rounding/sign, categoryOfDecimal
  • 0703d0d docs(changelog): revert the 0.1.0 API-bullet edit; add 0.2.0 for the ECMA-402 number surface
  • e3e23ad chore: re-stamp gitignore — template adds pubspec.lock.floorbak (interrupted analyze-floor snapshot)
  • 55ef75f test: prove IcuGroupingStrategy.min2 on the browserIntl engine
  • f4cf3e7 fix(number): browser-Intl roundingIncrement parity + audit polish
  • feeddd7 chore: bump vendor to the tracked compact binding regen
  • 69edffe docs: record the ECMA-402 knob patches in the capability + patch ledgers
  • dae6959 feat(number): IcuCompactFormat — ECMA-402 compact notation on all 3 engines
  • 9cfdf47 feat(number): signDisplay, roundingMode, roundingIncrement, trailingZeroDisplay
  • 50388f5 feat: currencyDisplay:code + useGrouping on percent/currency/unit (all 3 engines)
  • ebc86ab feat(number): significant digits — completes ECMA-402 digit shaping
  • 85750f8 feat(number): ECMA-402 digit shaping on format() — fraction + integer
  • a585181 feat(plural): add categoryOfDecimal for operand-exact plural selection
  • e122ad6 chore: refresh lockfiles (#9)

0.1.0 #

First release — full ECMA-402 / Unicode internationalization for Dart and Flutter on all six platforms.

  • API: one Dart API for number, currency, percent, and unit formatting (as strings or typed formatToParts parts); plural rules; dates and times across 17 calendars; time zones; relative time; lists; collation; display names; segmentation; case mapping; normalization; bidi; Unicode properties; exemplar characters; and IDNA. No Flutter dependency.
  • Engines: native via dart:ffi (the build hook compiles icu_capi from the vendored ICU4X source); web via a bundled WebAssembly build of that engine (19 MB, or a 2.1 MB lean variant, 0.6 MB gzipped, via dart run icu_kit:setup --lean); or the browser's built-in Intl with no ICU4X download (IcuKit.init(webEngine: WebEngine.browserIntl)).
  • Data: CLDR ships bundled, or loads lazily per-locale (bundleCldrData: false + IcuData.lazy) for a lean binary. slice cuts per-locale data by facade family (68 KB to 5.6 MB). One binary serves bundled and lazy data without a flag — see example_lean/.
  • Vendoring: ICU4X 2.2.0 as a fork submodule carrying icu_kit's patches on a named branch.
Commits since initial (27)
  • c49d020 stamp: asset hashes for v0.1.0
  • 0b868fc release: v0.1.0
  • c4bcde0 release: promote dev to prod, cut 0.1.0 stable (#8)
  • 2ad8826 fix(build): explicit .exe on llvm-ar for Windows-host Android cross-compile
  • 59ba7fa docs: correct SDK constraint in analysis_options comment (3.10 -> 3.11)
  • 6a8bee7 fix(pubspec): distinct 5th topic — icu replaces internationalization
  • 359ad27 fix(lint): keep pana's static-analysis score clean on generated bindings
  • 8b68aa8 fix(deploy): correct BW_PREFIX for icu_kit secrets (was cellar)
  • a6d60f4 docs: drop the misleading '~19 MB' from the format-nothing aside (#7)
  • b76cd96 fix(ci): absolute output path in compile_rust.sh + a full PR guard
  • 818824e fix(ci): android cross-compile + wasm dart in the release matrix
  • 152382d feat: formatToParts — ECMA-402 typed part output across all number facades (#6)
  • 7e7e790 feat: browser-Intl web engine — zero-download i18n via IcuKit.init(webEngine:) (#5)
  • 5c8b758 chore: refresh lockfiles (#4)
  • e63e659 chore: bump Flutter SDK (#3)
  • f1fa32a ci: bump dorny/paths-filter from 4.0.1 to 4.0.2 in the actions group across 1 directory (#1)
  • 850c474 fix: run build.sh through the shell on Windows — bare bash resolves to WSL
  • 4896b20 fix: resolve every full-test failure from run 29179441173
  • d1647f3 fix: independent-audit findings — dead free-disk flag, lean-surface CI filters, cargo-input dep tracking, jq json_get, size-claims gate over every surface, CI/CD architecture + release runbook docs
  • 9f97157 docs: cite doc sections by topic, not number — section refs rot on renumber
  • 247f7dd fix: base tag reads from build.json — no duplicated icu@ pin to lie after a bump
  • a101438 ci: pin binaryen like the family — versions.env sha256s, fetch_verified gate, four-mode upgrade radar, pinned-only wasm-opt
  • c45c8da docs: versions.env carries the family pin contract — what tracks latest, who bumps, what is deliberately absent
  • 1577af8 ci: align the vendored make-target's whuppi/ci capability refs to v2.0.5
  • 9f51416 ci: cargo-test the vendored fork — test-rust target + path-filtered Rust job, matching the family rebase-safety harness
  • 5cbc863 ci: align with the family reference — 16 KB APK alignment gate, drop sha-pin boilerplate the pana-only pin never had
  • de860dd feat: icu_kit — ECMA-402 internationalization for Dart and Flutter via ICU4X
1
likes
160
points
248
downloads

Documentation

API reference

Publisher

verified publisherwhuppi.com

Weekly Downloads

Internationalization for Flutter and Dart on Unicode's ICU4X. Numbers, dates, plurals, lists, collation, segmentation, bidi, IDNA — same output on every platform, including web.

Repository (GitHub)
View/report issues
Contributing

Topics

#i18n #icu #localization #intl #unicode

License

Unicode-3.0, MIT (license)

Dependencies

code_assets, crypto, ffi, hooks, logging, meta, package_config, path

More

Packages that depend on icu_kit