Shameless plug: I've been working on a similar project for about a year now called Localize.js (<a href="https://localizejs.com" rel="nofollow">https://localizejs.com</a>), with the goal of automating the entire process of internationalization / localization. It works by scanning the DOM for translatable content, and injecting translations on-the-fly after the page loads (this happens so quickly that the user never sees the text in the original language).
Are there any advantages over i18n-js[1]? Can't say I'm a huge fan of this method of pluralization:<p><pre><code> Cart: {itemCount} {itemCount, plural,
one {item}
other {items}
}
</code></pre>
[1]: <a href="https://github.com/fnando/i18n-js" rel="nofollow">https://github.com/fnando/i18n-js</a>
How does it compare to normal "Gettext workflow"?<p>Currently I use i18next with custom functions, where I just write strings like _("car"), ngettext("window", "windows", number) in files.
I Can use translator comments, context and everything. (Like //TRANSLATORS: this is used in this way etc.)
<a href="https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html" rel="nofollow">https://www.gnu.org/software/gettext/manual/html_node/PO-Fil...</a>
Babel extracts all translatable strings to POT file. I Translate POT file to my wanted languages PO files with GUI tool of my choice. Then PO file is converted to json and used in translations with i18next library.
When New translations are added I just rerun Babel new translations are added, are retranslated if needed and converted to JSON.
I looked into a lot of JS libraries and extractors and these was the only one that supported Plurals, context, translator comments, etc.<p>I looked into Mozilla's L20 which seems nice. But there is no GUI translation editor. You have to find all translatable strings yourself etc. End it seems it's the same here.<p>One better things is that with FormatJS I wouldn't need moment.js for date localization.
A related thought: I wonder if we will some day live in a world where translation is not required. Where everyone knows English and has no trouble using English tools and consuming English content.<p>Same goes for measurement systems (metric), time, currency, and other formats. I reckon it would simplify our lives greatly and spare us the trouble of dealing with 1000s of encodings, multi-byte strings and different text directions.<p>Technological landscape is the only place where such unity between nations is possible, I tend to think that this is what should be pursued instead of translate-everything-everywhere approach.
The official announcement is now live:<p><a href="http://yahooeng.tumblr.com/post/100006468771/announcing-format-js-internationalize-your-web-apps-on" rel="nofollow">http://yahooeng.tumblr.com/post/100006468771/announcing-form...</a><p>hopefully it will help to clarify few of the questions...
> 10/14/2014 English (US)
> 14/10/2014 French<p>Pedantic Englishman here: 14/10/2014 is used all over Europe, including England. If only we could persuade the world to use an international format: 2014-10-14, for example.
I'm currently using Moment.js, i18next and Numeral.js with AngularJS. I wonder how FormatJS compares with this. At least one benefit FormatJS could have is having a unified collection of translation files.
I would be interested to know if it offers anything over Globalize<p><a href="https://github.com/jquery/globalize" rel="nofollow">https://github.com/jquery/globalize</a>
Super shameless plug, but easy internationalization for email is something we've added to Sendwithus. We're working with multiple partners on it (sample at <a href="https://www.sendwithus.com/translations" rel="nofollow">https://www.sendwithus.com/translations</a>), but are still looking for more beta users of the feature.
This may be offtopic, but is there an editor for translating ICU messageformat strings?<p>There are many tools to extract gettext strings from source and editors to translate PO catalogs, but I do not know of any that works with ICU messageformat syntax.