Skip to main content

Overview of bidirectional script support in IBM WebSphere Integration Developer

Israel Gidali (gidali@il.ibm.com), Manager, IBM Globalization Center of Competency - Complex Text Languages, IBM 
Israel Gidali
Israel Gidali is the manager of the IBM Globalization Center of Competency - Complex Text Languages and of the Hebrew Translation Services Center in IBM Israel, and he is a member of GATT (IBM Globalization Architecture Technology Team). Israel has been involved with IBM globalization and in particular with Bidi issues for the last 15 years, providing extensive Bidi education to IBM development teams as well as being the focal person to address all Bidi-related issues in IBM products.
Matitiahu (Mati) Allouche (matial@il.ibm.com), Bidi Architect, IBM Globalization Center of Competency - Complex Text Languages, IBM 
Mati Allouche
Mati Allouche is the Bidi architect of IBM GCoC. Mati is the most authoritative Bidi expert in IBM, specializing in Bidi for several decades, and he is actively participating in and contributing to the development and update of Bidi -related standards in professional bodies such as Unicode, IETF, and the Israel Institute of Standards.
Tomer Mahlin (tomerm@il.ibm.com), Technical team lead, IBM 
Tomer Mahlin
Tomer Mahlin is a technical team lead who for the past eight years has been deeply involved in projects concerned with bidirectional enablement in IBM and non-IBM products. Tomer has been working with WebSphere Business Integration products for the last three years and was one of the chief architects who designed bidirectional enablement in WebSphere Business Integration Adapters and in IBM WebSphere Adapters.

Summary:  Arabic, Hebrew, Urdu, and Farsi (Persian) are written from right to left, while numbers and segments of Latin (or Cyrillic or Greek) text are embedded in this text from left to right. The dual directionality aspects of such bidirectional text are posing challenges to the way this text is processed and presented in WebSphere Integration Developer. This article provides an overview of the level of support for languages with bidirectional scripts in WebSphere Integration Developer.

Date:  Jan 2008 (Published 28 Sep 2005)
Level:  Intermediate
Activity:  293 views

Introduction

IBM® WebSphere® Integration Developer has been designed as a complete integration development environment for integration solutions developers building integrated applications. WebSphere Integration Developer was designed to work in the multilingual environment. In other words, it is capable of simultaneous display and manipulation of data represented in different languages. Languages having bidirectional scripts (for example Arabic or Hebrew) are also supported. Those languages are written from right to left, while numbers and embedded segments of Latin (or Cyrillic or Greek, and so on) text are embedded in this text from left to right. The dual directionality aspects of such bidirectional text are posing challenges on the way this text is processed and presented in the WebSphere Integration Developer.

