How to load the application in two languages correctly?

Hello everyone!
Please tell me how to upload the application in two languages to the Google store correctly?
I want to publish the application to the whole world in two languages: Russian (for my location) and English (as an international language).
How to do it right? Should it be possible to select a language on the welcome screen or just download two parallel assemblies, and Google store will itself determine which assembly to give to the client? Or suggest me your more correct version…
Sorry for my google english.

Hi Ossa and welcome.

There are a couple of ways to do this but no way is perfect. the easiest way is to duplicate all of you pages, change the text to the language you need and then create a language select page as the home page. Whilst this is not a perfect solution as you would need to change 2 versions every time you wish to make a change, unfortunately I believe it is the best way currently available.


Thanks a lot Craig!
And a couple more questions. My app is almost ready and I plan to upload it to the app store soon.And currently I’m using the free Adalo plan.
But yesterday when I checked it, I discovered that it became much slower, although I only slightly increased the database. Now I realized it was “free storage used 100%” ))
Two problems that I noticed are speed (it got slower) and very sensitive response of the lists when scrolling (instead of scrolling, clicking).
So, will the application work stably when loaded into the app store, especially if I plan to do a duplicate build in a second language? And how to reduce the pressure sensitivity when scrolling?

And please tell me how to copy the assembly correctly? I selected all the screens, pressed Ctrl + C >> Ctrl + V - and they all linked into a tangle. Then I removed that.
The second attempt - I made a copy of the entire assembly through the gear, renamed all screens in it, adding the RUS prefix to each. I selected all the screens, copied it, returned to the ENG assembly and oh no! It was automatically inserted, and in spite of the fact that I renamed, all the connections were preserved again and again tangled in a ball.
How to make two assemblies in parallel correctly?

I’m doing the same for my app. Launching on PlayStore and AppStore soon, but need to clone each screen and put a Boolean on users for the second language. When users open the app, it will bring him to the correct transleted page related to his choice

1 Like

But I still do not understand how to do it correctly. To copy and skid to rebuild all the links? Maybe it’s somehow easier - copy-paste?

Good day!
I collected it, I did it! Two languages ​​in one assembly is a tedious task. I turn on the test, make the choice of the language - everything works. But!
When I run the test, register the user in the RUS version, everything is fine. After I close the test and run it again under the same user, Adalo automatically puts me on the ENG version.
Please tell me, what could be the problem?

Hello, Craig! May be you know?

Hi @Ossa,

This is the way it works. Adalo has “Welcome” and “Home” screens. Logged-in user after reopening the app gets to Home screen by default. There are no additional settings in Adalo, where should the user get to.
So you need to direct your user to correct part of the app, based on his/her language choice (stored in the DB).
As an option, you can build a separate “Routing” screen, make it Home screen and create 2 on-screen-enter actions there: 1st one conditional, if user_language=RUS then link to Russian part; 2nd one - link to English part.

Hope this helps.



Great advice, Victor! Thank you very much, you helped me a lot, I would not have guessed! The story of the welcome screen and home screen is super! Everything turned out to be a little more complicated than you described and without an intermediate screen with the “Home” property (nothing worked with it) … but in the end I figured it out!

I hope my advice will help someone:

  1. Create a “Welcome” screen, which will have a logo and two buttons RUS, ENG, which send “Sign in 1” and “Sign in 2” to the screen;

  2. We give the “Welcome” screen 2 properties “home screen” and “welcome screen” (otherwise I couldn’t do it);

  3. In the user database, create two new true/false properties - for ENG and for RUS.

As a result, at the first login, choosing a language, the user gets to the “sign in 1” or “sign in 2”. After registration, he becomes “Login user” and I send him to the “intro” screen (in my case). We assign the “Update user” action to the “intro” screen, in which we set all the necessary conditions, including the choice of the language, set true where necessary.

Recall that the “Wellcome” screen has 2 properties (“Wellcome screen” and “Home screen”).

We also assign 2 actions to the «Wellcome» screen, which direct the logged in user to the screen (which we actually want to be Home) in the language he previously selected. For actions, set the condition RUS true / false and ENG true / false.

In general, I tried to explain as difficult as possible, I hope nothing is clear.

Victor, thanks again!
Good luck!


Good job Ossa, it’s great to see that you have managed to achieve what you wanted for your app. I wish you all the success in the future :slight_smile:


There is a small problem. After I made a duplicate of the screens in another language, the layout on the screens shifted.
Corrected by resizing the screen vertically. But after re-entering Adalo, everything shifts again. It is not convenient to work this way and change the screen size every time. Maybe you know how to fix it?

Hi @Ossa,

I guess it’s a builder glitch - does it looks like the same in the PWA?


Hello, in PWA it’s ok.