this string is already translated korean.txt.
and many other Untranslated string for already translated strings.
Close OpenRCT2, delete plugin.dat and then restart OpenRCT2.
He told me it doesn't solved after he deleted plugin.dat.
It occurs to me too, and I definitly deleted plugin.dat.
(I checked only Time Twister's objects as in the below)

Does this still happen?
@Gymnasiast Yes, still happened in the last commit.
for some reasons, those Time Twister object strings are searched at _scenarioOverrides. It is only happening objects at time twister
If I change LanguagePack.cpp GetString function code like
if (stringId >= ScenarioOverrideBase)
{
int offset = stringId - ScenarioOverrideBase;
int ooIndex = offset / ScenarioOverrideMaxStringCount;
int ooStringIndex = offset % ScenarioOverrideMaxStringCount;
if (_scenarioOverrides.size() > (size_t)ooIndex)
{
return _scenarioOverrides[ooIndex].strings[ooStringIndex];
}
else
{
offset = stringId - ObjectOverrideBase;
ooIndex = offset / ObjectOverrideMaxStringCount;
ooStringIndex = offset % ObjectOverrideMaxStringCount;
if (_objectOverrides.size() > (size_t)ooIndex)
{
return _objectOverrides[ooIndex].strings[ooStringIndex];
}
else
{
return nullptr;
}
}
}
, everything works fine.(If search from _scenarioOverrides fails it will try searching from _objectOverrides)
English

Korean

I think somehow string id is big enough to recognized as scenario strings and game thinks string is scenario string.
I only allowed 4096 object override strings, so that just needs to be extended. But when I load the Korean language it only hits 2053 object override strings.
@IntelOrca It's not related to that(I think)
Other object's id is below 30000, but Time Twister object ids are all over 30000.
Since ScenarioOverrideBase is 0x7000(28627), all object string id over 28627 will be duplicated with scenario string id.(if object string id is near 28627, scenario strings used instead and player will get wrong translation)
Easiest way to fix this is increase ScenarioOverrideBase to 0x8000 so make sure object string id not exceeds ScenarioOverrideBase.
below are debug log(all ids missing below are all Time Twister object string id)

String IDs above and equal to 0x8000 can not be used as they are reserved for user strings unfortunately.
Anyway since the problem is range overlapping each other, It can't be fixed without changeing range.
Does this still happen?
@Gymnasiast Yep.

@IntelOrca Can we not move user-defined strings further?
@Gymnasiast nope
@IntelOrca That is a very unhelpful answer. At least try to provide more information, this bug has been rotting away for a year and five months.
With json-objects merged, this should be solved once Localisation gets merged in 16 hours. (Verified it myself using the Prison Island and Castle scenarios.)
Checked again on develop. It works correctly now.
I'm closing this, please let me know if it works or not.


Works very well without any problem.