Is there a component somewhere that allows a person to select a language, than all of the text changes for that user to the selected language?
Hi @ThunderBlade,
Please vote here. : Support for Multiple Languages | Voters | Adalo
You could find few workarounds that’s discussed in this forum. (@knight - Multi-State Text component in the marketplace & @ishantanusrivastava - https://components.theuncoders.com/, have translate components that you could use; screens duplication method; etc..)
Thank you and have a great day!
Hey @ThunderBlade,
At the moment, the built-in feature for automatic language translation is not available. But you can set it up using an external API and custom actions. I’ve done this successfully in apps that support multiple languages.
You can use either Google Translate API (free version) or DeepL API.
The flow would be the following way:
When a user submits something or clicks on a button:
- A custom action sends the text to the API. It’ll include the original text and the language you want to translate it into, usually through a webhook or a service like Make/Zapier.
- In the API results, you’ll get back the translated text.
- You then update your current record with this translated text, perhaps in a field called Translated Text.
To show the translated text, use (Magic Text). This lets you display the translated field based on the user’s preferred language, which you can store as a true/false or text property.
Another option is to translate all your content, and store it in your database. Then, you can just filter it based on the user’s language. This option might be quicker for content that doesn’t change much.
For completely dynamic and automated translation, you’ll need an external service. Make/Zapier is usually the easiest way to connect this with Adalo.
I can share an example using Make and Google Translate with a custom action if you tag me.
Ali Bazzi
Adalo Community Leader & Expert
My templates, audits, and AI services: webnux.org
You can book a consultation with me here: consultation.webnux.org
So, let’s say that my app is developed in English for the United States market. Then, at a later date, want to release the same app in Canada.
If I have prepared the app to visually look like it was developed natively in French, will their inputs that are written to the database be in French as directed by their device keyboard?
Meaning, all I would realistically need to do is make the user interface in French for Canadian users…..or any other language users.
Hey @ThunderBlade,
Yes, If your app is developed in English for the US market, and you’d like to launch it in Canada later, users’ input will be in the language their device’s keyboard is set to. So, if a user from Canada has their device language as French, their typed content will be saved in French in the database.
So no need to translate what they type inside the app as a content.
If your main goal is to have the app’s interface details (as buttons, labels, inputs, and app bars) in French for Canadian users, you can use the following steps to implement it:
-
Add a property named “Language” to the (Users) collection in the database, or you can add a true/false property to choose the language.
-
You can set the app’s interface to show the right language. For example, if a user speaks French, the app will display French text. Otherwise, show the English text.
For content that doesn’t change often, keep your translations in a separate Translations collection and organize them by the user’s selected language. This helps the app feel local in French.If you prefer not translate the interface manually, you could use APIs like (Google Translate or DeepL) with Make or Zapier which could be more complex. Manual translation, especially for keyboard input, is usually simpler and faster.
@ThunderBlade based on my experience, storing text translations in the database is not a good practice. Technically you can do that (Adalo allows creating a lot of technical workarounds to solve simple things).
However, if you store the text for labels in the database, every time a screen is rendered there is an extra query to the backend to get the values for all translated values for all translated text labels for this page. Obviously, this query needs some time to be done (network delay + backend DB query delay). This will result in app’s degraded performance, especially when the connection quality is not so good.
In my opinion, the only most way of having a multilanguage app in Adalo is having different screen sets for each language (which brings additional pain of managing duplicate screens). But at least in this case you can see how the screen looks directly in the editor and you can prevent issues like a text label turning multiline (resulting in broken layout) due to language differences.
Using automated translating is also should be done carefully. E.g. Google Translate’s EN->FR service will usually translate “Home” to “Maison”, which sounds odd for French speakers (usually Home screen has title like “Accueil”).
Best,
Victor.
Thank you @Victor and @Ali-Bazzi, I was leaning toward the pages avenue.