First of all, let me say that this issue only appears when testing on an Xbox devkit, but I’m posting this in the general forum because I’m not sure how the console could be involved in this. It works fine in pc and other consoles, though.
We are changing the game language with the node Set Current Culture, passing it the culture code of the language that the player selects. All languages are 100% translated, the translations are compiled, the localizations to package are selected in the Packaging settings, and Internalization Preset is set to EFIGSCJK (we also tried with All). We are working with UE 5.3.
However, when we try to change the language in game, using the devkit, it behaves funny:
Here’s what’s going on in the video:
Language doesn’t change from English to Spanish (Español), despite Spanish being the native language and of course its culture being packaged.
It changes to French (Français), then to German (Deutsch) and then back to French (Français) correctly.
However, the language doesn’t change to Spanish (Español) again, this time from French (Français).
It changes to English BUT the second word in the right-hand side menu remains in French. It says “GÉNÉRAL” when it should be “GENERAL”.
Then, from the mix of English and French, it changes to Simplified Chinese and this time everything is translated.
From Simplified Chinese, it changes to English but then again the word “GENERAL” remains in Chinese (same as 4).
Language not being set to Spanish even though the culture is packaged and all is weird enough, but a single word not changing back to English and remaining in the previous language is blowing out my mind… Just in case, here’s what the cultures in our DefaultGame.ini look like:
Has anyone encountered anything similar (in other platforms even) or has any idea of what might be going on?
-The issue with two languages being shown at the same time affects not only the texts in this menu but in the whole game. For example, if we change from English to Simplified Chinese and then return to English, characters’ names in dialogues are shown in Chinese while the text they say is in English.
-The words and languages affected are always the same between play sessions. The word “General” shown in the video always stays in the language that was selected before returning to English. Spanish and Japanese never work.
This leads me to believe that the localization files are, for some reason, not being generated correctly when the game is packaged. However, if the console is set to English and the game starts in English by default, all the texts look fine (you can check this at the beginning of the video, the language is set to English and the word “General” is correct).
Have you tried exporting the files to the .po format and opening them in an external editor (like poedit) to check the bad items. Then maybe fix them up if need be and reimport?
Maybe a specific symbol is throwing off the translation? Are you using any non standard unicode for arrows or symbols within the text?
The .POs seem fine, all lines are translated as they should. We are not using any special characters either… What’s most weird is that everything works fine in the editor and in builds for other consoles.
We looked through the logs and, while cooking and packaging the content doesn’t throw any errors or warnings, the console’s log does print out an error when the user tries to change the language to Spanish in-game:
LogTextLocalizationResource: LocRes '../../../[game]/Content/Localization/Game/es-ES/Game.locres' could not be opened for reading!
This confirms that the texts in Spanish are not being compiled and included into the game files when generating a package, thus why the language is not applied. Question is… Why? It’s even more strange considering that Spanish is the default language of the game, as in all texts have been originally authored in Spanish. It also doesn’t explain why English gets mixed with Chinese but doesn’t throw any errors
Very late update, but apparently it got fixed after selecting all the languages in the Packaging settings. Only the localized languages are supposed to be selected, but for some reason selecting all of them made it work. Perhaps it forced the engine to recompile and regenerate all the localization files.
I had the same problem switching from any culture to English, and then I realized that I forgot to compile all of my texts in the localization dashboard, I compiled all other languages EXCEPT English, which makes it problematic switching to, hope this helps