-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
Overlapping display of the upper vowel and the tone character in Thai Language #28371
Comments
@akien-mga Thank you. I'm grateful for the response. I'm totally agree with you. The font is fine, because I use this font with other applications. I also tried with other fonts, and the problem still occur. I couldn't help on C++ coding because my knowledge on C++ & the Godot source code is limited. p.s. I'm native Thai and I've currently strived to promote Godot Engine usage in Thailand. |
The below picture shows all of Thai characters in Unicode. Upper Vowels : shown in Blue frames. The algorithm is:
(note: the only upper vowel that may follows a tone is "0E33") Thanks. |
Not a languages guy, but I guess if there's an algorithm involved, one might need this feature #21791 |
@starry-abyss Wow! From the screen shot of #21791, it displays Thai language perfectly. So, may be, this issue is the sub-problem of that general implementation in #21791 |
@akien-mga Thank you so much. I think the reason that sometimes the diacritics are not shown is because there is no meaning in Thai when diacritics appear without preceded consonants. So, many font rendering engines will not render a diacritic alone. This also happen in many softwares such as Microsoft Office, and it is totally acceptable because any diacritic will never be used alone, in real-life sentence. For the reason why the NotoSansThaiUI_Regular.ttf is displayed correctly, I think it is because its diacritics' positions are designed to always be at top most level to avoid overlapping with upper vowels. However, currently, many other Thai fonts place diacritics and vowels at the same vertical positions (because of aesthetic reason). So, these troubled fonts would need additional placement logics like in #21791. In conclusion, at this time, if Thai language display is needed, the NotoSansThaiUI_Regular.ttf font should be used. However, for other Thai fonts, we should wait for the complex glyph positioning in #21791 to be completely implemented. Thanks again :) |
Just for information. I have additionally tested some Thai fonts and found that: Some Thai Fonts that correctly displayed by Godot 3.1:
So, the worked fonts are much more than I previously understand. Some Thai Fonts that incorrectly displayed by Godot 3.1 (Overlapping Occurs):
|
Should be fixed by CTL implementation (#41100): |
[Godot v. 3.1 stable]
[Tested on: Godot on MacOS]
In Thai language, a consonant character may be followed by an upper vowel, a tone character, or both. These characters must be displayed above the consonant. When these characters appear simultaneously, the tone character's vertical position should be moved to above the upper vowel character, preventing the overlap.
Currently, Godot can display upper vowels and tone characters correctly. However, when both occurs, they are incorrectly displayed in run-time (overlapping occur), but correctly displayed on the label-text editor in design-time.
The test project: https://github.com/nthana/ThaiFont
In label-text editor (correctly displayed):
On runtime (incorrectly displayed):
Thanks.
The text was updated successfully, but these errors were encountered: