• 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

I even reverted the changes in the dialog files in case that made a difference, but the door stays locked, making it impossible to progress with the starting quest. Maybe if I keep waiting, it will be daytime and I'll be able to neter the church during regular opening hours, but that's hardly a solution. Is this a known issue?

EDIT: Well, waiting until morning seems to work, I enter the church and the quest progresses. But atill can't figure out why it was locked at night when it should be open for the quest (and it was the first time).

compile.log, in case that can shed some light. I loaded my save in the prison after dealing with the guards. The fight on the streets proceeds normally and so does the dialog to go to the church.
Code:
----------------------------------------
Build 14 (6th July 2021)
Savegame Compatibility: 14.943
----------------------------------------

Gauging: StartGauging
Gauging: starting init
Gauging: interface
Gauging: Storylines
Gauging: Profiles
Gauging: starting init
==> BuildSettings: Sets to default
==> BuildSettings: New settings applied
Gauging: load build settings
Gauging: periods
InitNations: NATIONS_QUANTITY=6, bGuest1NationExists=0, bGuest2NationExists=0
Gauging: nations
Gauging: preprocessor
Init encounters complete.
Gauging: enc
Gauging: cann
Gauging: goods
Gauging: ships
IslandsInit: 22 islands loaded.
Gauging: islands
Init weathers complete. 0 weathers found.
Gauging: weather
InitSounds (English): created 19 entries.
InitMusic: created 103 entries.
Gauging: Aliases
Gauging: sound
Main_LogoVideo() 0
PauseAllSounds
ResumeAllSounds
Main_LogoVideo() -1
Gauging: initgame start
Gauging: createlayers
Gauging: stores
Gauging: sound
Gauging: delete sea env
Gauging: towns
Number of locations: 838
Gauging: locations
IslandsInit: 22 islands loaded.
Gauging: islands
Gauging: wdmap
Gauging: dialogs
Gauging: teleport
bool CreateParticleEntity()
Gauging: particles
Items initialization complete. Loaded 1531 items.
Gauging: items
Gauging: quests
Gauging: sea ai groups
Gauging: questmapenc
Gauging: landenc
==> BuildSettings: Sets to default
==> BuildSettings: New settings applied
Gauging: load options
Gauging: models - Total number of models: 1193
InitSounds (English): created 19 entries.
InitMusic: created 103 entries.
Gauging: Aliases
Gauging: infoshow
Gauging: initgame done
Init character names complete.
SETTING MUSIC: music_main_menu
storyline\standard\SL_utils.c was loaded, unloading now...
storyline\standard\quests\both_reaction.c was loaded, unloading now...
storyline\standard\quests\quests_reaction.c was loaded, unloading now...
Done loading
storyline\FreePlay\quests\both_reaction.c not loaded, loading now!
storyline\FreePlay\quests\quests_reaction.c not loaded, loading now!
bool CreateParticleEntity()
!!! Reload to Havana_prison (index=263)
ItemLogic: On load location Havana_prison
ItemLogic: found 0 buttons
==> BuildSettings: New settings applied
==> BuildSettings: New settings applied
SETTING MUSIC: music_dungeon
SETTING MUSIC: music_dungeon
Reload: Process started for locator_name = reload1 and lockedReloadLocator =
reload_cur_island_index = -1
reload_cur_location_index = 263
reload_island_index = -1
reload_location_index = 253
Start reload
PauseAllSounds
ReloadStartFade
ItemLogic: On unload location
ReloadEndFade
** Whr: CreateWeatherEnvironment - iCurWeatherhour = 13, theHour = 23
ItemLogic: On load location Havana_town_05
ItemLogic: found 0 buttons
ItemLogic: Loaded model items\\Antidote
Template <follow> -> path not found chr.id = Crewmember_Jean3
Equip Character Ulises Perdiguero with bladeC6 his nation: 2 blade nation=
Equip Character Evaristo Alcolea with blade5 his nation: 2 blade nation=
Equip Character Abulio Rosillo with blade7+2 his nation: 2 blade nation=
Equip Character Rafael Quintero with blade10+1 his nation: 2 blade nation=
Quest name spanishattack FOUND in QuestComplete
SETTING MUSIC: music_spa_town
SETTING MUSIC: music_spa_town
Quest name spanishattack2 FOUND in QuestComplete
SETTING MUSIC: music_bitva
Quest name tochurch FOUND in QuestComplete
SETTING MUSIC: music_spa_town
Reload: Process started for locator_name = reload_4_2_back and lockedReloadLocator =
reload_cur_island_index = -1
reload_cur_location_index = 253
reload_island_index = -1
reload_location_index = 252
Start reload
PauseAllSounds
ReloadStartFade
ItemLogic: On unload location
ReloadEndFade
** Whr: CreateWeatherEnvironment - iCurWeatherhour = 23, theHour = 23
ItemLogic: On load location Havana_Town_01
ItemLogic: found 0 buttons
ItemLogic: Loaded model items\\purse
trying to spawn item: 100gp with rarity=0.90118 itemProb=0.39
trying to spawn item: medical1 with rarity=0.72528 itemProb=1.04
trying to spawn item: 250gp with rarity=0.99591 itemProb=0.26
trying to spawn item: medical2 with rarity=0.17896 itemProb=0.39
trying to spawn item: luckcharm with rarity=0.44254 itemProb=2.6e-002
trying to spawn item: medical1 with rarity=0.32208 itemProb=1.04
Quest name lecroix_remove_spaincommander FOUND in QuestComplete
SETTING MUSIC: music_spa_town
SETTING MUSIC: music_spa_town
Reload: Process started for locator_name = reload_2_3 and lockedReloadLocator =
reload_cur_island_index = -1
reload_cur_location_index = 252
reload_island_index = -1
reload_location_index = 254
Start reload
PauseAllSounds
ReloadStartFade
ItemLogic: On unload location
ReloadEndFade
** Whr: CreateWeatherEnvironment - iCurWeatherhour = 23, theHour = 23
ItemLogic: On load location Havana_Town_02
ItemLogic: found 0 buttons
SETTING MUSIC: music_spa_town
SETTING MUSIC: music_spa_town
 
