Understanding Translators' Needs: Summary and Notes from interview calls and shadow sessions
Interviewers: @Grace Potma , @larymak
These interviews and translation shadowing/observation sessions were done in 2024 thanks to the generous support of Digital Square, to help improve OpenMRS Translator Guidance.
Goal
Understand the needs of people both (1) Translating OpenMRS, and (2) using or updating those translations in their OpenMRS code/software distributions.
Summary of Findings to Date
For Persona Type #1: Translators, we found we will need to ensure our guide covers:
Data Model nuances should be clear (see 1.1.1 below)
Need guidance on how to handle masculine vs feminine conjugations (see 1.1.2 below)
Using the Context, Suggestions, and History tabs were extremely helpful and important to ensure consistency in word choices across different translators
Need explanation on how to use the {} and 1()1 syntax in Transifex (for correct grammar and plurals) (see 1.1.5 below)
For Persona Type #2: Engineers/Translation Consumers, we found we will need to give them guidance on:
Worthwhile to mention automation of Transifex causing PRs in community RefApp (global EMR distro) for engineers who aren’t aware of this (see 2.2.1 below)
Need Clear Steps for Distributions to Receive Updates to Translation Strings as Provided by Cmty/RefApp (see 2.2.2 below)
Notes from Interviews and Shadowing
1. Persona Type #1: Translators
1.1 Observations from Shadowing French Translator MB, on July 2, July 19 2024
Translators should be made aware of any semantic patterns that are important to follow related to the data model. Examples:
For “Location”, use “emplacement” instead of “site”, since “Site” can be used differently than “Location”
Visit = / = Encounter (these are different in the OpenMRS data model, so don’t mix the translations for these)
Check-in = / = Register (so would maybe not want to use “Enregistrer” for Check-in, since again, these are different in the OpenMRS data model, so don’t mix the translations for these)
Wanted guidance on how to handle masculine vs feminine phrasing. Found the guidance here somewhat helpful but wanted to know if he should use brackets in cases where both a masculine or feminine translation should be provided. We did end up going with the “e(e)” bracketed approach where needed.
Acronyms: For acronyms/abbreviations which don’t make sense in another language (e.g. “AIDS” in English is “SIDA” in French, or “EPTB” is “TBEP” in French): These Medical abbreviation guides can help you identify what the abbreviation may stand for in French vs English: French Medical Abbreviations: MSF Guide; English Medical Abbreviations: MSF Guide.
“Suggestions” tab in Transifex was helpful for QA & Consistency: E.g. sometimes there is more than 1 correct word to use. Using the “Suggestions” tab showed him which word was used for the same idea elsewhere by other translators, so he could be consistent with existing patterns.
Unsure about {__} and 1()1 syntax: He wasn’t totally sure about the examples that have been set up to enable proper grammar and pluralization, such as the examples shown below.
{___}:
,
1(___)1:
1.2 Observations from updating our French translations by Director of Product GP, June-July 2024
Inconvenient layout of projects in Transifex: The mono-repo structure adds too much annoying hierarchy to switch between (e.g. I have to switch between esm-patient-chart vs esm-patient-management; I’d like to have all O3 RefApp strings in one single Transifex project). Discussed with Ian → This is fixable; we just need dev time to improve our Transifex project layout.
e.g. Bahmni and O2 RefApp: All their strings are just in their dedicated project folders:
Whereas for the O3 RefApp it’s more chaotic:
Check the Transifex Header: Be careful in editing mode to double-check that the language you are translating for is correct. When you change the repo/source you are translating for, this sometimes changes sneakily!! Accidentally translated a bunch of French as Aramaic, then had to go through and delete and re-do the translations in the right language folder.
Check the “History” View:
For Historical Reasons: In early 2024 some work on translations was batch-deleted by mistake while the Transifex automation was being set up (e.g. affected languages like French, Chinese, and probably more). We thought we fixed all that but I am still finding some translations that got accidentally translated back into english.
So: As a translator/reviewer, I’ve found it really important to double-check the right-side UI of Transifex for any historic translations of that string that may have been accidentally lost/overwritten, as seen in this example - you can see that the history shows this was translated in the past into French, but then 5 months ago an API request incorrectly re-set the translation to English, which overwrote the correct French translation!
It is not clear to me if the Auto-PRs into the RefApp from Transifex are coming from Peer-Reviewed translations, or from just one person’s first draft of a translation. We should confirm this. It could be the case that unreviewed PRs are being ingested, which we don’t really want.
Use the Context tab:
Sometimes the semantics depend on the place in the EMR where the string is coming from. In this example, you can see that it comes from the Medications App, so this “Start Date” refers to the Start Date of taking Medications.
1.2 Peer translation session, French, Director of Product GP and PH (UW ITECH), Aug 9 2024
Recording: https://iu.mediaspace.kaltura.com/media/t/1_iutf26s9
Key findings:
The “use this” from the Matching/similar feature was VERY helpful!
The Translator was not sure how his work in Transifex would impact OpenMRS → It really helped him to understand that his work in Transifex would trigger automatic updates to OpenMRS within about 24 hours
2. Persona Type #2: Engineers/Translation Consumers
2.1 Discussion with junior Engineer NR, July 2024
Transifex Automation Going Well for RefApp: Automated GitHub actions from Transifex now making it very easy for community EMR RefApp to receive automated PRs when translations are updated; someone just needs to review.
On updating translations in modules: Pointed out that “Most modules have a GitHub Action that is scheduled to run once daily, every day at 8PM UTC which pulls in the translations from Transifex and updates the source files in the repository and creates a PR/updates an existing PR. Then there is another GitHub Action that is triggered whenever a push is made to the main branch which handles updating Transifex with new translation keywords, if any.”
Not Clear Steps for Distributions to Receive Updates Provided by Cmty/RefApp: What is not yet clear is how distributions are supposed to ingest these updates. Case in point: DRC distribution needs to receive the RefApp’s French translation updates, but she was not sure how to receive those updates into their DRC distribution (which is basically a fork, like all distributions currently) even after they’ve been merged into the RefApp.
2.2 Observations from Engineering Leader IB, May-July 2024
We need Developer Documentation on how to add translations to a new file. Totally missing!!
We previously had outdated resources on Transifex. This has been fixed.
The speed of translation PR reviews was a problem so we automated that.
Caution for Engineers around sometimes Missing Resource Names in Transifex: New apps (added to Transifex) are automatically named by default: names of downloaded files are always [language].json → Not app-specific → Ian had to manually name these “resources” accordingly because default names not good. Example:
ICRC Translation
Main confusing part was to find all the modules, make a list of modules that I needed to translate.
Then they exported files from each module, then attached it to a Jira ticket.
Are we receiving the updated translations from the community? Not sure!
e(e)?
Used translation guide Romain sent them.
Main Issues:
ICD Diagnosis codes are not translated into French - big problem for them. If they don’t find the code in french, they’ll write “Other” and write manually, then data is a mess.
Drugs: If they don’t find the drug in french, they’ll say “Other” and write manually; then data is a mess.
Main issue is “syringe, tabs, suspension” etc