Announcement

Collapse

Please use the Hentai ID thread for all hentai ID requests. Click me for link!

The Identification Thread is Here:

http://www.hongfire.com/forum/showthread.php/447081
See more
See less

Translation Aggregator

Collapse
This is a sticky topic.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Translation Aggregator

    I'm no longer working on Translation Aggregator, but Setx has released an updated version, here. The files attached directly to this post are now outdated

    Translation Aggregator basically works like ATLAS, with support for using a number of website translators and ATLAS simultaneously. It was designed to replace ATLAS's interface as well as add support for getting translations from a few additional sources. Currently, it has support for getting translations from Atlas V13 or V14 (Don't need to have Atlas running), Google, Honyaku, Babel Fish, FreeTranslations.com, Excite, OCN, a word-by-word breakdown from WWWJDIC, MeCab, which converts Kanji to Katakana, and its own built-in Japanese parser (JParser). I picked websites based primarily on what I use and how easy it was to figure out their translation request format. I'm open to adding more, but some of the other sites (Like Word Lingo) seem to go to some effort to make this difficult.

    JParser requires edict2 (Or edict) in the dictionaries directory, and supports multiple dictionaries in there at once. It does not support jmdict. You can also stick enamdict in the directory and it'll detect some names as well, though the name list will be heavily filtered to avoid swamping out other hits. If you have MeCab installed, JParser can use it to significantly improve its results. TA can also look up definitions for MeCab output as well, if a dictionary is installed. In general, MeCab makes fewer mistakes, but JParser handles compound words better, and groups verb conjugations with the verb rather than treating them as separate words.

    TA also includes the ability to launch Japanese apps with Japanese locale settings, automatically inject AGTH into them, and inject its own dll into Japanese apps. Its dll can also translate their menus and dialogs using the ATLAS module (Requires you have ATLAS installed, of course). Versions 0.4.0 and later also include a text hooking engine modeled after AGTH. The menu translation option attempts to translate Windows-managed in-game menus, and is AGTH compatible. The AGTH exe and dlls must be in the Translation Aggregator directory for it to be able to inject AGTH into a process. AGTH is included with the most recent versions of TA.

    The interface is pretty simple, much like ATLAS: Just paste text into the upper left window, and either press the double arrow button to run it through all translators, or press the arrow buttons for individual translation apps. Each algorithm is only run once at a time, so if a window is busy when you tell it to translate something, it'll queue it up if it's a remote request, or stop and rerun it for local algorithms. If you have clipboard monitoring enabled (The untranslated text clipboard button disables it altogether), it'll run any clipboard text with Japanese characters copied from any other app through all translators with clipboard monitoring enabled. I won't automatically submit text with over 500 characters to any of the translation websites, so you can skip forward in agth without flooding servers, in theory. I still don't recommend automatic clipboard translation for the website translators, however.

    To assign a hotkey to the current window layout, press shift-alt-#. Press alt-# to restore the layout. Bound hotkeys will automatically include the current transparency, window frame, and toobar states. If you don't want a bound hotkey to affect one or more of those states, then you can remove the first 1 to 3 entries in the associated line in the ini file. Only modify the ini yourself when the program isn't running. All other values in those lines are mandatory.

    Pre-translation substitutions modify input text before it's sent to any translator. Currently applies to websites, ATLAS, Mecab, and JParser. There's a list of universal replacements ("*") and replacements for every launch profile you've created. I pick which set(s) of substitutions to use based on currently running apps. Note that you do not need to be running AGTH or even have launched a game through TA's launch interface for the game to be detected, but you do need to create a launch profile. May allow you to just drag and drop exes onto the dialog in the future.

    MeCab is a free program that separates words and gives their pronunciation and part of speech. I use it to get the information needed to parse words and display furigana. If you have MeCab installed but I report I'm having trouble initializing it, you can try copying libmecab.dll to the same directory as this program. Do not install MeCab using a UTF16 dictionary, as I have no idea how to talk to it (UTF16 strings don't seem to work). Instead, configure MeCab to use UTF8, Shift-JIS, or EUC-JP. If you have both MeCab and edict/edict2 installed, you can view a word's translation in MeCab by hovering the mouse over it. Also, JParser can use MeCab to help in parsing sentences.

    JParser tends to be a better choice for those who know almost no Japanese - it tells you how verbs are conjugated, handles some expressions, etc. MeCab may well be the better choice for those who know some Japanese, however.

    Source, attached below, is available under the GPL v2.

    Thanks to (In alphabetical order, sorry if I'm leaving anyone out):
    Hongfire Members:
    Freaka for his innumerable feature suggestions and reported issues over the course of development.
    Setsumi for TA Helper and for all his suggested improvements and reported issues, particularly with JParser.
    Setx for AGTH.
    Stomp for fixing the open file dialog not working properly on some systems and adding the tooltip font dialog, and fixing a bug that required admin privileges when certain other software was installed.
    Might sound like minor contributions, but feedback really drives the development of TA.

    Non-members:
    KingMike of KingMike's Translations, who is apparently the creator of the EUC-JP table I used to generate my own conversion table.
    Nasser R. Rowhani for his function hooking code.
    Z0mbie for writing the opcode length detector/disassembler I use for hooking. Apparently was intended for virus-related use, but works fine for other things, too.
    And the creators and maintainers of edict, MeCab, and zlib.

    You might also be interested in:
    *Setsumi's TA Helper and AGTHGrab.
    *errotzol's replacements script.
    *Devocalypse's devOSD.
    *kaosu's ITH (Like AGTH. No direct TA support, due to lack of a command line interface, but definitely worth checking out).

    MeCab
    edict2

    Changelog:
    0.4.9
    * Fixed MeCab/JParser getting stuck when starting a new translation before the last is fixed.
    * Fixed interface lockup while mousing over an item in MeCab while JParser is running.
    * Menu translation will now translate column headings in ListViews (Needed this for the AA launcher)
    * Fixed ATLAS config crash.
    * Global hotkey support. Toggle under "File" menu (Tools is kinda big already). Currently only really supports history navigation. May add more later.

    0.4.8
    * Added history. Logs both original text and translations (For online translators). It logs up to 20 MB of original text, and whatever translations are associated with it. Currently only way to force a retranslation is to toggle one of several options (Autoreplace half-width characters, src/dest language, modify substitutions).
    * Fixed deadlock bug on MaCab mouse over while JParser is running.
    * Fix corrupting built-in text hooker settings when launch failed. Suspect no one uses this, anyways.
    * Drag/dropping an exe onto TA to open up the injection dialog now actives TA.

    0.4.7
    * JParser and MeCab each use their own thread (Mostly).
    * Changed conjugation table format to JSON - plan to do this to a lot of other files (Being careful not to mess up game settings or substitution tables). Currently have way too much file loading code.

    0.4.6
    * Fix WWWJDIC
    * Fix closing injection dialog
    * Updating process list 10+x faster
    * Process list autoupdates
    * Fixed bug that would result in injecting into wrong process when one program is running multiple times.
    * Updated included AGTH version

    0.4.5
    * Added bing support.
    * Updated Honyaku code (They didn't try and block TA, they just modified their HTML)
    * Fixed AGTH command line code.
    * Replaced "/GL" with "/SM" compile option, resulting in faster builds when one has a lot of cores.

    0.4.4
    * Regular expressions are now compiled
    * Injection validation when using addresses relative to dlls (Or function addresses in dlls) should be fixed.
    * Added option to create shortcuts. They'll launch TA (If it's not running) and try to launch the game using the current injection settings (Injection settings that you'd get at the launch screen - the current settings are not saved - it always uses the most recently used ones).
    * Appropriated some of Setsumi's code to make tooltips larger.

    0.4.3
    * Multiple subcontexts now supported. Separate them with semi-colons. AGTH code converter will add two subcontexts, when appropriate.
    * Using aliases for hooks added. Prefix a hook with "[Alias Text]" and that's what will be displayed on the context manager screen as the hook's name. Makes it easier to see context strings.
    * Locale selection added to injection dialog.
    * "Hook delay" added to injection dialog. Actually doesn't delay hooking, delays how long before hooks that use filtering based on calling function's dll are enabled. Generally only the default hooks do this. Increasing this delay may circumvent issues with games that crash when launched with AGTH, but work fine when injected after launching.
    * Added "!" and "~" operators.

    * Stomp's admin privilege fix when using some 3rd party software added.
    * Excite fixed
    * Fixed sanity testing for injection addresses, so when specify a dll or exe name in a text hook, shouldn't erroneously think it's an error when the module isn't loaded in the current address space.
    * Fixed some JParser dicrionary common word parsing, when using versions of edict with entL entries. Also changed treatment of Kanji entries when only their corresponding Hiragana are marked as common.
    * Fixed substitution matching Hiragana with Katakana and vice versa.
    * Fixed a clipboard-related crash bug.
    * Fixed hooks causing crashes when relocating call/jumps (Hopefully...)
    * Fixed AGTH repeat filter length placement (oops).

    0.4.2b
    * Fixed substitution loading/deleting.
    * Fixed << and >>.

    0.4.2
    * AGTH code conversion tool.
    * Injection code checker added.
    * New child process injection handler (Really nifty injection code for that...). Should be a little more robust than before.
    * Option not to inject into child processes added.
    * Auto copy to clipboard added.
    * Both extension filters fixed.
    * Both eternal repeat filters fixed/upgraded.
    * Phrase repeat filter fixed/upgraded.
    * OpenMP/MSVC 2008 SP1 runtime requirement removed
    * char/charBE fixed
    * GetGlyphOutline fixed
    * Copy to clipboard crash when auto translate disabled fixed.
    * Slightly improved dll injection error handling.

    0.4.1
    * More context/filter options.
    * Repeated phrase filter now handles cases where phrase is being extended by a couple characters each time (xxyxyz, etc). Extension filters no longer really needed, unless the repeat starts out too short.
    * Option to handle eternally looping text.
    * Option to ignore text without any Japanese characters.
    * Text which substitution rules reduce to nothing no longer overwrites translated text.
    * Log length limit added.
    * Options to manage default internal text hooks added.
    * Clipboard treated as a context. Its default settings should mirror the old handling.

    0.4.0
    * Added it's own text hooking engine. Probably still buggy.
    * Fixed excessive redrawing when a hidden furigana window had clipboard translation enabled.
    * Works with new, even more poorly formatted edict files.
    * Handles EUC_JP characters that Windows does not (Doesn't use them properly with WWWJDIC at the moment, however). Only really fixes loading edict files with those characters.
    * Fixed right clicking when full screen.
    * Fixed not checking auto Hiragana mode.
    * Less picky when reading MeCab output.
    Attached Files
    Last edited by ScumSuckingPig; 07-11-2015, 11:20 AM. Reason: Change download link, re-upload attachments upon request from Setx

  • #16
    It's having trouble sending in quotations and speaker. For instance:

    露天商「失われた都だと言う人もいれば、幻想の空間だ と言う人もいる」

    Is being translated as:

    There is a person who says that there is a person who says that lost Miyako, too and the space of the fantasy ..roadside stand ".., too. "

    But in Quick ATLAS it's:

    Roadside stand

    "There is a person who says that there is a person who says that lost Miyako, too and the space of the fantasy, too. "

    Comment


    • #17
      ATLAS has two functions... One takes in only single sentences, and has serious issues if you give it too much text. The other breaks up sentences, and then feed them to that function. I use the former and do my own sentence breaking, so I can fix things that ATLAS sucks at, like ellipses ("..."), and the next version will have an option to break around commas, too.

      So how is this relevant? In the case where quotes are used within a sentence, you don't want to break up the sentence around the quotes. In the case where multiple lines are being combined, separated only by quotes, you do want to break the line up around the quotes. I currently have no rule to distinguish between the two cases, so always act as if I'm in the former case, unless there's some punctuation in there. I didn't even realize ATLAS actually had such a rule, since it tends to do so poorly with quotes. I need to come up with such a rule to fix the issue. I could just use ATLAS's function, but breaking up sentences myself gives me a bit more room to work with.

      On a side note, I don't handle lines with Japanese question marks in the middle right, either, due to a bug, but that's already fixed.
      Last edited by ScumSuckingPig; 11-23-2008, 06:08 PM.

      Comment


      • #18
        I've yet to have time to take a look at your tool, but from the sounds of it I like it.

        Regarding the breaking up stuff I've had some experience on my own when I was trying to improve the Atlas translation with some .dll hacking (http://freaka.freewebhosting360.com/atlas.php). It's probably worth to force breaking on every special character (comma, semicolon, dot, single/double/japanese quotes, triple dots). I was never happy with the way I did it though, being limited to some very basic asm hacking.

        The most flexible solution seemed to me an implementation that would offer an end-user configurable regular expression, where everything that matches would be used as linebreak and after translation added together around that char. The only problem is that after translation the first character is always written with a capital letter, so you'd end up with "I was going to school, Blue is the entrance" and I don't have a good idea how you could fix that. Maybe forcing everything but "I" to lowercase would be the best solution.

        Comment


        • #19
          I think a regular expression is overkill, but I do have a dialog with a bunch of "break on" options ready for the next release. I think I could improve the default handling of some cases, however. In the case of quotes, I just need to come up with a decent heuristic that usually works to determine if the quotes are around a single word, a single clause, or an entire sentence, and in the first case send them along to ATLAS, and in the last case break around them (Don't ask me about the middle case. ATLAS doesn't do well with anything but single quoted words or noun phrases).

          Something like: "If the last character of a line closes the quote, or there's any punctuation inside the quotes break around them, otherwise if the entire phrase is followed by a particle, don't break around them, otherwise, if there's a comma immediately before or after, don't break around them, otherwise, break around them."

          Another thing I might be able to recognize is when you have the pronunciation/spelling of a word in parentheses after the word itself.

          Problem with fooling with capitalization is I don't know whether it's a proper noun or not. I'm thinking about adding a module to interface with dictionaries, however, and if I had either a name dictionary or an english dictionary as well as a Japanese to english one, might be able to do something with that.
          Last edited by ScumSuckingPig; 11-23-2008, 06:11 PM.

          Comment


          • #20
            Do quotes around a single word happen in any noticeable amount? I don't think it's worth to worry about that. Every special character seems to have the potential to break something in Atlas and then it starts with those what...is...going...on sentences, so I wouldn't mind to avoid it completly.

            Regarding the regexp, I don't really think it's overkill. I mean instead of touching the code everytime somebody finds a special character that could need some breaking you could outsource that into a config file. The primary use wouldn't be much more then a simple list ("|'|!|?) of characters. Some games output speakernames without quotes before the dialogue so with regexp you could do a (^lisa|"|'|) to enforce a linebreak after their names at the start. Although that wouldn't translate the names I guess, but still better then having them mixed in which really kills any translation.

            I was thinking about the dictionary as well, but at least to me that sounds like a lot of work with an uncertain result, which is why I would just stick to capital "I" hehe. But if you find a workable solution with it, thats probably better yeah.

            I did some quick testing of the tool. The machine had Atlas V13 installed, so I couldn't use Atlas. Not sure if you have any interest to support it. I have to say Google translation is suprisingly fast. The 300 might be a bit to short in some cases though, how about sending multiple requests (split at sentence end)? I would have also some interface suggestions but I'm not sure if you want to hear about those already. Overall nice tool, I'm looking forward how it'll develop.

            Comment


            • #21
              Frequency of single words in quotes really depends on the game. Some games use them with some frequency, some don't use them at all. My...umm..."testing corpus" is the complete text for some of KISS's games, since I have a text extractor for them, and they use them in maybe 0.5-2% of their blocks of text.

              Matching a list of strings with support for a few special characters (like '^'), seems reasonable, but I'm doubtful about the need to support anything like "[A-Za-z]*?[0-9]{2,9}", etc.

              Dictionary support solely for the use of determining capitalization is complete overkill, but I figure if I'm going to include support for dictionaries anyways, it might make sense to use it here.

              I don't support ATLAS V13 because I had to dig around in ATLAS V14's dlls a bit to find the right functions to do what I need, along with their arguments, and I'm not sure if they're the same for V13. If you verify that I can get the address of V13's install directory at "Software\Fujitsu\ATLAS\V13.0\EJ\TRENV EJ" (After cutting off the file name) and the default install directory is "Program Files\ATLAS V13", I'll try to use V13's dlls as well, and we can see what happens.

              The 300 limit is only for automatically submitting text when using clipboard monitoring, in case that wasn't clear. There's no limit when submitting text manually. My target length was roughly 6-8 lines of in-game text. I honestly don't know how to reasonably set the value, I'm completely open to the idea of increasing it.

              I'm happy to hear interface suggestions, actually.
              Last edited by ScumSuckingPig; 11-23-2008, 07:41 PM.

              Comment


              • #22
                Did you try out how much it butchers the result if you break around them? I guess I have only played one KISS title.

                My idea with regexp was just to integrate one of those premade regexp sources and forget about it, some stuff probably isn't needed but if's there it doesn't hurt either. Well apart from increasing the file size i guess. I can see purists frown on me though.

                The paths you mentioned are valid for V13. I believe the only reason why I kept is was to be able to test out any issues I might have on V13 with my dll, on a different system (which i rarely use for gaming) I also have V14.

                At some point the web-translation engines will refuse to translate everything, I thought that was one of the reasons why you put the limit in there. I never really figured out where it was, babelfish seemed to be stricter then exite though. I feel like 600-900 would be a better number, but I'm not sure either. Maybe just put it as a var into the ini file? Actually I just noticed that Babelfish with your tool returns in something like 50% of all cases a "Unrecognized response received: [...]", that might explain as well why my firefox script had problems in the recent past. Unless you cut off the output, it seems like the result only contains the first part of the html page, cutting off in the middle of it.

                Interface: I would arrange the translations windows as tabs, I'm not really sure how other people approach it but I'd rather read one translation and only if I feel that something is unclear I'd switch over and see what the other one says. One idea I also had for the tabs idea was to be able to switch between them with hotkeys. Although I can see what the advantage of having all visible is.

                For some reasons I felt motivated to try to drag and drop single translation windows, which ofc doesn't work (and I guess takes some major gui efforts). Just the window with the translation, without any other button etc around it is also an idea which I've had in the past. So you can drag it over the game window where the text normally appears and use it without additional visual distraction. Ideally with half transparent background to see that the text changes in the background. I realize that those are quite fancy ideas though.

                I found looking at all those windows confusing at the start, especially as nothing happened. How about just having google there by default, already enabled to grab input from the clipboard. Tooltips on the menu items would be nice to have, I had no idea what they're doing before trying it out. Oh and something which also atlas doesn't offer (but agth in a sense): when text is selected in the upper box only translate the selected text and not everything. That comes often handy if you encounter choices within a game and those are repeated a few times.

                Edit: Actually now I thought about it again, wonder why I'm not simply adding a bunch of linebreaks in Atlas and get the same effect. Hmm...
                Last edited by Freaka; 11-23-2008, 08:12 PM.

                Comment


                • #23
                  ATLAS pretty much always butchers quoted text when you break on quotes if the quoted phrase is in the middle of the sentence. However, the only cases where it does reasonably when not breaking on quotes in those cases is where you have a lone noun phrase quoted... In those cases, you can just manually delete the quotes to get the result, anyways. Might just be simplest to always break on quotes.

                  It's not so much file size that bothers me about using someone else's regexp code. Has more to do with being a control freak, I guess. Either way, you've convinced me that line break tables (And associated substitution tables for things like, ellipses->..., or jap name->english name) are the way to go. To use regexps or not isn't the primary issue here.

                  I'm not sure about the Babel Fish cutoff page thing. Babel Fish can send nulls in the middle of HTML documents, but I added a fix for that. I've only gotten cutoff html twice from it with the latest version, and both times resubmitting resulted in a valid response. Sounds like it's much worse for you. If I could reproduce the issue with any degree of consistency, I'd look into it, but so far, it's happened to me less than 2% of the time, so I was thinking it might be some sort of a timeout thing. Don't suppose there's any particular phrase that always gives you a cutoff response?


                  On the interface: The way I use it is that I stick with ATLAS, and then if it has issues, I like to have multiple results on screen at once to compare, which is why I was thinking of letting you bind window layouts to hotkeys. I hadn't even thought about tabs. I'll think about it. Could even combine the two. Not to make things too complicated, but instead of binding layouts to hotkeys, could setup the layouts of tabs, though then there's the question of the toolbar. With only one window open at once, could move the toolbar up above the tabs (Which is nice for things like the always on top button, which shouldn't really belong to one subwindow), but with multiple windows, wouldn't work quite as well. Anyhow, something worth considering.

                  I've thought about doing something like what OAGT does, or being more aggressive and actually replacing in-game text by hooking the text drawing functions and completely eating the original text (Obviously would work much better with ATLAS than with a remote translator). The idea of a window on top of a game's text area hadn't occurred to me. Your suggestion would be much simpler. Wonder how difficult it is to make a window transparent. Edit: Regardless, you'd probably need to keep the toolbar. Otherwise there'd be no way to drag it anywhere else (If you misplaced it slightly or wanted to get rid of it), with neither a toolbar nor a standard window header.

                  I've spent a couple hours trying to add tooltips. I've had no luck getting even single tooltip to appear. Tried using the toolbar control's built-in tooltip stuff and either setting the text when I add the buttons or responding to WM_NOTIFY messages for either the tooltip or the toolbar, tried creating a tooltip window myself and managing it by hand, absolutely no results, I receive no notification messages, etc. Anyways, as a result, tooltips are indefinitely on hold. Spent more time fighting with them than on either my http code or getting ATLAS working. May end up just making my own tooltip window class and managing them myself. A bit silly, but that's how frustrated I've become with Microsoft's stuff.

                  ATLAS is really intended to be the primary translation program used, which is why it's the only one with clipboard translations enabled by default. Doing things locally whenever possible just appeals to me. Cleaning up the default display does make a lot of sense, however.

                  As for translating highlighted text: That's a bit of a problem. I don't like spamming http requests. So first you highlight one character, then 2, then 3, until you get the entire phrase...Do I submit an http request each time? Makes sense with ATLAS, but not in general, IMHO. I don't mind making a hotkey for it, though. Highlight text and hit ctrl-d or middle mouse button or something, actually makes a lot of sense.
                  Last edited by ScumSuckingPig; 11-24-2008, 12:09 AM.

                  Comment


                  • #24
                    If you want to draw translated text in-game i can help you with hacking the system, maybe even add some kind of interface in AGTH for such usage. There is nothing like that in current AGTH because i wanted to make universal text extraction tool without bindings to any translators, but it could be done if someone is willing to maintain all the issues of interacting with translators.

                    If you are thinking about creating window with translated text over the game - i think it should have 'pure text' and 'with toolbar' modes that could be switched by hotkey.

                    As for translating highlighted text - look at how it's done in AGTH: works only for highlighting from mouse and text is copied only when mouse button is released.

                    I like that thare are multiple translations at once, switching to different translation by tabs would be much less convenient.

                    Comment


                    • #25
                      I already have code for dll injection and hooking at the function table level. Not as general as what can be done by modifying the code itself, but figure if I get anywhere with what I have, then will be the time to look into using more general hooking code. Not yet sure if I'm even going to try to get translated text in-game.

                      A hotkey to hide toolbars seems a good idea even if I don't let you move individual windows over the game. The toolbars tend to take up a lot more space than I like, and if you're using auto-clipboard translation with the original text window hidden anyways, you don't really need them.

                      Another good suggestion. AGTH handles highlighted text quite nicely.

                      Definitely going to continue to allow multiple translations on the screen at once, as that's how I prefer to do things as well. I also want to allow some easy way to jump between showing different sets of translators however, be it hotkeys or tabs or something else. Right now it's a bit of a pain to add extra translators if you only want your primary one or two visible most of the time, but want the others for more difficult stuff.

                      Comment


                      • #26
                        I've actually send 4 times the same phrase to babelfish and it broke 2 times with it, so I don't think it is content related.

                        Regarding transparency I found this: http://www.codeproject.com/KB/wtl/transparent.aspx
                        PHP Code:
                                // make it transparent
                                
                        long l GetWindowLong(m_hWndGWL_EXSTYLE);
                                
                        |= WS_EX_LAYERED;
                                
                        SetWindowLong(m_hWndGWL_EXSTYLEl);
                                
                        SetLayeredWindowAttributes(m_hWnd0m_nOpacityLWA_ALPHA); 
                        should be the key there. Opacity allows to finetune it, basicly make it halftransparent or w/e.

                        The advantage of using google by default would be just that i can be used without additional tools, not that important either way though.

                        Edit: Oh yeah and if we're talking about hacking and translation, menu item and pop up box translation like OAGT does would be great.
                        Last edited by Freaka; 11-24-2008, 07:56 AM.

                        Comment


                        • #27
                          At the moment you're enforcing a minimum size of frames around 400*120, could you please lower this by a noticeable amount? I tend to drag the translation at the side where only limited width is left.

                          Edit: There is a pretty odd effect when using excite. 霧の向こうから陣の中央に近づいてくる者が2人。 translates to "The people who approach the center of the formation from the other side of the
                          fog are two people." with a linebreak between "the" and "fog". This also happens when using the excite through a normal browser, so it's not caused by TAA. It seems like this happens when a textblock is longer then 20 jp chars, but shorter then 50 jp chars. (A new textblock starts after a double linebreak.)

                          Maybe padding with with numbers 22222222 to fill up the space would be good? However whats bad is that excite like atlas also suffers from the I...broke...the...translation bug, which ideally would mean TAA breaks up sentences for excite like it does for atlas and puts the results together afterwards. In that case removing the extra linebreaks probably is smarter then padding.
                          Last edited by Freaka; 11-27-2008, 05:11 PM.

                          Comment


                          • #28
                            New version out. Added the ability to configure a couple options for ATLAS linebreaks, among other things. Plan to allow setting up a custom list via a config file at some point. May also add something similar for other programs, but that's a lot messier, because of error handling. With ATLAS, I find a break point, I send text, I copy over everything until the next sentence starts, etc. With remote programs, have to break everything in advance and then reassemble sentences, figuring out where to insert back what I removed. Just inserting periods or linebreaks all over the place works, too, but doesn't return nearly as nice looking results when there's more than a sentence or two.

                            Freaka: Could you tell me if it now works with ATLAS v13?

                            Minimum window size reduced.

                            Excite doesn't mess up the translation itself, just adds a extra linebreaks, so I now remove single linebreaks from Excite results.

                            Rather than letting you drag windows out of the main frame, which is doable, but just messy, I'm thinking I might just allow hiding toolbars and the main window's frame, and making it transparent. Can even save those settings along with my new hotkey stuff, to make them easy to restore.

                            Edit: Just discovered if you have MeCab set to automatic clipboard translation and repeatedly copy text to the clipboard, it will crash. Doesn't happen if there's a bit of time between successive copy operations, or if you use the "translation" button directly. Will be fixed in the next release.
                            Last edited by ScumSuckingPig; 11-28-2008, 11:04 PM.

                            Comment


                            • #29
                              Originally posted by ScumSuckingPig View Post
                              With remote programs, have to break everything in advance and then reassemble sentences, figuring out where to insert back what I removed. Just inserting periods or linebreaks all over the place works, too, but doesn't return nearly as nice looking results when there's more than a sentence or two.
                              I've had quite good results with double linebreak followed by keyword and another double linebreak, to break up stuff and put back together. Of course the upper case problem would be there as well then.

                              I didn't test V13 much but it worked fine so far. Thanks for changing the min window size!

                              Originally posted by ScumSuckingPig View Post
                              Excite doesn't mess up the translation itself, just adds a extra linebreaks, so I now remove single linebreaks from Excite results.
                              Yeah, I noticed that as well. In fact the funny part is if you enter a manual linebreak at the end of the line (line as it shows in the online form), excite ignores it and outputs the result as it should without. About removing it, I wasn't sure about cases where there might be a good reason to have it, e.g.: "Name/nText"

                              Testing it with "朝倉誠理
                              数年ぶりに訪れたうらぶれた田舎町" kinda confirmed that issue, but it also showed something else. For some reason Atlas ignores the linebreak and translates it as one sentence. I guess in some games this can be a wanted effect as they add linebreaks where there shouldn't be any, however in other cases.

                              If Atlas is launched when TAA is already running, TAA doesn't recognize the clipboard changes as long as Atlas is running. If TAA is started after Atlas it still keeps working, might not be of much interest either way - just noticed it.

                              Comment


                              • #30
                                I currently only break text sent to ATLAS on a double line break (Or punctuation). No compelling reason for this; it's not clear what's best, in general. I'll add the option to the ATLAS config dialog (Still plan to let you specify a separate file that's more flexible, but even after I do that, seems handy to have a couple preset toggles within easy reach).

                                Originally posted by Freaka View Post
                                If Atlas is launched when TAA is already running, TAA doesn't recognize the clipboard changes as long as Atlas is running. If TAA is started after Atlas it still keeps working, might not be of much interest either way - just noticed it.
                                This sounds like an ATLAS bug. Each window monitoring the clipboard is responsible for passing the clipboard change notification onto the next listening window. When ATLAS is monitoring the clipboard, it appears not to do this. When you close ATLAS or disable ATLAS auto-clipboard translation, I get the notifications again. Assuming I'm right about this, not sure there's any sane workaround.

                                Comment

                                Working...
                                X