Adding a language in your iPhone settings might not be enough. You need to make sure the selected language is at the top in the list of preferred languages.
Stéphane is correct, you need to close the app then re-open it to make sure the language is correctly switched.
To show text of labels in the correct language this is what I highly recommend:
1. Xojo Navigator (on the left) > Build Settings > Shared > Inspector (on the right) > Language > Set it to English
2. All Text displayed to the user should be stored in Text constants, activate the Dynamic switch. Then write each constant's translation for each language, and the Default value in English.
3. Selection of language will then be automatic based on the users iPhone / iPad. The default language will be English for all locales that aren't translated (Chinese people will see the app in English for example).
If you need your app users to be able to change the language of the app it is possible in two ways.
1. Store the language code the user chooses in a persistant storage (database, nsuserdefaults, text file...)
2. Refer to each Text constant as constantName(langcode) forcing the selected langcode to be displayed.
This solution enables the user to switch language without closing the app. You will need to build the appropriate UI for the user to select a language.
Absolutely each text constant must be used with the language code as parameter. This is prone to error.
1. Store the language code the user chooses with the following code (needs iOSKit by Jason King)
Dim Str As New Foundation.NSString(langcode)
Dim obj() As Foundation.NSObject
Dim arr As New Foundation.NSArray(obj)
2. Refer to each Text constant as constantName. No need to refer to the selected language code.
This solution is easier for the developer because you refer to each constant as constantName. You will also need to build the appropriate UI for the user to change language.
You need to inform the user to close the app and re-open it to apply change of language.