Right-To-Left (RTL) languages and Wine

Shachar Shemesh shachar at shemesh.biz
Wed Sep 29 14:02:04 CDT 2010

On 29/09/10 20:25, Alexandre Julliard wrote:
> Shachar Shemesh<shachar at shemesh.biz>  writes:
>> Did I mention that the automatic mirroring is a broken idea
>> implemented in a broken way already?
> What do you consider broken about it?
Everything. The concept is that a RTL layout is just a LTR layout 
reversed. This is almost never the case. Almost always, some controls 
need to still be LTR (URL edit control, tree view of, basically, Latin 
registry keys, etc.) Defaulting to a mirrored UI means you need to base 
your redesign on something substantially different than the original, 
which I do not see as a good move.

Microsoft's implementation of this idea is just as crappy as the core 
concept. The UI often contains images that are part of it. In order to 
keep the thing even slightly okay, Windows automatically mirrors every 
image (yes, EVERY image) displayed into a DC which has the RTL attribute 
set. The MSDN page discussing this has hilarious images of the Microsoft 
logo reversed. Their OFFICIAL recommendation is to create localized 
Hebrew/Arabic resources of the images, which are mirrored at the source, 
so that after the UI second mirroring they turn out okay. Two wrongs 
don't make a right indeed.

All in all, it is my experience that starting with the LTR layout 
requires less work and is less error prone than starting with a mirrored 
LTR layout.

This aside from the problems I've mentioned before on this list, of the 
utter stupidity of having some windows on the same desktop with a close 
button on the left and some on the right. I know no one who finds this 

Don't get me wrong. I'm not saying we shouldn't implement this (except 
the window decoration part, that i think we should not implement). I'm 
just saying that I would rather if Wine's built in applications not 
participate in this madness.
>> Aside from notepad, for which the difference is very small, and most
>> people would regard a default LTR control as the correct behavior
>> anyway, what other applications are you concerned over?
> Pretty much all of them. For example, Wordpad has combo boxes in the
> toolbars, those won't be RTL without changing the process layout.
> Winefile and Regedit have treeviews that would need mirroring, etc.
First, I'm not sure what the proper way to RTLize regedit should be. See 

Less specifically, however, all controls that have BiDi settings can 
have those settings set through the resource for that control, without 
setting it for the entire application. In those cases that the layout is 
not control by a resource, we are pretty much in deep #!@$!@# anyways 
because of the reasons stated above. Whether it is Yaron doing the 
localization or someone else, they must have some way to change the 
layout in a way that is not merely mirroring, and whatever way that is, 
it will require being able to tell the system which controls need RTL 
and which don't.


I am going over the built in wine applications, and would like to point 
out for whoever is thinking of localizing "clock" that clocks in RTL 
speaking regions still rotate in the same direction.

Shachar Shemesh
Lingnu Open Source Consulting Ltd.

More information about the wine-devel mailing list