• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

WIP Spanish translation

By the way, I'll soon put an end to my break translating spree to resume my other main project (translating Sunless Sea). I'll still be around for the ocassional oddjob.
 
Anyway, here's Habitue_dialog.h

While testing the gambling, I keep crashing and getting error logs related to Debug.h. I don't think it should be because of the translation, both the Spanish and English Debug.h are exactly the same and Habitue_dialog.h doesn't give any errors.

Poker seemed to work ok. The error happened with dice (everytime, the moment I click on the cup to start throwing) and once with Vingt-un, despite working a previous time.
Code:
COMPILE ERROR - file: DIALOGS\Spanish\Debug.h; line: 1
Duplicate variable name: DLG_TEXT
COMPILE ERROR - file: DIALOGS\Spanish\Debug.h; line: 1
Duplicate variable name: DLG_TEXT
COMPILE ERROR - file: DIALOGS\Spanish\Debug.h; line: 1
Duplicate variable name: DLG_TEXT
Comfirmed the error happens playing in English too

EDIT: Oh, I guess this was the error you mentioned of DLG_TEXT being declared twice. The way you phrased I thought it was a minor annoyance, but I see now that it completely crashes the game (for me at least), so I see why you'd want to fix it post-haste.
 

Attachments

  • Habitue_dialog.h
    9 KB · Views: 155
