I see you put a lot of effort into js-lingui and i must say looks promising.
Jan Mühlemann

Thank you for your feedback!

Formatted interpolation

I have this on todo list (https://github.com/lingui/js-lingui/issues/6) and it’s probably next big thing I’m going working on.


It’s possible to nest i18n.t, i18n.plural and i18n.select as seen in this test case (which results in a bit complicated message {gender, select, male {{numOfGuests, plural, one {He invites one guest} other {He invites # guests}}} female {She is {gender}} other {They is {gender}}, but it’s an example that you can go wild and do whatever you want) .

Parameters of interpolated string are parsed as well. I forgot to mention it in docs.

Inline components

I saw an example in react-i18next docs which is similar what react-intl does: Translated message doesn’t include the content of interpolated component. Interpolated component is replaced with a variable instead and content must be translated separately as far as I understand. It doesn’t seem to be translator-friendly.

Having a simple example: Read <Link to="/more">more</Link>, I would rather give my translator single message Read <0>more</0>, than two: Read and more. Maybe I misunderstood the docs?

Translation services

Babel plugin just extracts messages, but there’s lingui-cli to collect them and merge into json catalogs. I’m planning to add support to export/import messages to/from online translation services (Transifex, Phraseapp, Locize, etc.), but it’s not the top priority.

Anyway, great job with i18next. It’s a really impressive ecosystem.