Z mojego rozpoznania wynika, że w wypakowanych plikach jest co najmniej 700kB tekstu (500kB dzięki odpowiedniej segmentacji i redukcji powtórek w OmegaT). Reszta tekstu (np. menu, eventy ślubne i związane z craftingiem) jest zapisana bezpośrednio w głównym exe.
Dokonałem jego dekompilacji i cóż, mogę tylko powiedzieć, że teksty są tam nie bez powodu. Przynajmniej część z nich jest generowana dynamicznie na podstawie pętli warunkowych. Otrzymany kod źródłowy jest czytelny dla programisty, ale niekoniecznie dla tłumacza. Nie ma prostego sposobu, żeby wyciągnąć z kodu źródłowego sam tekst. Zresztą, jak mówiłem, jest on wymieszany z kodem. Jeśli chcecie zobaczyć dwa wyrywkowe fragmenty, wygląda to mniej więcej tak:
Kod: Zaznacz cały
"sweet/-1000 -100/farmer 27 63 2 spouse 28 63 2",
Utility.getCelebrationPositionsForDatables(Game1.player.spouse),
"Lewis 27 64 2 Marnie 26 65 0 Caroline 29 65 0 Pierre 30 65 0 Gus 31 65 0 Clint 31 66 0 Emily 30 66 0 Shane 32 66 0 ",
(Game1.player.friendships.ContainsKey("Sandy") && Game1.player.friendships["Sandy"][0] > 0) ? "Sandy 29 66 0 " : "",
"George 26 66 0 Evelyn 25 66 0 Pam 24 66 0 Jodi 32 67 0 ",
(Game1.getCharacterFromName("Kent") != null) ? "Kent 31 67 0 " : "",
"Linus 29 67 0 Robin 25 67 0 Demetrius 26 67 0 Vincent 26 68 3 Jas 25 68 1",
(Game1.player.timesReachedMineBottom > 0) ? " Dwarf 30 67 0" : "",
"/showFrame spouse 36/specificTemporarySprite wedding/viewport 27 64 true/pause 4000/showFrame 133/pause 2000/speak Lewis \"When @ first arrived in Pelican Town, no one knew if ",
Game1.player.IsMale ? "he'd" : "she'd",
" fit in with our community...#$b#But from this day forward, @ is going to be as much a part of this town as any of us!$h#$b#It is my great honor on this day ",
Game1.dayOfMonth,
" of ",
Game1.currentSeason,
", to unite @ and %spouse in the bonds of marriage.\"/faceDirection farmer 1/showFrame spouse 37/pause 500/faceDirection Lewis 0/pause 2000/speak Lewis \"Well, let's get right to it!\"/move Lewis 0 1 0/playMusic none/pause 1000/showFrame Lewis 20/speak Lewis \"@... %spouse... #$b# As the mayor of pelican town, and regional bearer of the matrimonial seal, I now prounounce you ",
Game1.player.IsMale ? "husband" : "wife",
" and ",
Utility.isMale(Game1.player.spouse) ? (Game1.player.IsMale ? "..., well, husband" : "husband") : ((!Game1.player.IsMale) ? "..., well, wife" : "wife"),
"!$h\"/pause 500/speak Lewis \"You may kiss.\"/pause 1000/showFrame 101/showFrame spouse 38/specificTemporarySprite heart 27 63/playSound dwop/pause 2000/specificTemporarySprite wed/warp Marnie -2000 -2000/faceDirection farmer 2/showFrame spouse 36/faceDirection Pam 1 true/faceDirection Evelyn 3 true/faceDirection Pierre 3 true/faceDirection Caroline 1 true/animate Robin false true 500 20 21 20 22/animate Demetrius false true 500 24 25 24 26/move Lewis 0 3 3 true/move Caroline 0 -1 3 false/pause 4000/faceDirection farmer 1/showFrame spouse 37/globalFade/viewport -1000 -1000/pause 1000/message \"Life is going to be different from now on...\"/pause 500/message \"...But the future looks bright!\"/pause 4000/end wedding"
this.descriptionText = ((Game1.player.money < 25) ? ("The price is 25g per geode..." + Environment.NewLine + Environment.NewLine + "It looks you can't afford it right now.") : ("Just place your geodes on my anvil and I'll give them a whack." + Environment.NewLine + Environment.NewLine + "The price is 25g per geode."));
Rodzi to też pewne potencjalne problemy przy każdej aktualizacji, bo należałoby wtedy dokonać ponownej dekompilacji, porównać zmiany i ponownie wprowadzić tłumaczenia. A autor zapowiada częstsze aktualizacje. Może się to więc okazać syzyfową pracą. Gra ewidentnie nie powstała z myślą o wielu językach, bo inaczej tekst byłby sensownie odseparowany od logiki.
Projekt nie jest niemożliwy, po prostu o tyle bardziej żmudny. A dopuszczanie tłumacza do edycji kodu źródłowego to moim zdaniem proszenie się o kłopoty. Cóż, należy liczyć na to, że autor postanowi coś w tej kwestii ułatwić. Nie liczyłbym jednak na to, bo musiałby przepisywać spory kawał kodu dla zerowego zysku z punktu widzenia bazowej gry.