What is your favourite system for carrying out translations? Weblate? Locize? Other…? (And why?)

Which would be most suitable for a free and open source project would you think?

(And is there any library and/or service that you’ve found especially useful for JavaScript projects – both on the server and client sides – i18next, etc?)

Thanks!

(I’m looking into implementing internationalisation and localisation for Kitten projects – codeberg.org/kitten/app)

#i18n #l10n #fediBrain #web #dev #js

in reply to Aral Balkan

I'm using Weblate, for a project that uses i18next for translations. It's working out quite ok. My only issue is that if I want to merge only some of the translations from weblate, that can be difficult.

I made the mistake once that I simply copied the translated file, and commited that to my repo, but that obviously caused conflicts within Weblate, and I found no way to help it resolve that conflict. Ended up having to reset weblate's repo, losing unmerged changes.

in reply to Goofy 📖 🍝

hello @aral you really are lucky because floss community have a great tool to handle a smooth translation workflow between devs and translators: weblate. You can self host it yourself, or be welcomes on hosted.weblate.org or other communities like Fedora, Codeberg, etc.
One thing to remember, weblate will either commit directly on your git repo or open pull requests. It means you let it handle all translation files so that your life is made easy with no conflict:)
@goofy
in reply to Jean-Baptiste

the real question is the file format you will use.
Documentation and website are well handled in asciidoc and then translated in gettext files using the great po4a. All translation platforms handle it well.
But translating UI or libraries, especially in javascript is challenging. Take the time to make your choice, use an existing standard well supported, and do the best with it, please do not invent a new one. Languages have a lot of traps for devs, you may want to delegate this.
@goofy
in reply to Aral Balkan

Weblate or Transifex appear popular (although the latter is deputed in FOSS circles).

For implementation i18next is quasi standard. Native desktop apps might go with plain old gettext.

Watch out for handling adjustments to amounts (not as simple as in English) and the ability to pass comments (otherwise „share“ of content might get translated as „share“ in context of stock market 😇).

Mozilla had something with l20n but I haven't followed along.

in reply to Aral Balkan

Some interesting tidbits from my initial research:

There are the popular i18n frameworks (i18next, etc.) and then some really small ones like Lisan, Rosettta, etc.

And some tie in with localisation services (e.g., i18next and Locize) to enable continuous translations.

Not sure what level of support to add for what in Kitten yet but going to have a play with a number of them to see how they feel…

in reply to Aral Balkan

… My gut feeling is that a lightweight framework like Lisan or Rosetta combinated with the ECMAScript Internationalisation API might feel right for Kitten.

(Or perhaps it’s best not to build in support and leave that as a project-level decision folks can make if they want to. I’ll start implementing internationalisation/localisation in Domain and see how it goes and which bits, if any, feel like they should be in the platform instead of the app. That’s basically been my approach so far.)

in reply to Aral Balkan

Fluent is the only system I know of that enables translators to properly handle plurals and genders.

I'm planning to eventually migrate Liberapay to it (or something like it). github.com/liberapay/liberapay…

@fabrice