cinnyapp / cinny

Yet another matrix client
https://cinny.in
GNU Affero General Public License v3.0
1.98k stars 257 forks source link

Allow for translation #164

Open yannicka opened 3 years ago

yannicka commented 3 years ago

Allow Cinny to be translated.

Load the user's language by default. Allow the user to choose the language they want.

samueldr commented 3 years ago

(Repeating what I stated on the Matrix room)

my 2¢ about that, a few years back when I was doing work on a React app, react-intl was the best option evaluated at the time for providing correct translation capabilities, especially regarding countables and such hard to do translation features

(the backing library's format)

menturion commented 2 years ago

+1 for multi-language support.

lostmaniac commented 2 years ago

+1

Vistaus commented 2 years ago

+1

I will provide the Dutch translation once this is implemented.

REDLINK commented 2 years ago

So @Airyzz already demonstrated it's doable using i18next a month ago: https://github.com/Airyzz/cinny/commits/dev @samueldr mentioned react-intl before. I have no strong feelings one way or the other, heard good things about i18next though. If we can agree on i18next and @ajbura has no objections, we could move forward with this.

Airyzz commented 2 years ago

I talked to @ajbura about it in the matrix chat, and they said its good to go ahead with i18next. I'm making my way through the app and implementing translation everywhere I can. I'm hoping to have everything ready in a week or two

ajbura commented 2 years ago

@REDLINK, Yes i18next is good choice. 👍

menturion commented 2 years ago

The matrix-react-sdk is using counterpart, https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/languageHandler.tsx.

jiangshanghan commented 2 years ago

and i can do chinese translate,if needed.

Iruwen commented 2 years ago

Should we use a continuous localization platform? Element uses Weblate, I personally find that one more on the confusing side though. i18next seems to go hand in hand with locize. Maybe someone knows something very lean. Would keep the purely translation related stuff off this repo and language maintainers don't need repo access or create PRs all the time.

Airyzz commented 2 years ago

Should we use a continuous localization platform? Element uses Weblate, I personally find that one more on the confusing side though. i18next seems to go hand in hand with locize. Maybe someone knows something very lean. Would keep the purely translation related stuff off this repo and language maintainers don't need repo access or create PRs all the time.

There was some discussion about this in the matrix room, we were looking at using Crowdin at the moment but thats still up for discussion

Vistaus commented 2 years ago

Crowdin is my least favorite platform to use as a translator. I always have issues with it and I know I'm not the only translator that has issues with it. Weblate, Transifex, Poeditor.com or the good old fashioned way (fork, translate translation file(s), open PR) are much better.

Iruwen commented 2 years ago

@Airyzz if you skim over it you'll probably quickly notice a bunch of strings that aren't localized yet, e.g. the tab headers in user settings.

Airyzz commented 2 years ago

@Iruwen Thank you! Yes I am aware of those strings. The tab headers can't be translated at the moment as the way the tab component is built relies on those strings to function. @ajbura said to me in the matrix room that this will be rewritten, and when that happens I will implement the translation.

Iruwen commented 2 years ago

Thanks for the info and the fantastic groundwork of course, considering how long only the translation has taken your effort on this front is immeasurable :thumbsup:

Airyzz commented 2 years ago

Crowdin is my least favorite platform to use as a translator. I always have issues with it and I know I'm not the only translator that has issues with it. Weblate, Transifex, Poeditor.com or the good old fashioned way (fork, translate translation file(s), open PR) are much better.

If Crowdin is no good, I would vote for Weblate. It seems as though they offer free hosting for open source projects

REDLINK commented 2 years ago

locize looks intuitive, but I don't have time to actually compare it against Weblate tbh. Eventually using the latter makes it more likely we get some help from Element translation contributors who already know the platform, that would be a plus. And yes, FOSS projects get the "advanced" plan for free.

rltas commented 2 years ago

German translation moved to https://github.com/REDLINK/cinny/tree/dev/public/locales/de, deployed at https://cinny-de.vercel.app and looking into Weblate.

enderprism commented 1 year ago

+1. I can provide a French translation. What's bothering me at the moment is the date in 12h format, as I'm used to reading it in 24h format.

array-in-a-matrix commented 1 year ago

I can provide Arabic localization.

aceArt-GmbH commented 11 months ago

minimal version for review at #1576. It can reuse translations from #681

lucasmz-dev commented 6 months ago

Was interested in looking into PT-BR translations potentially because I liked the client compared to others...

I personally like Weblate and Crowdin, but appreciate Weblate more for being a free project and not having the AI bs from Crowdin; I don't like how Element does it because they put it all on their domain and end up separating the components and you can't do mass-actions as easily, like check for specific words and strings, otherwise I like it. Zen mode is great. Crowdin can be quite slow as well, or just annoying.

I'm not sure I would appreciate i18next, I have never used it. Transifex on the other hand is pure garbage. The projects I have translated for, relating to AOSP, have been always usually on Weblate, or Crowdin; (and the one time with Transifex which was hell) so I have more experience on those;

Vistaus commented 2 months ago

Hmm, I tried to open the TS file for translation in Linguist, but it gives me a parsing error. Are you sure it's fully implemented yet?