Intl.DisplayNames v2
for Stage 4
Frank Yung-Fong Tang / 譚永鋒
TC39 Dec 2021 Meeting
Dec 14-15, 2021
Slide: https://docs.google.com/presentation/d/1bvfdKBVNRUH7J18WGnxR02CKZJ_z3QThp3fLWdMqmzE Repo: https://github.com/tc39/intl-displaynames-v2
Motivation
To enable developers to get human translation of language, region, script, and other display names on the client.
Also, provide a straightforward API to provide the functionality to reduce developers to use “work in some context but not other” work around.
Enhanced Features
Examples of languageDisplay
d8> dn2 = new Intl.DisplayNames("en",
{type: "language",
languageDisplay: "dialect"})
d8> dn2.of("en")
"English"
d8> dn2.of("en-GB")
"British English"
d8> dn2.of("en-US")
"American English"
d8> dn2.of("en-AU")
"Australian English"
d8> dn2.of("en-CA")
"Canadian English"
d8> dn2.of("zh")
"Chinese"
d8> dn2.of("zh-Hant")
"Traditional Chinese"
d8> dn2.of("zh-Hans")
"Simplified Chinese"
d8> dn3 = new Intl.DisplayNames("en",
{type: "language",
languageDisplay: "standard"})
d8> dn3.of("en")
"English"
d8> dn3.of("en-GB")
"English (United Kingdom)"
d8> dn3.of("en-AU")
"English (Australia)"
d8> dn3.of("en-CA")
"English (Canada)"
d8> dn3.of("en-US")
"English (United States)"
d8> dn3.of("zh")
"Chinese"
d8> dn3.of("zh-Hant")
"Chinese (Traditional)"
d8> dn3.of("zh-Hans")
"Chinese (Simplified)"
Example of type: “calendar”
d8> dn = new Intl.DisplayNames("en", �{type: "calendar"})
d8> dn.of("roc")
"Minguo Calendar"
d8> dn.of("persian")
"Persian Calendar"
d8> dn.of("gregory")
"Gregorian Calendar"
d8> dn.of("ethioaa")
"Ethiopic Amete Alem Calendar"
d8> dn.of("japanese")
"Japanese Calendar"
d8> dn.of("dangi")
"Dangi Calendar"
d8> dn.of("chinese")
"Chinese Calendar"
d8> dn = new Intl.DisplayNames("zh", �{type: "calendar"})
d8> dn.of("roc")
"民国纪年"
d8> dn.of("persian")
"波斯历"
d8> dn.of("gregory")
"公历"
d8> dn.of("ethioaa")
"埃塞俄比亚阿米特阿莱姆日历"
d8> dn.of("japanese")
"和历"
d8> dn.of("dangi")
"檀纪历"
8> dn.of("chinese")
"农历"
Example of type: “dateTimeField”
d8> dn = new Intl.DisplayNames("zh", {type: "dateTimeField"})
d8> dn.of("era")
"纪元"
d8> dn.of("year")
"年"
d8> dn.of("month")
"月"
d8> dn.of("quarter")
"季度"
d8> dn.of("weekOfYear")
"周"
d8> dn.of("weekday")
"工作日"
d8> dn.of("dayPeriod")
"上午/下午"
d8> dn.of("day")
"日"
d8> dn.of("hour")
"小时"
d8> dn.of("minute")
"分钟"
d8> dn.of("second")
"秒"
d8> dn = new Intl.DisplayNames("es", {type: "dateTimeField"})
d8> dn.of("era")
"era"
d8> dn.of("year")
"año"
d8> dn.of("month")
"mes"
d8> dn.of("quarter")
"trimestre"
d8> dn.of("weekOfYear")
"semana"
d8> dn.of("weekday")
"día de la semana"
d8> dn.of("dayPeriod")
"a. m./p. m."
d8> dn.of("day")
"día"
d8> dn.of("hour")
"hora"
d8> dn.of("minute")
"minuto"
d8> dn.of("second")
"segundo"
History of Intl.DisplayNames v2
Purpose / Acceptance Signifies / Spec Quality of Stage 4
Purpose: The addition is ready for inclusion in the formal ECMAScript standard
Acceptance Signifies: The addition will be included in the soonest practical standard revision
Spec Quality: Final: All changes as a result of implementation experience are integrated
Entrance Criteria For Stage 4
Requesting the Committee
Requesting the Committee Approval for advancement to Stage 4