Bidi support requires special handling. To enable Bidi support for OpenLegacy, the following needs to be configured:

Maven
OpenLegacy is using ICU, a full Bidi support component which can handle Bidi content conversion. OpenLegacy doesn’t automatically import its Maven artifact. You should add the following dependency to you project pom.xml (under “dependencies” node):

Code Snippet:

Configure code page
Configure the correct page (i.e. 424 for Hebrew) during project creation, or under host.properties.

HTML emulation
To support Bidi language, OpenLegacy breaks mixed content fields into a few tags. To enable this functionality, you should configure the following in applicationContext.xml:

Code Snippet:

Within trail files, fields are created with additional attribute: visualValue, which is used for various display/analyze purposes.

Using Bidi analyzer rules
OpenLegacy analyzer comes with a subset of right to left rules, as Bidi applications are of course displayed from right to left.

To enable OpenLegacy to use the right to left rules, configure OpenLegacy project preferences file (/.preferences) to DESIGNTIME_CONTEXT=rtl. This will convert OpenLegacy to use the subset of right to left rules instead the standard rules (e.g. form fields, menus).

This setting is also used for customizing the rules to determine what is the design time context file to copy (contains all rules and their parameters settings).

Converting Bidi content to class/field names
OpenLegacy provide a text translator component which can have various implementations.

To enable text translator, configure the following bean (id=”textTranslator”).

You should populate the chars as expected. Alternatively, it’s possible to implement org.openlegacy.designtime.analyzer.TextTranslator and implement using different approach (dictionary, online).

Code Snippet:

Known issues
Eclipse console doesn’t display Bidi content properly, as it displays logical content. Use session viewer to determine screen positions.