Bi-directional display
First Claim
1. A computer-implemented method for displaying bi-directional text on a computer display comprising:
- detecting by a computer that a string of characters for display to a human interface device contains one or more Arabic Letters followed by one or more European Numbers;
responsive to the detecting, treating by the computer the one or more European Numbers as one or more Arabic Numbers by;
assigning bidirectional attributes to a logical character stream;
assigning initial level numbers while honoring any directional overrides by explicit processing, wherein the directional overrides include Left-to-right display order and Right-to-left display order;
changing attribute types based upon surrounding attribute types through weak processing and neutral processing, wherein, during the weak processing, a directional override is changed to Right-to-left display order for a last Arabic Letter of the one or more Arabic Letters which immediate precedes a first character of the one or more European Numbers while retaining an attribute type of Arabic Letter for the last Arabic Letter, thereby causing the first European Number to change to an attribute type of Arabic Number;
associating final level numbers to the logical character stream through implicit processing; and
reordering the string of characters within the logical character stream into display order according to the final level numbers by separately handling facets of layout relating to character reordering and facets related to character stream rendering; and
displaying by a computer the reordered string of characters to a human interface device.
0 Assignments
0 Petitions
Accused Products
Abstract
A bidirectional text display method embodied in a functional programming language which first assigns bidirectional attributes to a logical character stream. Next, through explicit processing, level numbers are assigned, honoring any directional overrides present in the logical character stream. Subsequent weak and neutral type processing potentially causes attribute types to change based upon surrounding attribute types. Then, implicit processing assigns final level numbers to the stream which control reordering. Finally, reordering processing produces a sequence of characters in display order. By separating the facets of layout dealing with reordering from those that are concerned with rendering, such as line breaking, glyph selection, and shaping, the Haskell-based method is more discernible and comprehendable, thereby allowing it to be more useful as a model upon which others may base bidirectional implementations.
36 Citations
30 Claims
-
1. A computer-implemented method for displaying bi-directional text on a computer display comprising:
-
detecting by a computer that a string of characters for display to a human interface device contains one or more Arabic Letters followed by one or more European Numbers; responsive to the detecting, treating by the computer the one or more European Numbers as one or more Arabic Numbers by; assigning bidirectional attributes to a logical character stream; assigning initial level numbers while honoring any directional overrides by explicit processing, wherein the directional overrides include Left-to-right display order and Right-to-left display order; changing attribute types based upon surrounding attribute types through weak processing and neutral processing, wherein, during the weak processing, a directional override is changed to Right-to-left display order for a last Arabic Letter of the one or more Arabic Letters which immediate precedes a first character of the one or more European Numbers while retaining an attribute type of Arabic Letter for the last Arabic Letter, thereby causing the first European Number to change to an attribute type of Arabic Number; associating final level numbers to the logical character stream through implicit processing; and reordering the string of characters within the logical character stream into display order according to the final level numbers by separately handling facets of layout relating to character reordering and facets related to character stream rendering; and displaying by a computer the reordered string of characters to a human interface device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product for displaying bi-directional text on a computer display comprising:
-
a computer-readable storage memory device suitable for storage of program instructions; program instruction embodied by the computer-readable storage memory device which cause a computer processor, when executed, to; detect a string of characters for display to a human interface device contains one or more Arabic Letters followed by one or more European Numbers; assign bidirectional attributes to a logical character stream; assign initial level numbers while honoring any directional overrides by explicit processing, wherein the directional overrides include Left-to-right display order and Right-to-left display order; change attribute types based upon surrounding attribute types through weak processing and neutral processing, wherein, during the weak processing, a directional override is changed to Right-to-left display order for a last Arabic Letter of the one or more Arabic Letters which immediate precedes a first character of the one or more European Numbers while retaining an attribute type of Arabic Letter for the last Arabic Letter, thereby causing the first European Number to change to an attribute type of Arabic Number; associate final level numbers to the logical character stream through implicit processing; and reorder the string of characters within the logical character stream into display order according to the final level numbers by separately handling facets of layout relating to character reordering and facets related to character stream rendering; and display the reordered string of characters to a human interface device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A text code conversion system for displaying bi-directional text on a computer display comprising:
-
a computer processor for performing a logical process; a computer-readable storage memory device suitable for storage of program instructions; program instruction embodied by the computer-readable storage memory device which cause a computer processor, when executed, to; detect a string of characters for display to a human interface device contains one or more Arabic Letters followed by one or more European Numbers; assign bidirectional attributes to a logical character stream; assign initial level numbers while honoring any directional overrides by explicit processing, wherein the directional overrides include Left-to-right display order and Right-to-left display order; change attribute types based upon surrounding attribute types through weak processing and neutral processing, wherein, during the weak processing, a directional override is changed to Right-to-left display order for a last Arabic Letter of the one or more Arabic Letters which immediate precedes a first character of the one or more European Numbers while retaining an attribute type of Arabic Letter for the last Arabic Letter, thereby causing the first European Number to change to an attribute type of Arabic Number; associate final level numbers to the logical character stream through implicit processing; and reorder the string of characters within the logical character stream into display order according to the final level numbers by separately handling facets of layout relating to character reordering and facets related to character stream rendering; and display the reordered string of characters to a human interface device. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification