Multilingual Starter App w/ support for 106 Languages

Hi Everyone! We are releasing a multilingual starter app to help you get started when creating an app that supports multiple languages. This app carries over the translation efforts from the multilingual support that was added to the Community support app (Demo Available) earlier this year.

View the Starter App

106 languages are supported by this app! 8 languages have been verified by individuals in the community (Spanish, French, Japanese, Portuguese, Danish, Dutch, Finnish). Google Translate was used to translate the remaining 98 languages. If you would like to help verify these remaining languages please DM me or reply to this thread.

How it works

A single table called “Translations” is used where each translatable entity is setup as a column in the spreadsheet. For example, to translate “Sync” or “Save”, each of these terms have their own column in the translation table. Each language is a single record in this table. To remove a language from your app, simply delete the record that corresponds to that language.

The app is setup to use a single “usersettings” column called “language” that references the Translate table and gives the ability for users to select their language when the app starts.

A lookup formula is used to change the text of any fields after the user selects a language; this formula can be placed in any “display name” property of views, columns, actions, etc. Simply change the TARGET in the lookup formula below to retrieve a different field.

lookup(usersettings(Language),Translations, Language, TARGET )

Example: Creating a new action called "Mark Complete"

Adding additional translatable views, columns and actions to your app is simple exercise. Following these steps to add a new translatable entity.

  1. First create a new column in the translation spreadsheet called Mark Complete
  2. Add the translations for each language record you would like to have in your app
  3. Regenerate the structure of the Translate table
  4. Set the display name for the action to the formula lookup(usersettings(Language),Translations, Language, Mark Complete )

That’s all there is to it! Please let me know if you have any questions or suggestions. This app is intended to be an empty app to help the community get started when building an app that supports multiple languages. If you want to see a demo of an app that uses this idea extensively, take a look at the Community Support app.

A special thanks goes out to the following individuals for helping translate:

Spanish/Español: @Gaston_Barcia
French/français: @Romain
Japanese/日本語: @tsuji_koichi
Portuguese/Português: @Leonardo_Foletto
Danish/dansk: @Bjarne_Allerup
Dutch/Nederlands, Vlaams: @Ewout_van_Zonneveld
Finnish/suomi, suomen kieli: @Aleksi @Tocionist
Turkish: @LeventK
Albanian: Fabian
German: Fabian
Tamil: Sid
Indonesian: Heru
Sundanese: Heru
Javanese: Heru

13 Likes

Really cool; awesome to see the community work together in developing this.

1 Like

Wow. That is fantastic. I hope to make use of this.

@Rich
Turkish translation has been completed. FYI.

3 Likes

@Rich
Albanian & German translation is done.

4 Likes

The following languages were added. Thanks to the following individuals for helping! We now have 15 fully verified translations!

Turkish: LeventK
Albanian: Fabian
German: Fabian
Tamil: Sid
Indonesian: Heru
Sundanese: Heru
Javanese: Heru

6 Likes

Hi Rick,
Really cool!

Just a question…

How we can manage the language of the “Enum” fields?
They are all hardcoded.

Hi @Stephane_Ouellet. Are you talking about the Usersettings (Language) column?

The column pulls a list from the Translations table so you can either delete the languages that are not needed from the spreadsheet or change the “valid if” attribute to something like this:

"list(“Language A”, “Language B”, “Language C”)

No, is in the data, for Enum field type.
As you can see, all fields definition is english except the buttons selection.

My first language is french as you see!

Thank you very much

Oh I see. In this example if enums show as Eenglish do you want the data to get stored as French? It gets a little complicated because you probably don’t want to mix languages in the same table…