Translation Table
First, I’ll create a simple spreadsheet with my translations. Format as table, and give the table a meaningful name:
The trick here is to orient the table with languages as rows and content as columns. This will simplify the implementation as you will see further down. You could connect to this spreadsheet using the OneDrive connector, but I will just import it as a static spreadsheet to reduce overhead.
Language Selection
Next, I’ll add a way to select the language.
Then a simple drop downlist with the Items property set to your imported table.
I’ll set the OnChange property to:
Set(Text, Self.Selected)
Now I can set the text property of each of my controls to a column in my table:
Lastly, lets make sure the application initializes with the first language on the list. I’ll set the App.OnStart to:
Set(Text, LanguageDropDown.Selected)
…. and voila!
If you need to add more translations, just edit the spreadsheet (save a copy somewhere safe), delete the translation table from your app and re-import it. If you are re-using these translations across multiple apps, host the spreadsheet on SharePoint and connect to it with the Excel connector instead.
Conclusion
In the absence of direct support for localization, there are many work arounds. Hopefully you will find this to be a simple and practical approach.