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

Supporting rtl orientation for languages like hebrew and arabic #108

Open
Dbooz opened this issue Feb 9, 2024 · 2 comments
Open

Supporting rtl orientation for languages like hebrew and arabic #108

Dbooz opened this issue Feb 9, 2024 · 2 comments

Comments

@Dbooz
Copy link

Dbooz commented Feb 9, 2024

Can you kindly support RTL orientation? It's very tiring to maintain the formatting currently, when I input a number then write something it goes the opposite way, among many other problems.

Many thanks for the updates.

@arch1t3cht
Copy link
Owner

I assume you're talking about the subtitle edit box. (If you're talking about the actual rendering and the logic of how tags apply in RTL text, this is something that depends on the renderer and cannot be fixed on Aegisub's side.) The problem with this is that that box is a wxStyledTextCtrl from wxWidgets, the UI library Aegisub uses, and that this control has very poor RTL support that cannot be fixed from Aegisub's side. While there is an internal function to switch to an RTL layout, that also isn't perfect and only works for pure RTL text (i.e. has no bidi support). There is a draft PR open here that exposes this option in Aegisub, but it's not really complete yet.

Scintilla (which wxStyledTextCtrl uses internally) does have experimental bidi support, but this is only on Scintilla's Windows implementation and wxStyledTextCtrl uses wxWidgets's own implementation, so this feature does not actually do anything on wxStyledTextCtrl.

wangqr/Aegisub worked around this issue by adding a toggle to replace the subtitle edit box with a native text field. This has other downsides like losing syntax highlighting, but it'd correctly handle bidirectional text. I've tried to pull this change before, but I ran into various complications (huge merge conflicts, and lots of crashes once I did resolve the conflicts). I might try to revisit this at some point, but this will take some time (which I don't really have at the moment).

What I'm trying to say is: I'm very much aware of this issue and have tried various things to fix it before, but there's no good solution for it since LTR/bidi support in the underlying libraries is very poor.

@Dbooz
Copy link
Author

Dbooz commented Feb 9, 2024

Ahh too bad, I've been working on Aegisub with this hassle for more than 12 years, so I got used to it by now.

Thank you very much for the detailed explanation and all your great efforts in development. Absolutely loving the dark mode while my wife is asleep. My eyes dreaded for so long lol. I appreciate it.

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

2 participants