Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RTL as part of HIG #211

Closed
yarons opened this issue Oct 7, 2021 · 36 comments
Closed

Add RTL as part of HIG #211

yarons opened this issue Oct 7, 2021 · 36 comments

Comments

@yarons
Copy link

yarons commented Oct 7, 2021

Hey, I translated helloSystem to Hebrew, this language is written from Right-To-Left (hence RTL) and requires special care in some cases (Sometimes flipping everything just works).
Additional languages that use an RTL script: Arabic, Persian, Urdu, Divehi, N'Ko, Yidish, etc.

There are numerous documents about taking special care of some individual cases in RTL, for example:
https://engineering.atspotify.com/2019/04/15/right-to-left-the-mirror-world/
https://material.io/design/usability/bidirectionality.html
https://developer.apple.com/design/human-interface-guidelines/right-to-left/overview/introduction
https://community.pega.com/knowledgebase/articles/user-experience/85/converting-your-ui-right-left-languages

I need to free some space for the VM, I want to test it and see that everything is in place.

@probonopd
Copy link
Member

Hello @yarons. Thanks for contributing translations. Highly appreciated.
Do you know what specifically would need to be done in helloSystem to make it support RTL properly?

@yarons
Copy link
Author

yarons commented Oct 10, 2021

It depends, the UI is GTK or Qt based?

@probonopd
Copy link
Member

Qt

@yarons
Copy link
Author

yarons commented Oct 10, 2021

https://doc.qt.io/qt-5/qtquick-positioning-righttoleft.html

This is purely technical, the visual stuff are the other links I've sent earlier.
There are some older guides for Qt 4.8 etc. I don't think it's relevant anymore.

@probonopd
Copy link
Member

Would be interesting to see how far off we are currently. What is your overall assessment of our 0.6.0 ISO?

@yarons
Copy link
Author

yarons commented Oct 11, 2021

Regarding the HIG or the translation?

@probonopd
Copy link
Member

probonopd commented Oct 11, 2021

My question is, if you run the 0.6.0 ISO, what is wrong/needs to be done so that everything is correct? (Screenshots of places where things are wrong and a description of how they should be would help to understand how big the delta is.)

I'd welcome pull requests that improve things, as long as they won't introduce undue code complexity/overhead. But since I don't know what needs to be done and how, I won't be working on it myself.

@yarons
Copy link
Author

yarons commented Oct 11, 2021

These are usually changes in the .ui files, I'm not sure how these are handled when you switch the language but I'll try to investigate it with you.
The changes shoud be purely cosmetic, nothing logical so instead of having the buttons layed out in a certain way they will be reversed or mirrored or whatever, it really depends on the case.
There's also a problem of over RTLing when some things need to get back to normal (usually progress bars, sliders, etc.).

If you can take some screenshots it will surely save us some time.
I think that if it might delay the release we will do our best to aim for the next one, Hebrew users can wait :)

@yarons
Copy link
Author

yarons commented Nov 21, 2021

I managed to load the ISO in VirtualBox, I managed to make it work but couldn't install it (It keeps failing and restarting), I couldn't find where to switch the language of the UI, I can keep trying but it doesn't look good so far, any suggestions? Should I simply wait for 0.7.0?

@probonopd
Copy link
Member

Yes. Or you could use 0.6.0 which is the currently released version.

@yarons
Copy link
Author

yarons commented Nov 21, 2021

Well, without switching the UI language or installing to the local hard drive I'm not sure it's relevant to what we actually want to test :)

@probonopd
Copy link
Member

0.6.0 can be intstalled to the local hard drive.

@yarons
Copy link
Author

yarons commented Nov 21, 2021

I've tried, I got into a boot loop with VirtualBox.

@probonopd
Copy link
Member

I never test anything on virtual machines, only on real hardware.

@louies0623
Copy link

louies0623 commented Dec 17, 2022

I think this is the screen that their language should be, the direction of the interface and the beginning of the text is reversed, except for the picture and the text.
image

DEMO...
VirtualBox_PC-2_17_12_2022_19_30_54

@probonopd
Copy link
Member

probonopd commented Dec 17, 2022

Not sure whether the whole screen should be flipped just because the language is LTR. I don't think this is how other desktop OSes are doing it?

In any case, this is currently not a priority, no one is working on it.
Can be reopened in case anyone wants to work on it.

These languages are in the current set of languages:

  • Use English for the main language = en
  • Utiliser le français comme langue principale = fr
  • Deutsch als Standardsprache verwenden = de
  • Usar español como idioma principal = es
  • Usa l'italiano come lingua principale = it
  • Gebruik Nederlands als hoofdtaal = nl
  • Använd svenska som huvudspråk = sv
  • Bruk norsk som hovedspråk = no
  • Brug dansk som hovedsprog = da
  • Käytä pääkielenä suomea = fi
  • Käytä pääkielenä suomea = fi
  • Выбрать pусский как главный язык = ru
  • Użyj polskiego jako języka głównego = pl
  • Usar português do Brasil como idioma principal = pt
  • Usar o português europeu como idioma principal = pt_PT
  • 以简体中文作为主语言 = zh_CN
  • 以繁體中文作為主要語言 = zh_TW
  • 主に日本語を使用する = jp
  • 주 언어로 한글 사용 = ko

