Hi all,

While refactoring Gaia to use Intl API I noticed that there's a split between 
i18n that goes through l10n and the rest goes "raw" into designated HTML 
elements.

Formatting i18n inside localization is a separate topic but I started wondering 
how it would work if we could just use data-i18n-* similarly to how we use 
data-l10n-* for localization.

Here's the first POC: https://github.com/zbraniecki/i28n

There are two examples - raw and mozintl. raw has no dependencies, mozIntl 
depends on l20n.

The simplest way to explain how it works is this:

<span data-i18n-format="datetime"></span>

navigator.mozI18n.setValue(span, Date.now());

This will format the element's textContent (and maybe aria values?) according 
to DateTimeFormat with Date.now() as a value.

If you need to set options, you can either do this in HTML:

<span data-i18n-format="datetime" data-i18n-options='{"weekday": "long", "day": 
"numeric", "year": "numeric"}'></span>

or in JS:

navigator.mozI18n.setOptions(span, {
  weekday: "long",
  day: "numeric",
  year: "numeric"
});

I think it looks very promising and it could nicely replace most of what we 
need IntlHelper now for. I could even imagine it doing something smart in the 
future (refresh the element every minute for clock).

What do you think?

zb.
_______________________________________________
tools-l10n mailing list
[email protected]
https://lists.mozilla.org/listinfo/tools-l10n

Reply via email to