Last edited:
To be honest, I absolutely don't know what I'm doing. I added the phrases at the end of QC citizen_dialog.h (so as not to have to change the reference numbers of all the lines if I were to add them in the middle of the file) and tried to add the references in the .c file like this. I'm sure it's not right, I'm just bumbling in the dark. So of course it doesn't work, but I don't have the first clue of how to do it right.
Code:
            string Spanking;
            switch(RandEuphemism){
                case "1":
                    Spanking = DLG_TEXT[129];
                break;
                case "2":
                    Spanking = DLG_TEXT[130];
                break;
                case "3":
                    Spanking = DLG_TEXT[131];
                break;
                case "4":
                    Spanking = DLG_TEXT[132];
                break;
                case "5":
                    Spanking = DLG_TEXT[133];
                break;
                case "6":
                    Spanking = DLG_TEXT[134];
                break;
That code looks exactly right - replacing all the fixed strings with 'DLG_TEXT' references. Check "error.log". If it complains about 'DLG_TEXT' then the problem is in the "dialog.h" file, otherwise it should tell you where the mistake in "dialog.c" is.
 
EDIT: Oh, I guess this was the error you mentioned of DLG_TEXT being declared twice. The way you phrased I thought it was a minor annoyance, but I see now that it completely crashes the game (for me at least), so I see why you'd want to fix it post-haste.
It does appear routinely and does not usually crash the game. It's the result of 'DLG_TEXT' being declared in 'gamble.c', and one thing I intend to try is to copy all gambling text from "Habitue_dialog.h" to "common.ini", change all references in "gamble.c" from "DLG_TEXT" to 'XI_ConvertString', and remove "DLG_TEXT" from "gamble.c" entirely. I'll also copy your translated lines into Spanish "common.ini".
 
Ok, I think I got it now. There are 3 characters with that dialog, QC_citizen, Terry Snider and Pirate_solider. As the next batch of files I just almost finished is precisely soldiers and governors, I'll add them.
 
There is this warning in the language settings menu: "If you want to load saved game, stored with other linguistic parameters, you'll need to switch to needed Language once again after loading."

As far as I can tell, that is not the case anymore. If you load a save stored with a different language, it will mostly work (some things may remain in the wrong language but not many). In fact, trying to switch language after loading a game like the warning advices to do, results in the game crashing. The warning should probably be rephrased to warn of that instead. Something like "Switching language can only be done immediately after launch, BEFORE loading or starting a game. Otherwise the game will crash to desktop."
 
Last edited:
Tavern-keepers are next (hopefully that's all of them). Ideally, I'd continue with shops and shipyards so the main day to day interactions are fully translated, but this is probably my last upload for a while.

Edit: Oh, and I forgot the English file for Pedro Fructuoso, with the wife of whatshisname Suárez chamged to Carranza.
 

Attachments

  • Taverns.zip
    73.6 KB · Views: 118
  • Pedro Fructoso_dialog.h
    3.4 KB · Views: 135
Last edited:
Well, one more won't hurt, and most of it was done in my old files, so here go the resource files for Woodes Rogers, and the storyline_strings file for Bartolomeu, which didn't have the right ANSI encoding.
 

Attachments

  • WoodesRogers.zip
    61.7 KB · Views: 130
  • storyline_strings.txt
    1.1 KB · Views: 133
First thanks for the enormous work you have done with this. :doff

I opened itemsdescribe (WR) just for fun and stumbled on a few typos. (bnadera not bandera)
Here's the fixed file.
 

Attachments

  • itemsdescribe WR.7z
    17 KB · Views: 129
I also wonder about another thing. I have used the character name Old Nick wich is a nickname for the devil.
Maybe there's a nickname in spanish as well? (Instead of old = viejo and Nick = Nick)
 
Ok, I think I got it now. There are 3 characters with that dialog, QC_citizen, Terry Snider and Pirate_solider. As the next batch of files I just almost finished is precisely soldiers and governors, I'll add them.
"Pirate Soldier_dialog.c/h" will need to be rewritten. As far as I can tell, it's used by two characters, "QC Soldier" and "Pirate Soldier", neither of which are normal patrolling soldiers. If you talk to a regular inhabitant of a tavern, he will randomly want to either gamble or drink with you. If he chooses to drink and you choose to join him, it can go various ways, one of which is that he asks for help with a soldier who insulted him. If you agree to help, you teleport outside the tavern, and that's when you meet one of these two characters. And then the dialog breaks because it's looking for case "drink", which does not exist because "Pirate Soldier_dialog.c" is a direct copy of "QC Citizen_dialog.c". Attached are revised files with added code and text lines; the Spanish version is taken from one of the soldiers in "authority figures.zip" as there are other soldier characters for the same incident in other towns and the text is the same for all of them.

But "Pirate Soldier" is for Bonaire Pirate Fort, which makes everything about people and directions wrong. In any case, the only way these characters will get to dialog case "First Time" is if you talk to them, decline to fight, then talk to them again. So all that is needed for "Pirate Soldier_dialog.c" is the first bit where he picks a random way of telling you to get lost. If you want to ask about people, directions or horses, find someone else!
 

Attachments

  • pirate soldier.zip
    11.5 KB · Views: 121
Okay, I didn't know it worked.
I think @JTem means that it works as a translation, but not so much as a reference to the Devil. In Spanish sometimes the Devil is called Pedro Botero, especially in the idiom "las calderas de Pedro Botero" for "the fires/cauldrons of hell", not so much on its own. The origin of the name is lost to time but the expression was already known in the 16th century.
 
"Pirate Soldier_dialog.c/h" will need to be rewritten. As far as I can tell, it's used by two characters, "QC Soldier" and "Pirate Soldier", neither of which are normal patrolling soldiers. If you talk to a regular inhabitant of a tavern, he will randomly want to either gamble or drink with you. If he chooses to drink and you choose to join him, it can go various ways, one of which is that he asks for help with a soldier who insulted him. If you agree to help, you teleport outside the tavern, and that's when you meet one of these two characters. And then the dialog breaks because it's looking for case "drink", which does not exist because "Pirate Soldier_dialog.c" is a direct copy of "QC Citizen_dialog.c". Attached are revised files with added code and text lines; the Spanish version is taken from one of the soldiers in "authority figures.zip" as there are other soldier characters for the same incident in other towns and the text is the same for all of them.

But "Pirate Soldier" is for Bonaire Pirate Fort, which makes everything about people and directions wrong. In any case, the only way these characters will get to dialog case "First Time" is if you talk to them, decline to fight, then talk to them again. So all that is needed for "Pirate Soldier_dialog.c" is the first bit where he picks a random way of telling you to get lost. If you want to ask about people, directions or horses, find someone else!

You added the new lines to the old versions of both the Spanish file (that is poorly translated), and the c file, that doesn't have the DLG_TXT calls for the onanism lines (not that it matters if they have to be rwritten but may aswell avoid errors). This should do it.
 

Attachments

  • Pirate soldier2.zip
    7.1 KB · Views: 118
Something else I forgot to do, though it won't matter after I remove most of "Pirate Soldier_dialog", was to update the code for the onanism lines. When I tested the new versions of "QC citizen_dialog" and "Terry Snider_dialog" by talking to permanent residents in town and Terry Snider on the dock, I almost always got the third line, "shakin' the ol' cod". Using a female character, I got a little more variety but it was still heavily skewed towards the third female option, "beatin' Venus' Anvil". Either there's something wrong with function 'GetRandSubString' or the laws of probability were being bent, stretched and generally abused. But now that we're using numbered DLG_TEXT references rather than fixed strings, there's a much neater way to choose a random line. Here's the new selection code from "QC citizen_dialog.c":
Code:
           string Spanking;
           if(PChar.sex == "woman")
           {
               Spanking = DLG_TEXT[rand(2) + 129];
           }
           else
           {
               Spanking = DLG_TEXT[rand(2) + 132];
           }
When I tested that, the results were much more even. The same, with different line numbers, is in a new version of "Terry Snider_dialog.c".
 

Attachments

  • QC citizen_dialog.c
    12.4 KB · Views: 137
  • Terry Snider_dialog.c
    13.2 KB · Views: 143
Back
Top