cmorgan Posted September 18, 2009 Author Share Posted September 18, 2009 v18 has no huge changes for .tra, but please check the file differences and bug reports for some named character typos and such that might need to be adjusted for translations in progress Quote Link to comment
Graoumf Posted October 26, 2010 Share Posted October 26, 2010 Hello, I have a question about x#npcwait.tra. Two strings (@244 and @245) seem not to be used. If it's wrong, can you tell me which NPC use its? Thanks Quote Link to comment
cmorgan Posted October 26, 2010 Author Share Posted October 26, 2010 D:\ie_checkfiles\bg1npc-v18\bg1npc\tra\english\x#npcwait.tra (1 hits) Line 245: @244 = ~I will fight you to mine last breath, Vremoni!~ .tp2 /* dialog Tutu Only */ COMPILE ~BG1NPC/Phase3/WAIT/dlg/X#NPCWAIT.D~ USING ~BG1NPC/TRA/%LANGUAGE%/X#NPCWAIT.TRA~ ok.... These have to be from something that kicked out Dynaheir and Minsc, but I find no references. waaaait.... It looks like there was a state in one of the versions that was set to play if Dynaheir and Minsc were spirited away by either the player betraying them to Winski in the added encounter, or by the spell cast by the imp coming to completion. Since the two of them get kicked out of the party, the state was added to this component to make sure that if something went odd, starting dialog with them would shoot off on that. It looks like I must have tightened it up with a simple EXIT, as the states now read EXTEND_BOTTOM _DYNAHP 5 //MINSC IN PARTY +~!AreaCheck("FW5100") <<big big snip of code>> !AreaCheck("FW0226")~+ @31 + STAYHERE_SAFE_DYNAH_K +~OR(84) AreaCheck("FW5100") <<big big snip of code>> AreaCheck("FW0226")~+ @31 + STAYHERE_DANGER_DYNAH_K +~Global("Drawbridge","GLOBAL",1)~ + @1 + BG_DYNAH_K ++ @2 + SC_DYNAH_K ++ @32 + NEVERLEFT_DYNAH IF ~GlobalGT("X#DYQUImpAttack","GLOBAL",0)~ THEN EXIT IF ~Global("X#WinskiTakeDyna","GLOBAL",1)~ THEN EXIT END Those last two lines are the escapes, which originally would have led to additional states (one for Dy, one for Minsc). The draft version I have here has this code as IF ~GlobalGT("X#DYQUImpAttack","GLOBAL",0)~ THEN GOTO X#NEW_ABDUCTION IF ~Global("X#WinskiTakeDyna","GLOBAL",1)~ THEN GOTO X#NEW_ABDUCTION I assume X#NEW_ABDUCTION was something along the lines of IF ~~ X#NEW_ABDUCTION_DY SAY ~I will fight you to mine last breath, Vremoni!~ IF ~~ THEN EXIT END I will retest this to see if the added lines are really necessary - but please translate them , anyways, as it might be that the encounter makes more sense with a final despairing howl from each of them, easy enough to add and test. @244 = ~I will fight you to mine last breath, Vremoni!~ // Dynaheir, crying out against her impending capture @245 = ~Butt - kicking For GOODNESS! RAAAAARGH!~ // Minsc, going into battle rage as the bad guys haul him and Dy off to be tortured. Quote Link to comment
cmorgan Posted October 26, 2010 Author Share Posted October 26, 2010 (If we do think this is important enough, an alternative is leaving the existing code and playing with the imp spell and Winski's materials, both of which basically do IF Global("X#DImpSpell","LOCALS",12) TimerExpired(0) !Dead("Ichthraa") // Ichthraa THEN RESPONSE #100 SetGlobal("X#DImpSpell","LOCALS",12) PlaySound("%tutu_var%EFF_P18") SetGlobal("X#WinskiTakeDyna","GLOBAL",1) SetGlobal("X#DynaheirRomanceInactive","GLOBAL",1) ActionOverride("dynaheir",LeaveParty()) ActionOverride("dynaheir",ChangeAIScript("",DEFAULT)) ReallyForceSpell("dynaheir",DRYAD_TELEPORT) ActionOverride("minsc",LeaveParty()) ActionOverride("minsc",ChangeAIScript("",DEFAULT)) ReallyForceSpell("minsc",DRYAD_TELEPORT) ReallyForceSpell("Ichthraa",DRYAD_TELEPORT) END which could be quickly turned into a cutscene - safer that way anyways - IF <<whatever we have to do here >> THEN RESPONSE #100 SetGlobal("X#DImpSpell","LOCALS",12) PlaySound("%tutu_var%EFF_P18") SetGlobal("X#WinskiTakeDyna","GLOBAL",1) SetGlobal("X#DynaheirRomanceInactive","GLOBAL",1) ActionOverride("dynaheir",LeaveParty()) ActionOverride("minsc",LeaveParty()) DisplayStringHead("dynaheir",@244) Wait(1) DisplayStringHead("minsc",@245) Wait(1) ActionOverride("dynaheir",ChangeAIScript("",DEFAULT)) ActionOverride("minsc",ChangeAIScript("",DEFAULT)) ReallyForceSpell("dynaheir",DRYAD_TELEPORT) ReallyForceSpell("minsc",DRYAD_TELEPORT) ReallyForceSpell("Ichthraa",DRYAD_TELEPORT) EndCutsceneMode() END ) Quote Link to comment
Graoumf Posted October 31, 2010 Share Posted October 31, 2010 Thanks, it was very helpful. Quote Link to comment
jastey Posted November 3, 2010 Share Posted November 3, 2010 Question: What is the file "x#eldothn.tra" for? It is empty. Quote Link to comment
Isaya Posted December 3, 2011 Share Posted December 3, 2011 Question: What is the file "x#eldothn.tra" for? It is empty. Sorry for the late answer. The way this file name is built reminds me of a simular one for Alora, with the final n. I gather it was meant for a new dialog when the component where Eldoth is moved out of Cloackwood is installed, but that that dialog was not created or removed. However the tp2 never references this tra file for any purpose. Here's some feedback regarding the French translation and a tool we used to help recovering texts taken from Baldur's Gate or to identify the duplicates between x#ict3.tra and all the x#**int.tra files. The tool is called Translation Retriever and can be downloaded here. There is a user manual that should explain how to use it and how to analyse the outputs. To use it, you need tra files for the games, in English and in your own language. You can find English dialog.tlk files there. To extract tra files from them, you just need WeiDU (command to run from the game directory): weidu --tlkin dialog.tlk --ftlkin dialogF.tlk --traify-tlk --out dialog.tra or (if your language doesn't have dialogF.tlk weidu --tlkin dialog.tlk --traify-tlk --out dialog.tra Comments written by the tool can also be found in the French tra files. Files that are benefited the most from the texts retrieved from the original games (mainly BG, but also a bit from BG II) are: bg1npc_tmp.tra: character names, soundset for non joignable NPCs (many from BG II, as well), items x#ajpcfl_tmp.tra: Ajantis soundset and biography ("your voice is strange" stuff, within player initiated dialogs) x#pcinit_tmp.tra: all NPCs soundset and biography ("your voice is strange" stuff, within player initiated dialogs) It's better to run Translation Retriever for these files, since it will replace the texts to translate with the translated ones, in case of perfect match between the mod text and the original game text. There are slightly more than 1000 texts that can be retrieved (almost 40 per NPC soundset + a few more), and that count doesn't include a few 100s for the soundset of non playable characters. There are other files of interest, regarding the texts moved out of x#**int.tra and x#totsc.tra files into x#ict3.tra file. In x#**int.tra files, you'll find comments like this: // BG1 NPC : texte identique dans le fichier x#ict3.tra au numéro 242, probablement inutile de traduire ici ! @3 = ~Souviens-Toi bien de <CHARNAME>, maire. Je pressens que Tu entendras encore parler de ses exploits dans le futur.~ The comment means: // BG1 NPC : identical text in file x#ict3.tra at line @242, probably no need to translate here! This comment highlights where it is likely that the text is not used anymore in x#**int.d, since there is an identical text in x#ict3.tra. This kind of comment was generated with a old special build of Translation Retriever, hence the text in French and the explicit reference to BG1 NPC, compared to the version you can download. Translation Retreiver didn't know whether the x#**int.d file indeed had code commented for that text, though. Neither did it know if the text was indeed used in the same context (same character) in x#ict3.d! We (humans) checked the context when building the x#ict3.tra file, though. When we built the x#ict3.tra file, first from the various x#**ict3.tra files (plus dealing with other unmatched texts), we also added (by hand) similar comments in x#ict3.tra: // BG1 NPC : texte identique dans le fichier x#dyint.tra au numéro 3 @242 = ~Souviens-Toi bien de <CHARNAME>, maire. Je pressens que Tu entendras encore parler de ses exploits dans le futur.~ which means // BG1 NPC : identical text in file x#dyint.tra at line @3 In the end, this gives the two way match between x#ict3.tra and x#**int.tra. There 837 texts matched this way in x#ict3.tra. In case of unmatched comments, trust the one in x#ict3.tra. Comments in x#**int.tra files were generated automatically while those in x#ict3.tra were writtent and checked by humans. I believe these comments may help other translation teams, once you know what the comment means. The french tra files are also often full of comments regarding the context of the talks and the organisation of the team work, unfortunately in French. This was helpful to proofread but it makes them a bit messy for anyone who doesn't read French, I'm afraid. Feel free to ask for clarification. The x#ict3.tra file is now associated to the word "nightmare" among us because of all the discussions on how to deal with it and of the time it took to build and check it, so I may suffer from an inability to talk about it clearly. Quote Link to comment
jastey Posted December 5, 2011 Share Posted December 5, 2011 Thank you! This will be very helpful for the German translation team (yes, it exists!!) and I will come back to you if questions arise. Quote Link to comment
jastey Posted August 27, 2017 Share Posted August 27, 2017 (edited) I think in x#ict3.tra, these two lines: @554 = ~Good.~@555 = ~Now, to business.~ Need to be combined to one: @554 = ~Good. Now, to business.~/* @555 */ Reason is that it's the way it was in Alora's original interjection and @555 is not used in x#ict3.d. EDIT: I corrected it in the tras of all languages and will make pull request. Edited August 27, 2017 by jastey Quote Link to comment
jastey Posted August 27, 2017 Share Posted August 27, 2017 (edited) In x#ict3.d, there was a mixup of Ajantis' interjections: His reaction to Eldoth joining was mixed with his reaction to Dynaheir being attacked. Thus, this (which is @37): @660 = ~By Helm! <CHARNAME>, can you not see that this is a fight of good against evil? I am not at your side in this! My honor tells me to defend this woman!~ needs to be changed into the line @22 from x#ajint.tra: @660 = ~<CHARNAME>, I hope you don't seriously consider carrying out this false plan?~ I've done this locally for all language versions, this will be in my next pull request. Edited August 27, 2017 by jastey Quote Link to comment
jastey Posted August 27, 2017 Share Posted August 27, 2017 In x#ict3.d, a passback line for Garrick was missing here (line already existed in the tra). I added the bold lines and will include it in the next pull request: /* individual passbacks supplied */I_C_T3 ~%tutu_var%MELICA~ 2 X#MELICA2== ~%GARRICK_JOINED%~ IF ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @769== ~%tutu_var%MELICA~ IF ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @770== ~%GARRICK_JOINED%~ IF ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @771== ~%tutu_var%MELICA~ IF ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @772== ~%GARRICK_JOINED%~ IF ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @773== ~%tutu_var%MELICA~ IF ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @776== ~%EDWIN_JOINED%~ IF ~InParty("edwin") InMyArea("edwin") !StateCheck("edwin",CD_STATE_NOTVALID)~ THEN @774== ~%tutu_var%MELICA~ IF ~InParty("edwin") InMyArea("edwin") !StateCheck("edwin",CD_STATE_NOTVALID)~ THEN @775END Quote Link to comment
jastey Posted August 30, 2017 Share Posted August 30, 2017 (edited) To all language teams: in x#ajantis.tra, line 18 @18 = ~One day, drow, unless you change your evil ways, Torm's justice will be brought to you on the edge of a sword.~ needs to be changed to @18 = ~One day, drow, unless you change your evil ways, Helm's justice will be brought to you on the edge of a sword.~ (I won't do this myself as it's not as easy as swapping a whole line but theres grammar involved! ) Edited August 30, 2017 by jastey Quote Link to comment
jastey Posted May 16, 2021 Share Posted May 16, 2021 Another change where translations are needed for v26: in x#ajint.tra, line @28 was changed to Quote @28 = ~Yes, we will fight this ogre that suppresses you, beautiful creature. But we expect our companion to be restored to full life, once we have succeeded!~ in setup.tra: Quote /* new for v26 */ @1132 = ~The BG1 NPC Project: Kivan's Proficiency~ @1133 = ~Kivan uses spears~ @1134 = ~Kivan uses halberds~ and Quote /* new for v26 */ @5005 = ~This mod is not compatible with this game.~ @5006 = ~This mod needs to be installed before EET_End on your EET install.~ In x#halbaz.tra: @5, @7, and @8 are no longer needed. @6 changes to: Quote @6 = ~Please, improve my armor as offered.~ Quote Link to comment
jastey Posted May 18, 2021 Share Posted May 18, 2021 Correction to the above: the line @28 changed in x#ajint.tra (not x#ajantis.tra)! Quote Link to comment
jastey Posted June 18, 2022 Share Posted June 18, 2022 I need one line in Italian, Russian, Spanish: Quote @783 = ~Temporary Polymorph~ Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.