Let’s say I have really basic localization going on that requires a key and gets a val for that locale (the key name strings are pulled from a ScriptableObject).
When I have “TENACITY_ABIL” (anything with a capital i), for example, something strange happens:
“I” is normalized as “İ” (for some, it’s the 1st ONLY. For others, it’s both. I’m not sure what’s going on).
This causes tons of issues – even if I normalize() the string, “İ” in Turkish is a completely separate letter than “I”, so it fails to normalize as expected. This means the problem is before normalization: This string is obtained from a ScriptableObject. Seems like there’s some sort of Unity serialization that happens to achieve this state.
While this seems to be a bug (…serialization bug from ScriptableObject <> string?), what can I do to workaround this? “I” in English within a ScriptableObject is expected to resolve as an undotted “I” in Turkish locale (where if I were to normalize() the string, it would also resolve as “I”).
This messes up all translations for Turkish folks. There may be similar bugs in other locales I haven’t yet to see reported.
I’m happy to leave a summary here for someone that finds it useful - but I don’t have a good experience with the bug report system, having spent way too much time for very few results or fixed in an unstable version I won’t even use for an entire year+. I’ll respectfully pass~
I’m just gonna leave this here in case someone stumbles across this on Google. Feel free to contract me out for paid repro’s, but I’ve already given enough (100’s of hours) free QA repro time to Unity over the years to only get sub price raises - I’m on Unity bug report strike. I hope you guys consider store/sub credit in the future for repro submissions that led to a bug fix.
Thanks for your detailed and sincere response, @MrLucid72 . We appreciate you taking the time to leave a response that hopefully might help others. We’ll make sure the product team receives your feedback.