Flow.Launcher icon indicating copy to clipboard operation
Flow.Launcher copied to clipboard

Enhancement: Alignment to RTL in RTL languages

Open H5820121 opened this issue 8 months ago • 6 comments

Flow Launcher now has a translation into Hebrew and Arabic, which are known to be RTL languages, can you please make it so that when Flow Launcher is set to one of these languages, the display will align to RTL. As in Everything and EverythingToolbar, if the language defined there is, for example Hebrew, then the display will align there to RTL:

Image

This is necessary for many people in the world who use these languages. Thank you!

H5820121 avatar Jun 12 '25 17:06 H5820121

@onesounds Any ideas for this? References:

https://stackoverflow.com/questions/7365257/switch-between-ltr-and-rtl-user-interface-in-wpf-windows-applications https://learn.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/ms788718(v=vs.100)?redirectedfrom=MSDN https://learn.microsoft.com/en-us/windows/apps/design/globalizing/adjust-layout-and-fonts--and-support-rtl

Jack251970 avatar Jun 15 '25 04:06 Jack251970

@H5820121 I think we can take this into consideration since WPF provides necessary interface for this

Jack251970 avatar Jun 15 '25 04:06 Jack251970

@onesounds Any ideas for this? References:

https://stackoverflow.com/questions/7365257/switch-between-ltr-and-rtl-user-interface-in-wpf-windows-applications https://learn.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/ms788718(v=vs.100)?redirectedfrom=MSDN https://learn.microsoft.com/en-us/windows/apps/design/globalizing/adjust-layout-and-fonts--and-support-rtl

I've tried this before, and it's not easy — it's almost impossible.

onesounds avatar Jun 15 '25 04:06 onesounds

@onesounds @Jack251970 I'm not a developer, but from what I understand, EverythingToolbar https://github.com/srwi/EverythingToolbar is also written in C#, and there the RTL is implemented, as you can see above in the screenshot, why is it different here?

H5820121 avatar Jun 15 '25 06:06 H5820121

If it were a simple task, I would have done it quietly without much discussion. The reference documentation may suggest simply adding RTL properties, but in reality, it's not as straightforward as just enabling RTL.

I’m quite certain that even Everything Toolbar had to put in a significant amount of work to support this. Moreover, unlike them, we’re not using general-purpose controls. Supporting RTL would require reworking almost all UI elements, not only in the main window but also in the settings and other dialogs. On top of that, there are additional feature requests like adjusting the output layout, and when combined with theme compatibility considerations, it would essentially require a near-complete redesign of the main window.

None of the team members are native RTL users either, which adds to the complexity. Each control would need to be carefully reviewed, redesigned, and tested for proper behavior in both LTR and RTL contexts, ensuring proper rendering for each language.

I’ve tried exploring this (along with other accessibility standards like screen reader support) because I do want to follow proper standards. But after considering all the technical and practical aspects, I just wanted to share that this is not as simple as it might seem at first glance. Technically speaking, it’s definitely "possible" — but that's in the sense programmers usually mean: possible if someone is able to commit to full-time work for 30+ days, even for a language I personally don't use, which makes it very challenging for me to take on.

onesounds avatar Jun 15 '25 06:06 onesounds

@onesounds I see, it really seems complicated. Thanks for the detailed answer!

H5820121 avatar Jun 15 '25 16:06 H5820121