• 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!

PTBR Translation

What sort of bug? That line certainly works in English, I've played that quest many times.
I encountered the problem with the Spanish language.
on line 71 and 72 of the file "Father Bernard_dialog.h";
In the Spanish version "Father" is translated, until now I had problems translating this term, and this time it came up because it is not translated.
The correct translation to "padre" would be because no one here calls a priest "Father", whatever their class.
 
Lines 70 and 71 should not be translated. They're not the character's name, they're his ID. From "Father Bernard_dialog.c":
Code:
dialog.text = DLG_TEXT[69] + GetMyFullName(&Characters[GetCharacterIndex(DLG_TEXT[70])]) + DLG_TEXT[72];
So it looks up character "Padre Domingues", which is defined in "PROGRAM\Characters\init\IslaMuelle.c":
Code:
    ch.name = TranslateString("","Padre");
    ch.lastname = TranslateString("","Domingues");
    ch.id        = "Padre Domingues";

In the most recent version of "Father Bernard_dialog.h" which I got from you, lines 70 and 71 are:
Code:
"Father Domingues",
"Father Domingues",
Unless you have changed "IslaMuelle.c" to match, the dialog will not give Padre Domingues' name because it can not find character "Father Domingues". And if you have changed it, that's probably why Father Bernard is calling him "Father".

As for line 155:
Code:
"Obrigado, #sFather#. Estou disponível para ajudá-lo novamente imediatamente, mas também gostaria de receber algumas informaçoes sobre algo que estou investigando pessoalmente. Disseram-me que você pode me ajudar.",
"#sFather#" is a preprocessed variable set at the top of "Father Bernard_dialog.c":
Code:
Preprocessor_Add("Father", GetMyFirstNames(CharacterFromID("Father Bernard"), false));
Character "Father Bernard" is defined in "PROGRAM\Characters\init\Redmond.c":
Code:
    ch.name = TranslateString("","Father");
    ch.lastname = TranslateString("","Bernard");
    ch.id        = "Father Bernard";

People in Portugal and Spain would refer to their priests as "Padre", but people in Britain would call their priests "Father". That includes people in British colonies such as Port Royale. But if you're playing a FreePlay in "Early Explorers" period, that town is Spanish, as is the priest, so his name is changed to "Padre". This is why the preprocessed variable is used. It means the dialog will work whether the character is a British Father or a Spanish Padre.
 
What sort of bug? That line certainly works in English, I've played that quest many times.
File ItemsDescribe.txt line 30
A letter from #sFatherBernard# to Padre Domingues.

File Father Bernard_dialog.h line 12
"I need to talk to you, #sFather#.",

In which file is the string that replaces #sFatherBernard# and #sFather#?
 
As I said, "#sFather#" is set near the top of "Father Bernard_dialog.c" to be Father Bernard's first name.

"#sFatherBernard#" is set in "PROGRAM\utils.c" to be Father Bernard's full name:
Code:
Preprocessor_Save("FatherBernard",    GetMySimpleName(CharacterFromID("Father Bernard")));
Both his first name (translated version of "Father") and last name (translated version of "Bernard") are set in "Redmond.c".

Both "Father" and "Bernard" are translated in "RESOURCE\INI\TEXTS\PORTUGUESE\characters_names.txt".
 
Lines 70 and 71 should not be translated. They're not the character's name, they're his ID. From "Father Bernard_dialog.c":
Code:
dialog.text = DLG_TEXT[69] + GetMyFullName(&Characters[GetCharacterIndex(DLG_TEXT[70])]) + DLG_TEXT[72];
So it looks up character "Padre Domingues", which is defined in "PROGRAM\Characters\init\IslaMuelle.c":
Code:
    ch.name = TranslateString("","Padre");
    ch.lastname = TranslateString("","Domingues");
    ch.id        = "Padre Domingues";

In the most recent version of "Father Bernard_dialog.h" which I got from you, lines 70 and 71 are:
Code:
"Father Domingues",
"Father Domingues",
Unless you have changed "IslaMuelle.c" to match, the dialog will not give Padre Domingues' name because it can not find character "Father Domingues". And if you have changed it, that's probably why Father Bernard is calling him "Father".

As for line 155:
Code:
"Obrigado, #sFather#. Estou disponível para ajudá-lo novamente imediatamente, mas também gostaria de receber algumas informaçoes sobre algo que estou investigando pessoalmente. Disseram-me que você pode me ajudar.",
"#sFather#" is a preprocessed variable set at the top of "Father Bernard_dialog.c":
Code:
Preprocessor_Add("Father", GetMyFirstNames(CharacterFromID("Father Bernard"), false));
Character "Father Bernard" is defined in "PROGRAM\Characters\init\Redmond.c":
Code:
    ch.name = TranslateString("","Father");
    ch.lastname = TranslateString("","Bernard");
    ch.id        = "Father Bernard";

People in Portugal and Spain would refer to their priests as "Padre", but people in Britain would call their priests "Father". That includes people in British colonies such as Port Royale. But if you're playing a FreePlay in "Early Explorers" period, that town is Spanish, as is the priest, so his name is changed to "Padre". This is why the preprocessed variable is used. It means the dialog will work whether the character is a British Father or a Spanish Padre.
From what I understand, it would be very difficult to replace all “father” with “padre”, which would be correct in the PTBR language.
Several sentences translated into PTBR have "father" in the middle.
The bug I mentioned was fixed with lines 72 and 73 changed to:
"Padre Domingues",
"Padre Domingues",
 
On the contrary, it should be very easy. Edit "RESOURCE\INI\TEXTS\PORTUGUESE\characters_names.txt" and find the translation for "Father". Change it to "Padre". You'll need to start a new game for it to take effect. Then character "Father Bernard" should show up in the game as Padre Bernard and you'll call him "Padre" in the dialog.
 
Something that has been bothering me is this empty line that appears in some dialogues. I couldn't understand what caused this.
 

Attachments

  • 1715269300607.png
    1715269300607.png
    432.5 KB · Views: 9
My translation made the option to reset the sword attack button, default mouse button 1, disappear. I have no idea what caused this
The sword attack works normally

line 92 in "init_pc.c":
CI_CreateAndSetControls( "FightModeControls", "ChrAttackFast", CI_GetKeyCode(CTL_FIGHT_ATTACK), 0, true );

replacing with:
CI_CreateAndSetControls( "FightModeControls", "ChrAttack", CI_GetKeyCode(CTL_FIGHT_ATTACK), 0, true );

the button reappears, however I believe that doing this will result in a runtime error.

I found the problem.
I don't see how to delete the post.
 

Attachments

  • 1715648352717.png
    1715648352717.png
    542.5 KB · Views: 6
Last edited:
Back
Top