How to use the Translation Features
Every installation comes with demo content you can learn from. I will be using those examples here to demonstrate how to use the plugin.
WARNING: Do NOT put the runtime translation on tick or an event that occurs rapidly such as a widget binding, you will use all of your credits in just a few minutes if you do this.
Step 1. Using the Prebaked Translations.
Go to a widget or actor where you want a string or text to be translated, ensure that the text or string is a variable and not empty.
on the GPT Dialogue Subsystem node, get the "Get Translation At Key" and "Get Translation Key From Widget/Actor Text" or "Get Translation Key From Widget/Actor String" node.

Plug your text or string variable into the nodes shown in the above image. Ensure that the return value of Get Tranlsation Key From Widget/Actor node goes into Key Name.
Plug the Get Translation At Key Return value into either a widget binding or whatever you use to display the text to the user/player.
Now repeat this for any text or string that you want to have a baked translation.
Keep in mind that this does not work with dynamically built text, you will need to use the runtime translation for that which is covered below.
Once you have added all of the translation nodes to your desired actors or widgets, we can now bake it. this next step is automatic but may take some time depending on how much you are baking.
Open the GPT Tools drop down menu from the editor and open the translation dashboard. It should look like this.

Decide if you want to check for strings or just text variables. then choose the directories you want to search assets for. Please ensure you are browsing your project folder, windows explorer does not always open in your project directory.
Once you have selected your desired directories, click the Query Assets for Data, a loading bar will appear, this may take several seconds.
After you have queried for your assets, click the support all languages button(or manually fill them out if you only want to support a few). Then finally click Translate all data.
You will need to wait as it processes through each translation variant, in my project this took about an hour, as I had over 250 variants, each with 30 languages. This runs in the background, so you can work on other things while it does its thing, just do NOT close the editor utility widget.
Once the baking is complete, we need to copy the JSON to be packaged and change the culture.
Step 2. Copying The JSON to be packaged.
Open the plugin installation in windows explorer and find the NecessaryContent folder. From there open the TranslationJSON folder.
Copy the GPT Baked Translations file to your projects content directory, ideally this would be the same spot your package your firebasedetails json that was shown in the how to install guide.
Now that it is copied to your actual project, go to Project Settings->Packaging->Additional Non Asset Directories to Package and add the folder where you stored this JSON.
Thats it for setup, to use it we now just need to set the culture which I will go over next.
Step 3. Setting the culture.
To change the language in game you can use the Set Current Culture Node. Usually this is called in the settings, but it is up to you where you would like to allow the user to change it.

Below is a list of language codes you can use. Just use the ISO code like en or ar, do not type in the display name, I only have that for reference.
en DisplayName = "English",
ar DisplayName = "Arabic",
bg DisplayName = "Bulgarian",
cs DisplayName = "Czech",
da DisplayName = "Danish",
de DisplayName = "German",
el DisplayName = "Greek",
es DisplayName = "Spanish – Spain",
es_419 DisplayName = "Spanish – Latin America",
fi DisplayName = "Finnish",
fr DisplayName = "French",
hu DisplayName = "Hungarian",
id DisplayName = "Indonesian",
it DisplayName = "Italian",
ja DisplayName = "Japanese",
ko DisplayName = "Korean",
nl DisplayName = "Dutch",
no DisplayName = "Norwegian",
pl DisplayName = "Polish",
pt DisplayName = "Portuguese – Portugal",
pt_BR DisplayName = "Portuguese – Brazil",
ro DisplayName = "Romanian",
ru DisplayName = "Russian",
sv DisplayName = "Swedish",
th DisplayName = "Thai",
tr DisplayName = "Turkish",
uk DisplayName = "Ukrainian",
vi DisplayName = "Vietnamese",
zh_Hans DisplayName = "Chinese (Simplified)",
zh_Hant DisplayName = "Chinese (Traditional)"
Additionally, you will need to use a font that supports the characters of these languages. googles open source NOTO font, or the stock roboto are good for this. Here is the link to documentation on fonts, these are a core concept in unreal so I will not be going over them. https://dev.epicgames.com/documentation/en-us/unreal-engine/using-fonts-in-unreal-engine
Here is the link to google NOTO Fonts: https://fonts.google.com/noto
Optional: Using Runtime Translations.
If you have dynamically built strings that need to be translated, you can run them through the Translate Text Async node.
Call the translate text async node and plug whatever you would like to be translated into its input.
Then on both success and failure connect the Translated Text to whereever you display the text to the user. That is it, you now have text being translated. Keep in mind there may be a slight delay as it has to process in real time compared to pre baking.

Last updated