.po files and gettext VS JSON and custom i18n library?

20,016

Solution 1

1) But, what are really the pros and cons of using .po files and a JavaScript gettext library? gettext format is rather common: - so if your serverside is using gettext format already you might share it with client - translators might feel more comfortable with gettext format (or yaml) than with json format - there is a lot of tooling around for it

I personally don't like the translation functions build around gettext - feels clumpsy to me, where lightweight javascript libraries (like http://i18next.com) feel better.

Libs you could use:

  • jed comes with pure gettext implementation
  • i18next supports gettext files but uses a json approach for translation functions

2) And is there any workflow/service that'll allow crowdsourcing of translations that can be exported to a format (.po/json) that can be used by a JavaScript i18n library (gettext implementation, Globalize.js etc.)?

Solution 2

Pros of using gettext is that there are lots of tools available for it, translators are used to using it and you can easily share strings between your javascript and the rest of the front-end.

You can generate .po files from javascript using xgettext, though javascript is not supported by default. If you use the same function names and tell it you're using perl (I think) it works more reliably. There are a few tools to convert .po to json, or just use one of the gettext js implementations.

Share:
20,016
dani
Author by

dani

Updated on December 23, 2020

Comments

  • dani
    dani over 3 years

    I need to develop or find some sort of lightweight gettext-like library in JavaScript for browser-side translations. Preferably the same library could be used by node.js if I'd like to translate server-side instead.

    1) But, what are really the pros and cons of using .po files and a JavaScript gettext library?
    (As opposed to JSON and jQuery Globalize or similar?)

    2) And is there any workflow/service that'll allow crowdsourcing of translations that can be exported to a format (.po/json) that can be used by a JavaScript i18n library (gettext implementation, Globalize.js etc.)?

  • LtWorf
    LtWorf over 3 years
    What functions are there around gettext? There is basically only 1, pass the string and obtain the localised version back.