Free Standards Group

Li18nux Bi-directional support

Sub Working Group

Charter

Charter of Li18nux Bidi Subgroup
 

Subgroup Name:

        Li18nux Bidi

Scope:

        This subgroup focuses on putting  the Bidi specifications 
         and requirements to Linux OS and applications.  Also to implement the requirements 

 

Goal:

        Having proper support in Linux distributions for the Bidirectional languages as Arabic 
        and Hebrew on the client and server level of Linux operating system and applications

Background:

      

Bi-directional languages and their features

Bi-directional languages are languages which are read from right to left, and still have numbers and Latin script segments read from left to right. Therefore they are called Bi-directional (or simply Bidi). Arabic, Hebrew, Farsi, and Urdu are examples of Bi-directional languages.

 

Moreover, Arabic-script languages, such as Arabic and Farsi, are cursive languages, which means that characters within a word are written connected, and accordingly the shape of a character might differ according to its location within the word. Also in Arabic, according to the country's culture, numbers are written using Arabic digits (as in English) or Hindi digits, although typically numbers are stored using Arabic digits. So in Arabic numbers can require extra handling before display.

 

In all cases, characters and numbers should be stored in their keying sequence and their nominal (base) shape.   This is standard form for Unicode-encoded text.

 

In addition to the basic support required for General NLS, such as  Keyboard, Locale, Conversion tables, Fonts, and Catalog or Message files, Bidi support requires some extra handling for:

  • Text reordering, and shaping  in the case of Arabic scripts

  • Geometry mirroring, Right_to_Left geometry

Bidi support is composed of two parts:

 

a. Bidi enablement:

    Bidi-enabled applications are able to accept Bi-directional data entry (e.g. Arabic/English, Arabic/French, or Hebrew/English), to display this data properly with the correct order and shape, and to provide Bidi-sensitive functionality like cursor movement, selection, and copy and paste, according to the Bidi standards.

     

    The interface and messages don't have to be in Arabic or Hebrew. For example, in a Bidi-enabled word processor, the menus might be in English, but still the application deals with Bidi data and function properly.

     

    The target of adding Bidi functionality within Java is to make Bidi-enablement as transparent as possible to the application developer. Ideally an application written in Java should be Bidi-enabled without adding specific code, by using the proper Java components and methods.

b. Localization/Translation:

    Localized applications have all messages, menus, dates, etc. displayed in the user's required language, with the correct date and currency format. In the case of Bidi languages, for an application to be localized, in addition to being Bidi-enabled it should also support Right_to_Left geometry orientation to display translated messages correctly.

     

    Middle East users prefer to have applications in which the user interface language is selectable, i.e. can be switched between English and the Bidi language independently of the language of the data that is being used with the application. For example, a person may wish to create an English document but use an Arabic user interface, or vice versa.

     

 Documents:

       Li18nux 200x specificatin containing Bidi requirement to be done
        

Work Plan (Roadmap):

  • Provide Bidi specifications
  • Provide Bidi support for important applications