-
Notifications
You must be signed in to change notification settings - Fork 174
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
Rephrase support for rendering RTL scripts #257
Conversation
As discussed in ghostty-org/ghostty#1442 (comment), this clarifies that RTL text is not supported, although rendering of individual grapheme clusters from RTL scripts is done correctly.
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
An improvement in any case. Thank you! |
Thanks for asking my opinion. I agree that this is an improvement. I think it can be improved even further. An explanation of why this is confusingImagine if I spoke a language Foobar that was like English, but it only used a cursive script. I would expect the text "hello world" to look like this: But in my imaginary example, Ghostty instead renders it like this: Would you be satisfied if the documentation for Ghostty said this?
Wouldn't you find that confusing? The ending point of the stroke rendering "h" should be connected to the starting stroke of the following letter "e" on its right, not on its left! And so on, and so forth, for the rest of the text. The text is simply unreadable! It renders exactly as if someone had typed the text backwards ("d" followed by "l"), instead of in the correct order ("d", "l"). Maybe the documentation is trying to highlight that it supports cursive fonts, but that support is useless if the text is rendered backwards! To make my point even clearer, if I type Instead, I suggest this wording:
Thai is a left-to-right language (like English) that also features grapheme clusters. |
To me this is decidedly not an issue with the rendering of grapheme clusters; this is a text direction issue. That causes ligature issues with fonts, because the direction the computer thinks the characters should be joined together is wrong. But I don't think that's related to grapheme clustering or the rendering of grapheme clusters. My understanding is that a grapheme cluster is a single rendering unit, which may consist of a potentially arbitrary number of codepoints. So |
That makes perfect sense. As I was typing my comment, I had to read up more about the definition of grapheme clusters, and you're right. Good documentation keeps in mind its target audience. The target audience are potential users, some of whom want to know if Ghostty supports grapheme clusters (it does), and some of whom want to know if Ghostty supports right-to-left languages (it doesn't). I still think the current phrasing is confusing for the target audience, at least, for those who care about RTL support. Since Ghostty doesn't support RTL text, it probably would be best not to mention Arabic or Hebrew at all in the bullet point talking about grapheme clusters. Languages like French or Thai would be better examples of grapheme cluster support. |
As discussed in ghostty-org/ghostty#1442 (comment),
this clarifies that RTL text is not supported, although rendering of
individual grapheme clusters from RTL scripts is done correctly.
cc @Flimm - is this language clearer?