Last edited:
Btw, as an aside, regarding the Freeplay quest for Joaquim de Almeida to get Bartolomeu's sword. In Spanish-speaking countries, women have always kept their maiden surname when they marry (that's why our full names have two surnames by default, father and mother, it's not a penchant for dramatically long and pompous names as soap operas would meake you believe), so it would be somewhat unlikely for Fernando Suárez's wife to also be named Suárez. Just a tidbit I thought may be useful in the future for anyone writing about Spanish couples.
 
I was testing the rogue start and suddenly the door to the church of Havana where I'm supposed to take refuge is locked. It worked the first time I tried, but now it's locked every time I reload an earlier save or start a new game, and the only thing I've changed in the meantime is dialogs.
That error message often happens when you save a game.

As for the church door, are you sure you're going to the correct door? There are two of them. ;) One stays locked, the other opens for the quest.
 
Oooh, that may be it. I was going through the motions at x10 speed at that point and Havana is such a big map. Let me check.

Yep, that was it :oops:.
 
Last edited:
Btw, as an aside, regarding the Freeplay quest for Joaquim de Almeida to get Bartolomeu's sword. In Spanish-speaking countries, women have always kept their maiden surname when they marry (that's why our full names have two surnames by default, father and mother, it's not a penchant for dramatically long and pompous names as soap operas would meake you believe), so it would be somewhat unlikely for Fernando Suárez's wife to also be named Suárez. Just a tidbit I thought may be useful in the future for anyone writing about Spanish couples.
Does the woman only keep her maiden surname, or does she adopt the husband's surname in addition to her own? If it's the former, I'll need to correct "Ardent". At present, if Charles Ardent marries Lucia de la Vega then she becomes Lucia Ardent de la Vega, while if Helen Ardent marries Edmundo de la Vega then she becomes Helen de la Vega Ardent.
 
