I'm having this issue which comes up so often that it's become a workflow issue and I'm not sure what makes it happen. Essentially we've got 11 languages and they are in the process of being translated. Most of them are blank and fallback to english. Some will stay blank, even when translations are complete. There's a bug when using the Unity Editor that causes the Language Source to copy all the fallbacks into the blank fields in the I2Language prefab. When this happens we have to quit Unity without saving. If we accidentally saved, then any work we did on the prefab has to be thrown out and reverted to our clean copy in our source repository or we Import/Replace from our Google Spreadsheet.
Sorry for the delay in answering this and this topics.
This last week I have been traveling (kind of a semi-vacation-semi-work thing) and haven't been able to do as much as I would have hope, and without steps to reproduce this issue, it have been hard to find a solution.
Today I have a bit more of time, so I will try reproducing this (I'm going to test now merging spreadsheets). As soon as I find a way to make it happen I will upload a fix!
Said that, if you find a way to make it happen, it will help me a lot!!
Are you Give I2L 5 stars!
Are you Please lets us know how to improve it!
Thanks Frank. I noticed there's some kind of cache/dictionary in the game where it caches the translations. Could this somehow be getting used after editor play mode stops, so the Term Inspector is showing what's in the cache and not what's in the prefab? Then when you save the cached values get written into the prefab? Just speculating here because I suspect it has to do with Playing the game in the editor and changing languages while in the game, but I can't be completely sure.
It's the kind of thing where you're working on other text-related stuff for a few hours, like changing fonts and I2.Loc.Localize components, testing in the game, etc. Then eventually you go to the LanguageSource prefab later and you notice that the prefab is corrupted as described above.
Shoot, I wish I could help more. I suspect it has to do with switching languages in the game and then stopping the game in the editor. Changing languages again. Import replace from Google. Starting again, changing languages, stopping, etc. Save randomly in between these operations, or not at all?
Can't really tell you what makes it happen. The LanguageSource seems to stay un-corrupted if I keep to English and don't change the language, maybe that will help? I suspect it has to do with whatever code restores the TermsData.Languages array when you stop playing in the editor. I really don't know.
When I go back to working on localization tomorrow I will see if it reproduces again and try to pay closer attention. That may mean checking the LanguageSource for corruption in between everything I do, or perhaps write a script that will detect when it becomes corrupted and pop up a message?
OK @Frank, I found a consistent repro case of this, but I suspect it also happens in other cases. All I have to do is make a build (like for iOS or Standalone) and then when I look at the LanguageSource after, any blank translations get replaced with their fallbacks. Happens every time I make a build.