I am developing an implementation for a Latin American client. All of our end users, as well as the customers who may receive correspondence from the system will be Spanish speakers belonging to an es_?? locale. Localization works correctly when the users are in the system (the language pack is correctly built into the application stack, and most UI controls seem to work correctly). My problem is that when correspondence is sent to the customer, there is no way to enforce the Spanish localization...everything runs as if it is being triggered from an en_US user. Examples are below:
1. Today's date would format in the email as "September 12th, 2017" however it should actually be "Septiembre 12th, 2017"
2. Currency displays display as "1,000.50" but should instead be "1.000,50"
3. Any references to field values or localized text run under the normal ruleset's definition, rather than the language pack's definition
For now, I've handled the email scenarios by wrapping the activity that generates the letter with a call to the setLocaleName() API function to update to the correct locale. I then later revert back to the original locale after the letter has been sent. I would like to holistically solve for this problem by setting the system wide locale to match that of the client. We are building the application on Pega Cloud.