Does the woman only keep her maiden surname, or does she adopt the husband's surname in addition to her own? If it's the former, I'll need to correct "Ardent". At present, if Charles Ardent marries Lucia de la Vega then she becomes Lucia Ardent de la Vega, while if Helen Ardent marries Edmundo de la Vega then she becomes Helen de la Vega Ardent.
As a general rule they don't adopt the husband's surname at all. In your first example, it would be Charles' and Lucia's children who would indeed be named Ardent de la Vega.
 
That should be the Free Play dialogs sorted then. I edited a few of the .c files aswell to correct a couple of the nation-dependent precprocessors added in there by @DeathDaisy.

And I did some further typo-hunting to Malcolm and some other of the general dialogs, so here they are again too.
 

Attachments

  • DIALOGS.zip
    70.4 KB · Views: 95
  • Storyline.zip
    42.5 KB · Views: 100
As a general rule they don't adopt the husband's surname at all. In your first example, it would be Charles' and Lucia's children who would indeed be named Ardent de la Vega.
Thanks! I've corrected "Ardent" accordingly - neither woman will get her husband's surname as her middle name any more.

That should be the Free Play dialogs sorted then. I edited a few of the .c files aswell to correct a couple of the nation-dependent precprocessors added in there by @DeathDaisy.

And I did some further typo-hunting to Malcolm and some other of the general dialogs, so here they are again too.
Nicely timed! As usual, I checked the .c files with WinMerge, in the process finding that 'GetNationDescByType' needs to be translated by 'XI_ConvertString'. That meant a few quick corrections to my FreePlay Agent quest which is currently under development. Attached is a sneak preview of what's going into "PROGRAM\Storyline\FreePlay\DIALOGS", including the .c files so you can see how various lines are assembled.
 

Attachments

  • DIALOGS.zip
    7.1 KB · Views: 97
One of the options in the Spanish SettingsDescribe wasn't showing because it was too long. Fixed.
 

Attachments

  • SettingsDescribe.txt
    14.7 KB · Views: 108
And just now I ran into Ambroz Bircenos and his dialog box was blank so I checked and found a missing comma.
 

Attachments

  • Ambroz Bricenos_dialog.h
    4 KB · Views: 122
Btw, as an aside, regarding the Freeplay quest for Joaquim de Almeida to get Bartolomeu's sword. In Spanish-speaking countries, women have always kept their maiden surname when they marry (that's why our full names have two surnames by default, father and mother, it's not a penchant for dramatically long and pompous names as soap operas would meake you believe), so it would be somewhat unlikely for Fernando Suárez's wife to also be named Suárez. Just a tidbit I thought may be useful in the future for anyone writing about Spanish couples.
@Bartolomeu o Portugues: do you want Elvira Suarez to have a different surname? The character ID wouldn't need to change, but any dialog text which refers to her by name would.
 
Done. As of now, she is Elvira o Portugues. xD

Only joking, of course! Randomly sweeping through the Spanish family names section of "Characters_names.c" yielded "Carranza". So unless you object or have a better idea, she'll be Elvira Carranza.
 
Last edited:
I've edited some of the expressions in shipyard.c to allow for their translation, in particular some of the strings about buying and selling differently obtained ships. I had to remove some blank spaces form the strings themselves and add them separately to make sure they work with the translation function, as I remember that causing trouble in the past. I've tested most of them.

Code:
            switch (ShipAcquiredState(arCurShip))
            {
                case "bought":    acquired = TranslateString("", "owned ship");        break;
                case "taken":    acquired = TranslateString("", "auction prize");    break;
                case "pirated":    acquired = TranslateString("", "pirated ship");        break;
            }

            if (EnableLimitedShipClass() && GetShipMinClassForCharacter(mchr) > sti(ShipsTypes[st].Class)) text = TranslateString("", "This officer has too low Leadership and Sailing skills to command this ship.") + GlobalStringConvert("newline");
            text += TranslateString("", "Buy this ship for") + " " + MakeMoneyShow(buyPrice,MONEY_SIGN,MONEY_DELIVER) + "?";
            if (sPrice>0) text +=  " " + GlobalStringConvert("newline") + acquired + " " + TranslateString("", "trade-in") + " " + MakeMoneyShow(sPrice,MONEY_SIGN,MONEY_DELIVER) + TranslateString("", ". New ship price") + " " + MakeMoneyShow(bPrice,MONEY_SIGN,MONEY_DELIVER);
            SetFormatedText("TEXTWINDOW", text);
        }
