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)
Gergely Nagy 🐁
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.
Aral Balkan
in reply to Gergely Nagy 🐁 • • •Goofy 📖 🍝
in reply to Aral Balkan • • •Jean-Baptiste
in reply to Goofy 📖 🍝 • • •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
Jean-Baptiste
in reply to Jean-Baptiste • • •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
Aral Balkan
in reply to Jean-Baptiste • • •@jibec Thank you for sharing your experience and for the tips; appreciate it :)
@goofy
Jean-Baptiste
in reply to Aral Balkan • • •@goofy
Aral Balkan
in reply to Jean-Baptiste • • •Aral Balkan
Unknown parent • • •Aral Balkan
Unknown parent • • •@cybeardjm Thanks! :)
PS. Assuming that’s just for the translations. They don’t have an internationalisation or localisation framework last I checked.
Desikner
in reply to Aral Balkan • • •Weblate, most FOSS projects use this service.
hosted.weblate.org/
Hosted Weblate
Hosted Weblatedavidak
in reply to Desikner • • •@desikn
@Codeberg has a Weblate Instance now: translate.codeberg.org/
I used Weblate before as a contributor and it works well. Not sure if it is the best.
Weblate
WeblateAral Balkan
in reply to davidak • • •Ryuno-Ki
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.
Aral Balkan
in reply to Ryuno-Ki • • •Ryuno-Ki
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 :)
Ryuno-Ki
in reply to Ryuno-Ki • • •Crowdin | Localization Management Platform for agile teams
CrowdinAral Balkan
in reply to Ryuno-Ki • • •Ryuno-Ki
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 😞
Sexybiggetje🐖
in reply to Aral Balkan • • •Aral Balkan
in reply to Sexybiggetje🐖 • • •Sexybiggetje🐖
in reply to Aral Balkan • • •Aral Balkan
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…
Aral Balkan
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.)
Aral Balkan
in reply to Aral Balkan • • •Fabrice Desré
in reply to Aral Balkan • • •GitHub - projectfluent/fluent-web: fluent-web - simple example of a vanilla Web app using Fluent
GitHubAral Balkan
in reply to Fabrice Desré • • •Fabrice Desré
in reply to Aral Balkan • • •Charly C.
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
The Fluent localization system · Issue #1508 · liberapay/liberapay.com
GitHubAral Balkan
in reply to Charly C. • • •Nemo_bis 🌈
in reply to Aral Balkan • • •Naturally my favourite is the #MediaWiki Translate extension, used on #translatewiki.net!
translatewiki.net/wiki/Transla…
Ages ago, I and Nikerabbit wrote a comparison table for online translators:
docs.google.com/spreadsheets/d…
Comparison of online web translators (mainly for software l10n/i18n localisation/internationalisation/globalisation/multilanguage) - Disk Google
docs.google.com