Skip to main content


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 – https://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 Aral Balkan

Been using DeepL https://www.deepl.com/translator for a while, and it's correct. There's an API, but haven't checked what it does and the licence
in reply to DJM 🇧🇯 🚀 🐯

@cybeardjm Thanks! :)

PS. Assuming that’s just for the translations. They don’t have an internationalisation or localisation framework last I checked.
in reply to Goofy 📖 🍝 :unverified:

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

since your code is already on codeberg and that codeberg already provides weblate, what leaded you to ask this question? Any worries or issues with weblate? Or maybe you simply did not know weblate instance exists on codeberg?
@goofy
in reply to Aral Balkan

Weblate, most FOSS projects use this service.

https://hosted.weblate.org/
in reply to Desikner

@desikn
@Codeberg has a Weblate Instance now: https://translate.codeberg.org/

I used Weblate before as a contributor and it works well. Not sure if it is the best.
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

If you look beyond translation, keep an eye out on currency and date formatting as well as LTR and RTL support (can switch inline!).

Writing mode top to bottom isn't that common (even in Japan) from what locals told me.

Say, look at some Arabic (Al Jazeera?) And Japanese sites. Study how they apply HTML and CSS :)
in reply to Ryuno-Ki

Oh and I just remembered some projects using https://crowdin.com/
in reply to Aral Balkan

You're welcome.

I've got some experience in both areas.

Even if it is not a requirement I tend to start with some basic i18n support (often some sort of keys + JSON files) to have an easier transition period.
Business folks tend to prefer Excel, though.

Otherwise it's just so laboursome to collect all those places where i18n would be required 😞
in reply to Aral Balkan

I see a lot of weblate in the comments, I hate it, transifex and crowdin work great imho. But then again I love POEdit, so sometimes I commit those in projects, sometimes I use the .po or .xliff down/upload of those platforms after editing in POEdit
in reply to Sexybiggetje🐖

@martijn Thanks, Martijn, appreciate you sharing your experience. Just out of curiosity (having only poked it a bit today) what is it about Weblate that makes you hate it?
in reply to Aral Balkan

Most other tools have similar hotkeys, a reasonable amount doesn't or didn't work in weblate. It's UI has different margins everywhere and in very bright. It generated broken po files earlier, but I was told that that was fixed.
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

Oh, and thank you all for your suggestions and for sharing your experiences :)
in reply to Aral Balkan

I'm using https://github.com/projectfluent/fluent-web in Capyloon and it's pretty good.
in reply to Fabrice Desré

@fabrice Thanks, was looking at it earlier but it did seem rather heavyweight. Will take another look :)
in reply to Aral Balkan

Probably on the heavier side, yes. But very flexible to allow high quality l10n and easy to use.
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). https://github.com/liberapay/liberapay.com/issues/1508

@fabrice