SlideShare a Scribd company logo
Localization feature of UE4
Epic Games Japan / Support Engineer
Ken Kuwano
#UE4DD | @UNREALENGINE
Contents
● Overview
● Basic Features
● Specified Features
● Misc
#UE4DD | @UNREALENGINE
Contents
● Overview
● Basic Features
● Specified Features
● Misc
#UE4DD | @UNREALENGINE
Localization of the game
● Localize the game
● Goal :Release to many regions
● How :Implementation to many regions
#UE4DD | @UNREALENGINE
Assets needing localization
● Text
● Content
● Font
● Asset
● Texture
● Voice,Sound
● Movie, Media
● Cutscene, Sequencer
● Animation
#UE4DD | @UNREALENGINE
Localization of the game
● Localize the game
● Goal :Release to many regions
● How :Implementation to many regions
● Localize the game made using UE4
● How do we localize using UE4?
● Asset :management, sharing
● Efficiency :workflow, implementation
● Effect :memory, performance
Focus of this slide
#UE4DD | @UNREALENGINE
Localize?
Localization (L10N)
● Localization is the process of adapting internationalized
software for a specific region or language by translating
text and adding locale specific components.
Internationalization (I18N)
● Internationalization is the process of designing a software
application so that it can be adapted to various languages
and regions without engineering changes.
#UE4DD | @UNREALENGINE
https://docs.unrealengine.com/en-US/Gameplay/Localization/index.html
Localization of UE4
#UE4DD | @UNREALENGINE
Contents
● Overview
● Basic Features
● Specified Features
● Misc
#UE4DD | @UNREALENGINE
Basic Features
● Text Localization Process
● Asset Localization Process
#UE4DD | @UNREALENGINE
Text Localization Process
Editor (en) Package game (ja)
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Language
Translate
Source
Text
Editor (en) Package game (ja)
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Language
Translate
Source
Text
Gather source text
from asset what we’d
like to localize.
OPTIONS
QUIT
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Language
Translate
Source
Text
Make translation text
with reference to
gathered text.
OPTIONS
QUIT
オプション
終了
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Lauguage
Translate
Source
Text
Make package game
including translation
text.
Package
OPTIONS
QUIT
オプション
終了
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Language
Translate
Source
Text
Display text depending
on required language.
Package
OPTIONS
QUIT
オプション
終了
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Language
Translate
Source
Text
Package
OPTIONS
QUIT
オプション
終了
Package
OPTIONS
QUIT
オプション
終了
OPTIONS
QUIT
オプション
終了
OPTIONS
QUIT
Localization Dashboard
#UE4DD | @UNREALENGINE
Gathering Text
Localization Dashboard
#UE4DD | @UNREALENGINE
Gathering Text
#UE4DD | @UNREALENGINE
Gather and Localize Text
Blue
Print
C++
① Gather text ② Create text
Loc
Res
③ Show text
Display on Editor Display on Game
#UE4DD | @UNREALENGINE
Which text is gathered?
● Blueprint:FText, STextBlock
● C++/.ini:LOCTEXT, NSLOCTEXT
#UE4DD | @UNREALENGINE
Unique Text (namespace/key/value)
#UE4DD | @UNREALENGINE
● Using FormatText for loacalization
● Blackbox
”Discard <Item Name>”
● Number
“Got <Number> Items”
● Numeric
“1Hit”, ”2Hits”, etc...
● Unit
“USD”, ”yard”, etc...
Displaying text
#UE4DD | @UNREALENGINE
There {NumCats}|plural(one=is,other=are) {NumCats} {NumCats}|plural(one=cat,other=cats)
one=”is”, other=”are” number one=”cat”, other=”cats”
Plural Forms (en)
#UE4DD | @UNREALENGINE
There is 1 cat
There are 2 cats
(en)
Input translation text with
Localization Dashboard
1匹の猫がいる
2匹の猫がいる
(ja)
Plural Forms (en→ja)
#UE4DD | @UNREALENGINE
Auto formatting text
Text is converted for the culture original format
automatically.
1) Number:12345.67
● ja : 12,345.67 ⇒ Grouping = ”,” , Decimal = ”.”
● de : 12.345,67 ⇒ Grouping = ”.” , Decimal = ”,”
● fr : 12 345,67 ⇒ Grouping = ” ” , Decimal = ”,”
2) Date:2020年10月31日
● ja : 2019/10/31 ⇒ yyyy/mm/dd
● en : Oct 31, 2019 ⇒ mm/dd/yyyy
● fr : 31 oct. 2019 ⇒ dd-mm-yyyy
#UE4DD | @UNREALENGINE
Language Plural Rules
http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Language
Translate
Source
Text
Package
OPTIONS
QUIT
オプション
終了
Package
OPTIONS
QUIT
オプション
終了
OPTIONS
QUIT
オプション
終了
OPTIONS
QUIT
Localization Dashboard .ini file/Console Command
#UE4DD | @UNREALENGINE
Setting current language of text
● Startup game
● Launch argument
● Configuration (.ini)
● System Language (OS)
● Runtime
● Console Command
● Call culture switching function
#UE4DD | @UNREALENGINE
Switch display of the language API
Switch displaying text
#UE4DD | @UNREALENGINE
Switch content display language
Culture
Language
Locale
Asset Group
Texts and Assets
Format display (Number/Date/Time)
Specific Assets and Classes
Text
#UE4DD | @UNREALENGINE
Switch culture
● Accoding to set many priority rules, there are several
ways to specify the language of the game at launch
game
● Priority (Top is highest)
● “-culture” value with launch argument
● ”culture” value on xxxGame.ini
● ”culture” value on xxxEngine.ini
● System Language (OS)
#UE4DD | @UNREALENGINE
Text Localization Process
Gather
Source
Text
Package
Switch
Language
Translate
Source
Text
Display in editor in English
→ Display package in Japanese
#UE4DD | @UNREALENGINE
Basic Features
● Text Localization Process
● Asset Localization Process
#UE4DD | @UNREALENGINE
Asset Localization Process
Editor (en) Package game (ja)
#UE4DD | @UNREALENGINE
Asset Localization Process
Package
Switch
Language
Placed
Asset
Editor (en) Package game (ja)
#UE4DD | @UNREALENGINE
Asset Localization Process
Package
Switch
Language
Placed
Asset
Placed target asset in
specified path.
Img (en)
Img (ja)
#UE4DD | @UNREALENGINE
Asset Localization Process
Package
Switch
Language
Placed
Asset
Make package game
including translation
text.
Package
Img (en)
Img (ja)
#UE4DD | @UNREALENGINE
Asset Localization Process
Package
Switch
Language
Placed
Asset
Package
Img (en)
Img (ja)
Display text depending
on required language.
#UE4DD | @UNREALENGINE
Asset Localization Process
Package
Switch
Language
Placed
Asset
Package
Img (en)
Img (ja)
Package
Img (en)
Img (ja)
Img (en)
Img (ja)
Editor
#UE4DD | @UNREALENGINE
Placed Asset
● Apply Asset Localization
● Placed asset under”Content/L10N/[language]”
Source Texture Path
Content/UI/Texture/Logo/LogoBk
Localization Texture Path (ja)
Content/L10N/ja/UI/Texture/Logo/LogoBk
#UE4DD | @UNREALENGINE
Placed Asset
● Apply Asset Localization
● Select Asset Localization in Content Browser
#UE4DD | @UNREALENGINE
Asset Localization Process
Package
Switch
Language
Placed
Asset
Package
Img (en)
Img (ja)
Package
Img (en)
Img (ja)
Img (en)
Img (ja)
Editor .ini file/Console Command
#UE4DD | @UNREALENGINE
Setting current language of asset
● Startup game
● Launch argument
● Configuration (.ini)
● System Language (OS)
● Runtime
● Console Command
● Call culture switching function
Same as the text
#UE4DD | @UNREALENGINE
Switch display of the language API
Switch displaying
asset
#UE4DD | @UNREALENGINE
Switch content display language
Culture
Language
Locale
Asset Group
Texts and Assets
Format display (Number/Date/Time)
Specific Assets and Classes
Asset
#UE4DD | @UNREALENGINE
Switching Asset Group
● Group assets and reuse them across languages
● Case where only some assets are used in different languages.
● The text display is “ja”, but some of Audio wants to use “en”.
● Setting on xxxGame.ini and xxxEngine.ini
#UE4DD | @UNREALENGINE
Asset Group
● Not using Asset Group
If we are setting the current culture is ja,
all texts and assets are displayed in ja
Text (ja) Asset (ja)
#UE4DD | @UNREALENGINE
Asset Group
Audio (it)
Sound Wave
Sound Cue
● Using Asset Group
Text (ja)
Other
Asset (ja)
If we’re grouping ”Sound Wave” and ”Sound Cue” during the current culture is in ja,
”Sound Wave” and ”Sound Cue” are using in it language’s assets.
Class
Asset Group
#UE4DD | @UNREALENGINE
● Setting the class to be linked to Asset Group
● Setting the language to which Asset Group is applied
Switching Asset Group
If the above settings are made,
Sound Wave and Sound Cue use “en” assets from startup.
#UE4DD | @UNREALENGINE
Asset Localization Process
Package
Switch
Language
Placed
Asset
Display in editor in English
→ Display package in Japanese
#UE4DD | @UNREALENGINE
Contents
● Overview
● Basic Features
● Specified Features
● Misc
#UE4DD | @UNREALENGINE
Specified Features
● Font
● Subtitle and Voice
● Subtitle of Media Framework
#UE4DD | @UNREALENGINE
Localization for Font asset
● What about text localization?
● Want to change the font by language...
● Want to change the font size by language...
● How do we localize font asset?
● Use Asset Localization
● Use Sub Culture, and Sub Font Family
#UE4DD | @UNREALENGINE
Apply Font Localization (1)
● Apply fonts by language with Asset Localization
Font (common)
Font (th)Font (ja)
#UE4DD | @UNREALENGINE
Apply Font Localization (2)
● Use SubCulture and SubFont with Font Asset
Font
(common) Font Face
Fallback Font Family
Font Face
Sub Font Family
(ja)
Font Face
Sub Font Family
(th)
Font Face
Default Font Family
#UE4DD | @UNREALENGINE
Font
Sub Font
Default Font
Fallback Font
#UE4DD | @UNREALENGINE
Font
Applying language
Character range
Applying font
#UE4DD | @UNREALENGINE
Subtitle and Voice localization
● Build dialogue system using dialogue assets
This message is
a subtitle test.
https://docs.unrealengine.com/en-US/Engine/Audio/Dialogue/index.html
#UE4DD | @UNREALENGINE
Subtitle and Voice localization
● Dialogue System (for each sentence)
● Dialogue Wave :Dialogue Data
● Dialogue Voice :Talker Data
● Sound Wave :Voice Sound
Dialogue Wave Dialogue Voice
#UE4DD | @UNREALENGINE
Dialogue Wave
Subtitle text
Talker info
Voice asset
#UE4DD | @UNREALENGINE
Localization of dialogue .wav
Apply text localization
Apply asset localization
#UE4DD | @UNREALENGINE
Localization for subtitle of Media framework
● Switch media player subtitles by language
● Unreleased Features
● If you want to use then, need to modify the engine code.
● It’s necessary to add subtitle data playback process.
#UE4DD | @UNREALENGINE
● Subtitle data
● Editable on editor
● Crate assets by language
● Capable of importing .srt file
Basic Overlays
Localized Overlays
Subtitles table
Basic Overlays
Subtitle data (ja)
Basic Overlays
Subtitle data (en)
#UE4DD | @UNREALENGINE
● Assets that manage subtitles by language
● Set Basic Overlays for each language
Localized Overlays
Localized Overlays
Subtitles table
Basic Overlays
Subtitle data (ja)
Basic Overlays
Subtitle data (en)
#UE4DD | @UNREALENGINE
Change to Return true, so it can be displayed on media
asset.
Unlock overlay features
#UE4DD | @UNREALENGINE
Subtitle Data
Project
Engine
Widget
Playback media
Subtitle
Manager
Control subtitles
Subtitle Player
Playback subtitles
Localized
Overlays
Sutitiles for localization
Basic Overlays
Subtitle data (ja)
Basic Overlays
Subtitle data (en)
Basic Overlays
Subtitle data (fr)
Overlay and related classes
#UE4DD | @UNREALENGINE
Subtitle Player Implementation Example
void UMyMediaSubtitlesPlayer::Play()
{
bEnabled = true;
}
void UMyMediaSubtitlesPlayer::Stop()
{
bEnabled = false;
FSubtitleManager::GetSubtitleManager()->SetMovieSubtitle(this, TArray<FString>());
}
#UE4DD | @UNREALENGINE
Subtitle Player Implementation Example
void UMyMediaSubtitlesPlayer::Tick(float DeltaSeconds)
{
if (bEnabled && SourceSubtitles)
{
UMediaPlayer* MediaPlayerPtr = MediaPlayer.Get();
if (MediaPlayerPtr)
{
FTimespan CurrentTime = MediaPlayerPtr->GetTime();
TArray<FOverlayItem> CurrentSubtitles;
SourceSubtitles->GetOverlaysForTime(CurrentTime, CurrentSubtitles);
TArray<FString> SubtitlesText;
for (const FOverlayItem& Subtitle : CurrentSubtitles)
{
SubtitlesText.Add(Subtitle.Text);
}
FSubtitleManager::GetSubtitleManager()->SetMovieSubtitle(this, SubtitlesText);
}
else
{
Stop();
}
}
}
#UE4DD | @UNREALENGINE
Contents
● Overview
● Basic Features
● Specified Features
● Misc
#UE4DD | @UNREALENGINE
Misc
● Localization Preview
● Translation Picker
● String Table
#UE4DD | @UNREALENGINE
Localization Preview
● Feature to preview Localization Text on UMG Designer
● Not compatiable with Localization Asset
#UE4DD | @UNREALENGINE
Preview text updates after switching language
Localization Preview
Comparison of localization preview
Update text
(en→ja)
Applu preview
#UE4DD | @UNREALENGINE
Localization Preview
● Preview Game Language (Editor Preference)
● If Preview language is selected, it’s affected as default
Affect from Editor Preferences
#UE4DD | @UNREALENGINE
Localization Preview
● Need to localize the text before using this feature.
localizing text... can select preview languages
#UE4DD | @UNREALENGINE
Translation Picker
● Feature to extract text localization info from editor
● Can edit localization text without accesing dashboard
#UE4DD | @UNREALENGINE
Translation Picker
● Enable picker
● Enable Translation Picker in Editor Preferences (Experimental)
● Show picker window
● From Window or select icon in translation editor
#UE4DD | @UNREALENGINE
Translation Picker
Can edit translation text directly in PIE
#UE4DD | @UNREALENGINE
String Table
● Registering fixed phrases and strings
● Can import/export from .csv file
#UE4DD | @UNREALENGINE
String Table
● Value can be referenced by specifying Key and Text
Set Table and Key
Affect Value
#UE4DD | @UNREALENGINE
String Table
● Note
● Conflict editng table
● Hard reference to assets
#UE4DD | @UNREALENGINE
Project Settings
● The settings are required when Packaging
● Localizations to Package
● Languages for Cook/Stage/Package
● Internationalization Support
● Language set for internationalized data
#UE4DD | @UNREALENGINE
Project Settings
● Localizations to Packages
● Settings that specify the language to be localized
● When not selected, it doesn’t include localization asset to package
Select from localized languages...Select target languages manually...
#UE4DD | @UNREALENGINE
Project Settings
● How to specifiy a language for each platform
● Override language specification in xxxGame.ini
● Following example, only “en” and “ja” assets and texts are
included when Packaging
#UE4DD | @UNREALENGINE
● Internationalization Support
● Select preset including target language from the list
Project Settings
Preset Languages Size (MB)
English English ~1.77
EFIGS English, French, Italian, German, Spanish ~2.38
EFIGSCJK English, French, Italian, German, Spanish, Chinese, Korean, Japanese ~5.99
CJK Chinese, Korean, Japanese ~5.16
All All Languages ~15.3
Language Preset
#UE4DD | @UNREALENGINE
In a nutshell
● UE4 has basic features for localization
● It’s better to use your own system or workflow
(depending on requirements)
● Consider localization plans early
#UE4DD | @UNREALENGINE
Extra
● Localization Dashboard
● Settings
#UE4DD | @UNREALENGINE
Localization Dashboard
#UE4DD | @UNREALENGINE
Localization Dashboard
#UE4DD | @UNREALENGINE
Localization Dashboard
● Text Localization feature
● Gather text from assets and source code
● Export translated text and share it
● Manage and edit translated texts in languages
● Manage localization progress of translated texts
● Supporting Text Localization feature
● Can work with third-party provider service
● Can be linked with source control
● Can preview translated text and preview font
● Can check text conflicts
#UE4DD | @UNREALENGINE
Localization Dashboard
● Pros
● Localization is completed in UE4 Editor
● Immediate confirmation after editing localized text
● Gather text over a wide range including source meta
● Cons
● If edit source text, affects all languages content
● Experimental features (but can be used)
#UE4DD | @UNREALENGINE
Localization Dashbord Overview
Target
Target DetailService Provider
Cultures
Gather Text
Misc
#UE4DD | @UNREALENGINE
Localization Dashbord Overview
Target
Target Detail
Cultures
Gather Text
Service Provider
Misc
#UE4DD | @UNREALENGINE
Text localize quick start flow
① Add localization language
② Set target assets
③ Gather text
④Input translate text
⑤ Compile translated text
⑥ Update word count
#UE4DD | @UNREALENGINE
Localization Dashbord Overview
#UE4DD | @UNREALENGINE
Localization Dashbord Overview
Target
Target Detail
Cultures
Gather Text
Service Provider
Misc
#UE4DD | @UNREALENGINE
● Linked Service Provider (XLoc, OneSky)
● Linked Source Control
Localization Service
#UE4DD | @UNREALENGINE
Localization Service (One Sky)
https://www.oneskyapp.com/
#UE4DD | @UNREALENGINE
Localization Service (XLoc)
http://www.xloc.com/
#UE4DD | @UNREALENGINE
Editing .po file (Poedit)
https://poedit.net/
#UE4DD | @UNREALENGINE
Localization Dashboard - Localization Service
Localization Service Provider
Localization Service Provider Select active service provider when using a specific localization.
Source Control
Enable Source Control If source control and service provider are available, connect to
source control during localization operations automatically.
Enable Auto Submit If source control and service providers are available, allow auto
submit during localization operations.
#UE4DD | @UNREALENGINE
Localization Dashbord Overview
Target
Target Detail
Cultures
Gather Text
Service Provider
Misc
#UE4DD | @UNREALENGINE
● Localization Target
● Classified by localization category
● Game Targets
For project code/asset
● Engine Targets
For engine code/asset
Localization Target
#UE4DD | @UNREALENGINE
Localization Dashboard - Localization Target
Target
Name Specified for localization target.
Conflict Status Show conflict status of localize text.
Loading Policy Specified loading conditions for localized text of plugin and DLC.
#UE4DD | @UNREALENGINE
Localization Target (Conflict Status)
Identify by namespace and key
(unique)
#UE4DD | @UNREALENGINE
Localization Target (Conflict Status)
Not conflict : Texts are defined by different namespace or key
#UE4DD | @UNREALENGINE
Localization Target (Conflict Status)
Conflict : Texts are assigned by same namespace and key
#UE4DD | @UNREALENGINE
Localization Target (Conflict Status)
Conflict Status Description
Clear Clear state of gather unique to all text.
Conflicts Present It’s necessary to resolve conflict text.
Unknown State before key match check.
Update conflict status by gather text.
Check and correct from ✖ button whether there is a conflict or not
#UE4DD | @UNREALENGINE
Localization Dashbord Overview
Cultures
Gather Text
Service Provider
Target
Target Detail
Misc
#UE4DD | @UNREALENGINE
Gather Text
● Target of gathering text from content
(code/files/assets)
● Gather from Text Files
Text file (.cpp/.h/.ini )
● Gather from Packages
Asset (.uasset/.umap)
● Gather from Meta Data
Meta tag of UPROPERTY
#UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text
Gather Text
Target Dependencies Text present in these targets will not be duplicated in this target.
Additional Manifest Dependencies Text present in these manifests will not be duplicated in this
target.
Required Module Names The names of modules which must be loaded when gathering text.
Use to gather from packages or metadata sourced from a module
that isn't the primary game module.
#UE4DD | @UNREALENGINE
Gather Text (Gather from Text Files)
#UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text
Gather Text
Search Directories The paths of directories to be searched recursively for text files,
specified relative to the project's root, which may be parsed for
text to gather.
Exclude Path Wildcards Text files whose paths match these wildcard patterns will be
excluded from gathering.
File Extensions Text files whose names match these wildcard patterns may be
parsed for text to gather.
Should Gather from Editor Only Data If enabled, data that is specified as editor-only may be processed
for gathering.
#UE4DD | @UNREALENGINE
Gather Text (Gather from Packages)
#UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text
Gather Text
Include Path Wildcards Packages whose paths match these wildcard patterns, specified
relative to the project's root, may be processed for gathering.
Exclude Path Wildcards Packages whose paths match these wildcard patterns will be
excluded from gathering.
File Extensions Packages whose names match these wildcard patterns may be
processed for text to gather.
Collections Packages in these collections may be processed for gathering.
Should Gather from Editor Only Data If enabled, data that is specified as editor-only may be processed
for gathering.
Skip Gather Cache Should we ignore the cached text in the package header and
perform a full package load instead?
#UE4DD | @UNREALENGINE
Gather Text (Gather from Meta Data)
#UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text
Gather Text
Include Path Wildcards Packages whose paths match these wildcard patterns, specified
relative to the project's root, may be processed for gathering.
Exclude Path Wildcards Packages whose paths match these wildcard patterns will be
excluded from gathering.
Should Gather from Editor Only Data If enabled, data that is specified as editor-only may be processed
for gathering.
#UE4DD | @UNREALENGINE
Localization Dashboard - Gather Text
Gather Text
Key Specifications Specifications for how to gather text from specific metadata keys.
Meta Data Key The metadata key for which values will be gathered as text.
Text Namespace The localization namespace in which the gathered text will be output.
Text Key Pattern The pattern which will be formatted to form the localization key for
the metadata value gathered as text.
#UE4DD | @UNREALENGINE
Localization Dashbord Overview
Cultures
Gather Text
Service Provider
Target
Target Detail
Misc
#UE4DD | @UNREALENGINE
Export Text / Compile Text / Import Dialogue
#UE4DD | @UNREALENGINE
Localization Dashboard
Export Text
Collapse Mode How should we collapse down text when exporting to PO?
Should Persist Comments on Export Should user comments in existing PO files be persisted after
export? Useful if using a third party service that stores
editor/translator notes in the PO format's comment fields.
Should Add Source Locations as Comments Should source locations be added to PO file entries as
comments? Useful if a third party service doesn't expose PO
file reference comments, which typically store the source
location.
#UE4DD | @UNREALENGINE
Localization Dashboard
Compile Text
Skip Source Check Should we skip the source check when compiling
translations? This will allow translations whose source no
longer matches the active source to still be used by the
game at runtime.
Validate Format Patterns Should we validate that format patterns are valid for the
culture being compiled (eg, detect invalid plural rules or
broken syntax).
Validate Safe Whitespace Should we validate that text doesn't contain any unsafe
whitespace (leading or trailing whitespace) that could get
lost during the translation process.
#UE4DD | @UNREALENGINE
Localization Dashboard
Import Dialogue
Raw Audio Path Path to the folder to import the audio from. This folder is
expected to contain culture sub-folders, which in turn
contain the raw WAV files to import.
Imported Dialogue Folder Folder in which to create the generated sound waves. This is
relative to the root of the L10N culture folder (or the root
content folder if importing native dialogue as source
dialogue).
Import Native as Source Should the dialogue for the native culture be imported as if
it were source audio? If false, the native culture dialogue
will be imported as localized data for the native culture.
#UE4DD | @UNREALENGINE
Localization Dashbord 概要
Cultures
Gather Text
Service Provider
Target
Target Detail
Misc
#UE4DD | @UNREALENGINE
Localization Dashboard
#UE4DD | @UNREALENGINE
Localization Dashboard
Base language
Localization target languages
#UE4DD | @UNREALENGINE
Localization Dashboard
Control by language
Control for all languages
#UE4DD | @UNREALENGINE
Localization Dashboard
#UE4DD | @UNREALENGINE
Localization Dashbord (Gather Text)
Gather Text Gather text info from asset and source code
Import Text Import localized text file (.po)
Export Text Export localized text file (.po)
Import Script Import dialogue script file (.csv)
Export Script Export dialogue script file (.csv)
Import Dialogue Import Sound Wave and Dialogue Wave assets
Count Word Update translated text count and affect in word count
Compile Text Compile translated text and update text data
#UE4DD | @UNREALENGINE
Settings
#UE4DD | @UNREALENGINE
.ini file (Engine.ini)
Internationalization
Culture Language that displays all contents from application launching.
Language Language that displays texts/assets from application launching.
Locale Language that displays format-text from application launching.
#UE4DD | @UNREALENGINE
.ini file (Engine.ini)
Internationalization
CultureMappings It can be replaced with another language.
EnabledCultures Only languages specified in configuration can be used.
DisabledCultures All languages specified in configuration can’t be used.
PreviewGameLaguage Select preview language in PIE or standalone launching.
LockLocalization Disable localization and lock text editing (editor only).
#UE4DD | @UNREALENGINE
.ini file (Game.ini)
Internationalization
Culture Language that displays all contents from application launching.
Language Language that displays texts/assets from application launching.
Locale Language that displays format-text from application launching.
#UE4DD | @UNREALENGINE
.ini file (Game.ini)
Internationalization
CultureMappings It can be replaced with another language.
EnabledCultures Only languages specified in configuration can be used.
DisabledCultures All languages specified in configuration can’t be used.
LockLocalization Disable localization and lock text editing (editor only).
#UE4DD | @UNREALENGINE
.ini file (EditorSettings.ini)
Internationalization
Culture Language that displays all contents from application launching.
Language Language that displays texts/assets from application launching.
Locale Language that displays format-text from application launching.
#UE4DD | @UNREALENGINE
.ini file (EditorSettings.ini)
Internationalization
ShouldUseLocalizedNumericInput Display numerical values such as property in Editor Language.
ShouldUseLocalizedPropertyNames Display Property name in Editor Language.
ShouldUseLocalizedNodeAndPinNames Display Blueprint Node and Blueprint Node Pin name in Editor
Language.
DisplayTimezone Affects the initial time zone value when using DataTime type.

