Coding globalized applications that use bidirectional data
When you are developing NLV-enabled applications, you should consider some specific restrictions on bidirectional languages.
- Bidirectional language display layout
The presentation of data should have a right-to-left orientation. Literals should appear on the right side of the fields that they describe. The following examples illustrate a U.S. English display with a left-to-right orientation and the same display in a right-to-left orientation.
Left-to-right layout of a U.S. English displayRight-to-left layout of a U.S. English display - Long fields in bidirectional languages
Avoid defining input fields that span more than one line. When the field is displayed or printed as one entity, the result for bidirectional languages is not what the user intended.
- Variable positioning in bidirectional languages
Your application must allow for variables to be in any order. For example, consider the following message in English:
File &1 in library &2 not found
When translated to another language, the message might look like this:
dnuof ton &2 yrarbil ni &1 eliF
In this case, variable 2 is positioned before variable 1.
- CHECK(RL) and CHECK(RB) keywords with bidirectional languages
These options are valid only for display stations capable of right-to-left movement, and have the following restrictions:
- Option indicators are not valid with cursor control codes.
- CHECK(RZ) and CHECK(RB) are not valid with these keywords.
- A field that spans more than one line gives a warning message.
- The check digit for modulus checking is the farthest-right byte in the field.
- CHECK(RL) applies to character fields only.
- Online information for bidirectional languages
The special bidirectional tags have a restriction. When combining online help information from several panel groups that do not have the same value for the BIDI tag, the user must use the hot key sequence to read the opposite orientation of the online help information.
- CCSIDs for bidirectional languages
As bidirectional languages have special character sets that are unique, no exchange of data into other languages is feasible. You might need to use data mapping between EBCDIC and ASCII data streams, however. For example, you need data mapping between EBCDIC and ASCII data streams if you are using Distributed Relational Database Architecture™ (DRDA).
When exchanging data in a language that uses Latin characters and when special characters that are not part of the invariant character set are needed, use CCSID 00424 for Hebrew and CCSID 00420 for Arabic for data mapping to take place.