Name Description Size Coverage
Bidi.cpp static 6670 92 %
Bidi.h This component is a Mozilla-focused API for working with bidirectional (bidi) text. Text is commonly displayed left to right (LTR), especially for Latin-based alphabets. However, languages like Arabic and Hebrew displays text right to left (RTL). When displaying text, LTR and RTL text can be combined together in the same paragraph. This class gives tools for working with unidirectional, and mixed direction paragraphs. See the Unicode Bidirectional Algorithm document for implementation details: https://unicode.org/reports/tr9/ 6474 100 %
BidiClass.h Read ftp://ftp.unicode.org/Public/UNIDATA/ReadMe-Latest.txt section BIDIRECTIONAL PROPERTIES for the detailed definition of the following categories The values here must match the equivalents in %bidicategorycode in mozilla/intl/unicharutil/tools/genUnicodePropertyData.pl, and must also match the values used by ICU's UCharDirection. 1383 -
BidiEmbeddingLevel.cpp 1478 81 %
BidiEmbeddingLevel.h This file has the BidiEmbeddingLevel and BidiDirection enum broken out from the main Bidi class for faster includes. This code is used in Layout which could trigger long build times when changing core mozilla::intl files. 4227 100 %
calendar 65 %
Calendar.cpp static 4917 69 %
Calendar.h Weekdays in the ISO-8601 calendar. 3556 75 %
Collator.h Collator for backing Web APIs. Use `mozilla::intl::AppCollator` when you need to collate from C++ in app UI code. 5836 100 %
CollatorForwards.h intl_components_CollatorForwards_h 576 -
Currency.cpp 679 86 %
Currency.h This component is a Mozilla-focused API for working with currencies in internationalization code. 762 -
DateIntervalFormat.cpp PartitionDateTimeRangePattern ( dateTimeFormat, x, y ), steps 9-11. Examine the formatted value to see if any interval span field is present. https://tc39.es/ecma402/#sec-partitiondatetimerangepattern 10671 77 %
DateIntervalFormat.h This component is a Mozilla-focused API for the date range formatting provided by ICU. This DateIntervalFormat class helps to format the range between two date-time values. https://tc39.es/ecma402/#sec-formatdatetimerange https://tc39.es/ecma402/#sec-formatdatetimerangetoparts 4715 100 %
DateTimeFormat.cpp Parse a pattern according to the format specified in <https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns>. 39316 78 %
DateTimeFormat.h To work around webcompat problems caused by Narrow No-Break Space in formatted date/time output, where existing code on the web naively assumes there will be a normal Space, we replace any occurrences of U+202F in the formatted results with U+0020. The intention is to undo this hack once other major browsers are also ready to ship with the updated (ICU72) i18n data that uses NNBSP. See https://bugzilla.mozilla.org/show_bug.cgi?id=1806042 for details, and see DateIntervalFormat.cpp for the other piece of this hack. 21549 89 %
DateTimeFormatUtils.cpp Set the start time of the Gregorian calendar. This is useful for ensuring the consistent use of a proleptic Gregorian calendar for ECMA-402. https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar 7043 87 %
DateTimeFormatUtils.h 862 -
DateTimePart.h The 'Part' object defined in FormatDateTimeToParts and FormatDateTimeRangeToParts Each part consists of three properties: ||Type||, ||Value|| and ||Source||, with the ||Source|| property is set to DateTimePartSource::Shared by default. (Note: From the spec, the part from FormatDateTimeToParts doesn't have the ||Source|| property, so if the caller is FormatDateTimeToParts, it should ignore the ||Source|| property). To store DateTimePart more efficiently, it doesn't store the ||Value|| of type string in this struct. Instead, it stores the end index of the string in the buffer(which is passed to DateTimeFormat::TryFormatToParts() or can be got by calling AutoFormattedDateInterval::ToSpan()). The begin index of the ||Value|| is the mEndIndex of the previous part. Buffer 0 i j +---------------+---------------+---------------+ | Part[0].Value | Part[1].Value | Part[2].Value | .... +---------------+---------------+---------------+ Part[0].mEndIndex is i. Part[0].Value is stored in the Buffer[0..i]. Part[1].mEndIndex is j. Part[1].Value is stored in the Buffer[i..j]. See: https://tc39.es/ecma402/#sec-formatdatetimetoparts https://tc39.es/ecma402/#sec-formatdatetimerangetoparts 2797 100 %
DateTimePatternGenerator.cpp static 1398 44 %
DateTimePatternGenerator.h The DateTimePatternGenerator is the machinery used to work with DateTime pattern manipulation. It is expensive to create one, and so generally it is created once and then cached. It may be needed to be passed in as an argument for different mozilla::intl APIs. 5636 100 %
DisplayNames.cpp static 7910 60 %
DisplayNames.h Provide more granular errors for DisplayNames rather than use the generic ICUError type. This helps with providing more actionable feedback for errors with input validation. This type can't be nested in the DisplayNames class because it needs the UnusedZero and HasFreeLSB definitions. 32300 84 %
FormatBuffer.h This file contains public adaptors for the mozilla::intl Buffer template argument. Adaptors that can automatically be deduced are kept as private in ICU4CGlue.h. There is also the SpiderMonkey specific adaptor js::intl::FormatBuffer in js/src/builtin/intl/FormatBuffer.h. 2237 100 %
GeneralCategory.h 1298 -
ICU4CGlue.cpp 1234 84 %
ICU4CGlue.h Map the "und" locale to an empty string, which ICU uses internally. 24310 86 %
ICU4CLibrary.cpp context = 1287 100 %
ICU4CLibrary.h Wrapper around non-portable, ICU4C specific functions. 1910 -
ICUError.h General purpose error type for operations that can result in an ICU error. 4006 0 %
ListFormat.cpp static 3855 80 %
ListFormat.h This component is a Mozilla-focused API for the list formatting provided by ICU. It implements the API provided by the ECMA-402 Intl.ListFormat object. https://tc39.es/ecma402/#listformat-objects 7814 80 %
Locale.cpp 46459 85 %
Locale.h Structured representation of Unicode locale IDs used with Intl functions. Spec: https://unicode.org/reports/tr35/tr35.html#Unicode_Language_and_Locale_Identifiers 25513 96 %
LocaleCanonicalizer.cpp static 1079 92 %
LocaleCanonicalizer.h 32 is somewhat an arbitrary size, but it should fit most locales on the stack to avoid heap allocations. 1444 -
LocaleGenerated.cpp 49139 81 %
MeasureUnit.cpp 3305 0 %
MeasureUnit.h This component is a Mozilla-focused API for working with measurement units in internationalization code. It is used in coordination with other operations such as number formatting. 4319 0 %
MeasureUnitGenerated.h The list of currently supported simple unit identifiers. The list must be kept in alphabetical order of |name|. 1676 -
NumberFormat.cpp static 5383 90 %
NumberFormat.h Configure NumberFormat options. https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#unit 14302 83 %
NumberFormatFields.cpp 13672 89 %
NumberFormatFields.h 2708 100 %
NumberFormatterSkeleton.cpp 16846 84 %
NumberFormatterSkeleton.h Class to create a number formatter skeleton. The skeleton syntax is documented at: https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md 3887 100 %
NumberingSystem.cpp 1050 88 %
NumberingSystem.h This component is a Mozilla-focused API for working with numbering systems in internationalization code. It is used in coordination with other operations such as number formatting. 1581 100 %
NumberParser.cpp static 1447 96 %
NumberParser.h Initialize a new NumberParser for the provided locale and using the provided options. 1382 100 %
NumberPart.h 1263 0 %
NumberRangeFormat.cpp static 7255 85 %
NumberRangeFormat.h NumberRangeFormatOptions supports the same set of options as NumberFormatOptions and additionally allows to control how to display ranges. 7820 79 %
PluralRules.cpp 6021 92 %
PluralRules.h The set of keywords that a PluralRules object uses. https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.resolvedoptions 6839 42 %
RelativeTimeFormat.cpp static 5190 92 %
RelativeTimeFormat.h Only strings with numeric components like `1 day ago`. 4867 54 %
ScopedICUObject.h A simple RAII class to assure ICU objects are automatically deallocated at scope end. Unfortunately, ICU's C++ API is uniformly unstable, so we can't use its smart pointers for this. 1070 100 %
String.cpp 391 100 %
String.h This component is a Mozilla-focused API for working with strings in internationalization code. 2972 91 %
TimeZone.cpp static 13212 86 %
TimeZone.h This component is a Mozilla-focused API for working with time zones in internationalization code. It is used in coordination with other operations such as datetime formatting. 8931 84 %
UnicodeProperties.h This component is a Mozilla-focused API for working with text properties. 12778 80 %
UnicodeScriptCodes.h Derived from the Unicode Character Database by genUnicodePropertyData.pl For Unicode terms of use, see http://www.unicode.org/terms_of_use.html 5621 -