-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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
[DOCS] Translation Workflow for Docs #10119
Comments
UpdateThis is how the translation workflow works for the ethereum.org translations: [Translation]->[Review]->[Sync]->[Upload online]
The questions / considerations for us are:
Once we agree if we want to use crowdin or not we can define the next steps. |
Questions from the standup:
|
Insights into language usage:
|
Read the Docs Workflow
Localizing the content would mean that the different translations would be included in the original documentation and not in separate repos. One can then select the desired language in the bottom flyout menu. |
French Doc StateI started the French Docs during my first year as an IT student. I translated half of it in one go in late 2018 and only got it up to date last June (synced with Do we need itI experienced firsthand the English skills of French IT engineers, sometimes giving up on a bare Readme. Usage
I recently heard that my school was working on certifying degrees on the Ethereum blockchain, and that they were using... "the official French documentation"! I also learned that some of our students referred to my doc on a regular basis. Surprisingly, no one ever complained about the "half translated" side of things. HostingTwo guys manifested their will to contribute (#5250) but even if I added them as contributors, neither of them submitted a single commit. They never gave any sign of life but I suspect that they were disappointed to be told to contribute on some fork owned by a random student... But as long as there is not enough translators on a version, we would either need a good version management system to accommodate inconsistent updates, or keep such initiatives separated/isolated as long as they can't keep up. WorkflowReadthedocs is unclear about this, but for what I understand, the two ways of managing localization are mutually exclusive. Keeping things on multiple repos
The centralized way of things
Crowdin
New translations
|
Thanks a lot for your insights, @Karocyt ! You are probably right that incomplete translations are not a problem. I'm currently leaning towards having translations in their own repository. Those could probably be forks of the main repository and are linked via github actions or other automation tools. I'm not sure if the proposed way through Do you think that the following approach could work:
This workflow might even be compatible with using .po files or other means to do the translation in the future (machine translation etc). if the auto-merged version cannot be compiled, this would maybe create a pull request instead. |
Thanks for your comments and insights @Karocyt! Please note that we're still in the exploration phase on how to improve the translation process. We'll try out different approaches and once we're settled on a rough process we'll update the community about it. :) With these efforts I'm trying to streamline the translation work done, ensure high quality and consistency while also being able to provide more guidelines and structure to the community translators. Process UpdateI've been trying out transifex. This is how the interface looks like: Translation is done step by step / paragraph by paragraph. This is handy for actual human translators, but not so much if we want to create a first draft using machine translations. I'd be curious how to translate a different version using .pot files instead of .po files. Afaik those should highlight changes done between the versions? |
@chriseth : The thing with force-accepting the remote changes is that you loose a line on each typo/rephrasing, that don't necessarily needs to be corrected on the translated version. If there is no way to export them, the unexported examples might be a feature more than a problem. It might be better to cut the full contracts examples (Solidity by example) into smaller snippets interspersed with the current comment text. Comments are not pleasant to translate and the long/insightful ones could be better off as their own Manual machine translationI leaned heavily on DeepL translator for my first draft, really amazing with contextual translations and in many cases better than what I could have done on my own. TransifexTo try the interface in a similar case, they auto-accept contributors on the readthedocs project. |
On readthedocs we also have a translation feature turned on. Clicking on |
Dropping new learnings here so we have them all in one place: Example for a purely Github-driven workflow (ReactJS)React, as in the React website and docs, are translated into several languages by community contributors. To streamline the process and ensure quality and to solve the versioning/updating issue they came up with the following workflow. (Read the full story here.)
Process followed by React (copied from this issue):
Example for including machine translations into the workflow (CPP Reference)cppreference.com uses Machine Translations for their localized content, which can then be proof-read / corrected by community contributors in a second step: https://en.cppreference.com/w/Cppreference:MachineTranslations. ConclusionsI've been playing with transifex and I don't think it's a good fit, it feels like overhead to me. In the optimal scenario, we could set up a purely Github-driven semi-automated process. Could anybody check the open-source React bot and evaluate if it makes sense to re-use some functionality? |
🤖@chriseth I think the scripts for the bot can be found here: https://github.com/reactjs/reactjs.org-translation/tree/master/scripts The React Translation bot is based on this bot: https://github.com/vuejs-jp/che-tsumi/tree/master/lib |
Korean translation is not updated after 2019-01-11 and no response at solidity-korea/solidity-docs-kr#72 Could you check or ping to @solidity-korea and org members? |
Hey @benjioh5 - We are currently re-organising the translation process and unfortunately most of the currently existing translations are very outdated. We will create a new process for community translations and will let you know as soon as there is an update. |
Kicking off the new Translation Workflow! 🎉Hello everybody! After quite some time I'm happy to be kicking off the new translation workflow for the Solidity documentation with you! I'm tagging all the people that seem to have been involved in translations in the past here: @kcyang @dongsam @PhyrexTsai @GoodVincentTu @bartkim0426 @fkysly @zhuangjinxin @hongbinzuo @PhyrexTsai @mrblocktw @altuntasfatih @cagataycali @mevlanaayas @msusur @onursabitsalman @denizozzgur @Karocyt @clemlak @damianoazzolini @V0nMis3s @AdrianClv @christina938 @akira-19, @noctrlz, @taizo-kato It would be amazing if some of you were still interested in contributing. :) So where do we go from here? Updates
Automation - Help Needed!Optimally, we would like to have a bot similar to the reactjs-translation-bot, which would create PRs with new content that needs to be translated every time the original documentation is updated. Currently we have nobody who can set this up, so if you have experience in setting something like this up and want to help, please reach out! :) Your InputIf you have any questions or input, feel free to let me know by creating a topic in the Documentation category of the Solidity forum or by opening an issue in the new solidity-docs organization. Looking forward to kicking this off with many of you, starting new translations and revamping the existing ones! 🚀 🤗 |
Problem
We have a lot of rather outdated (and often incomplete) translations of the Solidity docs, which are a great start but require quite a few updates and additions. Currently, these translations are not actively maintained and some of them not integrated into the readthedocs page.
Here are the rather outdated issues that tried to keep track of the translations:
(Maybe we can consider closing these once we agreed on a new approach)
Solution Approach / Ideas 💡
The ethereum.org page has a vast amount of translations which seem to be working great.
The ethereum.org team is using Crowdin to keep track of translations. You can see their project here: https://crowdin.com/project/ethereumfoundation.
They advertise the translation program here: https://ethereum.org/en/contributing/translation-program/
And here is a recent blog post on their milestone of reaching 30 languages: https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/
Next steps
I will set up a call with the guys from ethereum.org to learn more about how they do it. :)
The text was updated successfully, but these errors were encountered: