joule-extension icon indicating copy to clipboard operation
joule-extension copied to clipboard

Multiple Language Support

Open PatrickZGW opened this issue 5 years ago • 5 comments

Is there a plan to support multiple languages in the future?

PatrickZGW avatar Dec 12 '18 16:12 PatrickZGW

I'd absolutely love to do this. I don't personally speak any other languages, but if there's anyone in the community who's compelled to, I'd be happy to put together a way to contribute.

Right now all of the strings are hard-coded around the app, so it'll require a little plumbing, but this should be very doable. I've also heard good things about platforms for crowd-sourcing translation like https://crowdin.com/, but I don't have any personal experiences with those.

wbobeirne avatar Dec 12 '18 16:12 wbobeirne

I think Zap has support for a lot of languages now, I guess if the community is large enough it should follow naturally. I can do the German part if needed.

PatrickZGW avatar Dec 12 '18 16:12 PatrickZGW

First part is to internationalize the app. For that I've had good experience with react-intl. The second part is to take all the strings and give them to someone to translate.

I'm using react-intl even in projects that don't need to be multi-language, because it's so easy to use, and if I ever decide to support more languages all the code is ready for that.

Another nice thing about react-intl is that there is a babel plugin that can extract the strings from your source code. So the source code can remain the source of truth of what strings are used. This is much nicer than manually maintaining an external list or spreadsheet or something like that and reference that from your source code.

If you want to give react-intl a try, I can prepare a small PR integrates that library, and add a few examples of how to use in the code.

wereHamster avatar Dec 25 '18 16:12 wereHamster

Appreciate the offer! I've also done translation for other apps before, I just need to get in the habit of making them translatable from the start. Personally my preference lies with https://github.com/i18next/react-i18next and just using JSON key -> value files for translations. Most translators I've worked with are used to that kind of setup, and it's easier to integrate with services like crowdin, so that's probably the route I'll go shortly. Though it'll probably come after I finish a few hot-button issues that folks have been asking for, since I haven't had too much demand on this yet.

wbobeirne avatar Dec 26 '18 17:12 wbobeirne

I can translate it to portuguese if needed. It would great to have the extension translated to other languages.

johnnyasantoss avatar Feb 22 '22 12:02 johnnyasantoss