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
Russian: Vadim
Ukrainian: Vadim

19 26 3,739
26 REPLIES 26

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

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

@Rich
Turkish translation has been completed. FYI.

@Rich
Albanian & German translation is done.

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

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โ€ฆ

Hi Rich,

Store in the language as shown in the Enum field. I use the Enum field only for simple lists (Yes, No, N/A).
My applications will be deployed in many countries in the world and I wish to have one application for all languages.
Actually I have to manage english, french, Spanish, Finland, German.
Each country has its own database.

Thanks for your help Rich

Sorry for the delay in getting back to you.

To do this I would create a new table โ€œenumValuesโ€ for these enum values that has two columns.

3X_9_6_96bfab5a1c82644c126e28f0408f61bb75de5c70.png

Then instead of populating static enum values for the field, use a valid if formula

select(enumValues[Enum Value], [Language]=usersettings(Language))

This should then populate an enum list based on what the userโ€™s language is.

Russian and Ukrainian have been verified! Thanks @Vadim!

Hi! Iโ€™m late to this discussion but Iโ€™m interested in Japanese so I took a look. Though Japanese is my second language, I know it well enough to be able to say that most of the translations look good. Some, however, need some fixing. Here are my suggestions. Perhaps @tsuji_koichi can confirm if my suggestions are appropriate:

Home
ๅฎถ --> ใƒ›ใƒผใƒ 

Are you sure?
ๅฎœใ—ใ„ใงใ™ใ‹๏ผŸ --> ใ‚ˆใ‚ใ—ใ„ใงใ™ใ‹๏ผŸ

Are you sure you want to logout?
ใ‚ใชใŸใŒใƒญใ‚ฐใ‚ขใ‚ฆใƒˆใ—ใฆใ‚‚ใ‚ˆใ‚ใ—ใ„ใงใ™ใ‹๏ผŸโ€“> ใƒญใ‚ฐใ‚ขใ‚ฆใƒˆใ—ใฆใ‚‚ใ‚ˆใ‚ใ—ใ„ใงใ™ใ‹๏ผŸ-

Select photo source
ๅ†™็œŸใ‚’้ธๆŠžใ‚ฝใƒผใ‚น --> ๅ†™็œŸใฎใ‚ฝใƒผใ‚นใ‚’้ธๆŠž or perhaps just ๅ†™็œŸใ‚’้ธๆŠž (Select photo)

I agree with your suggestion!

Hi @Rich! Just took a look at the revised version.

Since I am dealing with Japanese orthography, I should have been more explicit. The " --> " in each of the Japanese texts above was intended as an arrow. So, please replace what was before the arrow only with what came after the arrow. Thanks!

Hi again!

The semester has just ended in Japan and I now have a bit more time to work on my app.

Iโ€™ve been enjoying customizing my menus but have noticed a few minor issues with linguistic customization:

  1. We donโ€™t seem to be able to translate some system messages.

    This is not a big deal but if part of the idea is to avoid displaying messages that some users may find unsettling because they are unable to interpret them with confidence, more complete ability to convert system statements to other languages strikes me as a good idea. By the way, the arrow points to a period that probably isnโ€™t necessary even in English and seems rather out of place after this Japanese text.
  2. The capitalization in the original English strikes me as inexplicably inconsistent so I have been replacing uppercase letters with lowercase ones as needed to improve consistency. For example โ€œAdd or searchโ€ only capitalizes โ€œaddโ€ but โ€œTake a Photoโ€ capitalizes both โ€œtakeโ€ and โ€œphoto.โ€

fixed

Thanks a lot!! Just so thereโ€™s no mistake, the capitalization I was referring to is in the default AppSheet messaging. I think I neglected to make that clear. See following example:

3X_b_5_b532f21c058ff902c8d04683c5fc32ad6619a9c4.png

Drives me nuts, too, @Kirk_Masden.

@Kirk_Masden @tsuji_koichi cool I updated those entries.

@Kirk_Masden @tsuji_koichi
็งใฏ่พปๆตฉไธ€ใซๅผทใๅŒๆ„ใ—ใพใ™ใ€‚ ใ‚ใชใŸใฎ็ฟป่จณใฏ้žๅธธใซ้ฉๅˆ‡ใงใ™

Where can I translate N/Y no yes buttons?

Iโ€™m afraid you cannot translate them

However, @Peter_Jambrik, I think you could use an enum column and then designate any letters you like (or are appropriate for your language) to mean N and Y. This might mean changing the column type, etc. in your form.

@Kirk_Masden @Peter_Jambrik. We are aware of these two requests and they will be addressed in an upcoming update.

In the Chart View column name appears to be English. And when you expand the chart title is also in English. If you reload web page then Column you have selected in Chart will change to selected language. Any solutions?