11cb0ef41Sopenharmony_ci# Notes about the `tools/icu` subdirectory 21cb0ef41Sopenharmony_ci 31cb0ef41Sopenharmony_ciThis directory contains tools and information about the 41cb0ef41Sopenharmony_ci[International Components for Unicode][ICU] (ICU) integration. 51cb0ef41Sopenharmony_ciBoth V8 and Node.js use ICU to provide internationalization functionality. 61cb0ef41Sopenharmony_ci 71cb0ef41Sopenharmony_ci* `patches/` are one-off patches, actually entire source file replacements, 81cb0ef41Sopenharmony_ci organized by ICU version number. 91cb0ef41Sopenharmony_ci* `icu_small.json` controls the "small" (English only) ICU. It is input to 101cb0ef41Sopenharmony_ci `icutrim.py` 111cb0ef41Sopenharmony_ci* `icu-generic.gyp` is the build file used for most ICU builds within ICU. 121cb0ef41Sopenharmony_ci <!-- have fun --> 131cb0ef41Sopenharmony_ci* `icu-system.gyp` is an alternate build file used when `--with-intl=system-icu` 141cb0ef41Sopenharmony_ci is invoked. It builds against the `pkg-config` located ICU. 151cb0ef41Sopenharmony_ci* `iculslocs.cc` is source for the `iculslocs` utility, invoked by `icutrim.py` 161cb0ef41Sopenharmony_ci as part of repackaging. Not used separately. See source for more details. 171cb0ef41Sopenharmony_ci* `no-op.cc` contains an empty function to convince gyp to use a C++ compiler. 181cb0ef41Sopenharmony_ci* `shrink-icu-src.py` is used during upgrade (see guide below). 191cb0ef41Sopenharmony_ci 201cb0ef41Sopenharmony_ciNote: 211cb0ef41Sopenharmony_ci 221cb0ef41Sopenharmony_ci> The files in this directory were written for the Node.js v0.12 effort. 231cb0ef41Sopenharmony_ci> The original intent was to merge the tools such as `icutrim.py` and `iculslocs.cc` 241cb0ef41Sopenharmony_ci> back into ICU. ICU has gained its own “data slicer” tool. 251cb0ef41Sopenharmony_ci> There is an issue open, <https://github.com/nodejs/node/issues/25136> 261cb0ef41Sopenharmony_ci> for replacing `icutrim.py` with the [ICU data slicer][]. 271cb0ef41Sopenharmony_ci 281cb0ef41Sopenharmony_ci## See Also 291cb0ef41Sopenharmony_ci 301cb0ef41Sopenharmony_ci* [docs/guides/maintaining-icu.md](../../doc/contributing/maintaining/maintaining-icu.md) 311cb0ef41Sopenharmony_ci for information on maintaining ICU in Node.js 321cb0ef41Sopenharmony_ci 331cb0ef41Sopenharmony_ci* [docs/api/intl.md](../../doc/api/intl.md) for information on the 341cb0ef41Sopenharmony_ci internationalization-related APIs in Node.js 351cb0ef41Sopenharmony_ci 361cb0ef41Sopenharmony_ci* [The ICU Homepage][ICU] 371cb0ef41Sopenharmony_ci 381cb0ef41Sopenharmony_ci[ICU]: http://icu-project.org 391cb0ef41Sopenharmony_ci[ICU data slicer]: https://github.com/unicode-org/icu/blob/HEAD/docs/userguide/icu_data/buildtool.md 40