Jump to content

East Asian Text Rendering - Font Selection for CJK Characters


sunnyssk

Recommended Posts

Reported Version: v0.2.0 (latest) | Mods: none | Can replicate without mods? Yes 
OS: Windows 10 | CPU: i7-7800X | GPU: GTX 1080 | RAM32 GB

 

(It could be more of a feature request than a bug report so please consider moving/merging this topic if necessary.)

It's been a long time that I have noticed that the fonts are not rendering correctly in KSP2 for its Chinese version. This is a common pitfall for games involving a Chinese version which is not developed by a Chinese company.

Short background: east asian countries share a large set of Chinese characters (Han characters; Hanzi/Kanji/Hanja) in common. However in China(Mainland/HongKong/Taiwan)/Japan/Korea, there are differences in writing styles. The differences here are not about simplified/tradition versions of Chinese characters, but about how the same character looks like in different regions, see figures in: [https://en.wikipedia.org/wiki/CJK_Unified_Ideographs] and [https://en.wikipedia.org/wiki/Han_unification].

What's happening: The Chinese characters for the Simplified Chinese (SC) version are rendered in a way which is used either by Traditional Chinese (TC) or Japanese (JP), which means the game is not using the correct font or font subset for the desired language. An example would be the word in the main menu "设置" (Settings). The character "置" should only have a horizontal line at its bottom end in SC, while in TC or JP styles it has an additional vertical line at the bottom-left corner, which is happening to SC in current games.

Possible mechanisms relavant to the issue: The fallback font for CJK(China/Japan/Korea) characters now seems to be Google & Adobe's Source Han Sans (also known as Noto CJK Sans). The font family contains a subset of fonts with different suffixes (SC/TC/JP/KR), see [https://en.wikipedia.org/wiki/Noto_fonts]. Each of the fonts with a specific suffix contains the right shapes of the characters used by the group of people in that language. If the font family is incomplete, or the fallback is just directed to one of them, it might be producing an incorrect shape of CJK characters for the target language. To resolve this issue, you might need to bind each existing east asian language to a font from this family. Note that this does not involve any modifications in the translation strings. It has nothing to do with how characters are encoded but about how they are displayed.

 

 

Included Attachments:

cjk.png.aeac20e9b13fe2fb84ac3ef6304f0bba.png

Edited by The Space Peacock
Link to comment
Share on other sites

×
×
  • Create New...