The correct way of dialogue localization

Hi, I’ve been searching and trying for days, so if there’s some thread about this, sorry, I did not find it yet.
I’m looking for “correct” was to start up the localization process of dialogue sound files (in BP based project)
I’ve got all set up in the Loc. Dashboard along with target name, all paths, I even set the audio Dialogue filename format in settings.

I thought you:

  • You import your dialogue lines from CSV in Localization Dashboard ( ImportDialogiueScript)
  • this will add all your dialogues to selected culture and they start exsits in the game

  • You import your dialogue sounds in Localization Dashboard ( ImportDialogieWav )
  • this will pair existing recordings to existing dialogue lines and create DialogueWave assets to it

But I’m fighting with this and can’t get it working (it all works for texts and assets).
ImportScript and ImportDialogue both ends with errors that paths are not specified in CommonSettings. I’m checking the ini files directly and it’s all there. I’m a bit desperate :wink:

Please, what’s the correct order of the steps? For example - it seems, like engine expect the dialogue CSV to have all the cultures together in one file (DialogueScriptName=EX01Dialogue.csv) but if I just started, I thought I will import only your native main culture and “pair” the existing sounds to it first and THEN start the translation.

Also, the CSV expect GUID (I suppose), and I bet I’ll have the guid generated by the engine while creating the record, so I can’t know it in the time I’m putting the CSV together the first time…?

Am I missing something? Should I import my dialog lines into some DataTable first?
Again - I’m translating texts and assets just fine, I’m struggling only with dialogues waves and strings.

I bet I’m missing some small detail as usual :wink:
Thanks <3

EDIT: I’m finally getting some error messages :wink: ImportDialogieScript telling me that "Error: Failed to load contents of dialog script file ‘C:/Users/xxxx/Documents/Unreal Projects/LocTest/Content/Localization/Test/en/TestDialogue.csv’ for culture ‘en’. Is there somewhere a fileformat (or rather needed columns) that suppose to be in the csv?

The [GatherDialog] does not invoke any errors exept warning about “No destination path specified in the ‘CommonSettings’ section”, but I expect it to at least parse the wave files there - I have no clue what that commandlet expect to find there ;( An undiscovered Shakespearean sonnet? :wink:

Hmm… I’ve just find interesting Jamie’s reply in this thread

and he suggest that the DIalogueWave assets should be created FIRST (empty) with predefined texts and that’s how it’s feed to the system as translatable strings.

It sort of makes sense, but I bet that the input should be some kind of string table first - I can’t imagine Epic let us creating the DW assets by hand for thousands of lines, it’s automation candidate for sure, so I wonder if this is the “correct way” to implement the dialogue lines to the system the FIRST TIME… ? Empty DW assets? (Is yes, I have to write a python script for sure :wink:

Hi, in case somebod’s wondering how this ended up - it’s 2021 and we still don’t know. There were a lot of other work, but I’m basically starting over :wink:
Currently, I think that I will write a tool that will import our text, create the dialogue waves and pair them with sound waves - THEN we will run the localization dashboard and add new languages.
Or should I wait for Unreal 5? :wink:

See you all in 2022 :wink:

Hey @Jabbasan ! it’s 2023 and I’m having exactly the same thought process. Do we have a solution now, where I would start with a designer created dialog CSV to create the wav or be linked later with the wavs ?

Have you found a solution ?

Regards

I have it working in my project after watching this tutorial from Unreal Gems: https://www.youtube.com/watch?v=V_PMK713GoU

This should be the steps, but please let me know if anything is unclear or if additional information is needed:

  1. Manually create RawAudio folder in your project as well as culture sub-folders (in my case I have folders named “en”, “sv-SE” and “is-IS”). Add your localized wave files in these folders.

  2. Create a folder for your dialogues in the Content folder. In my case, I’ve created Audio/Dialog and I’ve duplicated the sound files from RawAudio en folder (since that’s the setup used in the tutorial video).

  3. Inside this folder, add a Dialogue Voice file and configure the file as you see fit and a Dialogue Wave file for each dialogue you want to localize. Inside each Dialogue Wave file you fill out at least “Speaker” (the Dialogue Voice you created, remove directed at if you’re not going to use it), “Sound Wave”, and “Spoken Text”.

Note that if you have multiple dialogue contexts you’ll get multiple translations for the string, as the grammar can differ based on the information provided in Dialogue Voice.

  1. Open Localization Dashboard and add your Dialogue folder to Gather Text > Include Path Wildcards list. Add the path to your RawAudio folder under Import Dialogue > Raw Audio Path and set Import Dialogue > Imported Dialogue Folder to your Dialogue folder.

Note that if you’re using sound waves from one of your localized folders in RawAudio (for example “en”), rather than duplicates in your Dialogue folder, you should probably enable “Import Native as Source”.

Now, run “Gather text” which should add translation text from your Dialogue Wave’s spoken text, and edit translations. When that’s done, press “Count Words”.

  1. Press “Export Scripts” and select folder ´Content/Localization/Game´, which should exist with culture sub-folders. This will generate .csv files in each sub-folder, open one of them and see the dialogues filenames have guids.

  2. Rename the wave files for each dialogue in each language in the RawAudio folder to match the guids in the .csv file.

  3. Run “Import Dialogue” and “Compile Text”.

You can test the dialogue with “Play Dialogue 2D”.