Comments (2)
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.
from aegisub.
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.
from aegisub.
Related Issues (20)
- "Use Dummy Video" cannot be displayed normally HOT 4
- Width of style editor window can't be resizable in Linux HOT 2
- Speed up play HOT 3
- [FontCollector] Add a warning message if a font has variable axes
- [Feature Request] Limit Font Choices to User-Installed Fonts, or Any Arbitrary Subset HOT 1
- xxhash-0.dll was not found HOT 3
- Add XDG Base Directory specification support HOT 1
- failed to compile ffmpeg wrap on linux container
- [Bug] Multiple windows and scroll issues on macOS
- [Feature Request] Furigana support for Kanji Timer
- [Feature Request] New multi-highlight syntax for furigana folowed by hiragana/punctuation highlight in Karaoke Templater HOT 7
- Feature request: audio speedup
- Switch to C++20 / Rebase on top of TypesettingTools/Aegisub HOT 2
- aegisub.appdata.xml cannot pass validation HOT 1
- Feature Request: Color Management
- Crash in agi::Thesaurus::Thesaurus with Boost 1.85.0 and GCC >= 13 HOT 1
- [Request] Add avisynth+lsmash support to Ubuntu.AppImage HOT 2
- [Issue] File in use + Saving = Aegisub Crashing
- question: what is the difference between wx master and the one that doesn't say that? HOT 2
- [Feature Request] Add 'Number of characters in longest subtitle line' as a Subtitles Grid column
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aegisub.