# \[Help\] Interactive Builder for Form Translations within the Form Builder UI

**URL:** <https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240>\
**Category:** Uncategorized\
**Tags:** gsoc2025\
**Created:** [March 10, 2025, 8:26am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240 "2025-03-10T08:26:34Z")\
**Posts on this page:** 20\
**Page:** 1

<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 10, 2025, 8:26am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/1 "2025-03-10T08:26:34Z")

</div>

Hii @nethmi, My name is **Atul Yadav.** I am a final year Computer Science and engineering student at **IIT (BHU) Varanasi, India**. I am interested to contribute to OpenMRS through this project **[Interactive Builder for Form Translations within the Form Builder] .**

I have `completed the setup` and already went through the project description and requirements. Now I am able to understand the current workflow of translation and what we need to implement.

As a part of the project, I have few doubts:

1. When we translate strings like `form name`,` label of a question`, etc in the form, then this need to be saved to server as a new form or can be updated as an existing form. Am i right?

2. This says “`we also need to consider the translations for answers`”, Is it mean, (during filling of the form) for example: to translate the strings in the dropdown shown in the below image?

3. Suppose we translate a form, from english to french, then the json in schema editor should also be updated and the schema editor will contain the updated json in french. Right?

Looking for your help and guidance.

Thank You!

---

<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, 11:54am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/2 "2025-03-10T11:54:40Z")

</div>

Hey @atulyadav745 ,

> 1. When we translate strings like `form name`,` label of a question`, etc in the form, then this need to be saved to server as a new form or can be updated as an existing form. Am i right?

Translations are saved separate from the form itself. Please see the project’s wiki for a more detailed explaination.

> This says “`we also need to consider the translations for answers` ”, Is it mean, (during filling of the form) for example: to translate the strings in the dropdown shown in the below image?

Yes.

> 1. Suppose we translate a form, from english to french, then the json in schema editor should also be updated and the schema editor will contain the updated json in french. Right?

The form itself doesn’t change when we translate a form because form translations are separate from the form.

I updated the wiki to better answer your questions, and I regularly update it based on different questions that people ask. Please give it a read, and feel free to update your questions if anything needs further explaination.

---

<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 10, 2025, 12:26pm UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/3 "2025-03-10T12:26:19Z")

</div>

> [@nethmi](#):
>
> The form itself doesn’t change when we translate a form because form translations are separate from the form.

Ok.

Thanks @nethmi so much.

---

<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 18, 2025, 5:35am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/4 "2025-03-18T05:35:14Z")

</div>

**Hi @Nethmi,**

I have a few doubts and would appreciate your assistance.

In the project description (wiki), it states:

> _The current scope of the project isn’t to save these translations to the backend. It’s to allow users to download the JSON document of translations that they can add to their Initializer configuration._

Since translations aren’t stored, I wanted to confirm my understanding. Suppose a user creates French translations for a form with `form_id_1` and downloads the JSON document. After logging out and logging in again, if the user returns to the same form (`form_id_1`) and wants to download the JSON in French again, they would need to recreate the translations from scratch before downloading the JSON.

Is that correct?

Seeking for your help. Thanks!

---

<div class="post-metadata">

**Author:** ![shettybharath](https://talk.openmrs.org/user_avatar/talk.openmrs.org/shettybharath/32/20640_2.png) [@shettybharath](https://talk.openmrs.org/u/shettybharath)\
**Post date:** [March 18, 2025, 10:36am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/5 "2025-03-18T10:36:25Z")

</div>

@atulyadav745 Yes.Once the user is logged from the session he need to create the translations again..!

---

<div class="post-metadata">

**Author:** ![gilbertkoomson00](https://talk.openmrs.org/letter_avatar/gilbertkoomson00/32/5_5575768a8748004e209b776fc1b2916d.png) [@gilbertkoomson00](https://talk.openmrs.org/u/gilbertkoomson00)\
**Post date:** [March 18, 2025, 12:42pm UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/6 "2025-03-18T12:42:16Z")

</div>

how can i set up the environment for the project and start contributing

---

<div class="post-metadata">

**Author:** ![shettybharath](https://talk.openmrs.org/user_avatar/talk.openmrs.org/shettybharath/32/20640_2.png) [@shettybharath](https://talk.openmrs.org/u/shettybharath)\
**Post date:** [March 18, 2025, 1:11pm UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/7 "2025-03-18T13:11:55Z")

</div>

Hey @gilbertkoomson00 You can check this :[Setting up a frontend module – O3 Docs](https://o3-docs.openmrs.org/docs/frontend-modules/setup)

---

<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 18, 2025, 1:12pm UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/8 "2025-03-18T13:12:14Z")

</div>

Thanks @shettybharath for clarifying.

@nethmi need your clarification also regarding this.

---

<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 18, 2025, 1:15pm UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/9 "2025-03-18T13:15:54Z")

</div>

Hey @gilbertkoomson00 , speaking about this particular project, You can find the repo here [Repo Link](https://github.com/openmrs/openmrs-esm-form-builder). Set up instructions are there in Readme File. After this you can start contributing.

---

<div class="post-metadata">

**Author:** ![gilbertkoomson00](https://talk.openmrs.org/letter_avatar/gilbertkoomson00/32/5_5575768a8748004e209b776fc1b2916d.png) [@gilbertkoomson00](https://talk.openmrs.org/u/gilbertkoomson00)\
**Post date:** [March 18, 2025, 1:25pm UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/10 "2025-03-18T13:25:57Z")

</div>

Okay I will try

---

<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 19, 2025, 3:45am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/11 "2025-03-19T03:45:17Z")

</div>

> After logging out and logging in again, if the user returns to the same form (`form_id_1` ) and wants to download the JSON in French again, they would need to recreate the translations from scratch before downloading the JSON.

Yes, if they are not already available in the backend. When loading the form, as described in the wiki, if there are translations for the locale, the backend should return it with the form, we should load those in by default. As for any new translations or edits they can make, I guess we can try saving them in local storage or adding an option where they can load in a translation JSON file (similar to how you can load a form as a file in to the schema editor). You guys can look into it a bit more and propose a solution for that too @shettybharath.

---

<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 19, 2025, 4:00am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/12 "2025-03-19T04:00:19Z")

</div>

Hi @Nethmi,

Thank you for the clarification!

We’ll explore the options of saving translations in local storage and providing a feature to load translation JSON files.

Thanks again for your insights! 😊@shettybharath

---

<div class="post-metadata">

**Author:** ![shettybharath](https://talk.openmrs.org/user_avatar/talk.openmrs.org/shettybharath/32/20640_2.png) [@shettybharath](https://talk.openmrs.org/u/shettybharath)\
**Post date:** [March 19, 2025, 5:31am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/13 "2025-03-19T05:31:36Z")

</div>

> [@nethmi](#):
>
> As for any new translations or edits they can make, I guess we can try saving them in local storage or adding an option where they can load in a translation JSON file (similar to how you can load a form as a file in to the schema editor). You guys can look into it a bit more and propose a solution for that too @shettybharath.

Yeah sure @nethmi I will look into it..!Thanks

---

<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 21, 2025, 5:10am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/14 "2025-03-21T05:10:26Z")

</div>

Hi @nethmi,

I’m facing an issue while trying to log in to `http://localhost:8080/openmrs/spa/login` using the following credentials:

- **Username:** admin
- **Password:** Admin123

These credentials were working earlier, but now I’m receiving an “Invalid Credentials” error. I’ve tried restarting the server, but the issue persists. Could you please assist me in resolving this?

Looking forward to your help.

Thanks!

---

<div class="post-metadata">

**Author:** ![chintu](https://talk.openmrs.org/letter_avatar/chintu/32/5_5575768a8748004e209b776fc1b2916d.png) [@chintu](https://talk.openmrs.org/u/chintu)\
**Post date:** [March 21, 2025, 5:52am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/15 "2025-03-21T05:52:45Z")

</div>

> **[Slack](https://openmrs.slack.com/?redir=%2Farchives%2FC02UNMKFH8V%2Fp1742203838186439%3Fthread_ts%3D1742203838.186439%26cid%3DC02UNMKFH8V%26name%3DC02UNMKFH8V%26perma%3D1742203838186439)**

---

<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 21, 2025, 6:54am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/16 "2025-03-21T06:54:02Z")

</div>

Thank you so much @chintu !!

It worked. 😀

---

<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 24, 2025, 7:50am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/17 "2025-03-24T07:50:00Z")

</div>

Hey @nethmi,

I wanted to confirm if testing aspects, such as writing unit tests and end-to-end (E2E) tests, for particularly translation builder component are also within the scope of this project? Please let me know.

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 24, 2025, 7:59am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/18 "2025-03-24T07:59:52Z")

</div>

Yes, that’s a given for anything in our frontend modules.

---

<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 24, 2025, 8:05am UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/19 "2025-03-24T08:05:28Z")

</div>

Got it. Thank you so much for clarifying.

Thanks!

---

<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 30, 2025, 4:48pm UTC](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240/20 "2025-03-30T16:48:46Z")

</div>

> [@nethmi](#):
>
> adding an option where they can load in a translation JSON file (similar to how you can load a form as a file in to the schema editor)

Hey @nethmi, in this case, since we are not saving the imported JSON, the translations will get lost if the user reloads the page. Is that acceptable, or would you prefer an approach where we temporarily store the loaded translations in localStorage or sessionStorage to retain them during a session?

Primarily, I wanted to ask — do we need to ensure the translations persist until explicitly discarded, or is it fine for them to be cleared on a refresh? Let me know your thoughts!

Thanks!!

[Next page](https://talk.openmrs.org/t/help-interactive-builder-for-form-translations-within-the-form-builder-ui/45240.md?page=2)
