Update of Intl.DisplayNames v2 �in Stage 3
Frank Yung-Fong Tang / 譚永鋒
TC39 July 2021 Meeting
July 13-16, 2021
Slide: https://docs.google.com/presentation/d/1EUJ8fIBcCN784S_Da5FT8Fxgo1_lVM8InbSUjhuvpkU
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.
History of Intl.DisplayNames (v1 and v2)
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"
Stage 3 Activities
Acknowledgement
I would like to thank the following delegates for supporting the development & deployment of this proposal
Also special thanks to André Bargul @anba from Mozilla for his amazing review.
Q&A
Requesting the Committee
to help the development of test262, MDN, polyfills and to evangelize this new API