Intl.DisplayNames v2 S4
- Stage: Stage 4
- Status: Finished
- ECMAScript edition: ES2022
- Synchronized: Aug 28, 2026
- 中文译文 · Source repository
This proposal extends Intl.DisplayNames to support more types including calendar names and date-time field names, and adds a languageDisplay option to control whether language names are shown in dialect or standard form.
The README below comes from the upstream repository and may contain outdated stage or status metadata. Use the proposal details above as the current source of truth.
Proposal: Intl.DisplayNames V2
Stage
Stage 3
- Advanced to Stage 1 in TC39 2020-09 meeting.
- Advanced to Stage 2 in TC39 2021-01-25~28 meeting.
- Proposed for Stage 3 in TC39 2021 April meeting but not reaching consensus due to issues related to dialectHandling and user requests of 'unit' support.
- Advanced to Stage 3 in TC39 2021-05-25~26 meeting.
- Update during Stage 3 in TC39 2021-07-13~16 meeting
- Slide for Stage 4 Advacement for TC39 2021-Dec meeting
Champion
- Frank Tang @FrankYFTang
Reviwers
- Shane Carr @sffc
- Ujjwal Sharma @ryzokuken
Editors
- Richard Gibson @gibson042
Motivation
Main motivation for Intl.DisplayNames project was to enable developers to get translation of language, region or script display names on the client. Translation of languages, regions or script display names requires large amount of data to transmit on the network, which is already available in most browsers. These display name translations also carry steep data size penalty for developers. This API will allow web developers to shrink the size of their HTML and/ or ECMA script code without the need to include the human readable form of display names and therefore reduce the download size to decrease latency. Also, this API will reduce the localization cost for the web developers. Our goal is to expose this data through Intl API for use in e.g. language, region and script pickers, etc.
In Intl.DisplayNames API, we already cover language, region, script, and currency. This proposal enhance the Intl.DisplayNames API and cover more.
Please also see prior work of the first version of Intl.DisplayNames on the Intl.DisplayNames repo
Scoped Enhancements
- Date Time Field
- Calendar Names
- Language Display : standard vs dialect
Changes of scope
- During 2021-01 ECMA402 meeting, we decided not to include Weekday, Month, TimeZone, and Numbering System.
- During 2021-03-11 ECMA402 meeting, we decided to add back dateTimeField.
- During 2021-04-08 ECMA402 meeting, we agree the name of the dialectHandling and proceed to TC39 for Stage 3. Shane and Ujjwal agreed to be Stage 3 reviewers.
- During 2021-05-06 ECMA402 meeting, we agree to drop the "unit" support and rename dialectHandling to languageDisplay.
Examples
Calender Names
Date Time Field Names
Language Display
Discussed Scopes during Stage 1
- Extending Types:
Weekday and Month Names- Unit Names
TimeZone Names- Calendar Names
Numbering System NamesQuarterDay PeriodDate Time Field
- Enhance Features:
Discussed Scopes during Stage 2
- 2021-03-11: Add back dateTimeField
- 2021-05-06: Remove unit
Entrance Criteria For Stage 3
- All Stage 2 Criterias
- Complete spec text
- Designated reviewers have signed off on the current spec text
- All ECMAScript editors have signed off on the current spec text
Entrance Criteria For Stage 2
- All Stage 1 Criterias
- Initial spec text
Entrance Criteria For Stage 1
- Identified “champion” who will advance the addition: DONE- @FrankYFTang
- Prose outlining the problem or need and the general shape of a solution
- Illustrative examples of usage
- High-level API
- Discussion of key algorithms, abstractions and semantics
- Identification of potential “cross-cutting” concerns and implementation challenges/complexity
- A publicly available repository for the proposal that captures the above requirements: DONE https://github.com/tc39/intl-displaynames-v2
Experimentals
- V8 Prototype
- Implement new types "calendar", "dateTimeField", and "unit" and add dialectHandling option
- Mozilla Tracking Bug