OpenJK icon indicating copy to clipboard operation
OpenJK copied to clipboard

Traditional Chinese language support issue of OpenJO (Jedi Outcast)

Open hsz0566 opened this issue 6 months ago • 1 comments

Reporting a bug? Please make sure you've given the following information - thanks!

Operating system and version:

Windows 10

Is this for single player or multiplayer?

single player

Description of the bug (and if possible, steps to reproduce the bug):

I have a multi-language (built-in Traditional Chinese) copy of JKO (Jedi Outcast), and I would like to change text language into Traditional Chinese in OpenJO. But the text subtitles became garbled. Here’s my assets.pk3:

https://mega.nz/file/bVZkVSZZ#Yis7wBou-2YciqW3ZutAkMc-HaGGDwNBP1mnB9uoTAA

In the strip folder, and the traditional Chinese subtitles are marked “TEXT_LANGUAGE6”

Besides, in OpenJK (Jedu Academy), my Traditional Chinese strip files work well!

https://mega.nz/file/LEgXXBjB#N0fvKHwwFoHDcKjQjTHYIz7jPS53eBgzVN-3VU387XE

Here's the video capture:

https://drive.google.com/file/d/1LvfoOf__OYqpJ5drzfArcIxqu8ST0OyU/view?usp=drivesdk

Actually, I was playing JK XR, the VR version Jedi Outcast / Jedi Academy which is based on OpenJK:

https://github.com/DrBeef/JKXR_public

What did you expect to happen instead?

Hope that my Traditional Chinese text subtitles will work well in OpenJO (Jedi Outcast).

More information about this issue:

People in OpenJK discord said:

  1. Looks like OpenJO breaks not latin languages.

  2. JK2 used sp_language as cvar. JKA used se_language as cvar. Seems that stuff isn't properly hooked up on OpenJO.

  3. I think the issue is located in the function Language_e GetLanguageEnum(). In jk2 mode it always returns eWestern. That leads to the checks for Language_IsAsian etc. to fail. And it also leads to various other checks failing and always loading the wrong glyphs.

  4. It handles font rendering differently in those modes. OpenJO is based on jka, you can imagine it as JK2 running in the jka engine. When adding jk2 support to jka the person doing it for OpenJK forgot to properly map the jk2 cvar to the functions used by the renderer, so the game uses the western font system on openjo.

hsz0566 avatar Dec 29 '23 05:12 hsz0566