Discussion
Pegasystems Inc.
JP
Last activity: 17 Mar 2021 21:25 EDT
English lower case character becomes upper case with Japanese language pack
Hi,
Since some customers were confused with this reported issue, I am sharing its root cause and how to fix the issue.
- Issue
1. Create a property that contains English lower case characters. The source can be anything (local list in the property, or database table).
2. Place the property on screen and test it after Japanese language pack is installed. Your operator locale must be "ja_JP". You should be able to observe that any lower case characters become upper case by itself, except for B, C, and D.
- Root cause
This is because in Japanese language pack, there are field values in "Pega-EndUserUI_ja" ruleset for all English characters excluding B, C, and D. You can list them up by following query in the DBMS. For some reason, localized values for B, C, and D are blank.
SQL> select pylabel, pylocalizedvalue, pyfieldname, pyruleset from rules.pr4_fieldvalue where pylabel in ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'J', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z') and pyfieldname = 'pyCaption' order by pylabel
After talking to engineering team, it was determined that these field values will be fixed in the future Japanese language pack (probably in 8.6).
- How to fix it
In the meantime, you can still perform a local change if you are using an old version prior to 8.6. Override these field value in your ruleset and disable it. Unlike regular rule, localized ruleset is a bit tricky. Follow the below steps.
1. First, create your own localized ruleset.
2. Add it to the Production Ruleset in your access group.
3. You may want to locate the original field value rule in Pega-EndUserUI_ja:08-01-01 to do "Save As", but it is actually pretty hard to find it than you think. In that case, you can simply create a new field value from scratch and it is still supposed to be override, as long as the rule identifier is the same.
Identifier | A |
Field Name | pyCaption |
Apply to | @baseclass |
Ruleset | MyApp_ja |
4. Make the translated text to be blank. Or you can also make the availability "Blocked" from "Available".
5. Do the same steps for all other English characters except for B, C, and D.
6. Remove Production Ruleset from your access group. If you forget this, the changes will not be reflected and you will be confused. Testing operator's locale must be "ja_JP".
7. You may still be tricked by the same result - you should also delete cache files under temp directory in the app server and restart system. Otherwise it may not take effect.
8. If everything is configured correctly, the change will be reflected as below.
Thanks,