{"id":5156,"date":"2024-08-14T10:22:32","date_gmt":"2024-08-14T01:22:32","guid":{"rendered":"https:\/\/blog.criware.com\/?p=5156"},"modified":"2024-09-05T12:43:01","modified_gmt":"2024-09-05T03:43:01","slug":"adx-beginners-guide-14-dialog-and-localization","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2024\/08\/14\/adx-beginners-guide-14-dialog-and-localization\/","title":{"rendered":"ADX Beginner\u2019s Guide #14 \u2013 Dialog and Localization"},"content":{"rendered":"<p>After tackling sound effects, we learned all about interactive music, finishing with Block Playback in the <a href=\"https:\/\/blog.criware.com\/index.php\/2024\/08\/03\/adx-beginners-guide-13-interactive-music-with-block-playback\/\">previous blog<\/a>. The last type of sound in a game is dialog, and in this post, we will examine the many convenient features that come with ADX to manage and localize it.<\/p>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Language Settings<\/h1>\n<p>ADX supports multi-language projects, making it easy to prepare sound materials for each localization language, and to create Cues that can automatically switch to the specified language.<\/p>\n<p>The first thing to do is to configure the languages that will be used in the project:<\/p>\n<ul>\n<li>In the <strong>Project Tree<\/strong>, create <strong>Language Settings<\/strong> for each language.<\/li>\n<li>The language creation window provides some presets for the most common languages.<\/li>\n<li>Select a language and edit its properties in the <strong>Inspector<\/strong>:\n<ul>\n<li><em>Reference Folder Name<\/em>: this is the name of the Material folder used for this language.<\/li>\n<li><em>Output Folder Name<\/em>: this is the folder used to build the binaries for this language.<\/li>\n<li><em>Replace Language Name<\/em>: This is the replacement language used when a Material referenced in a Cue is not available in this language. For example, if you didn&#8217;t receive the files in a specific language, you can temporarily replace them with the files from another language.<\/li>\n<li><em>Prefix and Suffix<\/em>: These are the prefix and\/or suffix used in the name of the Materials to avoid any confusion between languages. For example, if you use a prefix system of the form EN_Voice_01.wav, FR_Voice_01.wav, etc., you can tell ADX to take these prefixes into account to match the sound between each language. So, EN_Voice_01.wav and FR_Voice_01.wav will be considered as the same asset in different languages.<\/li>\n<li><em>Ignored Suffix<\/em>: This specifies suffixes to exclude from the Material name. This is in case your nomenclature uses suffixes unrelated to localization after the language suffix.<\/li>\n<li><em>Prefix and Suffix of Output File Name<\/em>: This allows for the addition of a prefix and\/or suffix to the binaries built by ADX.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" style=\"border: 1px solid #ccc\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Language-Settings.png\" alt=\"01 Language Settings\" width=\"1477\" height=\"513\" class=\"alignnone size-full wp-image-5159\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Language-Settings.png 1477w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Language-Settings-300x104.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Language-Settings-768x267.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Language-Settings-1024x356.png 1024w\" sizes=\"auto, (max-width: 1477px) 100vw, 1477px\" \/><\/p>\n<p><h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Material Folders for Localization<\/h1>\n<p>Once the languages have been configured in the project, the dialog files can be imported.<\/p>\n<p>A special Material folder must be set up for ADX&#8217;s localization features to work properly:<\/p>\n<ul>\n<li>Select the Work Unit where you want to create your dialog Cues.<\/li>\n<li>In the <strong>Material Tree<\/strong> of this Work Unit, right-click on the <strong>Material Root Folder<\/strong>, and click on <em>Create a folder for localization<\/em>.<\/li>\n<li>This will automatically create a folder called &#8220;CriLanguages &#8211; Language Root&#8221; containing a subfolder for each language (named under the <em>Reference Folder Name<\/em> property set in the language settings).<\/li>\n<li>You can now drag and drop the dialog files for each language into their respective folders. The names of the files must respect the prefix and suffix properties of the language to be recognized by ADX.<\/li>\n<li>If a new language is added later during production, its folder can be automatically created by using <em>Create a folder for localization <\/em>again (after creating a Language Setting for it).<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-Localization-folder.png\" alt=\"02 Localization folder\" width=\"785\" height=\"568\" class=\"alignnone size-full wp-image-5160\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-Localization-folder.png 785w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-Localization-folder-300x217.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-Localization-folder-768x556.png 768w\" sizes=\"auto, (max-width: 785px) 100vw, 785px\" \/>\n<\/p>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Switching Materials in Cues<\/h1>\n<p>You can now use the Materials in your dialog Cues. When the Material referenced by a Waveform Region comes from the Localization folder, the Waveform Region is considered as language-dependent.<\/p>\n<p>A language-dependent Waveform Region automatically switches the referenced Material for the Material of the selected language.There is no need to create a different Cue for each language.<\/p>\n<p>Setting such a Cue is simple:<\/p>\n<ul>\n<li>Create a Cue<\/li>\n<li>Drag and drop a Material from the Localization folder into the Cue.<\/li>\n<li>You will see a text on the Waveform Region indicating which language and Material it refers to.<\/li>\n<li>Note that the Cue will use the Material you dropped on the timeline to find the corresponding assets in the other languages. So make sure you always use the Materials of the same language as a reference when you create a Cue. This will ensure that you always have the same point of comparison if any assets are missing between languages.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Language-dependent-Waveform.png\" alt=\"03 Language dependent Waveform\" width=\"1305\" height=\"595\" class=\"alignnone size-full wp-image-5161\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Language-dependent-Waveform.png 1305w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Language-dependent-Waveform-300x137.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Language-dependent-Waveform-768x350.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Language-dependent-Waveform-1024x467.png 1024w\" sizes=\"auto, (max-width: 1305px) 100vw, 1305px\" \/>\n<\/p>\n<p>You can test your language-dependent Cue simply by switching the language in Atom Craft\u2019s toolbar. The Waveform will be updated with the correct Material, and the Cue will play the sound in the chosen language.<\/p>\n<div style=\"max-width: 700px; margin: 0 auto; margin-bottom: 20px; border: 1px solid #aaa;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-5156-1\" width=\"800\" height=\"423\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_1_localized_waveform.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_1_localized_waveform.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_1_localized_waveform.mp4<\/a><\/video><\/div>\n<\/div>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Language-dependent Tracks<\/h1>\n<p>In addition to the Waveform Region, it is possible to assign a language to a Cue\u2019s Track and make it language-dependent. If a track is language-dependent, it will only playback when the project is set to a specific language. This is especially useful when additional sounds need to be played in some languages, or if the playback timing is different between languages. Since the switch is made at the Track level, Materials outside the Localization folder can also be used to localize sound effects rather than dialog (such as localized ambience or crowd walla).<\/p>\n<p>To make a Track language-dependent:<\/p>\n<ul>\n<li>Create or select a Track in a Cue<\/li>\n<li>In the <em>Track<\/em> section in the Inspector, click on the <em>Apply Language<\/em> property.<\/li>\n<li>In the next window, select one or several languages that will be assigned to the Track.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/04-Localize-Tracks.png\" alt=\"04 Localize Tracks\" width=\"1135\" height=\"570\" class=\"alignnone size-full wp-image-5162\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/04-Localize-Tracks.png 1135w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/04-Localize-Tracks-300x151.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/04-Localize-Tracks-768x386.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/04-Localize-Tracks-1024x514.png 1024w\" sizes=\"auto, (max-width: 1135px) 100vw, 1135px\" \/>\n<\/p>\n<p>Now, the Track will play or not depending on the language selected.<\/p>\n<div style=\"max-width: 700px; margin: 0 auto; margin-bottom: 20px; border: 1px solid #aaa;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-5156-2\" width=\"800\" height=\"423\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_2_localized_tracks.mp4?_=2\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_2_localized_tracks.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_2_localized_tracks.mp4<\/a><\/video><\/div>\n<\/div>\n<p>You should now be able to manage your dialog files with Atom Craft. Of course, everything you learned in the previous posts of this guide still applies to these sounds. For instance, the Block Playback feature we recently examined offers a convenient way to create a dynamic dialog system, like those used in sports games.<\/p>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/05-Block-Branch-Dialog.png\" alt=\"05 Block Branch Dialog\" width=\"1353\" height=\"653\" class=\"alignnone size-full wp-image-5163\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/05-Block-Branch-Dialog.png 1353w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/05-Block-Branch-Dialog-300x145.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/05-Block-Branch-Dialog-768x371.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/05-Block-Branch-Dialog-1024x494.png 1024w\" sizes=\"auto, (max-width: 1353px) 100vw, 1353px\" \/>\n<\/p>\n<p>In the <a href=\"https:\/\/blog.criware.com\/index.php\/2024\/09\/05\/adx-beginners-guide-15-building-binary-data\/\">next post<\/a> of this beginner&#8217;s guide, we will learn how to build the binary data that will actually be used by the game engine!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After tackling sound effects, we learned all about interactive music, finishing with Block Playback in the previous blog. The last<\/p>\n","protected":false},"author":2,"featured_media":5570,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[5,7],"tags":[],"class_list":["post-5156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adx","category-tutorials"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/comments?post=5156"}],"version-history":[{"count":14,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5156\/revisions"}],"predecessor-version":[{"id":5587,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5156\/revisions\/5587"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/5570"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=5156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=5156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=5156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}