• 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

That shouldn't be the case, as the Ardent storyline has its own character_names.txt separate from the main one, although it may be that the main one overwrites the other somehow if the same name is repeated.


That or directly changing Hawk for a placeholder in tempquest.c (like "Hawk1" or whatever) and then translating that in both the English and Spanish character_names files for Hawk and the corresponding Spanish. From my limited knowledge, I personally prefer this option because it seems to me it would be easier to track down later and recognize why it was done in the first place.
righto, that sounds like a better solution :onya future proofing is always good
 
Another one about the Ardent storyline for @Grey Roger (or whoever can answer;)). When you first meet Two Dogs, he is simply called "Indian Warrior". But that name isn't in the character_names file, and just adding it didn't translate it. The only other instance of "indian Warrior" (in PROGRAM\Storyline\Ardent\characters\init\Story.c) has the TraslateString already added to it. How do I make that work?
 
Yet another. In the questbook for the "Kidnap" quest, the string for #smerch_kid# is translated no problem in the first entry, but the translation doesn't work for the exact same string a few entries later in the same quest. #sgov_kid# seems to work in all instances so far.
Sin título.jpg

Sorry I'm bomabarding the thread with these small issues but I post them as I find them, least I forget them.
 
That shouldn't be the case, as the Ardent storyline has its own character_names.txt separate from the main one, although it may be that the main one overwrites the other somehow if the same name is repeated.
"TranslateString" is defined in "PROGRAM\Dialog_func.c". Looking at that, it checks the default "RESOURCE\INI\TEXTS\ENGLISH\character_names.txt" first - and indeed, that contains an entry for "Hawk". So replacing "Hawk" in the character's definition with "Hawk1", and changing Ardent's "character_names.txt" to match, does seem to be the logical solution. It's also something to bear in mind for future reference because some other names also appear in "RESOURCE\INI\TEXTS\ENGLISH\character_names.txt" which could cause similar confusion, e.g. "Green" is translated to "Greene".

About "Indian Warrior" - no idea. It certainly should be in Ardent's "character_names.txt", so I'm adding it anyway. Perhaps put some 'trace' statements into "Dialog_func.c" to see what it is doing - presumably it's finding a match somewhere before it gets to the storyline "character_names.txt" and returning an untranslated name too early.

As for "kidnap", the first of those entries comes from "PROGRAM\DIALOGS\Pedro Fructoso_dialog.c". The second comes from "PROGRAM\Storyline\Ardent\DIALOGS\Javier Balboa_dialog.c". Check that you have an up to date version of "Javier Balboa_dialog.c" - an earlier version didn't have the pronouns processed by "XI_ConvertString". If you're using that version of the file, "son" won't be translated, and neither will any other pronouns used in dialogs with the governor of Santiago, nor any questbook entries which are set during his dialogs.
 
for "kidnap", the first of those entries comes from "PROGRAM\DIALOGS\Pedro Fructoso_dialog.c". The second comes from "PROGRAM\Storyline\Ardent\DIALOGS\Javier Balboa_dialog.c". Check that you have an up to date version of "Javier Balboa_dialog.c" - an earlier version didn't have the pronouns processed by "XI_ConvertString". If you're using that version of the file, "son" won't be translated, and neither will any other pronouns used in dialogs with the governor of Santiago, nor any questbook entries which are set during his dialogs.
It is up to date as far as I can tell, XI_ConvertString is in place.

edit: Just to see what would happen, I added XI_ConvertString to these two lines in quests_reaction.c, that didn't have it and look to me that they ought to (lines 1133 and 1134). It seems to have done the trick. Although I don't know why "gov_kid" worked before despite not having the "XI" either
Code:
Preprocessor_AddQuestData("gov_kid", XI_ConvertString(gov_kid));
Preprocessor_AddQuestData("merch_kid", XI_ConvertString(merch_kid));

edit2: As for "Indian Warrior", adding it to character_names was indeed enough to make the translation work. I just needed to restart the storyline. Reloading a saved game, even before meeting him, wasn't enough.
 
Last edited:
Oops! The entry in the "Kidnap" questbook didn't come from "Javier Balboa_dialog.c" after all, it came from "quests_reaction.c" - and that hasn't had "XI_ConvertString" added to the pronouns. It has now. Try the attached version. You'll need to start a new game, or at least pick a savegame from before the "Kidnap" quest started.

As for "Indian Warrior": good, at least it wasn't something insidious as "Hawk" was!
 

