I only work with Android, so I will address how you can test in other languages
apktool will allow you to unpack the apk and get access to the strings.xml file for each supported language:
apktool d -f <my_package.apk>
This will create a directory called "my_package", and you can find the English Language file under res/values/strings.xml
You will then need to parse this file (I use a modified version of nokogiri to do this) to create a hash/dictionary of symbols to strings. You will find the other language files under this directory and can parse the strings.xml file in there the same way. The symbols representing the strings will be the same. Beware of the following two issues:
- Some strings have multiple forms, none, singular, plural
- Some characters are escaped with a backslash and you will need to massage them to compare to the text visible on the screen
When changing languages on android, you can bring up the language settings by starting settings with the right parameters (see the android manifest file for Settings), but that requires an adb command unless you can coax Appium to start the app for you. I believe you can do that now, but you couldn't when we started developing.
Your problem when using that app is there are no resource ids, so to press the "select language" button, you need to know all forms of that string in the languages you will be testing. A little experimentation will reveal the answers, but, alas, you must hard code these. Selecting the languages will be easier since the language is represented in it's native form. Again, you will likely have to hard code these.
Now, you can compare the text fields on each screen of your app with the expected values obtained from the language files.