[UEFN] Do players download all localized textures or only the ones of their selected language?

Hi there! I had a quick question about texture localization.

When enabling localization in a project, do players download all language textures or only the ones for their selected language ?

They will download all files from your project, including every language variant for each asset, for meshes, textures, materials and so on… They download everything even if is not currently being used.

Related to localization on the client, some stuff supports quick language swaps (change language in settings and instantly see the changes on the map), but other things does not support it. This mean that some things only gets updated properly when relaunching the game (such as localized materials and textures).

1 Like

Okay! Thank you, so I better optimize the data size lol

Hi there! Just another quick question related to localization, if I customized the material on the OG texture let’s say to increase brightness, will all the localized ones will automatically have the same material applied or I need apply it TO ALL of them?

The localized asset is the one that will be replaced:

  • If you localize a texture, the player will see the localized texture based on the selected language even if you did not localized the material that is using the base texture.
  • If you localize the material but not the texture, player will see the localized material fine, but if you change the base material, the localized variant will not be updated.

What you can do is using Material Instances. That way, you localize the instances and not the base material, and, any changes made to the base material will be propagated to the instances…

1 Like

Okay everything seems to work, but somethings odd. Some of my verse messages are properly localized in the .po file but some other aren’t, I’m using this to pass dynamically my strings:

Text := StringToMessage("You already completed this quest.")

StringToMessage<localizes><public>(Value:string) : message="{Value}" 

(Value : string).StringToMessage<public>() : message = StringToMessage(Value)

In this example, “You already completed this quest.” is not in the .po file for some reason. Did I do something wrong or?

String to Message does not get localized, because that is not a pre-made message bank to be compiled into the PO files…

You should do instead:

T_Loc_QuestComplete_Message<public><localizes>:message = "You already completed this quest"

This will properly generate the message on the message bank for auto localization picking it.

If you want to pass additional params, you should do that only for the params you need and not passing entire text (This way the text will be localized and the params will display on it):

T_Loc_PurchaseSuccess_Message<public><localizes>(ItemsPurchased:int, CoinsSpent:int):message = "You successfully purchased {ItemsPurchased} items for a total of {CoinsSpent} coins!"

The “StringToMessage” function is passing the entire string as a parameter to the message, and the message itself is blank, so no text is generated on the PO of that message to be translated…

1 Like

Thanks a lot for the explanation! :fire: