Strange Behavior (Translation missing on device)

More
6 years 4 months ago #3150 by adamliu
Hi. I am using the latest version of I2 Localization (2.8.7) and Unity 2018.1.6. Today I updated /added a few new terms to my game and it all works as expected in Unity Editor. However, when I deploy the game on device (both an iPhone 6s Plus and iPad Pro), the terms I modified/updated are missing all translations except the default language, while existing terms works just fine. For example I have add a new term which is a sprite type. When I changed the language in the game (with I2 's "I2.Loc.LocalizationManager.CurrentLanguageCode"), the UI Image with this term has changed to a plain white block, which is the same as when the sprite is missing.
What's more interesting is that if I keep the language as the one that has missing translations and force close the game then restart the game, the current translation of the term of this language will become correctly again, where other languages are still missing. So in a strange way, I can make all languages of the abnormal terms behave correctly by switching to that language and terminate the app and restart..... Also, some translations of the newly added terms are just not updated on device (still showing the translations before the update), as if there is some sort of "cache" that stores the old translations . This is very very strange and I cannot figure out why... Please help as it's affecting my soon to be updated game, thank you.

Please Log in or Create an account to join the conversation.

More
6 years 4 months ago #3151 by Frank
Hi,
What you are describing looks like a setup issue with the Google Live Synchronization.

When the "Update Frequency" is set to anything other than NEVER in the Google Spreadsheet Tab, the plugin automatically checks the Spreadsheet at runtime to see if its different from the LanguageSource Data. If its different, then it downloads the spreadsheet in the device and uses that data instead of the one from the LanguageSource.

That allows you to change translations without having to do a build, and have all your players automatically download the new translations.
However, you have to be careful while developing. If you add terms to your LanguageSource or change translations, then you have to Export that data to the Spreadsheet, otherwise, the plugin will see the spreadsheet as out of sync and try downloading it.

Most likely you are also getting a warning in the console showing that the Spreadsheet is out of sync and need to be synchronized.

To solve the issue:
- Export your I2Languages.prefab to Google.
- (optional) Uninstall the game from your device to clear all the Downloaded data.
- Build and deploy the game again

It should work as expected.

Alternatively, you can set the Google Update Frequency to NEVER to skip the Google Live Synchronization feature.

Hope that helps,
Frank

Are you :-) Give I2L 5 stars!
Are you :-( Please lets us know how to improve it!
To get the betas as soon as they are ready, check this out

Please Log in or Create an account to join the conversation.

More
6 years 4 months ago #3153 by adamliu
Hi Frank, thank you for your reply. When the problem happens, the Google Update Frequency is already set to "NEVER" (I have been using I2 Loc for a few years so I'm kinda aware of this caveat, so I set it to "NEVER" at the very first days of the development. My game was published online half a year ago and has been updated more than 5 times by far and the issue I described never happened until recently I updated to the latest version of I2 and Unity (2018)). However, I do notice that there is a new "Password" option for the Google Spreadsheet in the latest version of I2 and I filled the password in and Exported the translations to Google a few times (only to use Google Translate to save time. Maybe this new password option can be the source of the problem? (Maybe the plugin will still use the cached/online translation data before I added the password to the plugin in some unknown conditions even if the option is set to Never?)

Please Log in or Create an account to join the conversation.

More
6 years 3 months ago #3157 by studenman
I'm getting similar reports from my users after updating to 2.8.7. Translations getting lost. Perhaps this is something to do with the auto-unloading of languages stuff?

Follow Tiny Bubbles Development:
Twitter | Facebook | Web

Please Log in or Create an account to join the conversation.

More
6 years 3 months ago #3158 by studenman
I found a user with this problem and I'm about to send her a TestFlight build that's the same as her current build except the "unloading of languages" is disabled. Hopefully this will stop the crashing on her iPhone due to missing translations.

I've seen this once before when I had Google docs refresh enabled and devices started having missing translations. I ended up setting them to never refresh which seemed to fix the problem. I think something is broken with caching languages out to temporary files (on certain devices). To be honest, these features just don't seem bullet-proof enough yet for commercial products.

Follow Tiny Bubbles Development:
Twitter | Facebook | Web

Please Log in or Create an account to join the conversation.

More
6 years 3 months ago #3159 by studenman
I can confirm from two testers that turning off Language Unloading has fixed the problems and I've submitted a new build to the App Store for review. This bug is causing problems for hundreds of users and the bad reviews are streaming in! Hopefully it won't cause any long-term damage to our review scores! :angry:

Follow Tiny Bubbles Development:
Twitter | Facebook | Web

Please Log in or Create an account to join the conversation.

Time to create page: 0.199 seconds
Template by JoomlaShine