We reached a major translation milestone for O3 this month.
Recently we reached a major milestone in Transifex: 100% of code strings in OpenMRS 3 translated from English into French!
This was the result of quite a sprint from Aug → Oct, and I’m super thankful to Paul Henri Assoa and @michaelbontyes who were critical as a Francais peer review crew. Merci beaucoup!
Along the way, I discovered 3 key things:
-
People are already using auto-translate tools, AI or not. One stakeholder told us to “just use DeepL”; one sent us a spreadsheet with translations obviously copy-pasted from Google Translate without proper app context, and in some cases in our Transifex itself it looked like old / previous french translations from years ago had been themselves copy-pasted from Google Translate, with sometimes weird / not-quite-best semantics. (I fixed or flagged for review all those I came across.)
-
Transifex now offers AI-based translation. We used up our ~10 free clicks of this button, but you can see how the Transifex product team have added their own AI feature into the mix: You click this button and it basically auto-generates a proposed translation for you to review, edit if needed, and save. Saves a lot of time especially if you’re dealing with a lot of non-keyboard-characters that you don’t feel like typing the shortcuts for
.
-
DeepL and ChatGPT were indeed helpful to me in validating best phrasing - but with careful context and peer review. I personally triangulated my ideas or concerns by using both ChatGPT and DeepL to help with some translation. In many cases I didn’t feel something was quite right for a given context (e.g. one tricky context was error messages for the Patient Queues app lists) and these tools helped me experiment with a few ideas, validate grammar, and triple-check the idea on multiple platforms before asking for peer-review from Paul Henri or Michael. (To be clear I don’t recommend someone do this with a language they can’t read; like I would never personally do this with Singhalese or Afrikaans for example, because I’d have no clue if the structure or tone was even remotely correct.)
- Great Example of Context-Gone-Wrong: we were given a large file of suggested translations, including a request to translate “Invalid Ward” to what would basically read in French as “Hospital Ward for Disabled People”, but the context was an error message - so the translation should have been along the lines of “The ward you selected is not valid!” I suspect this came from a bulk copy-paste into something like DeepL or Google Translate.
So here are some proposed guidelines for translation contributors, for using AI Tools for translation:
-
Do not blindly trust the tool - only use automated translation tools if you have a basic understanding of the language so can provide some human review.
-
Do not use for bulk translation where there is more than one subject area at play. LLMs are more likely to make mistakes if you jump between contexts (e.g., if you jump from translating strings about inpatient wards to text about waiting queue error messages, you have a greater likelihood of model confusion).
-
Only Copy-Paste if you are confident in the translation.
-
Confirm with more than one tool. Personally I found that comparing ChatGPT with DeepL suggestions helped me narrow down a more clear translation, much much more than just using one alone (plus my basic knowledge). And, of course, always validate with human translators if you are unsure.
What do folks think of these guidelines? Anything you’d tweak or suggest?