This document describes the specifics of bidirectional (Bidi) support in WebSphere Integration Developer. For a general overview of terminology related to Bidi support, read the technical article called "Bidirectional script support: A primer" (http://www.ibm.com/developerworks/websphere/library/techarticles/bidi/bidigen.html). For documentation on Bidi support in WebSphere Process Server, read the technical article called "Overview of bidirectional script support in IBM WebSphere Process Server" (http://www.ibm.com/developerworks/websphere/library/techarticles/bidi/bidiwps.html).


Environment configuration

Here are the mandatory configuration steps that you need to follow to correctly process and display Bidi data in the multilingual environment:

Adding the Arabic/Hebrew locale and keyboard layout

Adding an Arabic/Hebrew keyboard layout on a Windows® OS system

In order to add Arabic/Hebrew locale on Windows XP or Windows 2000 platform, follow these steps:

  1. Select Start > Settings > Control Panel.
  2. Double-click the Regional Options icon.
  3. (Windows XP) Click the Languages tab and click Details.



    Step 3 illustration, Windows XP

    (Windows 2000) Click the Input Locales tab and add the new input language.



    Step 3 illustration, Windows 2000

  4. (Windows XP) Click the Settings tab and click Add.



    Step 4 illustration, Windows XP

    (Windows 2000) Click the General tab. From the Language settings for the system list, select the check box for Arabic/Hebrew.



    Step 4 illustration, Windows 2000

  5. (Windows XP) Select Arabic/Hebrew in the Input language and in the Keyboard layout lists.

    Step 5 illustration

  6. Click OK.

Note that at any step you might be asked to restart the operating system. If you are, restart, and then resume your steps from the same point at which you stopped.

Adding an Arabic/Hebrew keyboard layout on a Red Hat Linux® OS system

In order to add the Arabic/Hebrew locale on a Red Hat Linux Enterprise Server platform, follow these steps in the KDE graphical desktop environment:

  1. Click Start > Control Center.
  2. Expand the Regional & Accessibility branch.
  3. Click the Keyboard Layout branch.

    Step 3 illustration, Red Hat Linux

  4. Select the Arabic/Israeli keyboards.
  5. Click Apply.

Adding an Arabic/Hebrew keyboard layout on a SUSE Linux® OS system

In order to add the Arabic/Hebrew locale on a SUSE Linux Enterprise Server platform, follow these steps in the KDE graphical desktop environment:

  1. Click Start > Control Center.
  2. Click Regional & Accessibility.
  3. Click Keyboard Layout.

    Step 3 illustration, SUSE Linux

  4. Select the Arabic/Israeli keyboards and click Add.
  5. Click Apply.

Generating Java™ code including bidirectional text

In various WebSphere Integration Developer designers, Java code generation occurs as a result of the module build process. Bidi data used for artifact definition or configuration might be included in this process. To ensure that this data is correctly handled during the build process, it is necessary to check these areas:

  • Use correct encoding for Bidi data in the multilingual environment.
  • Ensure the WebSphere Integration Developer is configured properly so that the build process uses the appropriate encoding.

To achieve the encoding step, you must use UTF-8 encoding. To achieve the configuration step, you must set the encoding used by WebSphere Integration Developer to UTF-8. The latter can be done either on the environment level or per specific module.

To set the UTF-8 encoding on the WebSphere Integration Developer environment level, follow these steps:

  1. Start WebSphere Integration Developer.
  2. From the menu, select Windows > Preferences.
  3. In the dialog box, select General > Workspace branch. The following window is displayed:

    Step 3 illustration

  4. From the Text file encoding list, select UTF-8 and click OK.

To set UTF-8 encoding on the module level, follow these steps:

  1. Right-click the module and select the Properties menu.
  2. Select Info. The following window is displayed:

    Step 2 illustration

  3. From the Default encoding for text files list, select UTF-8.
  4. Click OK.

Displaying bidirectional text in the WebSphere Integration Developer console

WebSphere Integration Developer lets you work with WebSphere Process Server using a unit test environment. WebSphere Integration Developer is capable of displaying information progressively added into WebSphere Process Server log files by the WebSphere Process Server. In order to assure correct display of national language (NL) characters as part of log data in the multilingual environment, it is necessary to do these steps:

  • Synchronize between WebSphere Integration Developer and WebSphere Process Server on the code page used for log data encoding.
  • Make sure both WebSphere Process Server and WebSphere Integration Developer are configured to process/display data encoded with the same code page.

To achieve the first step, UTF-8 encoding must be used. To achieve the second step, the following configuration must be performed:

WebSphere Process Server configuration:

  1. In the Admin Console, go to the setting page of your application server.
  2. From Server Infrastructure, click Java and Process Management > Process Definition.
  3. On the Process Definition Page, click Java Virtual Machine.
  4. On the Java Virtual Machine page, specify -Dfile.encoding=UTF-8 for Generic JVM Arguments and click OK.
  5. Click Save and restart the application server.

Bidirectional support specifics in WebSphere Integration Developer

The current level of Bidi enablement in WebSphere Integration Developer provides the following degree of Bidi support:

Correct typing of bidirectional data
WebSphere Integration Developer allows correct typing of Bidi data. Typing is conditioned on adding Hebrew/Arabic keyboard layouts. Follow the instructions given in the previous section (Environment Configuration) in order to add the Bidi keyboard layout to the Windows or Linux system.

Presenting bidirectional data.

WebSphere Integration Developer is capable of correctly presenting Bidi data using left-to-right (LTR) orientation. However, in most cases in which Bidi data is used as part of mixed Bidi and Latin text, the preferred orientation is right-to-left (RTL). For example, on the figure below you can see that mixed Bidi and Latin text used for documentation of Business Object entity appears in BO designer with LTR orientaion.


Mixed BiDi and Latin text

Please observe that the expected direction of documentation text in this case is RTL. In other words the expected display of documentation text is as shown on the figure below.


Expected display of documenation text

Moreover, if the sentence includes several expressions with a complex internal structure (we willl talk about this type of expressions in slightly more details later on in this article), it might be necessary to set the orientation explicitly for each portion of the sentence. While overall direction of Hebrew sentence will be RTL, some portion of it (i.e. mathematical formula) might need to have a different direction. For example, on the figure below you can see a presentation of a rule formulated as a sentence in natural language.


Rule formulated as a sentence in natural language

Please observe that the expected orientation of entire sentence is RTL. The expected orinetation of mathematical formula embedded in this sentence is LTR. The expected orientation of Latin constants inside mathematical formula is LTR, while orientation of Bidi constants inside this formula is RTL. In other words the expected display of rule's presentaion is as shown on the figure below.


Rule's expected presentation

The fact that WebSphere Integration Developer is not currently able to distinguish between cases in which Bidi data can be displayed in LTR and those in which it must be displayed in RTL causes Bidi data to be displayed incorrectly. In other words, Bidi data is not always displayed in the natural way in which Bidi user would expect it to be displayed. For more details on the limitations related to display of Bidi data, refer to the section called "Bidirectional support limitations in WebSphere Integration Developer."

Processing support.

This support for bidirectional data is part of the WebSphere Integration Developer globalization support for multilingual data in a multilingual environment. With bidirectional support in mind, this globalization support means the correct storage of Bidi data in the artifacts produced or generated by WebSphere Integration Developer. For example, you might use Bidi data as part of artifact names, folders in which artifacts are stored, artifacts' attributes, configuration options, and so on. This data might be stored as is in the workspace on the file system or it might be used during the workspace build process for Java code generation. In each case, WebSphere Integration Developer provides correct processing of Bidi data, because WebSphere Integration Developer can manipulate data encoded in UTF-8.

Transformation of bidirectional data

Currently, WebSphere Integration Developer is available on Windows and Linux platforms. It is based on Eclipse version 3.2.2 and IBM Rational® Application Developer version 7.0.3. The standard for Bidi layout on both platforms for basic enabling technologies (Eclipse and Rational Application Developer) is logical left-to-right. Because of this unified Bidi layout, data processed and stored in WebSphere Integration Developer is also logical left-to-right. Because WebSphere Integration Developer operates with Bidi data in logical left-to-right Bidi layout on both platforms, it is not required to transform the artifacts data from one Bidi layout into another to preserve consistency.


Bidirectional support limitations in WebSphere Integration Developer

In this section we specify only Bidi-specific limitations. For globalization support limitations, read the WebSphere Integration Developer documentation. WebSphere Integration Developer can correctly display each separate word of Bidi data. In other words, WebSphere Integration Developer displays each separate Bidi word with its characters displayed from right to left (as expected for a Bidi word). However, in certain cases the relative order of Bidi/Latin words comprising the text or sentence is distorted. This could happen in the following cases:

Concatenation of bidirectional or Latin segments using separators

  • File paths - In this case, separate directory names are concatenated using the slash ('/') character.
  • Namespaces - Very similar to the file paths.
  • Complex names of variables or entities - This category includes relationship role names (comprising relationship artifact name and business object artifact names), variables (comprising interface operation name and business object artifact name), and so on.

Logical expressions

  • Java code constructs (for example, calls to functions with Bidi names and arguments).
  • Logical expressions formulated in programming language form (for example, rules or conditions specified using logical expressions).

Text in natural language

  • Rules formulated in natural language - The orientation is always left-to-right orientation. However, if the rule is a Bidi sentence with Latin segments, then the expected orientation should be right-to-left orientation.
  • Tooltips or any other translated portion of the user interface - The orientation should always be right-to-left orientation; however, WebSphere Integration Developer currently provides only left-to-right orientation.

Mixture of all of the previous cases

  • Patterns with internal structure (for example, rules specified in natural language or logical expressions form)
  • Sentences or text in natural language having segments or sequence of words with internal structure (for example, reports, rules with mixed form of specification).

Expressions including bidirectional text and falling into one of the categories above are called expressions with a complex internal structure including bidirectional text or simply complex expressions. Starting from version 3.2 Eclipse provides a very limited support for correct display of those expressions. This support is currently limited to only static cases of certain types of expressions and is provided only on a String level. WebSphere Integration Developer 6.1 makes an extensive usage of this support. However, due to current limitation present in it many contexts in WebSphere Integration Developer are left without resolution. More advanced and enhanced support for complex expressions is expected from Eclipse in order to resolve left out issues. For more details on current support for complex expressions in Eclipse 3.2.2 please read last two articles listed in the Learn section of the Resources below.

Incorrect display order of Bidi or Latin segments in the data is not merely an inconvenience for the end user. In certain cases, an incorrect display might render the whole text incomprehensible and make it impossible for the end user to work with the toolkit. Consequently, you are discouraged from using Bidi data in expressions with a complex internal structure.

In addition, WebSphere Integration Developer lacks support for national calendars, including non-Gregorian lunar Hebrew and Hijri calendars.

Linux-specific limitations

On Linux platforms, the orientation used by various widgets in WebSphere Integration Developer depends on the version of the GTK2 library.

The WebSphere Integration Developer product is built on top of Eclipse, and the Eclipse user interface is comprised of the SWT (The Standard Widget Toolkit) widgets. On Linux platforms, the SWT widgets are based on the GTK2 library. Up to version 2.2, the GTK2 library provided support for left-to-right orientation (exactly what there is on Windows). Starting from version 2.4, the GTK2 library supports the contextual orientation. This means that depending on the text, the orientation might be either left-to-right or right-to-left. Thus, depending on the GTK2 version, the same Bidi text might be rendered differently on various types of Linux platforms.

Currently, Linux distributions could come with different versions of the GTK2 library. Consequently, the same Bidi text could be displayed differently, according to the distribution. In addition, even if we consider only one distribution, if you upgrade your version of the GTK2 library, you could alter the WebSphere Integration Developer behavior with respect to Bidi text display. In any case, you should be aware of the impact that the GTK2 library has on the bidirectional text orientation in WebSphere Integration Developer.


Summary

  • WebSphere Integration Developer supports display and processing of data including characters from different languages in multilingual environment.
  • WebSphere Integration Developer supports typing, display and processing of bidirectional text including both characters from languages having bi-directional scripts (for example, Arabic, Hebrew) and characters of Latin languages (for example, Cyrillic, Greek and so on).
  • WebSphere Integration Developer has a set of limitation with respect to display of bidirectional text with complex internal structures (for example, logical expressions, file paths and so on).
  • In addition, on Linux platform having GTK2 library of version 2.4 and later, WebSphere Integration Developer supports only contextual orientation of bidirectional text.

Copyright(c) IBM Corporation, 2008

Trademarks

IBM, Aptiva, DB2, and WebSphere are trademarks of International Business Machines Corporation in the United States, other countries, or both.

Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Linux is a trademark of Linus Torvalds in the United States, other countries, or both.

Other company, product or service names may be trademarks or service marks of others.


Resources

Learn

Get products and technologies

About the authors

Israel Gidali

Israel Gidali is the manager of the IBM Globalization Center of Competency - Complex Text Languages and of the Hebrew Translation Services Center in IBM Israel, and he is a member of GATT (IBM Globalization Architecture Technology Team). Israel has been involved with IBM globalization and in particular with Bidi issues for the last 15 years, providing extensive Bidi education to IBM development teams as well as being the focal person to address all Bidi-related issues in IBM products.

Mati Allouche

Mati Allouche is the Bidi architect of IBM GCoC. Mati is the most authoritative Bidi expert in IBM, specializing in Bidi for several decades, and he is actively participating in and contributing to the development and update of Bidi -related standards in professional bodies such as Unicode, IETF, and the Israel Institute of Standards.

Tomer Mahlin

Tomer Mahlin is a technical team lead who for the past eight years has been deeply involved in projects concerned with bidirectional enablement in IBM and non-IBM products. Tomer has been working with WebSphere Business Integration products for the last three years and was one of the chief architects who designed bidirectional enablement in WebSphere Business Integration Adapters and in IBM WebSphere Adapters.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere
ArticleID=94511
ArticleTitle=Overview of bidirectional script support in IBM WebSphere Integration Developer
publish-date=01282008
author1-email=gidali@il.ibm.com
author1-email-cc=
author2-email=matial@il.ibm.com
author2-email-cc=
author3-email=tomerm@il.ibm.com
author3-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers