Hi,
Unity version: 2019.2.15f1 , AC ver: 1.69.5
I've found a pretty severe issue in my game Burnhouse Lane (already released - now we're adding translations) that I think is AC related. At some points I use string variables to tell the game what text to display inside some of the UI (a notebook with objectives for the player or later for the end credits). Like this:
When changed/removed/completed I set the string variable to nothing using an action like this one:
So CreditsText1 shows nothing (acting as if this menu element was turned off) in normal English version of the game. No problem there. The problem starts with translations - the string set as empty gets ignored and these string variable values are still shown.
Another example of this:
Above we see objectives list - just one here currently - FIND TREASURE.
But as we switch to Portuguese version (still WIP so text here's still in English) we suddenly get 2 more objectives that were already completed and removed with the above method (Leave milk for the cat, play piano) :
Is there anything that can be done at this point to resolve this?...
Thanks,
-Rem
It looks like you're new here. If you want to get involved, click one of these buttons!
Comments
I haven't come across this issue yet, but I think it may have something to do with the fact that AC uses the main language (in this case, English) as a "fallback" language - meaning that when the Portuguese column in the database has an empty string, the corresponding string in English is displayed instead.
Imho this is a very important feature because:
What you're seeing is most likely a necessary side-effect of that. I'd suggest two possible solutions:
Yes, spaces instead of empty strings would work. It's related to the fact that empty strings aren't included in translations. Adding a string would have it be included, and then updated correctly for all languages.
It's a bit hacky, but if you want to avoid having to manually update your Actions with spaces you can modify the Action to gather up empty text. To do this, open ActionVarSet, and replace line 1040:
with:
Thank you both for help! (only replying now because I've been away, sorry! )
I've replaced that line of code. Is there anything else I should do now? Gather game's text again? Or will just changing that line make empty strings now show as required?
Yes, you'll need to re-gather - be sure to back up beforehand!
After gathering, empty strings should then be gathered up in the Speech Manager. Like I said, it's a bit hacky, but should cause empty lines to then be respected by the translation system.
This works! (as far as I can tell not knowing all those languages)
Thank you, Chris!