5/8/2019 - V0.50 Beta * first public release, experimental 5/13/2019 - V0.51 Beta - Added S to screenshot, better error checking/reporting if translation API isn't enabled for the Google API key, minor changes that should offer improved translations 5/30/2019 - V0.53 Beta - Added input_camera_device_id setting to config.txt for systems with multiple cameras.  Moves mouse offscreen for "camera" mode captures 9/5/2019 - V0.54 Beta - Fixes crash on startup problem some people had, adds "audio|none" config.txt command to optionally disable all sound.  Added "minimum_brightness_for_lumakey" setting to config.txt in case the default isn't right 9/15/2019 - V0.60 Beta New feature, text to speech!  You'll need to enable Google's Text To Speech API, Fixed a crash bug, added some in-app persistent settings, gamepad can now move around the cursor and click things.  Controls changed a bit. Added automatic reading of detected dialog, can choose to read src or dest langs, can hide text overlays if you want now.  A few new options in the config.txt. Switched to FMOD audio, SDL_Mixer has buggy mp3 playback which was causing some me grief. Changed the translate button sound to something more soothing. 11/22/2019 - V0.61 Beta Replaced audio system with Audiere to prepare for putting it on GIT, added more logging and error checking with libCURL -  I've put the complete source on Github, feel free to bugfix or add some features if you're a programmer! 4/12/2020 - V0.62 Beta: * FEATURE: Added draggable window option (Changed hotkey to Ctrl-F10 in the default config.txt, if upgrading, it will be be Shift-Ctrl-F11 though) * Removed an include for wiringpi (it isn't used) * Added "FMOD Release" MSVC configuration profile, this enables FMOD as well, it will be the default now as I noticed some clicks/pops from Audiere sometimes when playing text to speech generated by Google * Added status at the bottom that shows what is happening with uploading/download, in situations where "nothing is happening" these status updates will let you know what it's doing, useful for slow internet or whatever * Can now cancel spoken audio by clicking it again * Added a font so rendering Hindi is supported (hotkey is 0) * Initiating a translation when a translate dialog is already on the screen now just toggles it off instead of doing weird things * Added "audio_device" option to config.txt, if text matches an audio device that will be used instead of the default * Joystick deadzone increased from 0.15 to 0.20, needed because my 360 sticks are just bad * BUGFIX: Word wrap doesn't sometimes cause spaces to be missing between words 4/23/2020 - V0.63 Beta * Added support for rendering Punjabi (note: the only open source font I could find doesn't have English letters in it..hope to find something better later) * Added support for setting a source language hint in the config.txt. Required to read some non latin languages, for example setting to "pa" for Punjabi allows that language to be read. Hint language is shown on startup screen, "auto" means no hint * Now shows exact google error text onscreen (like bad API key or whatever) instead of saying "open error.txt" (error.txt is still written also though) * Shows " language not supported for audio" if Google can't do text to speech on it (Punjabi for example) * Punjabi as a translation target is now one of the included languages you can cycle through using [ and ] or L and R on a control pad. Note: these languages can be changed/added via the config.txt, the first one set will be the default on startup * "Press space to continue or ? for help - rtsoft.com" changed to "" and doesn't show at all for extremely small drag rects, so it doesn't overlay the translation * Shows "Nothing found" if there is zero text to translate, better than looking like it crashed or something 12/2/2020 - V0.64 Beta * Added support for a gamepad based hotkey, (by default you need to push in to click the right joystick) to initiate a scan/translate.  This works in computer mode.  By default it will scan the active window, but if you've done a custom drag rect size previously, it will use that size instead.  (useful for grabbing just the dialog area of a game) Note:  This is useful because you can use just a controller to translate an Elgato game capture or twitch string of a real console, so you can sort of play via two controllers. * Now using XInput for input which allows UGM to access the gamepad even if it's being used by a game.  (with a PC game/emulator you can play and do translations without touching the keyboard using a single controller!) BTW, it's doing some weird things under the hood to make the overlay work, if you have any problems setup the game/app in a windowed mode and it should be ok. Note:  You can change which button does the translation by changing the gamepad_button_to_scan_active_window setting in the config.txt.  The options are listed right above where it is. (default is "right joystick button") Note:  An XInput compatible controller is required for the global button controls to work.  An Xbox 360, Xbox 1 or Xbox Series X/S controller is recommended. 2/5/2021 - V0.65 Beta * Gamepad hotkey that initiates a translation now also can dismiss it (by default, right stick button) * New feature: Pressing E will export the current translation to html and open it with your default browser.  Example: 2/27/2021 - V0.66 Beta * Tiny quality of life change for people using the keyboard to initiate translations: The capture active window hotkey (Ctrl-F12 is default) now works like the gamepad button capture, if a custom screen capture area was set previously (Ctrl-F10) it will default to using that instead of the entire active window. 3/25/2021 - V0.67 Beta Fixed to properly handle windows scaling, so if you're using 150% DPI or whatever it shouldn't cut the window off or act weird anymore.  A side effect of this fix (at least how I implemented it) is it probably requires Windows 10 (or later) to run UGT now though 4/8/2021 - V0.68 Beta Fixed problem where unnecessary spaces were inserted into the original OCR'ed Asian text, very noticeable when using cut & paste text features (Thanks coltonoscopy) Fixed issue where it failed to cut and paste text if no translation took place (for example, English to english) 5/20/2021 - V0.69 Beta  Locked to max 100 fps, applied Meerkov's FPS limiting bugfix (thanks!)  Changed startup sound to be shorter, added GUI checkbox to "Disable capture sound" (Meerkov)  Added "google_text_detection_command" config setting to config.txt (Meerkov)  Fixed bug in text layout engine that would cause freezes/delays in some situations. Could also create duplicate text boxes (Meerkov)  Added more replacement tags for html export: END_X, END_Y, WIDTH, HEIGHT, TRANSLATED_TEXT. Added htmlexport/readme.txt with the full list and descriptions of what they do Internally some work was done to better support customized settings for a specifiic language (like font, sizing hints), it will be easy to move to an external fonts.txt file or something later to allow people to add their own fonts/etc FEATURE: Added support for using using the Deepl translation API instead of Google's. config.txt (well, config_template.txt) modified to add new options deepl_api_key and translation_engine. The .txt file explains how to set it up. It seems to offer better translations, similar to Google you have to sign up on their website (using a credit card) to get an api key, which allows 500k characters a month for free. (that doesn't seem like much!) Note: It seems a little slower than Google's stuff. You can press T to toggle translation engines on the fly, useful for comparing output 7/27/2021 - V0.70 Beta  Big changes internally with how linefeeds are handled, "dialog mode" translations should work better (Meerkov) FEATURE: Can flexibly log translations to translation_log.txt (see config.txt's log_capture_text_to_file option to enable) FEATURE: Can flexibly add translations to clipboard (see config.txt's place_capture_text_on_clipboard option to enable) FEATURE: Checks for newer version on startup, see config.txt's check_for_update_on_startup option if you'd like to disable this) Bugfix: Fixed issue where repeating text could appear (Meerkov) Guessing the source language of a translated block might be more accurate now (Meerkov) FEATURE: Fonts are now configurable, can set a custom font for default or any specific language (edit fonts.txt file for more info) 8/4/2021 - V0.71 Beta D and L hotkeys now toggle force dialog and force line-by-line mode until the app is quit, instead of only for that one translation (useful for RPG dialog!) Exposed "auto-glue" settings in config.txt, helpful to make sure all the dialog is a single block. (auto_glue_vertical_tolerance and auto_glue_horizontal_tolerance) 10/31/2021 – V0.72 Beta This release is bugfixes and new features to support using UGT in tandem with other translation software that work with clipboard data. FEAT: Can now disable translations completely (useful if you only want the OCR features) – set the active language to “00”. Config text file has an example showing how to do it FEAT: Added “Invisible mode (no overlay)” checkbox to the in-app options, if checked, UGT won’t actually overlay anything over the game. (it will look like it’s not doing anything, but as long as you’ve selected to put the text on the clipboard in the config.txt, this should work for people who are using another app to view the pre or post translations) BUGFIX: Export to html handles line-by-line correctly When copying things to clipboard, no longer includes the extra whitespace or last CR. Hm, or did we want the last CR? Oh well, let’s try this (jotumn) BUGFIX: Fixed freeze/crash that happened when Google processes text as upside-down (Meerkov) Added deepl_api_url config.txt setting, allows you to switch to the paid URL if needed. Previously it just would give a wrong URL error if you used the paid version, oops. (RandomTemere) Pre-translated text blocks are now colored similar to post-translated text (ie, green for dialog), was kind of confusing that they weren’t before. 11/01/2021 – V0.73 Beta BUGFIX: UGT screen shouldn’t be able to end up off the screen in an unusable position. Sometimes it takes two clicks to fix so it’s still slightly sketch though (Cloudstrifeff7) Now adding spaces in “dialog” mode text at a CR even when Google thinks it’s a continuation of a word, Google seems to be wrong a lot, so hopefully this is overall better. (no change for asian languages) (Cloudstrifeff7) BUGFIX: Alt-tabbing and opening UGT’s main menu no longer causes it to forget the last custom rect scan area set (Cloudstrifeff7) 11/7/2021 - V0.74 Beta BUGFIX: Fixed ugly bug with the hotkey system creating non-functional duplicates, not sure if it broke anything big but it can't be good BUGFIX: Changed timing so it doesn't sometimes cause weird laggy behavior in Windows 11, probably helps with earlier versions too Now gives a nice message if a hotkey can't be registered with instructions on why and how to fix it (Cloudstrifeff7)