22.4 Bidirectional Support

Bidirectional support enables you to design applications in those languages whose natural writing direction is right to left, such as Middle Eastern and North African languages. Bidirectional support enables you to control:

  • Layout direction, which includes displaying items with labels at the right of the item and correct placement of check boxes and radio buttons.

  • Reading order, which includes text direction (for example, right to left or left to right) .

  • Alignment, which includes switching point-of-origin from upper left to upper right.

When you are designing bidirectional applications, you might want to use the globalization support environment variables DEVELOPER_NLS_LANG and USER_NLS_LANG rather than inheriting the NLS_LANG settings. For example, if you want to use an American interface while developing an Arabic application in a Windows environment, then set these environment variables as follows:

DEVELOPER_NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256
USER_NLS_LANG=ARABIC_UNITED ARAB EMIRATES.AR8MSWIN1256

Note that, in this example, the DEVELOPER_NLS_LANG environment variable uses an Arabic character set. For more information, refer to Section 22.2, "Globalization Support Environment Variables".

On UNIX, you may continue to see misalignment of right-aligned text in PDF output for languages that read right to left. To work around this issue, use fixed width fonts instead of variable width fonts. For example, Miriam Fixed True Type font (Hebrew) is a fixed width font available on Windows 2000, and can be used for font subsetting on UNIX platforms to correct any font alignment issues with Hebrew fonts. For more information about resolving font issues across different platforms, see Chapter 11, "Font Model and Cross-Platform Deployment".

22.4.1 Enhanced BIDI Reshaping

Oracle Reports 11g Release 2 (11.1.2) has introduced a new Enhanced BIDI reshaping mechanism using the XDO APIs. This feature uses a new environment variable, REPORTS_ENHANCED_BIDIHANDLING, which specifies whether or not to use the new BIDI reshaping mechanism. You must set the value of this environment variable to YES if you want to use the new enhanced BIDI algorithm. If you do not set the environment variable, or if you set the value of the environment variable to NO, it uses the old mechanism.

If you set the value of REPORTS_ENHANCED_BIDIHANDLING to YES:

  • All the values that were supported in the old BIDI reshaping mechanism are supported for REPORTS_ARABIC_NUMERAL environment variable.

  • The following values are supported for REPORTS_BIDI_ALGORITHM environment variable:

    • UNICODE

    • ORACLE

    • UNICODE_VARIANT

  • The default value is UNICODE.

For more information on how to use this environment variable, see Section B.1.46, "REPORTS_ENHANCED_BIDIHANDLING".