Game localization is the translation and adaptation of video games for different languages, cultures, and regions. Game developers must localize their games to bring them to the international market.
When converting a game into another language, there are a variety of factors to consider, including the engine in which the game was created. The two most popular game engines are Unity and Unreal Engine, each of which offers a different approach to localization.
In this article, we will examine how localization works in Unity and Unreal Engine and how these engines support the translation and adaptation of game content into different languages.
Game Localization in Unity
Unity is one of the most popular game engines. Developers use it to create games and apps for different platforms: PC, consoles, smartphones, etc.
How to Localize Games in Unity
1. Adding Text to the Game
Unity offers two ways to add text:
If your game contains a small amount of content that won’t receive updates, you can use Unity’s basic tool to add text to the UI.
For example, when a button is created in Unity, the button text is generated automatically. You simply add the necessary text (for example, “Next”), and it will be displayed on the button.
If your game contains a large number of text strings, or if the text changes dynamically depending the situation (for example, when translating into several different languages), we recommend using text-based dictionary files. Unity supports a variety of formats: TXT, CSV, XLIFF, JSON, PO, and more.
2. Configuring the Localization Manager
To manage localization dynamically, you’ll have to write code. This code will be responsible for:
- setting the current language
- loading the right dictionary
- displaying the translated text
3. Using Tools for Localization
There are two tools:
Built-In Unity Localization
This tool automates a number of processes: setting up locales, playing sounds, displaying strings and images on the screen for each locale, and so on.
The tool also supports “pseudolocalization,” which automatically replaces text with a simulated translation. This feature provides a preview of what the interface will look like in different languages.
Unity Localization also allows you to export data to Google Sheets.
Third-Party Plug-Ins (E.g., I2 Localization)
Before the release of the official Unity Localization tool, developers used third-party plug-ins. The most popular is I2 Localization by Inter Illusion.
Similar to Unity’s own tool, this plug-in supports the following features: Google Translate; automatic searching for missing, repeated, or unused translations; plurals; right-to-left (RTL) languages; font management; and more.
I2 Localization costs $45.
4. Text Formatting
In addition to translation, another aspect of adapting game text is its visual design. The following plug-ins can be used to format text:
This is Unity’s built-in tool for working with text. But it has a simplistic feature set and does not support text effects.
This plug-in allows for more complex text formatting. It lets you animate text and add a variety of effects.
In 2018, Unity acquired TextMesh Pro and made it free for Unity users.
Once all the translations have been added to the game, you must make sure the text is displayed correctly in all interface elements in all supported languages.
It is also important to test the localization on different devices. This is especially true for mobile games. Some languages might require more space on the screen or use special symbols that may display incorrectly on certain devices.
6. Exporting Localized Versions
Unity lets you compile a project for various platforms. You can compile different versions of a project for each localization or a single version that contains all the translations.
If you used external text files or Google Sheets to store translations, make sure that all these resources are accessible and linked to the project correctly.
7. Releasing Updates
- Supporting Existing Translations
When you add new content to a game, don’t forget that it needs to be translated as well. Translation can be done during the development process so that new versions can be released with finished localizations in all the necessary languages.
- Updating Localization Resources
Tools like Unity Localization usually make it easy to add new strings or change existing ones, which simplifies the process of updating translations.
Each new update with modified or added content must also be tested again.
Game Localization in Unreal Engine
Unreal Engine (UE) is another popular game engine with advanced features for translating game texts into different languages.
Unreal Engine Features:
- Core text for translation. In UE, localization is based on a special data type: FText.
- International settings. The International Components for Unicode (ICU) library helps with these. It takes the characteristics of every country and language into account. For example, it considers the proper way to write numbers and dates and which direction the text should be written in.
- UE uses the term “culture.” “Culture” refers to the set of text formatting rules for a particular region. Cultures determine the rules for handling numbers and special symbols, the format of time and dates, the use of plural forms, and other linguistic features.
- Not just text. In UE, it is also possible to translate sounds, images, animations, and videos.
- Translation control panel. The program has a special section for managing translations: the Localization Dashboard.
- Translation storage. All translations are stored in special files called Localization Targets.
How to Localize Games in Unreal Engine
The step-by-step process looks like this:
1. Adding Localized Components
UE adds interface text elements that need to be translated: buttons, menus, hints, etc.
2. Identifying Target Cultures
UE specifies a list of languages and regions that need to be adapted to new target audiences.
3. Linking Components
All localizable elements are linked to the UE localization system.
4. Creating Localized Objects
For each text element, an FText object with a special structure is created. The object lets you change a culture dynamically. On creation, each FText object is assigned a unique key that identifies the text element during localization.
5. Exporting Localized Data
A list of FText objects is exported to PO files that are then sent to translators.
6. Translating the Texts
Working with the PO files, the translators add the translations for the necessary languages.
7. Importing Translated Data
The finished PO files are imported back into the project and integrated into the FText objects.
8. Configuring Text Localization
The necessary fonts are added, and the display and special effects are configured for each culture.
9. Testing the Adapted Version
A test is run to check the display of translated elements in the game.
It is important to make sure that:
- All interface elements are displayed correctly in the applicable language.
- There are no issues with encoding or fonts.
- Line breaks are correct and text wraps properly.
- The audio corresponds to the subtitles in different languages.
- Numbers, dates, and currencies are displayed correctly.
10. Releasing the Adapted Version
After successful testing, the game’s final builds for each language and region can be released.
The versions are published in the corresponding app stores and game platforms of the selected regions.
Which to Choose
Both Unity and Unreal Engine offer powerful game localization tools.
Unity is easier to learn and has more training materials. Unity is good for:
- Mobile games
- Small indie projects
- Simple 2D and 3D games
Unreal Engine is more powerful graphics-wise but harder to learn. It is better for:
- Photorealistic games
- Complex 3D projects
- PC and console games
Game localization is a complex process that requires not only the translation of text, but also the consideration of cultural specificities.
Outsource your localization to Inlingo, and we’ll help you adapt your project for any target country.