On Thu, Feb 21, 2002 at 11:02:33PM +0000, Mikhael Goikhman wrote: > On 21 Feb 2002 12:08:45 -0800, Nadim Shaikli wrote: > > > > With the recent work on multibyte support in Fvwm2 - has any thought been > > given to those languages that are right-to-left oriented (Arabic, Farsi, > > Hebrew, etc...) ? In other words, have any considerations been given to > > the addition of Bidi (Bi-directionality) ? > > > > http://www.unicode.org/unicode/reports/tr9/ > > > > May I suggest a compile-time option of including Fribidi (open source Bidi > > library), > > > > http://fribidi.sourceforge.net > > > > I'd be interested in adding Arabic support to Fvwm but that is very much > > hinged on the inclusion of Bidi (its a first-order requirement). It would > > greatly simply life for me (and others I'm sure) if there was an option > > to include and enable Bidi without having to resort to hacks. > > > > For what its worth - the inclusion of Bidi will certainly increase Fvwm's > > user base, since it would be one of the few window-managers with FULL > > multibyte support; a BIG deal to those that are right-to-left'ies :-) > > > > Any takers ? Olivier ;-) ? > > I don't know whether I will add bidi support, but I may try to start it. > At least I understand what this means. It is not trivial to immediately > understand why this is needed and even less trivial to understand that > it's all heuristics, there may be possible conflicts in any algorithms. > Examples of logical input / visual output. > > % echo "SHALOM, fvwm (SHALOM is hi in IVRIT!)." | fribidi -C CapRTL > .(!IVRIT is hi in MOLAHS) fvwm ,MOLAHS > % echo "hi 1-2 (english) is SHALOM 1-2 (IVRIT)." | fribidi -C CapRTL > hi 1-2 (english) is IVRIT) 2-1 MOLAHS). > # the second example seems like a bug in my fribidi, but maybe not > > Actually, bidi is orthogonal to unicode and to aligment, i.e. it may be > applied to a normal 256-symbol charset, and, I think, we may assume it > only affects an order of symbols inside the string, not its alignment. > > So, what I may do is to add --with-fribidi-{library,includes}, and try to > figure out where this bidi filter should be added. But I am not sure yet > what exact parameters should be used in all cases (MULTIBYTE or not) and > what are the conditions when bidi should be applied at all. >
As you say fribidi works with simple bit charset so I think that if libfribidi is detected we can try to use it (HAVE_FRIBIDI). The main problem to start is to detect the used encoding of the string we display (window/icon title or menu item). I suggest to compute the charset at font loading and to add it to the FlocaleFont structure. Then, depending of this charset we can apply fribidi filter (that is for UTF-8(~ ISO10646-1), ISO8859-6 and ISO8859-8 and others?). I think that first we can forget the alignment problems. Alignment problems may be solved by adding a "width" in the FlocaleWinString structure to get a bounding box. This can be done progressively by using a flag as FWS_HAVE_WIDTH (used similarly than FWS_HAVE_LENGTH). Olivier -- Visit the official FVWM web page at <URL:http://www.fvwm.org/>. To unsubscribe from the list, send "unsubscribe fvwm-workers" in the body of a message to [EMAIL PROTECTED] To report problems, send mail to [EMAIL PROTECTED]