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
convenient.
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
above.
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.
Shachar
P.s.
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.
http://www.lingnu.com
More information about the wine-devel
mailing list