Code:
            switch (ShipAcquiredState(arCurShip))
            {
                case "bought":    acquired = TranslateString("", "owned ship");        break;
                case "taken":    acquired = TranslateString("", "auction prize");    break;
                case "pirated":    acquired = TranslateString("", "pirated ship");        break;
            }
            string text = TranslateString("", "Sell this") + " " + acquired + " " + TranslateString("", "shipyard confirm 2") + MakeMoneyShow(GetSellPrice(nCurFourNum,"includecargo"),MONEY_SIGN,MONEY_DELIVER) + "?" + GlobalStringConvert("newline") + TranslateString("", "of which") + " " + MakeMoneyShow(shipCost1 - gPrice[nCurFourNum],MONEY_SIGN,MONEY_DELIVER) + " " + TranslateString("", "is ship and") + " " + MakeMoneyShow((gPrice[nCurFourNum]),MONEY_SIGN,MONEY_DELIVER) + " " + TranslateString("", "is cargo");
            SetFormatedText("TEXTWINDOW", text);
        }

Both common.ini are appropriately updated with the new strings, aswell as one from ransack_main.c ("Assign prize crew"). In this file, I haven't found a way to translate the "Min/Max Crew" at the bottom of the interface, no matter what I tried form my limited arsenal, it ignores the translation function.
Code:
    GameInterface.strings.Mincrewus         = "Min/Max Crew: "+GetMinCrewQuantity(&xi_refCharacter)+" / "+GetMaxCrewQuantity(&xi_refCharacter); // MM
But that's pretty minor.

I think it'll be better if I keep separate uploads for the dialogs and for the interface stuff I keep stumbling into while testing the dialogs, so if anything breaks it's easier to isolate.

Edit: Oops, the "prize crew" string was missing form the English common.ini. Reuploaded.
 

Attachments

  • INTERFACE.zip
    39 KB · Views: 117
  • TEXTS.zip
    95.8 KB · Views: 108
Last edited:
And the dialogs. I think all the dialogs specfic to the freeplay version of "The Natividad incident" are complete, accurate to the Spanish version of the movie when appropriate.

I've noticed in my testing that many autotranslated citizen dialogs return a blank box. There's probably some syntax error repetaed accross several of them, so that'll be my next stop. I don't think that'll be ready for the coming update though.
 

Attachments

  • PROGRAM.zip
    140 KB · Views: 106
Pick one, talk to a citizen, quit the game, then see what "error.log" says. If it complains about "DLG_TEXT" then there's a problem with the "dialog.h" file. Otherwise "error.log" should give a line number in the "dialog.c" where it's found a problem, though in that case I'd expect the English version to give trouble as well. Either way, tell me which citizen caused the trouble and I'll have a look to try to find the problem. ("eleuthera citizen_dialog.h" might cause trouble because I added a few lines to the English version. One of the people sitting inside Governor's Harbour tavern uses the citizen dialog, so you can ask him for directions, including directions to the tavern. For amusement, I added some lines so that if you ask directions for the tavern from the guy sitting in the tavern, he tells you to go out of the door and then turn round.)

Otherwise, thanks for the updated files. If you have time, see if you can translate these newer versions of "blaze_dialog.h", "governor.h" and "Smuggler Agent_dialog.h", which are part of my Agent FreePlay trophy quest and which will go into the update if the quest passes final testing in the next day or two.
 

Attachments

  • blaze_dialog.h
    26.1 KB · Views: 87
  • governor.h
    12.1 KB · Views: 88
  • Smuggler Agent_dialog.h
    7.4 KB · Views: 108
Last edited:
Sorry to give you more work. Here are more recent versions of "common.ini" and "interface_strings.txt" in English, including new strings needed for the Gambler FreePlay trophy quest from @Jack Rackham and @pedrwyth. ("common.ini" includes your new lines, with a correction to "Sell Owned Ship". ;))
 

Attachments

  • common.ini
    77.5 KB · Views: 117
  • interface_strings.txt
    115.6 KB · Views: 124
Back
Top