← Back to Archive

How to setup Localization in FMOD

02-04-2025 - #Localization #FMOD

Introduction

Localization can be a great way to reach a bigger audience.
Making your game more accessible through translation and audio dubbing helps players from different regions connect with your game on a deeper level. Since I haven't found many clear tutorials on how to set this up in FMOD, I thought it would be helpful to cover the process myself — and share a few tips along the way.

Let's walk through how to set up localization in FMOD, and as a bonus, how to implement it in Unreal Engine! ⬇️

🛠️ Setting Up FMOD Localization

1. Create Project Locales

Go to FMOD > Preferences > Assets and add all the locales you want to support.

  • Each locale must have a locale code (e.g., EN, CN, JP)
  • This code must match the folder name used in your file structure for FMOD to map everything correctly.

2. Organize Your Dialogue Folder

Inside your project directory, create a folder structure like this:

  • dialogue is your base folder (you can name it anything).
  • Each locale subfolder (e.g., EN, CN, JP) needs a keys.txt file referencing the audio files.
  • When filling out the keys.txt file, start each line with a keyword that will be used in the audio table. Follow it with a , and then specify the corresponding audio file for that keyword.

If you want to quickly test this setup, I've included a sample Dialogue locales folder with three different languages to get you started.

📦 Download Sample Localization Files

3. Create the Localization Table

In FMOD Studio:

  • Go to Event Editor > Banks.
  • Create a new audio table and link it to your localized folder (e.g., dialogue).
  • Each key in the table (e.g., Welcome) will point to the appropriate file in each locale folder, based on keys.txt.

4. Use Programmer Instruments

In your FMOD Event:

  1. Add a Programmer Instrument in your timeline.
  2. In the instrument's placeholder, drag your localization table.
  • You can then assign the key (e.g., Welcome) you want this instrument to reference. This tells FMOD to dynamically load the localized asset at runtime.

🧩 More Information

Built Banks with Locales

When using an audio table, FMOD will automatically generate a separate version of the bank for each locale you've defined.
These banks will include the locale code in their filename, separated by an underscore — for example: Dialogue_Bank_EN.bank, Dialogue_Bank_JP.bank, etc.

This makes it easy to load the correct localized version of your audio at runtime, based on the selected language.

In FMOD > Preferences > Build, it’s a good practice to split your banks into the following categories:

  • Metadata – for event metadata
  • Non-streaming – for small assets like footsteps, gunshots, and UI sounds
  • Streaming – for large files like dialogue or music

Why split?

  • Faster load times – Metadata loads instantly
  • Memory efficiency – Streaming banks are loaded only when needed
  • Better structure – Avoid bloating your initial load with large localized voice files

✅ Final Thoughts

FMOD's localization workflow is simple once you understand the folder structure, keys system, and the use of programmer instruments.

~ Vass out 👋