Attachments

  • quests_reaction.c
    476 KB · Views: 83
Look at my edit in the post above, I just figured it out myself. Only I added it to the next lines ("gov_kid" and "merch_kid" instead of directly "son" and "daughter"), don't lnow if that could cause trouble or what's better but it's two changed lines instead of four, so from an economy standpoint seems sensible to me. What do you prefer?

Edit: Nevermind, in the long run my way has way more changes spread across the file while the way you did it, they're less and more concentrated. I had been adding my changes one by one as I found the issues and didn't notice.
 
Last edited:
Quick question. I've noticed that some storyline-specific location names appear repeated in both the quest_locations.c and qust_reaction.c files with the id.label tag. Do I need to add translation string to both files so all instances of the name are always translated?
 
Quick question. I've noticed that some storyline-specific location names appear repeated in both the quest_locations.c and qust_reaction.c files with the id.label tag. Do I need to add translation string to both files so all instances of the name are always translated?
Can you give a couple of examples?
 
The id.label is used in both WoodesRogers and Goldbug quest_reaction.c to change the name
of a location at a certain moment.

How this translation thing works, sorry I have no idea what's needed to be done.
 
Oh, I think I get it. The names that are repeated in both files are actually commented out in the locations file or viceversa, so they are only active in one file and it's there where the translation string should be added, I guess. For example
In quest_locations.c
Code:
// locations[n].id.label = "Legrands food cellar";        //later when opened
In quest_reaction.c
Code:
        case "unlock_Legrands_grot":
            Locations[FindLocation("Legrands_house")].locators_radius.box.box9 = 0.0001;
            Locations[FindLocation("Legrands_house")].locators_radius.reload.reload3 = 1.0;
            Locations[FindLocation("Legrands_house")].reload.l3.disable = 0;
            locations[FindLocation("Legrands_grot")].id.label = "Legrands food cellar";
 
hi there,

saw the subject for a french translation, I skim through this subject. First thing nice work ! Not sure to have two years to spend on a french translation and perhaps in two years we have the Stand Alone version ready, but I'm curious to see your last update of the Spanish translation and see what files I must translate, cause it would save a lot of research time I guess.

@Homo eructus have you a drop box or something else where i can find it?
 
hi there,

saw the subject for a french translation, I skim through this subject. First thing nice work ! Not sure to have two years to spend on a french translation and perhaps in two years we have the Stand Alone version ready, but I'm curious to see your last update of the Spanish translation and see what files I must translate, cause it would save a lot of research time I guess.

@Homo eructus have you a drop box or something else where i can find it?
My last update is in the Mod Release thread with a rough summary of what it is and what it does. This post here. If all goes according to plan, this will be added to the main mod package soon, so it will be available to support other translations.
 
Thanks, I have skim through it, and see it's only the *.c files. what must I do with it? copy them in my install folder and start the translation of the English folder? Perhaps I must open a specific thread for that kind of question, sorry.
 
Here comes the updated translation files. Added a few changes and fixes but mostly quest locations.
 

Attachments

  • translationFrameworkUpdate.zip
    1.7 MB · Views: 91
Thanks! I now have rather a lot of WinMerging and testing to do - this is not the only item which needs checking and adding in...
 
Here comes the updated translation files. Added a few changes and fixes but mostly quest locations.
Unfortunately, it doesn't seem to work. Apart from the problems with the Antigua admiral and with nations, when I installed it, I got a whole lot of errors which I have not seen before. After I put all the files back the way they were before installing the translation framework, I have not seen those errors again.

Incidentally, a few things I noticed while WinMerging the translation framework files:
In "RESOURCE\INI\TEXTS\ENGLISH\interface_strings.txt", there were a few lines like this:
Code:
Naval id.label = TranslateString("",!{Naval id.label = TranslateString("",!}
That can't be right - even if that type of statement were allowed in there, which I doubt, the 'TranslateString' commands are incomplete.

In "PROGRAM\INTERFACE\interface.c", why does
Code:
if (CheckAttribute(&Locations[locidx], ("id.label")))
have extra parentheses round "id.label"?

In "PROGRAM\calendar.c", function 'GetDayName', should not 'case 0: tmpstr = ("Sunday"); break;' be 'case 0: tmpstr = XI_ConvertString("Sunday"); break;'?
 

Attachments

  • error.log
    5.3 KB · Views: 86
Back
Top