# GSOC 2025: Interactive Builder for Form Translations within the Form Builder (Interactive Translation Builder?)

**URL:** <https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161>\
**Category:** GSoC\
**Created:** [March 4, 2025, 5:40pm UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161 "2025-03-04T17:40:49Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 4, 2025, 5:40pm UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/1 "2025-03-04T17:40:49Z")

</div>

Hi mentors,

I hope you’re doing well! I’m Yash Ainapure, a newcomer to the OpenMRS community and excited about contributing to GSOC 2025. I’ve successfully cloned the repository at [GitHub - openmrs/openmrs-esm-form-builder: OpenMRS Form Builder microfrontend](https://github.com/openmrs/openmrs-esm-form-builder) and set up everything locally.

I’m particularly interested in the idea of building an Interactive Builder for Form Translations within the Form Builder (Interactive Translation Builder?). It seems like a challenging and impactful project, and I would love to start contributing by tackling some introductory tickets related to this feature.

Could you please guide me on where I could start? Any introductory tasks or pointers would be greatly appreciated.

Looking forward to your guidance and contributing to OpenMRS!

Best regards, Yash Ainapure.

@jayasanka@nethmi

---

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 5, 2025, 3:17am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/2 "2025-03-05T03:17:51Z")

</div>

Can i get a flow of how currently a form is made. what does publish a form means? How translation is done currently? and what system do we need in future regarding translation of this.

@jayasanka

---

<div class="post-metadata">

**Author:** ![jayasanka](https://talk.openmrs.org/user_avatar/talk.openmrs.org/jayasanka/32/22204_2.png) [@jayasanka](https://talk.openmrs.org/u/jayasanka)\
**Post date:** [March 5, 2025, 3:27am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/3 "2025-03-05T03:27:42Z")

</div>

Hi Yash,

This course will help you understand how to use the form builder: [https://openmrs.org/academy/form-builder-course/](https://openmrs.org/academy/form-builder-course/)

@nethmi will provide you with the other details.

---

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 5, 2025, 8:07am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/4 "2025-03-05T08:07:46Z")

</div>

![Screenshot from 2025-03-05 10-07-58](https://talk.openmrs.org/uploads/default/original/3X/c/9/c9dc1a6eebaeab664480e3287154bdd2858a6a69.png)

Don’t know why but the system just banned me temporarily. anyways let it be, I completed it through the Youtube playlist and got the understandings of the software. But there the concept of translation(which is required for this issue) and all isn’t explained.

I had gone through: [https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder](https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder)

But still some things aren’t clear that how translations are supposed to work Is there a way that i could understand the workflow of how translation is done or how it should be done? Thanks

---

<div class="post-metadata">

**Author:** ![nethmi](https://talk.openmrs.org/user_avatar/talk.openmrs.org/nethmi/32/19734_2.png) [@nethmi](https://talk.openmrs.org/u/nethmi)\
**Post date:** [March 5, 2025, 8:30am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/5 "2025-03-05T08:30:31Z")

</div>

Hey @yash-ainapure, the translations of a form itself is handled by the [form-engine-lib](https://github.com/openmrs/openmrs-esm-form-engine-lib), which is the “engine” that renders a form. What this project aims to do is to provide an interface for users to make the translation strings, e.g - a user should be able to add the translations for a label of a question like “What is the patient’s age?” into another language. As to the workflow of how this form would get translated when a user changes the language, has already been done by the form-engine. Once the translation strings are saved, the form engine knows to render the form translations correctly. You can demo this if you look at the `Adult HIV Return Visit` form after changing the language to French. If you are interested to know how the form engine handles translations, you can look at the form-engine’s codebase - [GitHub - openmrs/openmrs-esm-form-engine-lib: React Form Engine library for O3](https://github.com/openmrs/openmrs-esm-form-engine-lib?tab=readme-ov-file#adding-and-managing-translations)

---

<div class="post-metadata">

**Author:** ![pk\_kulkarni](https://talk.openmrs.org/letter_avatar/pk_kulkarni/32/5_5575768a8748004e209b776fc1b2916d.png) [@pk\_kulkarni](https://talk.openmrs.org/u/pk_kulkarni)\
**Post date:** [March 6, 2025, 11:44am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/6 "2025-03-06T11:44:00Z")

</div>

Subject: OpenMRS Installation Stuck at 99% During Database Update Hi nethmi,

I’m trying to set up OpenMRS on my local machine, but the installation is stuck at **99% during the database update**. Here are the details:

- **System Details:**

- Restarting OpenMRS (`mvn openmrs-sdk:stop` → `mvn openmrs-sdk:run`)

- Restarting MySQL (`sudo systemctl restart mysql`) Could you please help me understand what might be causing this and how to resolve it? Let me know if you need any additional details.

Thanks, Prathmesh

 ![image](https://talk.openmrs.org/uploads/default/original/3X/1/8/182331f42d7e6b6b7688dce3b33a1cf3c7dfaece.png)

---

<div class="post-metadata">

**Author:** ![dkayiwa](https://talk.openmrs.org/user_avatar/talk.openmrs.org/dkayiwa/32/179_2.png) [@dkayiwa](https://talk.openmrs.org/u/dkayiwa)\
**Post date:** [March 6, 2025, 1:23pm UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/7 "2025-03-06T13:23:40Z")

</div>

Can you share the logs via [pastebin.com](http://pastebin.com)?

---

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 7, 2025, 3:30am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/8 "2025-03-07T03:30:36Z")

</div>

Thanks for the detailed explanation!.

I got some doubts regarding it: When we save a new form, it sends a POST request to a URL to save the form. While working on translations, I believe we also need to update the server code to ensure it saves the translated content. Could you please share the backend repository with me? I’m having trouble locating it. Also, if there are any corrections needed in my understanding, please let me know@nethmi

---

<div class="post-metadata">

**Author:** ![nethmi](https://talk.openmrs.org/user_avatar/talk.openmrs.org/nethmi/32/19734_2.png) [@nethmi](https://talk.openmrs.org/u/nethmi)\
**Post date:** [March 7, 2025, 8:09am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/9 "2025-03-07T08:09:50Z")

</div>

You can find it in resources section - [https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder#\uD83D\uDD17-Reference-materials](https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder#%5CuD83D%5CuDD17-Reference-materials)

---

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 7, 2025, 8:52am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/10 "2025-03-07T08:52:57Z")

</div>

Heyy, I’m a bit confused about how I can contribute to this project. I’ve been trying to grasp the project’s architecture. From what I’ve gathered, implementing dynamic translations requires updates in both the frontend and backend code. Since I specialize in frontend development, I won’t be able to make changes to the backend. Without a clear plan, I also can’t proceed with frontend modifications.

Could you guide me on what steps I should take right now to improve my chances of getting into GSOC? Should i make a UI or something at present? Or you could make a group of backend+frontend devs who could work together for this specifi task.

@nethmi@jayasanka

---

<div class="post-metadata">

**Author:** ![nethmi](https://talk.openmrs.org/user_avatar/talk.openmrs.org/nethmi/32/19734_2.png) [@nethmi](https://talk.openmrs.org/u/nethmi)\
**Post date:** [March 7, 2025, 9:02am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/11 "2025-03-07T09:02:32Z")

</div>

Refer to [https://openmrs.atlassian.net/wiki/x/ffyQAQ](https://openmrs.atlassian.net/wiki/x/ffyQAQ) and [https://openmrs.atlassian.net/wiki/spaces/RES/pages/26279055](https://openmrs.atlassian.net/wiki/spaces/RES/pages/26279055) on guidance regarding GSOC in general. I don’t think we can make a group of devs to work on this project, because its meant to be a single GSOC project for a single person to do, that said you can contribute to the form builder itself to gain more understanding about it - [Jira](https://openmrs.atlassian.net/browse/O3-1144) and [Jira](https://openmrs.atlassian.net/browse/O3-4314). Right now, there isn’t any modifications needed for the backend in order to support translations, because it has everything needed for translations to work. In midst of the project, where they might be gaps for translation support in the backend, those gaps would need to be implemented, e.g - I’m not sure we have an endpoint to create translations as a formResource, right @ibacher?

---

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 7, 2025, 9:23am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/12 "2025-03-07T09:23:55Z")

</div>

at present when a form is created,a person MANUALLY translates the strings and save it directly into json files of translation folder. and the form is stored in some database through API.

To make this translations also get saved through frontend UI(we won’t be able to store it directy into json files)so we need to change it and make it store in databse so that we can manipulate(do CRUD Operations) through UI on that translated strings data with a particular format. I may be get wrong,but please someone analyse this and get to a conclusion so that everyone could start working on this issue.@nethmi@jayasanka

---

<div class="post-metadata">

**Author:** ![atulyadav745](https://talk.openmrs.org/user_avatar/talk.openmrs.org/atulyadav745/32/20744_2.png) [@atulyadav745](https://talk.openmrs.org/u/atulyadav745)\
**Post date:** [March 7, 2025, 9:45am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/13 "2025-03-07T09:45:16Z")

</div>

Hii @yash-ainapure ! My name is Atul. I am new to the organization.

Could you please tell me what username/password to be used when launching our dev server on localhost?? @nethmi please help me out.

Thanks

---

<div class="post-metadata">

**Author:** ![nethmi](https://talk.openmrs.org/user_avatar/talk.openmrs.org/nethmi/32/19734_2.png) [@nethmi](https://talk.openmrs.org/u/nethmi)\
**Post date:** [March 7, 2025, 9:53am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/14 "2025-03-07T09:53:20Z")

</div>

The current workflow of saving a form’s translations are described here - [https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder#\uD83E\uDD14-Problem-Statement](https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder#%5CuD83E%5CuDD14-Problem-Statement).

> To make this translations also get saved through frontend UI(we won’t be able to store it directy into json files)so we need to change it and make it store in databse so that we can manipulate(do CRUD Operations) through UI on that translated strings data with a particular format

Yes, like every other frontend operation that requires saving something to a database, when a user updates a translation, that updated strings would have to be sent through an API call to an endpoint on the backend `o3-forms` module. You can read the FAQ section for more detailed answers - [https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder#FAQ](https://openmrs.atlassian.net/wiki/spaces/projects/pages/326238264/Interactive+Builder+for+Form+Translations+within+the+Form+Builder+Interactive+Translation+Builder#FAQ)

---

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 7, 2025, 10:09am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/15 "2025-03-07T10:09:13Z")

</div>

Its: username: admin pass: Admin123

---

<div class="post-metadata">

**Author:** ![atulyadav745](https://talk.openmrs.org/user_avatar/talk.openmrs.org/atulyadav745/32/20744_2.png) [@atulyadav745](https://talk.openmrs.org/u/atulyadav745)\
**Post date:** [March 7, 2025, 10:12am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/16 "2025-03-07T10:12:11Z")

</div>

> [@yash-ainapure](#):
>
> Admin123

Thanks @yash-ainapure Vey much. It works 😀

---

<div class="post-metadata">

**Author:** ![ibacher](https://talk.openmrs.org/user_avatar/talk.openmrs.org/ibacher/32/19751_2.png) [@ibacher](https://talk.openmrs.org/u/ibacher)\
**Post date:** [March 7, 2025, 3:55pm UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/17 "2025-03-07T15:55:43Z")

</div>

> [@nethmi](#):
>
> I don’t think we can make a group of devs to work on this project, because its meant to be a single GSOC project for a single person to do

GSoC projects cannot be shared across multiple students. That’s a GSoC rule.

> e.g - I’m not sure we have an endpoint to create translations as a formResource, right @ibacher?

We don’t but I don’t see a reason why we’d need any backend logic here. We’re storing the translations as JSON (generated by the frontend tool) to be consumed by the frontend forms module.

That said, I want to point out that the default assumption should be that the output of this is a JSON document that someone will download and add to their Initializer configuration. Live saving form changes is generally not a feature people want in production.

> endpoint on the backend `o3-forms` module

If you really have to store something in the backend, you’d just make a call to the form resources endpoint in the REST API.

---

<div class="post-metadata">

**Author:** ![yash-ainapure](https://talk.openmrs.org/letter_avatar/yash-ainapure/32/5_5575768a8748004e209b776fc1b2916d.png) [@yash-ainapure](https://talk.openmrs.org/u/yash-ainapure)\
**Post date:** [March 7, 2025, 4:28pm UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/18 "2025-03-07T16:28:10Z")

</div>

I am really sorry for the confusion i made,but still i have a last doubt.

as i saw the [project](https://github.com/openmrs/openmrs-esm-form-builder) ,the translated strings are stored in a folder named [translations](https://github.com/openmrs/openmrs-esm-form-builder/tree/main/translations) .so then we would need to update these json files through frontend and we won’t be able to add translated strings directly to these json files through frontend.@ibacher

---

<div class="post-metadata">

**Author:** ![nethmi](https://talk.openmrs.org/user_avatar/talk.openmrs.org/nethmi/32/19734_2.png) [@nethmi](https://talk.openmrs.org/u/nethmi)\
**Post date:** [March 10, 2025, 9:00am UTC](https://talk.openmrs.org/t/gsoc-2025-interactive-builder-for-form-translations-within-the-form-builder-interactive-translation-builder/45161/19 "2025-03-10T09:00:02Z")

</div>

No. Those translations are for the strings on the UI and not to be confused with the form translations. Please read the FAQ section of the project wiki.
