![]() |
|
#1
|
|||
|
|||
|
Topic:
www.ulmf.org/bbs/showthread.php?t=27919 DLSite: http://www.dlsite.com/maniax/work/=/.../RJ162718.html Download: v1.16: https://mega.nz/#!ukV0CCIR!oTkLJxujA...mN3RfZt5Vnm_oE v1.3.1: https://mega.nz/#!q0thyLqL!NdqAelTPs...F2li11zt3_GUho Status: Finished (v1.16) Finished (v1.3.1) Extra special thanks to spacegodzilla (majority of original translation, Santa outfit implementation), Dragonpaladin (H-Santa outfit) Jellypubes (original UI translation), Jaypee (new UI translation and associated code changes, translation tools), and Horoko (partial decensor). Without these people this wouldn't be able to exist, plain and simple. The patch above is complete for version 1.16 as well as 1.3.1 and should be free of errors and typos. The developer is working on new versions of the game with significantly more features/scenes, however, so this is considered a WIP. Last edited by Nomake Wan; 1 Hour Ago at 03:28. Reason: Updated patch for v1.3.1 |
|
#2
|
|||
|
|||
|
Quote:
Update: The trial patch is ready to go (mostly). I was able to play all the way through to the end, but I encountered some crashing at times near the endgame when I stopped なでing. Guess Sylvie really didn't like that. Going to try triggering it on an unpatched copy, to rule out the patch as the cause. Quote:
As for lines 1100 and 1706, that was actually a subtle change to the text, not a newline issue. The demo says 「[name]」ってお呼びしますね while the release says 「[name]」とお呼びしますね. I suspect the other translation misses were due to similar changes (and expect that future revisions by Ray will cause similar issues). It's unfortunate that the part after the newline got caught up in this discrepancy, but the alternative (i.e. not joining newlines) would give you less freedom to change the flow of the text. If you prefer editing scenario files to editing the dictionary, then I recommend this workflow moving forward:
Code:
[l], [p], [r], [emb], [lr], [name], [miyage] As a corollary to this, when you export the lines in step 5, both files should have exactly the same number of lines. This ensures that we have a 1:1 mapping between the files, which makes joining them trivial. As long as you follow these rules, you are free to edit the text as you like (even inserting or removing line breaks). The second thing you should be aware of is duplication. The translation dictionary should only have one entry for each unique passage of Japanese text, so you must remove duplicates in the Japanese column after you join together the exported lines. That means you either have to either be aware of duplicate passages and change each one as you're editing the scenario files, or you have to take a hands-on approach to removing duplicates after joining the exported lines. Both ways are tedious and error prone, which is why it may be a good idea to just edit these directly in the dictionary. Now, I can handle step 6 for you if you'd like (it's also pretty easy to do it yourself with Excel). But if you don't follow steps 1 through 5 (and verify that the exported line counts match in step 5), it takes a lot of manual work to produce the translation dictionary, which means errors can creep in and we both get headaches. This workflow might make step 7 more difficult for you (since you'll need to reapply your structural edits every time you want to update the translation). I think we can probably handle this using GNU diff to create a patch of your structural edits, but things could get hairy when the game gets updated or if you decide to insert or delete line breaks when editing the scenarios (since GNU diff cares about line numbers). On the other hand, since the structural edits would all be together in a patch file, you wouldn't have to worry about forgetting any of them when 1.20 rolls around. One last thing, you can put a '_' in front of any special character at the beginning of the line to escape it. So instead of "...*cough*" you could do "_*cough*". Last edited by Jaypee; 30th January 2016 at 02:59. Reason: Update about trial patch. |
|
#3
|
|||
|
|||
|
Quote:
Quote:
Quote:
Your workflow honestly looks good. I was trying to come up with a way to reconcile it and yet again you've beaten me to it in elegant fashion. I don't mind the dictionary method honestly, especially when cutting out dupes. With dupes cut, the current beta appears to be 'only' 277 lines of text, and much of them are simple things like names or the descriptions for the new clothing items. It's only once the translation is in place that I prefer editing the scenario files directly, so I think this'll work out okay. I'm going to be a little more busy than usual as classes start up, but I will try to chip away at those 277 lines as much as I can each day. がんばります! EDIT: I forgot to address the Ray thing. I don't have Twitter unfortunately. I...could get one, but only if no one steps forward, I suppose. I've managed to survive this long without one, so... Oh, and I updated the patch in the first post. Just a minor thing, fixing the ellipses thing and a period that escaped me in the french toast scene. Last edited by Nomake Wan; 30th January 2016 at 09:38. |
|
#4
|
||||
|
||||
|
Python n00b here. Is minding duplicate Japanese phrases in the translation dictionary necessary? I thought if a dictionary attempts to modify a value for an existing key it would use the latest entry found. Or is it for clarity?
Also, Nomake Wan seems to have already started/finished translating the demo so I'll step aside. Good luck! Maybe we can work together once 1.2 is fully released if there's a larger number of untranslated lines.Regarding Ray-Kbys on Twitter: I don't have a twitter, but what would be the best way to approach him if we were to? I "obtained" the game so I can't really say anything regarding the issue he has with piracy, but the original translation only contained the translated scripts and were useless without owning a copy of the game. If we want to seriously reach out to him, maybe we could say the above, state that we support his game and didn't endorse or encourage piracy with the translations, and ask him if he would like to pack the translated scripts with the international DLSite release for current/future versions? I'm assuming since he said the translations aren't official that the international release was still in Japanese, which may have been a reason for the low number of purchases. |
|
#5
|
|||||
|
|||||
|
Quote:
Quote:
Quote:
Quote:
Quote:
Anyway, I'm not sure that he'll want to include the translation together with his game even if this goes well. He might have concerns about quality control, release schedules, and there could also be copyright issues (I think he retains full control over translations since they're derivative works, but I am not a lawyer). So we should offer him the option to include the translation (either directly or as a separate download that he has control over), but also offer to continue working independently (but only with his approval of course). |
|
#6
|
|||
|
|||
|
Quote:
Quote:
Quote:
So I believe that for now, I will leave the link to the patch up and wait to see how this communication with Ray goes, rather than preemptively nuke everything. I prefer to believe that diplomacy can be had without gutting our hand in advance. |
|
#7
|
|||
|
|||
|
Quote:
The translation script is working pretty well as it is so I don't want to change how it works, but I can definitely make some tools that would transform the dictionary into the fully deduplicated "one sentence per line" format you want and back again. Quote:
EDIT: I finished adding new features to strings.py, you can get it here: https://mega.nz/#!z0gDRKiA!L_FKirGDN...mstYgxtzkiyB_U Now strings.py uses two files named tldict_unit.txt (the same dictionary as we had before) and tldict_line.txt. I believe the second file should be what you've been waiting for. It has everything from the unit dictionary, but the lines have been split on '\n's and deduplicated further. Now you can do this kind of workflow:
Note that tldict_line.txt is applied to tldict_unit.txt automatically at step 5, so do not edit tldict_unit.txt while that file exists. If you want to edit tldict_unit.txt directly, you can delete tldict_line.txt and work only with tldict_unit.txt. Another thing to note is that since tldict_unit.txt is still the "master" dictionary, you are free to delete lines from tldict_line.txt after they have been applied and it won't hurt anything. You could even use a regex to get rid of all lines that are not identical before and after the tab (i.e. all lines that have already been translated). Also, if you insert or delete any line breaks in the .ks files (or '\n's in tldict_unit.txt), then you'll start to see '\n's when you regenerate tldict_line.txt. So if you don't want to see '\n's ever, don't make these kinds of changes. If you need to get tldict_line.txt back after deleting it, or you want to translate the .ks files directly (following closely the guidelines I posted above), then you can regenerate the JP-EN dictionaries by doing Code:
python strings.py x scenario_jp/*.ks scenario/*.ks Last edited by Jaypee; 4th February 2016 at 03:15. Reason: Added link to updated translation scripts. |
|
#8
|
|||
|
|||
|
I've made a new tool, zindex.py. Get it here:
https://mega.nz/#!OwZE3LgQ!zVpM4vcny...OKvs-0f_KP74OM You can use this tool to make Teaching Feeling compatible with the latest version of TyranoScript, which is used in the latest TyranoBuilder. Copy it to your data folder and use it like this: Code:
python zindex.py scenario\*.ks zindex.py details: Versions of TyranoScript lower than 4.00 did not specify the layering of characters, but the behavior was that characters shown later in the script appear above others. In TyranoScript 4.00, the reverse of this behavior was specified (i.e. characters shown later in the script appear below others). Since Ray abused character tags to show parts of Sylvie, this means that most of the scenes in the game are broken under the latest TyranoScript. Fortunately, a zindex parameter was added to the chara_show tag, making this issue easy to fix by simply incrementing the zindex for each chara_show tag in the scene file (with some exceptions). |
|
#9
|
||||
|
||||
|
anyone working on a 1.21 translation?
__________________
Life is Hard, but dont let it knock you down ![]() |
|
#10
|
||||
|
||||
|
Status :
Finished (v1.16) WIP (v1.20+) WIP Means Work in progress. :3 |
|
#11
|
|||
|
|||
|
1.22 is the current version of the game, and yes, the TL is in progress. Progress is delayed because I fell ill and also found myself with a contractual obligation to work on a different game. Work on that game should be wrapping up soon, but I can't say what game it is. I can only say it was worth it.
The latest version is mostly just bugfixes, plus a new beta that adds a new H-scene and a new 'dressing room' feature rather than simply changing Sylvie's sit sprite when you change clothes. He mentioned on twitter that after uploading 1.22 he's already noticed some bugs, though he didn't specifically say whether he saw them in 1.22 or 1.30b2. If he means the latter then yeah, so did I LOL. But that's why it's a beta, and he releases beta-only updates via a tumblr site rather than forcing users to re-download the whole game from DLSite. Time will tell. He's currently sketching Flandre on stream, having taken a break from game work because he burnt himself out trying to get the current version of TyranoScript to work with TeachingFeeling. Jaypee, I believe, has found a rather automated solution to his woes, but neither of us have Twitter. I'm tempted to prod a friend of mine who does to pass this tool (and basic instructions on how to use it and what it does) along so Ray doesn't feel so overwhelmed by the changes. |
|
#12
|
|||
|
|||
|
Just a heads up, I'm looking into the possibility of patching TyranoScript's tag parser to do the translation lookups at runtime. This would allow us to distribute the translation as a single JSON file (plus a small modification to first.ks or title_screen.ks), and the script translation should work with any version of the game (including betas and future versions). It might also be possible to do the UI fixups this way too.
Edit: I think this is going to work, and make things a whole lot easier. Here's a tentative release: https://mega.nz/#!fsIERYLA!_xYH3npR_...7LWy3xLbdt2MVk The translation is in data/others/translate/en-US.json. Every time you launch the game, your translations are loaded from that file, and at the same time, any new lines added to the game by Ray will be written back. This means you don't ever have to run any scripts, just edit the JSON file in place and restart the game to see your changes. I still need to work on translating character names and button tooltips, as well as some way to apply UI fixups in JavaScript. Last edited by Jaypee; 20th February 2016 at 01:47. |
|
#13
|
||||
|
||||
|
Hmm. I know i shouldn't ask this Buuuuuuuuuuuuut... Can't stop myself!
Is there any way to see the translations progress for the newer Versions of "Teaching Feelings"? x: Apologize for any inconvenience this may cause T_T |
|
#14
|
||||
|
||||
|
Quote:
On another note, some interesting news to come in the future. |
|
#15
|
|||
|
|||
|
Quote:
https://mega.nz/#!io52SSKS!vHXbrCASG...Qx056FcrA-wHSk If you translate that JSON file, it should be easy to merge what you translated with Nomake Wan's translations. |
![]() |
|
|