Name Description Size
Bidi.cpp static 6670
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/ 6573
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 1563
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. 3756
Calendar.cpp static 4917
Calendar.h Weekdays in the ISO-8601 calendar. 3556
Collator.cpp 9015
Collator.h Construct from a raw UCollator. This is public so that the UniquePtr can access it. 11210
Currency.cpp 679
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 8328
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 4024
DateTimeFormat.cpp Parse a pattern according to the format specified in <https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns>. 35098
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. 21730
DateTimeFormatUtils.cpp 3109
DateTimeFormatUtils.h 506
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
DateTimePatternGenerator.cpp static 1398
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
DisplayNames.cpp static 7818
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. 31871
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
GeneralCategory.h 1298
ICU4CGlue.cpp 1234
ICU4CGlue.h Map the "und" locale to an empty string, which ICU uses internally. 22070
ICU4CLibrary.cpp context = 1287
ICU4CLibrary.h Wrapper around non-portable, ICU4C specific functions. 1910
ICU4XGeckoDataProvider.cpp 825
ICU4XGeckoDataProvider.h This component is a C/C++ API to get ICU4X data provider. 557
ICUError.h General purpose error type for operations that can result in an ICU error. 4006
IDNA.cpp 816
IDNA.h This component is a Mozilla-focused API for the Internationalizing Domain Names in Applications (IDNA). See UTS #46 for details. http://unicode.org/reports/tr46/ 4410
ListFormat.cpp static 3855
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 7849
Locale.cpp 45593
Locale.h Structured representation of Unicode locale IDs used with Intl functions. 24518
LocaleCanonicalizer.cpp static 1097
LocaleCanonicalizer.h 32 is somewhat an arbitrary size, but it should fit most locales on the stack to avoid heap allocations. 1470
LocaleGenerated.cpp 48301
MeasureUnit.cpp 3305
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. 4364
MeasureUnitGenerated.h The list of currently supported simple unit identifiers. The list must be kept in alphabetical order of |name|. 1676
NumberFormat.cpp static 4888
NumberFormat.h Configure NumberFormat options. The supported display styles are: * Decimal (default) * Currency (controlled by mCurrency) * Unit (controlled by mUnit) * Percent (controlled by mPercent) Only one of mCurrency, mUnit or mPercent should be set. If none are set, the number will formatted as a decimal. https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#unit 13978
NumberFormatFields.cpp 13707
NumberFormatFields.h 2708
NumberFormatterSkeleton.cpp 15827
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 3729
NumberingSystem.cpp 1050
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
NumberParser.cpp static 1398
NumberParser.h Initialize a new NumberParser for the provided locale and using the provided options. 1376
NumberPart.h 1263
NumberRangeFormat.cpp static 6710
NumberRangeFormat.h NumberRangeFormatOptions supports the same set of options as NumberFormatOptions and additionally allows to control how to display ranges. 7439
PluralRules.cpp 5262
PluralRules.h The set of keywords that a PluralRules object uses. https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.resolvedoptions 6868
RelativeTimeFormat.cpp static 5190
RelativeTimeFormat.h Only strings with numeric components like `1 day ago`. 4867
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
String.cpp 391
String.h This component is a Mozilla-focused API for working with strings in internationalization code. 8320
TimeZone.cpp static 12921
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. 8960
UnicodeProperties.h This component is a Mozilla-focused API for working with text properties. 9492
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 5388