EcmaScript i18n meeting summary (5/23/2011)

# Nebojša Ćirić (14 years ago)

Attendees: Jungshik Shin (Google), Mark Davis (Google), Richard Gillam (lab126 for Addisson) and Nebojsa Ciric (Google).

Shawn, please take a look and see if there are any pain points with changes we talked about (skeleton for number format, removal of calendar parameter in date time format, and collation in general).

  • Language matching
  • Date time formatting
  • Number formatting
  • Collation
  • Parameter handling

Language matching

  • Match base language (de-DE) with supported locales.
  • Keep the original extension for matched locale.
  • If one of the requested locales is exact match to supported locales then exact match should be picked.
  • Order in the list breaks ties.

Example: request [A, B], supported {A, B}, pick A, order breaks tie. request [A, B], supported {A', B}, pick B. A' is a near perfect match. request [A, B], supported {A', B'}, implementation dependent.

Date time formatting

  • timeType - long and full values are optional.
  • dateType - medium and full values are optional.
  • Added link to LDML for skeleton fields description (to strawman).
  • Narrow width is optional for date time symbols ('abbreviated' and 'wide' are required).
  • Calendar option removed from settings. We'll use locale -u-ca-calendar_name to specify calendar.

Number formatting

  • Do we need integer style? Probably not since decimal style can do the same if we pass integer as a value.
  • Keep pattern parameter for cases where users want strict format.
  • Add skeleton to help with automatic placement of: sign, currency, percent symbol and grouping digits.
  • Added link to LDML spec for number format (to strawman).

Collation

  • Drop type parameter (search/sort), and let user set sensitivity level for search.
  • Added detailed section with parameters to strawman (numeric, ignorePunctuation, sensitivity(base, case, accent, all, default...).
  • User can specify some of the parameters in the languageID i.e. -u-kn-true.

Parameter handling

  • Open issue: If parameter is not a valid type (Date, number or string) what do we do?

  • Throwing an exception is ugly since each format/constructor would have to be enclosed in try/catch.

  • Returning a default (current date, 0 or "") may lead to problems when developer misses the error he made.

  • Return undefined?

  • If language id is ill formed identifier:

  • Initial well formed subtags are preserved ("und" if empty) and others are dropped.

  • If language id is invalid (but well formed):

  • xy-666 - keep it and do best you can - implementation dependent.