Localization works except for one field

Hey there,

currently I try to translate my game and it’s working great, except one single textfield.

I created a German and English culture and packaged the game with English culture. Everything is in english except the Description text for the interactive object highlighted in the image (red arrow). All other fields are translated correctly (including the field with the green arrow).

I checked if it might use the native language (German), so I added an additional tag to the native translation but it turns out that it is just what has been typed directly in the field. So it seems the assigning process isn’t working properly.

Do you have any suggestions or ideas how to fix this? Would be great if you could answer soon as I’m actually supposed to submit it sometime today or tomorrow.

Thank you :slight_smile:

So just to confirm, German is the native (source) language for your text, and English is a translation from that?

How did you edit the translations, did you use the PO files (recommended), or hand edit the archives (not recommended)?

If you used the PO files, could you find the entry in the German and English PO files and include that info here so that I can sanity check some things.

Finally, can you check to see whether the text that is missing its translation has a “package ID” assigned to it (you can see this by clicking the drop-down arrow next to the editable text field). If it does, does the text that is correctly translated also have one? There is a known issue in 4.15 (fixed in newer versions) where building lighting can cause the package localisation IDs for texts within that world to be reset, which results in their keys changing, and translations no longer being applied correctly.

Yes, German is the native language and English is a translation.

I edited the translation via the the localization dashboard (green circle)

Both entries were listed. I also checked the IDs on the arcade machine in the foreground:

there are no IDs when I check the properties in the level, however the ones in the Blueprint have an ID. The entries are present in the translation list (those are from the native list):

The description isn’t translated in any way. I also checked the arcade machine behind it, which is translated perfectly fine, but I don’t see much difference there:

Regarding the engine version, I tried to upgrade to 4.17 yesterday but I ended up in receiving a “A null object was passed as a world context object” whenever I tried to run Gather Words (link to my post on this topic: "Error: Script Msg: A null object was passed as a world context object to UEngine::GetWorldFromContextObject()" after compiling AIController blueprint with AIPerception component - AI - Unreal Engine Forums), so I had to downgrade to a version that seemed to work. Couldn’t try 4.16 yet, as it’s a bit time critical. solved the problem in the meantime by hard-coding the translation into the field (it just has to be English for now) but at some point it’s got to be properly localized.

Oh, I forgot: I added a second arcade machine of the one that isn’t translated properly but there the translation isn’t working either

You mean in the key box of the description field within the object placed in the level?

Yeah. I have no idea how it’s managed to get into that state though…

I’ll try and get back to you, thanks in the meantime :slight_smile:

Ah, the missing key is probably the issue as the gatherer will generate one while it gathers and it will never match again. Could you try clicking in the key box and pressing return, this will assign a new key that should persist once you save the level (you’ll have to gather again).

Okay, so you changed the source to “dummy content”, or changed the native translation to “dummy content”? Those do different things (the former also requires a gather), but both with break any existing translation link due to the native text changing… that’s actually something that’s confusing about the translation editor since it doesn’t reflect that properly in its UI (the PO files make this much more clear).

Once you gave that property a key, did the key remain stable after you saved and reloaded the level?

okay, I pressed enter in the key box and saved the level. Then I gathered again and finally built the entire game with English culture but that particular box is still in it’s default configuration. I changed the content of the box into some dummy-content (it literally says dummy context now) so it can be distinguished from the native translation set and in the packed game it says just “dummy content” everything else is translated as expected.

No, it remained an empty box. All other arcade machine objects have an empty box for this particular field as well, by the way, but that doesn’t affect the translation somehow. All other arcade machines are translated.

I had a closer look at the list of source and translations and couldn’t find an entry for ‘dummy content’ so it seems that text box of the object placed in the world isn’t considered during the gather process at all. I tried changing the box content of the arcade machine on the right of the one that’s not properly translated and gathered again. Turns out that the entry in the source-translation-list remained the same, so it seems like only the values in the blueprints are gathered and the blueprint instances in the level are disregarded. That might explain why there are no key entries present in the instances.

edit: by the way, can you merge existing translations somehow? as I’m not sure if I lose translations if I keep experimenting and it would be quite a pain if I had to translate everything all over again

Hey, I replied to your comment but somehow the reply vanished. Is it somewhere in the system or do you want me to answer again?

I have it in my email. I’d assumed you’d deleted it since you found something out (the actions list show you adding and then editing the comment).

I’ll quote it below:

No, it remained an empty box. All other arcade machine objects have an empty box for this particular field as well, by the way, but that doesn’t affect the translation somehow. All other arcade machines are translated.
I had a closer look at the list of source and translations and couldn’t find an entry for ‘dummy content’ so it seems that text box of the object placed in the world isn’t considered during the gather process at all. I tried changing the box content of the arcade machine on the right of the one that’s not properly translated and gathered again. Turns out that the entry in the source-translation-list remained the same, so it seems like only the values in the blueprints are gathered and the blueprint instances in the level are disregarded. That might explain why there are no key entries present in the instances.

So to summarise, it looks like you have a BP (a data only BP from your screenshot) that has some default text values in it (these defaults are gathered), but when instanced into the world any text overrides are somehow not-keyed, and don’t gather. I’ve never heard of that happening before, but I’ll see if I can repro it.

Just to sanity check (and I’m sure this isn’t the case), but are you definitely gathering text from this world? (it’s not excluded by your gather filters somehow?)

Hey, my edit was just the question if translations can be merged somehow because I was afraid I could lose some work if I kept on experimenting. Then I received the message that my comment would be stored so a mod could check on it and unlock it for public reading.

I could send you my files if that might help you. And I’m pretty sure I’m gathering from this world, I mean, everything else in the level is properly translated as well as any text in the other levels I have, even the content in the title-box is translated as intended.

Ah, you used a word that was flagged by our profanity filter (it’s very sensitive… I trip it sometimes). I’ve approved the comment and edited it to protect the innocent :slight_smile:

What exactly do you mean when you say “merge” translations?

Oh, just to make sure if it’s not a wrong setting, I’ll post you a picture of all paths once I’m back at home

The translations are tied to the identity (the namespace and key) of the text, so as long as those remain consistent you should be fine. They’re certainly not order based if that’s what you’re thinking.

you know when you export a translation, there’s just a particular set in it… if you later change the translation list somehow and you import the earlier translation… won’t that collide with the current setup somehow? e.g. if you change something in the list do you have to translate all over again?

alright, thanks. Then let me know if you could reproduce it or if you need any files from me to further investigate