[Localization] Translations of different languages get mixed up in one .po file

Hi,
We are adding multiple languages for our game and getting texts localized by external translators, so we are exporting the .po local files of different cultures and re-importing them after being translated.

The problem now is: If some texts are not localized in one language, but are in another these texts are just replaced with the translation of another language.

For example:

  • the text “my text” has no translation in the spanish .po file (= no entry)
  • the text “my text” is translated in the german .po file
  • in the game and in the .po file (after export) of the spanish language version now “my text” is called “mein text” (= german translation), instead of still being empty

With multiple languages this results in a huge mess of different languages for one version.
The biggest problem is that after exporting the .po file this multiple languages are also in the .po file, so our translators can not just translate all the empty fields, but have to check every single text if this is not the translation in a different language (which is nearly impossible to get right if you are having e.g. different versions of Spanish in the game).

Is there anything I can do to prevent texts from other languages automatically replacing missing texts? Or am I just doing something very wrong here?
Thanks for your help!

Hello VINDERS,

I’m trying to reproduce this behavior but I’m not seeing it. I’ll explain what I did so we can try to compare and see what may be different in our setups.

I created a test project and added the following cultures:

As for the 5 words; they were made up of two separate Text variables. I just had the level blueprint printing both on BeginPlay for testing purposes. After setting this up, I exported the text and added translations all of the text for German but only for one of the strings for Spanish. I did this with poedit. I then imported the text and tested using Standalone game after changing the additional launch parameters to -culture=de and -culture=es for the two different languages.

As expected, the German one output both of the German localizations provided. The Spanish one output the translated string and left the other string in the native (english) translation.

Edit: I also saw your mention of multiple languages being in the same .po file. When I go to export, all of my .po files are split up by culture in their own files under Content/Localization/Game. Are you not getting this same behavior?

Hi,
thanks a lot for the swift answer.
In the meanwhile I completly cleaned out all languages and reimported them again with some older localization .po files and now (or for now) it is working without this behaviour.

For you to maybe anyhow reproduce I added an example opened in the poedit tool. This was the localization file of the spanish translation. You can see that some text ids have japanese translation. These text didn’t have spanish translation in the file before I imported it in the engine. After exporting (and in the game, after pressing play) it was filled with japanese words from our japanese .po file.

The cultures all have their seperate .po file and folder. the japanese culture is located directly above the spanish culture in the localization dashboard’s “culture list”.

I had a similar issue with a PO I imported. I’m early in the process of localizing our game, so I don’t have much data. I added an Arabic translation, with only a couple of lines filled in. In the first version of the .archive, several lines had

   "Translation":	{ "Text": "" },

but when I exported a PO from it, got some more lines translated, and re-imported the new PO, the new archive often had the “Text” field filled in with the English translation.