In our TRIRIGA Anywhere app, a user cannot login if the region is set to Panama on his/her iPhone. We can add a new Language to the system “Languages” list (e.g. “Panamanian”). A row can be inserted into the LANGUAGE_DETAIL table with LANGUAGE_ID referencing the LIST_VALUE_ID that was produced by adding the list value. This results in “Panamanian” being displayed in the Language Manager.
However, even though the LANGUAGE_DETAIL record indicates a value of “en_PA”, it is presented as “en_US” in the manager. It is possible to change the locale code and click “Save”, but appears to only accept the previously defined values. For example, changing any of the values to “en_GB” and saving works correctly. If an unrecognized code is entered (such as “en_PA”), it reverts to “en_US” upon saving. I’m not certain if there is a table somewhere that stores the “supported” region codes, or if it just uses the supported list of Java locales.