More Related Content

PDF
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
PPTX
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
PDF
UE4で作成するUIと最適化手法
PPTX
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
PDF
UE4でマルチプレイヤーゲームを作ろう
PPTX
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
PPTX
Hable John Uncharted2 Hdr Lighting
PDF
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
UE4で作成するUIと最適化手法
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
UE4でマルチプレイヤーゲームを作ろう
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
Hable John Uncharted2 Hdr Lighting
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について

What's hot (20)

PDF
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
PDF
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
PPTX
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
PDF
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
PDF
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
PDF
60fpsアクションを実現する秘訣を伝授 解析編
PPTX
UE4ローカライズ事例 (UE4 Localization Deep Dive)
PDF
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
PPTX
UE4におけるLoadingとGCのProfilingと最適化手法
PPTX
ゆるゆるUE4ネットワーク入門
PDF
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
PDF
UE4 LODs for Optimization -Beginner-
PPTX
UnrealBuildTool勉強会まとめ
PDF
出張ヒストリア ブループリントを書くにあたって大切なこと
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
PDF
[UE4]自動テストでもっと楽したい!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
60fpsアクションを実現する秘訣を伝授 解析編
UE4ローカライズ事例 (UE4 Localization Deep Dive)
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
UE4におけるLoadingとGCのProfilingと最適化手法
ゆるゆるUE4ネットワーク入門
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
UE4 LODs for Optimization -Beginner-
UnrealBuildTool勉強会まとめ
出張ヒストリア ブループリントを書くにあたって大切なこと
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
[UE4]自動テストでもっと楽したい!
Ad

Similar to Localization feature of ue4 (20)

PDF
Internationlization
ODP
Multilingual drupal 7
PPTX
Internationalization in Angular Presentation
PDF
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
PPTX
ColdBox i18N
PDF
The *on-going* future of Perl5
PDF
Drupal 8 customized checkout system
PDF
Multilingual Content in Drupal 7 & 8 at DrupalCon Munich
PDF
How To Build And Launch A Successful Globalized App From Day One Or All The ...
PDF
Game Programming 10 - Localization
ODP
[EclipseCon France 2017] Language Server Protocol in action
PPTX
Language translator
PPTX
Angular_I18N.pptx
PDF
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
PDF
Affordable and efficient multi platform localisation. case study
PPTX
languagetranslator-211028085026.pptx
PDF
Voxxed Days CERN 2024 - Spring Boot <3 Testcontainers.pdf
PDF
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
PDF
Multilingual Content: Presentation from DrupalCamp Montreal 2012
PDF
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Internationlization
Multilingual drupal 7
Internationalization in Angular Presentation
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
ColdBox i18N
The *on-going* future of Perl5
Drupal 8 customized checkout system
Multilingual Content in Drupal 7 & 8 at DrupalCon Munich
How To Build And Launch A Successful Globalized App From Day One Or All The ...
Game Programming 10 - Localization
[EclipseCon France 2017] Language Server Protocol in action
Language translator
Angular_I18N.pptx
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
Affordable and efficient multi platform localisation. case study
languagetranslator-211028085026.pptx
Voxxed Days CERN 2024 - Spring Boot <3 Testcontainers.pdf
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
Multilingual Content: Presentation from DrupalCamp Montreal 2012
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Ad

More from エピック・ゲームズ・ジャパン Epic Games Japan (20)

PDF
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
PDF
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
PDF
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
PDF
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
PDF
UE4を使った映像制作 (UE4 Character Art Dive Online)
PDF
Hair Groom入門 (UE4 Character Art Dive Online)
PDF
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
PDF
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
PDF
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
PDF
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
PDF
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
PDF
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
PDF
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
PDF
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
PDF
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
PDF
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
PDF
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
PDF
Twinmotion 2021とAEC分野向けソリューションのご紹介
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)
Hair Groom入門 (UE4 Character Art Dive Online)
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
Twinmotion 2021とAEC分野向けソリューションのご紹介

Recently uploaded (20)

PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPT
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
PDF
Well-logging-methods_new................
PDF
Categorization of Factors Affecting Classification Algorithms Selection
PPTX
additive manufacturing of ss316l using mig welding
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
Sustainable Sites - Green Building Construction
PDF
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
PPTX
Geodesy 1.pptx...............................................
PPT
Total quality management ppt for engineering students
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
Well-logging-methods_new................
Categorization of Factors Affecting Classification Algorithms Selection
additive manufacturing of ss316l using mig welding
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Foundation to blockchain - A guide to Blockchain Tech
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
CYBER-CRIMES AND SECURITY A guide to understanding
Internet of Things (IOT) - A guide to understanding
Sustainable Sites - Green Building Construction
Artificial Superintelligence (ASI) Alliance Vision Paper.pdf
Geodesy 1.pptx...............................................
Total quality management ppt for engineering students

Localization feature of ue4

  • 1. Localization feature of UE4 Epic Games Japan / Support Engineer Ken Kuwano
  • 2. #UE4DD | @UNREALENGINE Contents ● Overview ● Basic Features ● Specified Features ● Misc
  • 3. #UE4DD | @UNREALENGINE Contents ● Overview ● Basic Features ● Specified Features ● Misc
  • 4. #UE4DD | @UNREALENGINE Localization of the game ● Localize the game ● Goal :Release to many regions ● How :Implementation to many regions
  • 5. #UE4DD | @UNREALENGINE Assets needing localization ● Text ● Content ● Font ● Asset ● Texture ● Voice,Sound ● Movie, Media ● Cutscene, Sequencer ● Animation
  • 6. #UE4DD | @UNREALENGINE Localization of the game ● Localize the game ● Goal :Release to many regions ● How :Implementation to many regions ● Localize the game made using UE4 ● How do we localize using UE4? ● Asset :management, sharing ● Efficiency :workflow, implementation ● Effect :memory, performance Focus of this slide
  • 7. #UE4DD | @UNREALENGINE Localize? Localization (L10N) ● Localization is the process of adapting internationalized software for a specific region or language by translating text and adding locale specific components. Internationalization (I18N) ● Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes.
  • 9. #UE4DD | @UNREALENGINE Contents ● Overview ● Basic Features ● Specified Features ● Misc
  • 10. #UE4DD | @UNREALENGINE Basic Features ● Text Localization Process ● Asset Localization Process
  • 11. #UE4DD | @UNREALENGINE Text Localization Process Editor (en) Package game (ja)
  • 12. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Language Translate Source Text Editor (en) Package game (ja)
  • 13. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Language Translate Source Text Gather source text from asset what we’d like to localize. OPTIONS QUIT
  • 14. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Language Translate Source Text Make translation text with reference to gathered text. OPTIONS QUIT オプション 終了
  • 15. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Lauguage Translate Source Text Make package game including translation text. Package OPTIONS QUIT オプション 終了
  • 16. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Language Translate Source Text Display text depending on required language. Package OPTIONS QUIT オプション 終了
  • 17. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Language Translate Source Text Package OPTIONS QUIT オプション 終了 Package OPTIONS QUIT オプション 終了 OPTIONS QUIT オプション 終了 OPTIONS QUIT Localization Dashboard
  • 18. #UE4DD | @UNREALENGINE Gathering Text Localization Dashboard
  • 20. #UE4DD | @UNREALENGINE Gather and Localize Text Blue Print C++ ① Gather text ② Create text Loc Res ③ Show text Display on Editor Display on Game
  • 21. #UE4DD | @UNREALENGINE Which text is gathered? ● Blueprint:FText, STextBlock ● C++/.ini:LOCTEXT, NSLOCTEXT
  • 22. #UE4DD | @UNREALENGINE Unique Text (namespace/key/value)
  • 23. #UE4DD | @UNREALENGINE ● Using FormatText for loacalization ● Blackbox ”Discard <Item Name>” ● Number “Got <Number> Items” ● Numeric “1Hit”, ”2Hits”, etc... ● Unit “USD”, ”yard”, etc... Displaying text
  • 24. #UE4DD | @UNREALENGINE There {NumCats}|plural(one=is,other=are) {NumCats} {NumCats}|plural(one=cat,other=cats) one=”is”, other=”are” number one=”cat”, other=”cats” Plural Forms (en)
  • 25. #UE4DD | @UNREALENGINE There is 1 cat There are 2 cats (en) Input translation text with Localization Dashboard 1匹の猫がいる 2匹の猫がいる (ja) Plural Forms (en→ja)
  • 26. #UE4DD | @UNREALENGINE Auto formatting text Text is converted for the culture original format automatically. 1) Number:12345.67 ● ja : 12,345.67 ⇒ Grouping = ”,” , Decimal = ”.” ● de : 12.345,67 ⇒ Grouping = ”.” , Decimal = ”,” ● fr : 12 345,67 ⇒ Grouping = ” ” , Decimal = ”,” 2) Date:2020年10月31日 ● ja : 2019/10/31 ⇒ yyyy/mm/dd ● en : Oct 31, 2019 ⇒ mm/dd/yyyy ● fr : 31 oct. 2019 ⇒ dd-mm-yyyy
  • 27. #UE4DD | @UNREALENGINE Language Plural Rules http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
  • 28. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Language Translate Source Text Package OPTIONS QUIT オプション 終了 Package OPTIONS QUIT オプション 終了 OPTIONS QUIT オプション 終了 OPTIONS QUIT Localization Dashboard .ini file/Console Command
  • 29. #UE4DD | @UNREALENGINE Setting current language of text ● Startup game ● Launch argument ● Configuration (.ini) ● System Language (OS) ● Runtime ● Console Command ● Call culture switching function
  • 30. #UE4DD | @UNREALENGINE Switch display of the language API Switch displaying text
  • 31. #UE4DD | @UNREALENGINE Switch content display language Culture Language Locale Asset Group Texts and Assets Format display (Number/Date/Time) Specific Assets and Classes Text
  • 32. #UE4DD | @UNREALENGINE Switch culture ● Accoding to set many priority rules, there are several ways to specify the language of the game at launch game ● Priority (Top is highest) ● “-culture” value with launch argument ● ”culture” value on xxxGame.ini ● ”culture” value on xxxEngine.ini ● System Language (OS)
  • 33. #UE4DD | @UNREALENGINE Text Localization Process Gather Source Text Package Switch Language Translate Source Text Display in editor in English → Display package in Japanese
  • 34. #UE4DD | @UNREALENGINE Basic Features ● Text Localization Process ● Asset Localization Process
  • 35. #UE4DD | @UNREALENGINE Asset Localization Process Editor (en) Package game (ja)
  • 36. #UE4DD | @UNREALENGINE Asset Localization Process Package Switch Language Placed Asset Editor (en) Package game (ja)
  • 37. #UE4DD | @UNREALENGINE Asset Localization Process Package Switch Language Placed Asset Placed target asset in specified path. Img (en) Img (ja)
  • 38. #UE4DD | @UNREALENGINE Asset Localization Process Package Switch Language Placed Asset Make package game including translation text. Package Img (en) Img (ja)
  • 39. #UE4DD | @UNREALENGINE Asset Localization Process Package Switch Language Placed Asset Package Img (en) Img (ja) Display text depending on required language.
  • 40. #UE4DD | @UNREALENGINE Asset Localization Process Package Switch Language Placed Asset Package Img (en) Img (ja) Package Img (en) Img (ja) Img (en) Img (ja) Editor
  • 41. #UE4DD | @UNREALENGINE Placed Asset ● Apply Asset Localization ● Placed asset under”Content/L10N/[language]” Source Texture Path Content/UI/Texture/Logo/LogoBk Localization Texture Path (ja) Content/L10N/ja/UI/Texture/Logo/LogoBk
  • 42. #UE4DD | @UNREALENGINE Placed Asset ● Apply Asset Localization ● Select Asset Localization in Content Browser
  • 43. #UE4DD | @UNREALENGINE Asset Localization Process Package Switch Language Placed Asset Package Img (en) Img (ja) Package Img (en) Img (ja) Img (en) Img (ja) Editor .ini file/Console Command
  • 44. #UE4DD | @UNREALENGINE Setting current language of asset ● Startup game ● Launch argument ● Configuration (.ini) ● System Language (OS) ● Runtime ● Console Command ● Call culture switching function Same as the text
  • 45. #UE4DD | @UNREALENGINE Switch display of the language API Switch displaying asset
  • 46. #UE4DD | @UNREALENGINE Switch content display language Culture Language Locale Asset Group Texts and Assets Format display (Number/Date/Time) Specific Assets and Classes Asset
  • 47. #UE4DD | @UNREALENGINE Switching Asset Group ● Group assets and reuse them across languages ● Case where only some assets are used in different languages. ● The text display is “ja”, but some of Audio wants to use “en”. ● Setting on xxxGame.ini and xxxEngine.ini
  • 48. #UE4DD | @UNREALENGINE Asset Group ● Not using Asset Group If we are setting the current culture is ja, all texts and assets are displayed in ja Text (ja) Asset (ja)
  • 49. #UE4DD | @UNREALENGINE Asset Group Audio (it) Sound Wave Sound Cue ● Using Asset Group Text (ja) Other Asset (ja) If we’re grouping ”Sound Wave” and ”Sound Cue” during the current culture is in ja, ”Sound Wave” and ”Sound Cue” are using in it language’s assets. Class Asset Group
  • 50. #UE4DD | @UNREALENGINE ● Setting the class to be linked to Asset Group ● Setting the language to which Asset Group is applied Switching Asset Group If the above settings are made, Sound Wave and Sound Cue use “en” assets from startup.
  • 51. #UE4DD | @UNREALENGINE Asset Localization Process Package Switch Language Placed Asset Display in editor in English → Display package in Japanese
  • 52. #UE4DD | @UNREALENGINE Contents ● Overview ● Basic Features ● Specified Features ● Misc
  • 53. #UE4DD | @UNREALENGINE Specified Features ● Font ● Subtitle and Voice ● Subtitle of Media Framework
  • 54. #UE4DD | @UNREALENGINE Localization for Font asset ● What about text localization? ● Want to change the font by language... ● Want to change the font size by language... ● How do we localize font asset? ● Use Asset Localization ● Use Sub Culture, and Sub Font Family
  • 55. #UE4DD | @UNREALENGINE Apply Font Localization (1) ● Apply fonts by language with Asset Localization Font (common) Font (th)Font (ja)
  • 56. #UE4DD | @UNREALENGINE Apply Font Localization (2) ● Use SubCulture and SubFont with Font Asset Font (common) Font Face Fallback Font Family Font Face Sub Font Family (ja) Font Face Sub Font Family (th) Font Face Default Font Family
  • 57. #UE4DD | @UNREALENGINE Font Sub Font Default Font Fallback Font
  • 58. #UE4DD | @UNREALENGINE Font Applying language Character range Applying font
  • 59. #UE4DD | @UNREALENGINE Subtitle and Voice localization ● Build dialogue system using dialogue assets This message is a subtitle test. https://docs.unrealengine.com/en-US/Engine/Audio/Dialogue/index.html
  • 60. #UE4DD | @UNREALENGINE Subtitle and Voice localization ● Dialogue System (for each sentence) ● Dialogue Wave :Dialogue Data ● Dialogue Voice :Talker Data ● Sound Wave :Voice Sound Dialogue Wave Dialogue Voice
  • 61. #UE4DD | @UNREALENGINE Dialogue Wave Subtitle text Talker info Voice asset
  • 62. #UE4DD | @UNREALENGINE Localization of dialogue .wav Apply text localization Apply asset localization
  • 63. #UE4DD | @UNREALENGINE Localization for subtitle of Media framework ● Switch media player subtitles by language ● Unreleased Features ● If you want to use then, need to modify the engine code. ● It’s necessary to add subtitle data playback process.
  • 64. #UE4DD | @UNREALENGINE ● Subtitle data ● Editable on editor ● Crate assets by language ● Capable of importing .srt file Basic Overlays Localized Overlays Subtitles table Basic Overlays Subtitle data (ja) Basic Overlays Subtitle data (en)
  • 65. #UE4DD | @UNREALENGINE ● Assets that manage subtitles by language ● Set Basic Overlays for each language Localized Overlays Localized Overlays Subtitles table Basic Overlays Subtitle data (ja) Basic Overlays Subtitle data (en)
  • 66. #UE4DD | @UNREALENGINE Change to Return true, so it can be displayed on media asset. Unlock overlay features
  • 67. #UE4DD | @UNREALENGINE Subtitle Data Project Engine Widget Playback media Subtitle Manager Control subtitles Subtitle Player Playback subtitles Localized Overlays Sutitiles for localization Basic Overlays Subtitle data (ja) Basic Overlays Subtitle data (en) Basic Overlays Subtitle data (fr) Overlay and related classes
  • 68. #UE4DD | @UNREALENGINE Subtitle Player Implementation Example void UMyMediaSubtitlesPlayer::Play() { bEnabled = true; } void UMyMediaSubtitlesPlayer::Stop() { bEnabled = false; FSubtitleManager::GetSubtitleManager()->SetMovieSubtitle(this, TArray<FString>()); }
  • 69. #UE4DD | @UNREALENGINE Subtitle Player Implementation Example void UMyMediaSubtitlesPlayer::Tick(float DeltaSeconds) { if (bEnabled && SourceSubtitles) { UMediaPlayer* MediaPlayerPtr = MediaPlayer.Get(); if (MediaPlayerPtr) { FTimespan CurrentTime = MediaPlayerPtr->GetTime(); TArray<FOverlayItem> CurrentSubtitles; SourceSubtitles->GetOverlaysForTime(CurrentTime, CurrentSubtitles); TArray<FString> SubtitlesText; for (const FOverlayItem& Subtitle : CurrentSubtitles) { SubtitlesText.Add(Subtitle.Text); } FSubtitleManager::GetSubtitleManager()->SetMovieSubtitle(this, SubtitlesText); } else { Stop(); } } }
  • 70. #UE4DD | @UNREALENGINE Contents ● Overview ● Basic Features ● Specified Features ● Misc
  • 71. #UE4DD | @UNREALENGINE Misc ● Localization Preview ● Translation Picker ● String Table
  • 72. #UE4DD | @UNREALENGINE Localization Preview ● Feature to preview Localization Text on UMG Designer ● Not compatiable with Localization Asset
  • 73. #UE4DD | @UNREALENGINE Preview text updates after switching language Localization Preview Comparison of localization preview Update text (en→ja) Applu preview
  • 74. #UE4DD | @UNREALENGINE Localization Preview ● Preview Game Language (Editor Preference) ● If Preview language is selected, it’s affected as default Affect from Editor Preferences
  • 75. #UE4DD | @UNREALENGINE Localization Preview ● Need to localize the text before using this feature. localizing text... can select preview languages
  • 76. #UE4DD | @UNREALENGINE Translation Picker ● Feature to extract text localization info from editor ● Can edit localization text without accesing dashboard
  • 77. #UE4DD | @UNREALENGINE Translation Picker ● Enable picker ● Enable Translation Picker in Editor Preferences (Experimental) ● Show picker window ● From Window or select icon in translation editor
  • 78. #UE4DD | @UNREALENGINE Translation Picker Can edit translation text directly in PIE
  • 79. #UE4DD | @UNREALENGINE String Table ● Registering fixed phrases and strings ● Can import/export from .csv file
  • 80. #UE4DD | @UNREALENGINE String Table ● Value can be referenced by specifying Key and Text Set Table and Key Affect Value
  • 81. #UE4DD | @UNREALENGINE String Table ● Note ● Conflict editng table ● Hard reference to assets
  • 82. #UE4DD | @UNREALENGINE Project Settings ● The settings are required when Packaging ● Localizations to Package ● Languages for Cook/Stage/Package ● Internationalization Support ● Language set for internationalized data
  • 83. #UE4DD | @UNREALENGINE Project Settings ● Localizations to Packages ● Settings that specify the language to be localized ● When not selected, it doesn’t include localization asset to package Select from localized languages...Select target languages manually...
  • 84. #UE4DD | @UNREALENGINE Project Settings ● How to specifiy a language for each platform ● Override language specification in xxxGame.ini ● Following example, only “en” and “ja” assets and texts are included when Packaging
  • 85. #UE4DD | @UNREALENGINE ● Internationalization Support ● Select preset including target language from the list Project Settings Preset Languages Size (MB) English English ~1.77 EFIGS English, French, Italian, German, Spanish ~2.38 EFIGSCJK English, French, Italian, German, Spanish, Chinese, Korean, Japanese ~5.99 CJK Chinese, Korean, Japanese ~5.16 All All Languages ~15.3 Language Preset
  • 86. #UE4DD | @UNREALENGINE In a nutshell ● UE4 has basic features for localization ● It’s better to use your own system or workflow (depending on requirements) ● Consider localization plans early
  • 87. #UE4DD | @UNREALENGINE Extra ● Localization Dashboard ● Settings
  • 90. #UE4DD | @UNREALENGINE Localization Dashboard ● Text Localization feature ● Gather text from assets and source code ● Export translated text and share it ● Manage and edit translated texts in languages ● Manage localization progress of translated texts ● Supporting Text Localization feature ● Can work with third-party provider service ● Can be linked with source control ● Can preview translated text and preview font ● Can check text conflicts
  • 91. #UE4DD | @UNREALENGINE Localization Dashboard ● Pros ● Localization is completed in UE4 Editor ● Immediate confirmation after editing localized text ● Gather text over a wide range including source meta ● Cons ● If edit source text, affects all languages content ● Experimental features (but can be used)
  • 92. #UE4DD | @UNREALENGINE Localization Dashbord Overview Target Target DetailService Provider Cultures Gather Text Misc
  • 93. #UE4DD | @UNREALENGINE Localization Dashbord Overview Target Target Detail Cultures Gather Text Service Provider Misc
  • 94. #UE4DD | @UNREALENGINE Text localize quick start flow ① Add localization language ② Set target assets ③ Gather text ④Input translate text ⑤ Compile translated text ⑥ Update word count
  • 96. #UE4DD | @UNREALENGINE Localization Dashbord Overview Target Target Detail Cultures Gather Text Service Provider Misc
  • 97. #UE4DD | @UNREALENGINE ● Linked Service Provider (XLoc, OneSky) ● Linked Source Control Localization Service
  • 98. #UE4DD | @UNREALENGINE Localization Service (One Sky) https://www.oneskyapp.com/
  • 99. #UE4DD | @UNREALENGINE Localization Service (XLoc) http://www.xloc.com/
  • 100. #UE4DD | @UNREALENGINE Editing .po file (Poedit) https://poedit.net/
  • 101. #UE4DD | @UNREALENGINE Localization Dashboard - Localization Service Localization Service Provider Localization Service Provider Select active service provider when using a specific localization. Source Control Enable Source Control If source control and service provider are available, connect to source control during localization operations automatically. Enable Auto Submit If source control and service providers are available, allow auto submit during localization operations.
  • 102. #UE4DD | @UNREALENGINE Localization Dashbord Overview Target Target Detail Cultures Gather Text Service Provider Misc
  • 103. #UE4DD | @UNREALENGINE ● Localization Target ● Classified by localization category ● Game Targets For project code/asset ● Engine Targets For engine code/asset Localization Target
  • 104. #UE4DD | @UNREALENGINE Localization Dashboard - Localization Target Target Name Specified for localization target. Conflict Status Show conflict status of localize text. Loading Policy Specified loading conditions for localized text of plugin and DLC.
  • 105. #UE4DD | @UNREALENGINE Localization Target (Conflict Status) Identify by namespace and key (unique)
  • 106. #UE4DD | @UNREALENGINE Localization Target (Conflict Status) Not conflict : Texts are defined by different namespace or key
  • 107. #UE4DD | @UNREALENGINE Localization Target (Conflict Status) Conflict : Texts are assigned by same namespace and key
  • 108. #UE4DD | @UNREALENGINE Localization Target (Conflict Status) Conflict Status Description Clear Clear state of gather unique to all text. Conflicts Present It’s necessary to resolve conflict text. Unknown State before key match check. Update conflict status by gather text. Check and correct from ✖ button whether there is a conflict or not
  • 109. #UE4DD | @UNREALENGINE Localization Dashbord Overview Cultures Gather Text Service Provider Target Target Detail Misc
  • 110. #UE4DD | @UNREALENGINE Gather Text ● Target of gathering text from content (code/files/assets) ● Gather from Text Files Text file (.cpp/.h/.ini ) ● Gather from Packages Asset (.uasset/.umap) ● Gather from Meta Data Meta tag of UPROPERTY
  • 111. #UE4DD | @UNREALENGINE Localization Dashboard - Gather Text Gather Text Target Dependencies Text present in these targets will not be duplicated in this target. Additional Manifest Dependencies Text present in these manifests will not be duplicated in this target. Required Module Names The names of modules which must be loaded when gathering text. Use to gather from packages or metadata sourced from a module that isn't the primary game module.
  • 112. #UE4DD | @UNREALENGINE Gather Text (Gather from Text Files)
  • 113. #UE4DD | @UNREALENGINE Localization Dashboard - Gather Text Gather Text Search Directories The paths of directories to be searched recursively for text files, specified relative to the project's root, which may be parsed for text to gather. Exclude Path Wildcards Text files whose paths match these wildcard patterns will be excluded from gathering. File Extensions Text files whose names match these wildcard patterns may be parsed for text to gather. Should Gather from Editor Only Data If enabled, data that is specified as editor-only may be processed for gathering.
  • 114. #UE4DD | @UNREALENGINE Gather Text (Gather from Packages)
  • 115. #UE4DD | @UNREALENGINE Localization Dashboard - Gather Text Gather Text Include Path Wildcards Packages whose paths match these wildcard patterns, specified relative to the project's root, may be processed for gathering. Exclude Path Wildcards Packages whose paths match these wildcard patterns will be excluded from gathering. File Extensions Packages whose names match these wildcard patterns may be processed for text to gather. Collections Packages in these collections may be processed for gathering. Should Gather from Editor Only Data If enabled, data that is specified as editor-only may be processed for gathering. Skip Gather Cache Should we ignore the cached text in the package header and perform a full package load instead?
  • 116. #UE4DD | @UNREALENGINE Gather Text (Gather from Meta Data)
  • 117. #UE4DD | @UNREALENGINE Localization Dashboard - Gather Text Gather Text Include Path Wildcards Packages whose paths match these wildcard patterns, specified relative to the project's root, may be processed for gathering. Exclude Path Wildcards Packages whose paths match these wildcard patterns will be excluded from gathering. Should Gather from Editor Only Data If enabled, data that is specified as editor-only may be processed for gathering.
  • 118. #UE4DD | @UNREALENGINE Localization Dashboard - Gather Text Gather Text Key Specifications Specifications for how to gather text from specific metadata keys. Meta Data Key The metadata key for which values will be gathered as text. Text Namespace The localization namespace in which the gathered text will be output. Text Key Pattern The pattern which will be formatted to form the localization key for the metadata value gathered as text.
  • 119. #UE4DD | @UNREALENGINE Localization Dashbord Overview Cultures Gather Text Service Provider Target Target Detail Misc
  • 120. #UE4DD | @UNREALENGINE Export Text / Compile Text / Import Dialogue
  • 121. #UE4DD | @UNREALENGINE Localization Dashboard Export Text Collapse Mode How should we collapse down text when exporting to PO? Should Persist Comments on Export Should user comments in existing PO files be persisted after export? Useful if using a third party service that stores editor/translator notes in the PO format's comment fields. Should Add Source Locations as Comments Should source locations be added to PO file entries as comments? Useful if a third party service doesn't expose PO file reference comments, which typically store the source location.
  • 122. #UE4DD | @UNREALENGINE Localization Dashboard Compile Text Skip Source Check Should we skip the source check when compiling translations? This will allow translations whose source no longer matches the active source to still be used by the game at runtime. Validate Format Patterns Should we validate that format patterns are valid for the culture being compiled (eg, detect invalid plural rules or broken syntax). Validate Safe Whitespace Should we validate that text doesn't contain any unsafe whitespace (leading or trailing whitespace) that could get lost during the translation process.
  • 123. #UE4DD | @UNREALENGINE Localization Dashboard Import Dialogue Raw Audio Path Path to the folder to import the audio from. This folder is expected to contain culture sub-folders, which in turn contain the raw WAV files to import. Imported Dialogue Folder Folder in which to create the generated sound waves. This is relative to the root of the L10N culture folder (or the root content folder if importing native dialogue as source dialogue). Import Native as Source Should the dialogue for the native culture be imported as if it were source audio? If false, the native culture dialogue will be imported as localized data for the native culture.
  • 124. #UE4DD | @UNREALENGINE Localization Dashbord 概要 Cultures Gather Text Service Provider Target Target Detail Misc
  • 126. #UE4DD | @UNREALENGINE Localization Dashboard Base language Localization target languages
  • 127. #UE4DD | @UNREALENGINE Localization Dashboard Control by language Control for all languages
  • 129. #UE4DD | @UNREALENGINE Localization Dashbord (Gather Text) Gather Text Gather text info from asset and source code Import Text Import localized text file (.po) Export Text Export localized text file (.po) Import Script Import dialogue script file (.csv) Export Script Export dialogue script file (.csv) Import Dialogue Import Sound Wave and Dialogue Wave assets Count Word Update translated text count and affect in word count Compile Text Compile translated text and update text data
  • 131. #UE4DD | @UNREALENGINE .ini file (Engine.ini) Internationalization Culture Language that displays all contents from application launching. Language Language that displays texts/assets from application launching. Locale Language that displays format-text from application launching.
  • 132. #UE4DD | @UNREALENGINE .ini file (Engine.ini) Internationalization CultureMappings It can be replaced with another language. EnabledCultures Only languages specified in configuration can be used. DisabledCultures All languages specified in configuration can’t be used. PreviewGameLaguage Select preview language in PIE or standalone launching. LockLocalization Disable localization and lock text editing (editor only).
  • 133. #UE4DD | @UNREALENGINE .ini file (Game.ini) Internationalization Culture Language that displays all contents from application launching. Language Language that displays texts/assets from application launching. Locale Language that displays format-text from application launching.
  • 134. #UE4DD | @UNREALENGINE .ini file (Game.ini) Internationalization CultureMappings It can be replaced with another language. EnabledCultures Only languages specified in configuration can be used. DisabledCultures All languages specified in configuration can’t be used. LockLocalization Disable localization and lock text editing (editor only).
  • 135. #UE4DD | @UNREALENGINE .ini file (EditorSettings.ini) Internationalization Culture Language that displays all contents from application launching. Language Language that displays texts/assets from application launching. Locale Language that displays format-text from application launching.
  • 136. #UE4DD | @UNREALENGINE .ini file (EditorSettings.ini) Internationalization ShouldUseLocalizedNumericInput Display numerical values such as property in Editor Language. ShouldUseLocalizedPropertyNames Display Property name in Editor Language. ShouldUseLocalizedNodeAndPinNames Display Blueprint Node and Blueprint Node Pin name in Editor Language. DisplayTimezone Affects the initial time zone value when using DataTime type.