-
Notifications
You must be signed in to change notification settings - Fork 209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for translation (and other localization) #1396
Comments
Thank you Michal. We'll definitely have a look at Weblate and Tolgee. I tried to sign up for Weblate but it seems like their signup page is broken. Should be a temporary thing tho. We'll definitely adding this feature to the roadmap soon as more than 50% of users are outside of US & Canada, so that makes a real sense to me. |
Oh, interesting. I hope they'll fix it if the problem persists. But, as I tried it a few months ago, it seemed to work. I don't know if they have Discord, Slack, etc., but I'm sure they can help you via email. When speaking of support, Tolgee has a community Slack – https://join.slack.com/t/tolgeecommunity/shared_invite/zt-2w8d8g67q-KGOTZRBBko6xldFCPUBdSA. I observe it for a few weeks and it looks good – Tolgee staff are pretty active here and most problems are solved very fast. |
That's awesome! So, feel free to let me know in case I can start with translating or you need some localization tips. Maybe one hint for start (I didn't see your source code, so maybe you're already on the right way…): It's always better to put UI texts (strings that are displayed somewhere, so a user has a chance to see them) to some central space (e.g. just simple class, INI file or something like that). You could save tons of your time for the future and prevent some issues—when you'll try to find all these strings later, you definitely forget something. I've seen it many times, it can make real trouble and give very bad tone on localization process. As we say in Czechia: ”Štěstí přeje připraveným.“ |
Yes, that should be the way moving forward. Without a central repo where translators can enter their strings, modify/fix where necessary, it's impossible to advance much with a GitHub based translation process. Thank you for this discussion. I'll go ahead and create an issue and one of our core developers or a contributor who has past experience will take it and advance further. |
I'll keep this issue open in case someone hops in and creates an initial thoughts on how a translation framework can be implemented. Even an initial methodology would be great to step in our foot in the door. |
I made pull request that uses react-18Next to create a translation framework for the project. #1582 The way how it's structured follows @ceskyDJ advice, in that that translated UI strings are stored in a central file (being in Client/src/i18n.jsx) I believe I can fully implement this translation framework for the whole project. So I'd like to request that this issue #1396 is assigned to me. |
(I added this comment to the PR but it's better that it stays here) Thanks for this PR @fluellenarman Out of curiosity, what online services do you use for translations? In my shortlist https://tolgee.io/ stands out from the crowd. Do you think your i18n library can seamlessly work with Tolgee? |
I did not use any online services, For the spanish translation. I based it off of my highschool spanish classes, so I recommend a more fluent Spanish speaker reviews the UI text in i18n.jsx. I took a quick look at tolgee.io's documentation, and they support integration with react-i18next. I see no major problems with using tolgee with react-i18next. I've linked here the tolgee's documentation page for using react-i18next and tolgee's example app using tolgee and react-i18next. |
Got it. For this (grant), let's try to set up Tolgee (can be a temp account on Tolgee cloud) and see if it works two ways. That is what I believe it would work (but not sure 100%): Translators would login to Tolgee, see strings there and complete their translations based on the strings which are synced between Tolgee and GitHub. You can ignore the quality of Spanish translations for now, as it will be handled later by a Spanish translator eventually. |
Understood, will continue moving UI strings into the i18n.jsx and look into setting up the project to use Tolgee and it's in context translation feature. |
@fluellenarman can you defer this a bit, as there's a new PR that connects Tolgee and the repo, and I'd like to check it on Monday. Meanwhile you may want to check grants page for more ideas. |
I'm glad to see some progress on this issue! Thanks for all the work. A small note that should be considered… It's always better to require (or at least request in info texts) native speakers to translate the app. Native speakers know the target language well and have better skills for making natural-looking in-context translations, so the result looks like the app was originally created in their language. Simply said, translations seem to be more professional and friendly for users. I've already seen much translations done by just machine translation (without native people checking them deeply) or by non-native speakers (e.g., developers of the app). It always looked pretty bad and I had to replace most of the strings, so it get some quality. |
Thanks @ceskyDJ - that is a valid point. We will allow machine translations to some point under the supervision of the native translator. There won't be any languages without a maintainer as well. |
Understood, will defer until further notice. |
Thank you. Among the open ones on https://checkmate.so/grants , security audit feature is also taken. Just fyi. |
Just fyi @fluellenarman - today is the last day for submissions. Let me know if you are interested in any of those projects:
|
Is your feature request related to a problem? Please describe.
I've just found your interesting project and it looks just… great! I quickly went through the project and didn't find any localization stuff. I want every good software to be fully localized to as much as possible languages, so it could be used by even non-english speaking people. So, I'm kindly asking you about adding localization or at least simple translation possibility to your product.
Describe the solution you'd like
I'm a Czech man, so please consider that my opinions could be biased. I'd recommend to use some translation management system as Weblate or Tolgee. When you choose a good one, integration of translations (and a few other localization stuff) would be pretty easy and efficient. These two have their advantages and you definitely should take a look at them. Weblate is very popular solution used by many big projects. It has very good integration with Git, so it's like another developer in your team. The interface for translators is very clean and easy to use, do you can get so many translations in a short piece of time. I have great experience with it as an active translator of some open-source projects. Tolgee is relatively new player. It brings in-context automatic translation in the scene and in-app translation possibilities for translators. It's very good approach with great results in point of translation quality. As a translator I know the context is just very important thing to care about.
Describe alternatives you've considered
Of course, there are other systems you can use. Or, as many projects, you don't need any of them. But, as I've seen so far, these projects doesn't grow so quickly as these with translation management systems. They are just too far for non-technical oriented translators.
Additional context
If you decide to support localization, you can count on me with Czech translation and helping with some other localization for Czech people (our ancestors had just great ideas, how the best language and it's typography look like…). I offer maintained translation, as I started to do some time ago. Do, I'll constantly update the translation, as new strings will arrive with the growth of the product. I check older translations and localization stuff, too, so I try to achive very quality experience for our people.
The text was updated successfully, but these errors were encountered: