Date: Fri, 08 Sep 95 12:38:36 -0700
Up to now, we have been pre-processing plain text on a case-by-case
basis to segment into "blocks" for the purpose of determining
directionality for rendering.
Before attempting something more sophisticated, we wanted to check for
approaches to this problem.
We would greatly appreciate any info or pointers to literature on this
(as long as you aren't giving away any trade secrets :-).
Please refer to the specification :
Portable Layout Services: Context-dependent and Directional Text
ISBN 1 85912 075 X"
The summary for the document says it all:
"This document describes a set of portable functions for handling context-dependent
and bidirectional text transformations as a logical extension of the existing
POSIX locale model."
On AIX we have already implemented a set of transformations that we used for
our Arabic/Hebrew support in our Motif and CDE. (The current AIX transformation are
not exactly the same API as the above specification but the are very similiar given
that the AIX API's were the basis for the specification.) And I believe
that Sun as implemented a prototype with Thai. So it is more real then just
The premise of the transformation functions are similiar to idea of segmenting
into blocks... with the exception that it rearranges the entire input sting
into it's visual order as well. It also provides mapping indexes to go between
the logical order and the visual order. In our AIX Motif implemetation we use
these indexes to track cursor movement within the text data. The spec also
allows control of symmetric swapping, numeral shaping, and text shaping.
The spec does not details how the transformation/re-ordering are to be done...
with the exception that it does provide an option that the "the basic implicit
reordering algorithm is the *Basic Display Algorithm* published in the Unicode
standard." The other option is "implementation-defined implicit directional
I don't know if this is what you are looking for...
This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:30 EDT