Closed
Bug 1208698
Opened 9 years ago
Closed 9 years ago
Extend mozIntl with RelativeTimeFormat and date.*
Categories
(Firefox OS Graveyard :: Gaia::L10n, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: zbraniecki, Unassigned)
References
Details
Attachments
(1 file)
I was planning to keep mozL10n.DateTimeFormat().prettyNow and mozL10n.DateTimeFormat().relativeParts in l10n_date for now, but today I encountered bugs in it that triggered me to rewrite it into mozIntl. This is the last couple of functions that are used from l10n_date, so once we land this, we'll be able to move everything away from l10n_date to mozIntl and remove that file.
Comment 1•9 years ago
|
||
Reporter | ||
Comment 2•9 years ago
|
||
Comment on attachment 8666307 [details] [review] [gaia] zbraniecki:1208698-extend-mozintl-with-relativetime > mozilla-b2g:master Stas, I ported shared/js/l10n_date.js relativeDate and relativeParts to mozIntl._gaia.relativeParts and mozIntl._gaia.relativeDate. I also added a shim of Intl.RelativeTimeFormat and switched relativeDate to use it. It's not perfect, but it covers all tests that I was able to write and all tests that I ported from l10n_date.js testsuite. I'd like to land it and be able to move everything away from l10n_date.js and remove it soon.
Attachment #8666307 -
Flags: review?(stas)
Reporter | ||
Comment 3•9 years ago
|
||
I decided to extend this patch to add all changes that I found necessary while working on: - migrate System/Callscreen to mozIntl (bug 1208806) - migrate Email to mozIntl (bug 1208889) - migrate Calendar to mozIntl (bug 1206318) - prepare Video for L10n API v3 (bug 1197454) - prepare Clock for L10n API v3 (bug 1207044) Major changes: * intlHelper * support for mozdatetime and mozduration from mozIntl * move observers to reset on languagechange, but fireObservers on DOMLocalized * introduce minimal mock_intl_helper * improve tests * mozIntl * introduce minimal mock_moz_intl * DateTimeFormat * improve support for removing dayperiod when timezone is broken (temporary, see bug 1208808) * add DateTimeFormat().resolvedOptions() matching Intl API's one * scalable DurationFormat * introduce RelativeTimeFormat based on https://rawgit.com/caridy/intl-relative-time-spec/master/index.html * port l10n_date.js to mozIntl * relativePart is a port of mozL10n.DateTimeFormat().relativeParts that return just one token (using RelativeTimeFormat algorithm) * relativeDate is a port of mozL10n.DateTimeFormat().fromNow|relativeDate that uses RelativeTimeFormat * improve tests including porting all tests from l10n_date_test.js * add missing date.properties entries The mozIntl._gaia functions are direct conversions from l10n_date, to make it easier to port apps to them. We may later reorganize this, currently my goal was to introduce RelativeTimeFormat and move l10n_date to use it. I was slowly accruing this code in multiple patches and I decided to converge all of them into this patch since I need your review on all of those pieces anyway.
Reporter | ||
Updated•9 years ago
|
Comment 4•9 years ago
|
||
Comment on attachment 8666307 [details] [review] [gaia] zbraniecki:1208698-extend-mozintl-with-relativetime > mozilla-b2g:master This looks good to me, but I'm not clear on the type of date .format() expects. In one comment on gh you said it was supposed to be a Date object, but in tests and in other place you seem to pass integers. Is that for backwards-compatibility with l10n_date?
Attachment #8666307 -
Flags: review?(stas) → review+
Reporter | ||
Comment 5•9 years ago
|
||
No, I was just wrong. It seems that all Intl formatters take Date object or an integer, because the first operation is to cast it with `new Date(param);` which can take integer or Date object.
Reporter | ||
Comment 6•9 years ago
|
||
Thanks :stas for a quick review! Commit: https://github.com/mozilla-b2g/gaia/commit/da60421d6a006b56f9de8dae7c928e20a4a3808c
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•