Loc Notes


LOCALIZATION NOTES:

Well, technically I should call this localisation notes as I live in the UK lol (well Scotland aye?). But that aside let's comment the project.

Since I localized this from English to Portuguese I don't feel the process behind my choices of specific translations is of much interest, but if you are interested please let me know, and I'll start doing that in English too.
Also just to note, I type different notes anyway for Portuguese and English. My brain works better like that, I'm not trying to translate the notes, more creating them. I don't mind doing the work twice and I do feel there's slightly different things to be said on each language.

To get it out of the way, this is my first solo project as a localization project and I had a lot of fun. This is been my idea for creating a wee portfolio on my own. I asked SquidGod if I could and he was fine with it, didn't really gave me any specific concerns so I bascally have freedom for the localized version. I choose SquidGod projects because I've been following he's tutorials on youtube and bought his Beginner's guide to Lua book, and is been really great for my learning and understanding of coding and game design in general. Also he have all his projects on GitHub with the MIT license which I think is very cool! I can't recommend enough for you to check out SquidGod's youtube channel/itch.io...

I tried to keep a pattern and use this first project to test somethings slowly, so I can improve also in future projects. I'm trying not to be super specific with things like using the exact same font for the panels. I don't think it changes much from the experience and is still close enough.

Anyway intro done, what did I do here?

For a first project this was great, there was only a feel things to translate. The 6 classes and 3 screens (menu, win, loose).

The 3 screens I just found a font close enough to the one used that I already had in my computer and knew would accept the '^' char, edited the images and replaced the originals in the images folder with the same name. That was easier so wouldn't have to change any other thing for them to work.
For the menu I didn't translate the title because that's not the convention for brazilian releases, usually the subtitle thing is more common from projects I worked before and I also prefer to keep the original title. But again, if it was a project that was asked of me to translate the title I'd have done it and replaced for my text.

For the classes it wasn't that complicated but it did require some changing of the code. This deals with lua and playdate SDK coding:

So in the code I found how the names were being generated inside the menu.lua file.

The text was being created as a sprite in the menu initialization function displayMenu() and updated in the menuUpdate() function.

Inside menuUpdate() I only needed to change a couple of things, the text was being generated with gfx.drawTextAlign() and the first parameter that was generating the string was getCurClass(). So instead of that I decided to adapt the default font that I created as a new local variable myFont to be able to use 'ã', the standard playdate font don't accept it and I wanted to test how I could do that since it's something I'll definitely need for future projects. Then I passed a different function for the string to be created later that I called getCurClassBr().

Resulting in something like this 'myFont:drawTextAligned(getCurClassBr(), ...)' and myFont declared as 'local myFont = gfx.font.new(fonts/myFont)' outside of the update function. Both my new myFont.fnt file and corresponding table .png in the fonts folder that the project already had.

I noticed the classes table was being created in a different function getClassList() but that was also used for calling the class image, so if I changed that direclty I'd have to translate all the instaces of the names unnecessarily for it to work. My easier solution: adapt both functions into my new function getCurClassBr() which resulted in:

function getCurClassBr()
    local classListBr = {'cavaleiro', 'guardi~ o', 'padre', 'escudeiro', 'ladino', 'mago'}
    return classListBr[currentClassIndex]
end

The last thing was a small alteration in the getClassConstructor() function that initialize the selected class when you start the game. I called my new function and change the if/elseif conditions to match the localized names. Ending with something like:

function getClassConstructor()
    local class = getCurClassBr()
    if class == 'cavaleiro' then
        return Knight
    elseif class == 'guardi~ o' then
        return Ranger
...

Oh, as a side note I wrote 'guardião' as 'guardi~ o', because that's my lazy adaptation of the font to work. It was my first idea that I tested and it work like was supposed to, so I didn't bothered trying to do any more changing to the font since I really didn't needed much more than that.

---

And that's that! :) I'm happy with this end result and this idea of documenting them. Since this is the first project I'm sure I'll change during the course of more projects, but hey any comments or suggestions or anything just give me a wee shout on marcelo.terreiro@gmail.com .

love
mama

Leave a comment

Log in with itch.io to leave a comment.