I can replicate this (after enabling support for tr_TR.UTF-8
) if I set the game’s launch command to LANG=tr_TR.UTF-8 %command%
(Linux-based OS). It’s actually the letter i
being incorrectly capitalised (for non-Turkish text), which suggests that the devs failed to consider this case, most likely due to being unaware of it.
I can replicate it fairly easily with a short program:
#include <unicode/uchar.h>
#include <unicode/ustdio.h>
#include <unicode/ustring.h>
#define STRLEN 256
int main(int argc, char **argv) {
if (argc < 2)
return 2;
UChar str[STRLEN] = u"", str2[STRLEN] = u"";
u_unescape(argv[1], str, STRLEN);
UErrorCode err = U_ZERO_ERROR;
u_strFromUTF8(str, STRLEN, NULL, argv[1], -1, &err);
u_strToUpper(str2, STRLEN, str, STRLEN, NULL, &err);
u_printf("%S\n", str2);
return 0;
}
This was compiled locally with gcc -Og test.c -o test -licuuc -licuio
.
My default locale settings:
$ env | grep -e '^LC' -e '^LANG'
LANG=en_GB.UTF-8
LC_COLLATE=C.UTF-8
Testing:
$ LANG=C.UTF-8 ./test iı
II
$ LANG=tr_TR.UTF-8 ./test iı
İI
$ LC_MESSAGES=tr_TR.UTF-8 ./test iı
İI
Basically, you’ll need to override the locale somehow. On a Linux-based system, it should be enough to set the launch command to LC_MESSAGES=C.UTF-8 %command% -force-vulkan
(which also deals with some rendering errors); I don’t know how to do the equivalent on Windows.
To fix this, it appears to me that the developers will need to set the locale (or that part which affects case conversion) to something appropriate for the selected language. (If they set the whole locale, date formats may become a problem: consider en_US vs. most of the rest of us.)