@louies0623
Copy link

louies0623 commented Dec 17, 2022

Not sure whether the whole screen should be flipped just because the language is LTR. I don't think this is how other desktop OSes are doing it?

@probonopd
Copy link
Member

Wow. It's not something I'm looking forward to doing; so this would only happen if we find a volunteer who wants to do it.

@yarons
Copy link
Author

yarons commented Dec 17, 2022

I was referring to the HIG, not the actual directionality implementation and I'm not sure why Hebrew is not part of the language set, it is fully translated.

@probonopd
Copy link
Member

We are merely pointing to https://dl.acm.org/doi/book/10.5555/573097, there is no helloSystem HIG currently.

@probonopd
Copy link
Member

I'm not sure why Hebrew is not part of the language set, it is fully translated.

It would probably need more work, e.g., a better font, more RTL work, etc.

@yarons
Copy link
Author

yarons commented Dec 17, 2022

We are merely pointing to https://dl.acm.org/doi/book/10.5555/573097, there is no helloSystem HIG currently.

There are RTL references in this HIG, just search for Hebrew or Arabic and you'll find it.

Is there an open issue about the font and RTL work so I can try and help with it?

@louies0623
Copy link

louies0623 commented Dec 17, 2022

45/418 inPDF https://dl.acm.org/doi/book/10.5555/573097

@yarons
Copy link
Author

yarons commented Dec 17, 2022

@louies0623 indeed, so @probonopd, this issue was never relevant in that case, we just need to work on the issues with Hebrew display in terms of fonts and RTL then.

BTW is there a special reason to use an HIG from 1992? There are more recent versions.

@probonopd
Copy link
Member

probonopd commented Dec 17, 2022

Newer is not always better :)

The one I linked was being worked on by Tog and other legends.

@louies0623
Copy link

louies0623 commented Dec 17, 2022

@probonopd I think you can ask about the text font first.
@yarons Do you think there are any fonts that can replace the Hebrew fonts in the current system.
#445

@yarons
Copy link
Author

yarons commented Dec 17, 2022

@louies0623 I will definitely work with you on that one, what is the license limitations so I won't offer any irrelevant options.

@probonopd
Copy link
Member

Font should be a "real world" font, not a "computer" font. Ideally should look like Helvetica.

License needs to have no restrictions on redistribution.

@yarons
Copy link
Author

yarons commented Dec 17, 2022

Newer is not always better :)

The one I linked was being worked on by Tog and other legends.

Although I do ten to agree in a way I find myself thinking about designing a system with a closed feedback loop as opposed to open feedback when some lessons have learned and the users are more demanding and the design should reflect different usage patterns.
I totally think his work rocks yet many things have changed along the years and back in 1992 there were fewer users and fewer options and it did affect the user's usage patterns and perspective.
Just my two cents, thanks.

@probonopd
Copy link
Member

Note that I also didn't say "older is always better" ;-)

@yarons
Copy link
Author

yarons commented Dec 17, 2022

I appreciate that, thank you :)

@louies0623
Copy link

There should be a "help wanted" tag so someone knows this needs help.
As an aside, our Chinese used to be right-to-left like Hebrew, but it was changed about 60 years ago.

@louies0623
Copy link

louies0623 commented Sep 25, 2023

@probonopd
I tested it a little on your Ubuntu test version. It has been changed, but the notification icon and window list menu position need to be fixed.
20230925_220142
20230925_224731
20230925_213310
“System menu”
20230925_213534
“Window list menu”

@louies0623

This comment was marked as off-topic.

@louies0623
Copy link

louies0623 commented Sep 25, 2023

I just discovered now that it has actually been available for a long time. On helloSystem, you can preview it in "Language Settings"(/usr/local/var/localize/include).
20230925_231623

@probonopd
Copy link
Member

probonopd commented Sep 25, 2023

RTL languages are currently not supported in helloSystem. To make them work properly, more than just translations would need to be done, e.g., automatic on-demand installation of RTL fonts if needed, changing the layout of the Menu and probably some dialog boxes, etc. To do this correctly we would need some developer who is familiar with at least one RTL language, knows what to expect in terms of user interface layout, and would be willing to do the work.

For exammple, the KDE screenshot in this thread shows that most things are left-to-right but not all are, e.g., the panel at the bottom of the screen is not. I am also not so sure whether the alignment of interface elements shown in Figure 2-2 on page 45 of the HIG is what a HIG speaker would expect. Shouldn't the default button all the way to the left? How is it on today's macOS?

I cannot not do this work since I don't speak any RTL languages, and I don't know how things should work in RTL languages. If someone would like to make the necessary changes, I'd be happy to discuss.

Right now we are focusing on getting the system into 1.0 state for the languages that are currently supported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants