What are the plans regarding localization and the dialog tree? At the moment I don’t see a way to do so. It would be great if NodeCanvas allowed me to specify “string ids” or even better integrate with a plug-in like I2. Without localization support it’s doubtful I can take advantage of the dialog tree functionality.
While there is no built-in support for localization as of yet, a few people have already localized NC Dialogue Trees, by using the “Meta Data” field that all dialogue text come along with, for defining “String IDs”. (All relevant node inspectors have that Meta Data field).
Then by implementing a custom UI (or simply building up the included one), whenever a dialogue text is about to be shown, you can use the “Meta Data” string that is passed to the UI (within the Statement data class) to fetch a localized version of the text from within some dictionary/table lookup.
If you want more information on the above, please let me know.
Adding localization is actually pretty easy for DialogueTrees compared to other solutions we’ve evaluated. For starters, you can easily create custom node types which, instead of letting you directly type in text, let you choose string ids / work directly with your localization database. You’d only be left with your UI having to take the string IDs and translate them before showing them. We have done exactly that and more to allow us having a really dynamic system with localization, dynamic actor choice and voice-overs. The most beneficial thing is that, in the end, we could really easily export all Voice-Over permuations for all actors and dialogue lines in a single click and we had a game with almost 30k spoken words.
Another solution I know people are using (if you don’t want to create custom nodes), is to use the “MetaData” field that all ‘statement’ nodes have for an ID, and then create a custom GUI (probably based on the existing one), and use that “MetaData” to localize the text (or even the audio.)
The “MetaData” is a field member of the class “Statement”. The Statement class is one of the arguments that is passed to the “OnSubtitlesRequest” event, which the GUI is using, and which basically contains the things like “Text”, “Audio” and “MetaData” that is entered in the nodes Inspector GUI (in the graph editor).