Localization: Digging Deep
I'm back at it again, working on the initial localization setup. I realized last night that there were still a few UI pieces I had missed setting up. Specifically, in the Dialogue System, I have some static UI Buttons that contained text. I have now gone back and replaced that text with the appropriate localization keys.
But now comes the hard part, digging through my JSON files and getting localization setup there. "Hard" may be a bit of an overstatement, I think "in-depth" or "complex" may be more appropriate. There really isn't a whole lot to be done in there, but there's enough that it will take me some time and effort to make sure I do it right.
I decided to start with quests. Right now, there isn't a whole lot of data there to deal with, so it's as good a place to start as any! This also gives me the opportunity to look over my game a bit and make changes and corrections that I hadn't thought about. Luckily, quests were pretty easy to work through as I really only have five quest so far.
After quests comes items, another fairly easy win. There's only 10 items and each only has two pieces of text. It does make me realize that there are going to be other data points I need to prepare for, like rarity. Each item has a rarity assigned to it via string, but I'll be treating that as data, however I will eventually need to display some sort of text for that, so I'm prepping another row in UI for each. This means deciding what my rarity levels will actually be. So, in case you're curious I have Scrap, Common, Uncommon, Rare, Epic, Legendary, and Exotic.
After working through the ten items I've got built (these will all change over time) I realize that localization like this can serve another purpose too. This allows me to use placeholder text (my keys) for anything going forward. Then I can add/update the actual text in a more simple format later. Updates to names and descriptions will all take place inside of isolated files instead of having to dig through my project to make changes. I'm so glad I decided to do this now.
Once I moved on to my effect definitions, I was reminded of other changes I want to make. I wanted to change the case (it's currently a weird mix of PascalCase and snake_case) to match the rest of my project. So, I took a look at everything and only two of my effects are currently even actively used in the game in any way. So I carefully updated the IDs for my effects to match the case I'm trying to use everywhere. All while I prepped for localization!
Once I finished the work on my effect definitions I moved on to the dialogue. That was a pretty quick task since I only have one dialogue defined so far and there's only minimal text for translation at this point. But that's where I'm stopping for the day. I still have to do my cutscene text translation work, but I also want to redo my cutscene system.
When I first built out my cutscene player, I was still so new to Godot, so I talked to Gemini about how I wanted it to work based on my limited understanding. And everything works, mostly, the way I want. But the data for cutscenes is all hard-coded in the script of the individual cutscene scene. I need to replace that with a resource definition and remove my individual cutscene scenes and roll all the functionality into my cutscene player. There really is no need to load one scene (my cutscene player) that then loads another scene (the actual cutscene itself) to do the work when I can just feed a definition from my data manager into my cutscene player!
During testing, I did run across a couple of issues, things I missed. I actually had to modify my code a little too. My dialogue system has a "let's talk" button which gets a response from the NPC. But that response was hard coded even though I added it to my definition. So I quickly updated the code to pull a random response out of the list. Which then showed me I had a typo (a single letter difference) in my data manager which was causing those openers to not even load!
I guess my next step is going to be reworking the entirety of my cutscene player, cutscene definition, add data loading for cutscenes, and finally, put in the localization work. But that's tomorrow's job, for today I have done all the work I set out to do!
Xenodochium
The future is what you make of it!
Status | In development |
Author | Munchmo |
Genre | Role Playing |
Tags | 2D, Cozy, Godot, Indie, Life Simulation, Pixel Art, Sci-fi, Singleplayer |
Languages | English |
More posts
- Localization: Finished, Terminado, Fertig, Tapos Na!21 hours ago
- Localization: A Return2 days ago
- Of Dragon Con, Debug Overlay, and Localization6 days ago
- Dragon Con: A Vacation8 days ago
- Dialogue System: Talking Points Go BRRRR10 days ago
- Dialogue System: Talk About It11 days ago
- NPCs: Let's Talk!12 days ago
- NPCs: A Simple Start13 days ago
- Game State: Showing Dialogue14 days ago
Leave a comment
Log in with itch.io to leave a comment.