How to localise with string tables in Blueprints only project

With the release of the 4.16 string tables are supportet by the UE. Further it is sayed that UE4 now has support for localized String Tables. But I cannot figur out, how the localisation works in an all Blueprint project. I have createt a string table, and referenced the text from textfield by specifing a string table and key. That works very nice.

So far so good, but how can I do the localisation? How does it work that the UE loads the strings from another stringtable based on the language settings from e.g. in game or based on the system language setting? Unfortunately I did not find any example or documentation referring that question…

1 Like

Hi there.
I subscibed your question because this is something fascinated me as well :slight_smile:

What you need to do.

  1. Create string table and fill with values.
  2. Open Localization Dashboard ( Window → Localization Dashboard )
  3. Create/Edit your game targer under “Game Targets” ( eg. Gameplay target)
  4. in Gameplay target you need to add path to your string table to “Include Path Wildcards”
    ( also it could be good to read something about Localization Dashboard)
  5. Use Gather Text at the bottom. This should take your texts from string table and create localized table (for native ue4 editor laguage I quess )
  6. Now feel free to add new languages.

Let me know if there is some issue with procedure I described.

Good luck

Jakub

PS: I have some issues with importing & exporting individual language translations from Localization Dashboard. But importing & exporting of all of them (the bigger buttons) works fine. Also you might like Google Translation Toolkit.

Thank you for the description, I tried it and it worked out :slight_smile:

And thank you for the step-by-step introduction :slight_smile:

I had this same issue and this was very helpful!! I managed to gather the strings from the string table but the game is not using the translations I input in the dashboard. I confirmed they exist in the ,archive and .po files as well but it is still just outputting the SourceString from the string table no matter what culture I set it to? Am I still missing something?

How are you changing localization culture ?

I was using a console command SetCulture Culture[FString] which in code does this

  • FInternationalization::Get().SetForceMode(EInternationalizationForceMode::InternationalizationForceMode_Game);
  • FInternationalization::Get().SetCurrentCulture(Culture);
  • FInternationalization::Get().SetForceMode(EInternationalizationForceMode::InternationalizationForceMode_None);

I also have a brand new project set up for testing with only the native language (English / en) and a translation set up for it, which should be loaded by default, I thought. I still don’t see my translation output (still just the Source String from the String Table). Sounds like I am missing something here. If you could point me in the right direction it would be much appreciated.

Just to letting this thread know that I believe I sorted out my issues. I think that the way we were setting the culture from our previous project was just not valid anymore. When I set the culture in the advanced settings for standalone player and launched it I saw the translations outputting in my separate test project. Thanks for the advice and pointing me in the right direction!!

Thanks for letting us know! I did also have problems with changing localization in PIE, but in Standalone it was working fine.

I am still not seeing the text updating in widgets though. Even in Standalone. I do see them updated when I just Print String. Not sure what needs to be done to get the widgets updating?