medic / cht-core

The CHT Core Framework makes it faster to build responsive, offline-first digital health apps that equip health workers to provide better care in their communities. It is a central resource of the Community Health Toolkit.
https://communityhealthtoolkit.org
GNU Affero General Public License v3.0
440 stars 211 forks source link

Improve translations workflow to be more open but without losing accountability #6658

Open mrsarm opened 4 years ago

mrsarm commented 4 years ago

What feature do you want to improve?

Today the translations workflow using POEditor.com is not as open as the CHT source code, I want a more open workflow to allow more people (everybody) be able to translate the CHT, in an accountable manner.

Current workflow: https://docs.communityhealthtoolkit.org/core/overview/translations/

Describe the improvement you'd like

Currently the CHT source code is publicly available at Github, and everybody can propose changes but without modify the original source code, creating a fork and then a PR with the changes. Despite the same workflow can be used to translate the app editing the files here, pull requests may not be suitable for non-developers audience, that's way we use POEditor.com.

I sent a question/suggestion to POEditor here, quote:

is it possible to implement a workflow similar to "pull requests" like the ones in Github? what I mean is: we want to let anybody to contribute with our projects, but when a contributor edits an entry, it would not change the original translation but create a "draft", a "proposal", that needs to be approved before saved.

The response (in the same thread) from the POEditor team is:

Perhaps adding an extra proofreading step to your workflow could help: https://poeditor.com/kb/proofreading-translations. Instead of exporting all translations to GitHub, you could add export filters on your links with GitHub files, so that only the proofread strings are exported. You can find more info on how to set export filters in the section ‘Importing and exporting string’ of this article: https://poeditor.com/kb/localization-file-management-with-github-bitbucket-and-gitlab-integrations.

But I don't think it would be a good solution, so I don't have a clear proposal now, but I wanted to create the ticket to leave open the discussion here.

Describe alternatives you've considered

As mentioned above, we can use just Github pull requests, the user don't need an editor and git installed because the Github webapp allows to change the source code of any file clicking a button, with a web editor provided by Github. If we document how to do that it may work, the major problem is that .properties files despite are simple also have specific rules, like white spaces in keys needs to be escaped with \, same for line returns and some special characters. Also POEditor.com provide a more appealing interface for non developers users.

Additional context

Despite POeditor.com is open in the sense that we can add anybody to our projects to contribute, the need to add the user to the POEditor project first as a user within the organization to just change a few translations adds friction that may discourage people to contribute, while in Github anybody without invitation can do it. Also once a new contributor edit translations, we lost track of what was the original translation the contributor have edited (accountability), although we still have the original translations in Github, there is no automated way to rollback what the contributor edited in POEditor that we don't liked, that is because I would like contributions to be drafted instead of saved overwriting the original one, like pull requests.

andy5995 commented 3 years ago

@sexybiggetje any thoughts about this?

andy5995 commented 3 years ago

If I understand this ticket correctly, using something like weblate or Transifex wouldn't be feasible solutions. Or am I wrong?

martijndeb commented 3 years ago

Some form of user administration is required to fight spam and malicious updates. Editing on GitHub for larger files is not really that great. Crowdin and Transifex allow you sign in with other authentication providers like Github, Google or Facebook. That eases the step for many people. Both platforms require you to be accepted in to a translation team like poeditor does, and don't provide those features.

You can however use GitHub actions to run the CLI tool, and let it make a pull request on the repository. Which might facilitate what you want with a little bit of effort. https://github.com/marketplace/actions/create-pull-request