Mirror greeter in RTL locales

Bug #834386 reported by Robert Ancell
38
This bug affects 6 people
Affects Status Importance Assigned to Milestone
unity-greeter (Ubuntu)
Triaged
Medium
Unassigned

Bug Description

The greeter should be mirrored in RTL languages (e.g. Hebrew) so that it looks correct.

Related branches

Revision history for this message
Robert Ancell (robert-ancell) wrote :

See the merge request from Haggai Eran which triggered this bug:
https://code.launchpad.net/~haggai-eran/unity-greeter/rtl/+merge/71665

Changed in unity-greeter:
status: New → Triaged
importance: Undecided → Wishlist
Revision history for this message
Mika Meskanen (mika) wrote :

Please see the attached sketch – I explored three ways to solve the RTL question.

A) flip the name list carousel, leave everything else as it is
B) flip the carousel, align it to the right hand edge of the screen
B) flip the whole screen i.e. move indicators to the left

A is straightforward, but does it satisfy RTL innate users?
B is more radical change, but creates an overlay conflict between indicator drop-down menus and the carousel, plus breaks the alignment between computer name, carousel and Ubuntu logo.
C is the most tailored solution for RTL, but as the login screen by design is more a state of the desktop than isolated state (that's the reason for having indicators there, wallpaper shining through, carousel riffing the launcher a bit etc.) we should have the whole Unity beneath the login screen flipped, which is not yet the case.

In this light I'd go for Option A for the time being. Whether that's satisfactory for RTL users, I'd like to hear the opinion of someone expert and native in RTL – what do you think?

Revision history for this message
Haggai Eran (haggai-eran) wrote :

Hi,
I would vote for option C, and that's what I've implemented in the submitted patch :)
I agree that we should also have the rest of unity mirrored, but I don't think that it should delay the use of a more localized greeter. In fact, the mirroring of the greeter's indicator bar is already being done automatically by GTK, so moving it to the right will actually need to override that.

Regarding option A, when implementing text rendering using pango, and setting a width to the pango layouts, pango will automatically align RTL text to the right, and LTR text to the left, according to the first letter. This means that an LTR username on an RTL greeter should align correctly, and vice versa. If you do go for this option, you can pick the changes to use a layout width from my patch.

There is also one more thing that was left out from the sketch: Ubuntu logo that currently appear at the bottom left. I'm not sure whether it should move to the bottom right or not. Since it is written in English, it would look weird aligned to the right. On the other hand, leaving it at the left side would be inconsistent. Perhaps it would be best to translate it, but it is currently a loaded from a graphics file, so it will probably require a lot of work.

Regards,
Haggai

Revision history for this message
Robert Ancell (robert-ancell) wrote :

I'd love this to be in 11.10 if we can get it all working but it's probably going to require a user interface freeze exception. Can someone follow that up?

Changed in unity-greeter (Ubuntu):
status: New → Triaged
importance: Undecided → Wishlist
Revision history for this message
Haggai Eran (haggai-eran) wrote :

Hi,

I'm attaching a screenshot of how my current code looks with a Hebrew locale. I actually wanted to upload to the merge proposal discussion, but I don't see a way to attach files there.

Revision history for this message
Robert Ancell (robert-ancell) wrote :

Right, so I think you should align all the text to the right when in this mode (i.e. the "Bob User", "Carol User" strings).

Revision history for this message
Haggai Eran (haggai-eran) wrote :

Would you like to disable automatic direction completely, or just force the alignment?
Forcing the direction could cause some weird results with LTR user names in an RTL greeter and vice versa. For instance, suppose there is a user name with parenthesis, like "Bob (jr.)". In RTL directionality it would render as "‫Bob (jr.)‬"
We can force only the alignment, and keep the directionality detection, but personally I think it looks a little wrong, when the user names aren't aligned according to their writing direction.

Revision history for this message
Robert Ancell (robert-ancell) wrote :
Revision history for this message
Robert Ancell (robert-ancell) wrote :

I've modified the screenshot to show what I mean. To me having the English text right aligned looks fine. I'm not enough of a typography expert to say, but I think we want automatically detected directionality with alignment based on the system locale.

Mika, what do you think?

Revision history for this message
Mika Meskanen (mika) wrote :

While I totally understand the need to localise the Greeter and appreciate the work that's going towards it – I'm afraid in this particular case I have to disagree (this is after consulting another Hebrew speaker in the design team).

One of the main design memes of the Unity Greeter is that it closely aligns with the desktop. Mirroring the top bar, even in RTL, undermines that meme. The indicators should stay where they are on the desktop. What we get now is a rogue screen that has its own logic.

As soon as Unity/Ubuntu gets full RTL support, the indicators should move too – not before.

The right-aligned userlist I think is the best solution there. Definitely no left-right jumps. RTL can take the lead there and Latin names follow (path of the least weirdness). However, like I said the carousel should stay on the left.

Hope this helps.

Revision history for this message
Haggai Eran (haggai-eran) wrote :

Mika, you say that you want the indicators to move to the left only once Unity has full RTL support, but as I've said last month, the indicators are already to the left in the current released version of the greeter. Unity greeter uses a Gtk menu bar for the panel, and Gtk has automatic mirroring. It is the current state is incompatible.
If the alignment with the desktop meme is that important, I suggest disabling the current mirroring of the panel in the greeter, and leaving everything else the way it is.
Note that the mirroring code for unity-2d has already been released (see bug #654988), although they said that the code will remain disabled until Oneiric is released.

tags: added: arabic hebrew rtl unity-greeter
tags: added: rls-mgr-p-tracking
no longer affects: unity-greeter
no longer affects: ubuntu-translations
Changed in unity-greeter (Ubuntu):
importance: Wishlist → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.