Bohemicus vs. online CAT tools – why it isn’t always smooth sailing?

Published by: jankapoun, dated: May 10, 2021

This post is only for those interested in hard-core deep-level computer programming.

It was driving me crazy that my dear Bohemicus would not 100% work with some online CAT tools… well, it sort of works, it is still very well usable, but not to 100%. And what’s the problem? The problem is that the Ctrl+Insert keyboard combo that is often used to insert text from source to target segment. This is a crutial functionality for Bohemicus, and without it, Bohemicus is somehow limited. It works well if you physically press it on your keyboard, but would stop working when you try to send it as a sendkey from Bohemicus.

This intrigued me a lot…. I even attempted sending physical scancodes to other applications, but to no avail….. and I felt: why in bloody hell would this not work?

Why it doesn’t work …

After endless hours of researching, I found 2 reasons:

1. It seems that Firefox/Chrome/Edge simply block the Insert key. They just decided too many users were annoyed by this INS/OVR feature and so they simply turned the INSERT key off. And it cannot be turned back on. But still, using a PHYSICAL keyboard, it was possible to press the Ctrl+Insert combo to insert text from the source.

2. As it turns out, Windows applications have some means to distinguish between physical and virtual keyboard presses, it’s the LLKHF_INJECTED flag that is raised by Windows everytime an application tries to send a virtual keystroke to some other application…. so this is how applications can identify spoofed keystrokes.

The solution

And what it all means for me, the creator of Bohemicus? Basically, I can only see one solution to this problem: write my own keyboard driver that would work in conjunction with Bohemicus so that Windows really thinks this is a real physical keyboard. Hmmm, I have never written any driver…. looks like some studying lies ahead….

Edit (May 12, 2021): Ok, turns out I was wrong. The solution is much more simple. The primary cause of all these problems is the Insert key... There are actually 2 Insert keys on a PC keyboard: 1 is grey in the Insert/Del/Home/End/PgUp/PgDn group, the other one is the Numpad0, in the numeric block. And they have different keyboard scancodes. The grey one must be escaped by the 0xE0 value when sending scancodes. More info can be found in this great article that made me finally realize where the problem was: https://www.michaelwda.com/post/scancodes

This is the piece of code that explains it all:

What it means: In order to send the correct grey Insert key scancode, 2 scan codes must be actually sent: the escaping 0xe0, followed by the actual Insert key scancode (0x52). Also, dwFlags and VirtualKeyCode must be set to 0 when sending the escaping code (0xe0). Took me 3 days to figure this out….

Thank you very much Michael!

Blogposts

About me and why I created Bohemicus

Me pretending some work… I have been a professional technical translator since 2007, ... Read More

How to use Bohemicus with Crowdin

Learn how to use Bohemicus with Crowdin I am going to show you how you can very effectively use... Read More

Bohemicus 1.068 released!

What's new: improved machine-translation-marks remover, now removes also the AMT marks... Read More

How to make money as a translator

If you are a translator, I am sure, you want to make more money. Just like everyone. But well,... Read More

Keeping track of translation business records

You can use Bohemicus to keep track of your business records, and to issue invoices. Before you... Read More

Quick content preview of Trados packages

This feature can be very helpful when you need to preview the content of a Trados package. For... Read More

Removing the AT & NMT marks in Trados Studio

You can very easily remove those light-blue AT or NMT marks in machine-translated... Read More

Keeping track of translation jobs

This has happened a couple of times to me: I just forgot to do a job! This usually happens to me... Read More

Changing the language code of your SDL translation memory

This post can especially be useful to users of older SDL Studio versions. If you are using newer... Read More

Bohemicus 1.059 released!

What's new Support for online CAT tools (SmartCat, Crowdin, XTM, Coach...) has been... Read More

How to translate PDF files

The PDF format is truly ingenious - documents in the PDF format will appear exactly as... Read More

CAT Tools Crash Course – Part 1: What is a CAT tool and how it can be useful to you

Before I explain the basic idea behind all CAT tools, let me consider the naive approach to... Read More

Bohemicus vs. online CAT tools – why it isn’t always smooth sailing?

This post is only for those interested in hard-core deep-level computer programming. It was... Read More

How to translate a webpage (or a whole website)

Translating a webpage is a very easy task... if you know how to do it. Definition of a... Read More

How to translate 5000 words in 3 hours

Yes, this is indeed possible. I remember those times 13 years back when translating 5000... Read More

How to use machine translation in Across (GoogleTranslate, DeepL…)

This is a short video on how you can configure the Across CAT tool (made by Across GmbH, Germany) ... Read More

How to start a career as a freelance translator

These are a few tips I would give to every aspiring translator trying to start his/her career... Read More

How to spot a good translation agency you will enjoy working with

(from the translator's perspective) This article is based on my 13 years of experience... Read More

The Ctrl+Alt+Space shortcut and why you should definetely use it

The raison d'etre The Ctrl+Alt+Space shortcut was originally conceived to deal with the... Read More

Bohemicus v. 1.045 is out!

The new version of Bohemicus is out! What's new: 1) added support for Memsource 2)... Read More

The top 10 features of Bohemicus I use every day

These are the 10 features of Bohemicus I use every day. You can watch this video to see... Read More

How I used to convert units ….and you should definitely NOT

Unit conversion is something you will definitely encounter when working as a... Read More

How to remove the machine-translation marks in every CAT tool

What are they? As soon as you try to machine translate just about anything in any major... Read More

A clipboard manager. Why is it useful?

Definition of a clipboard manager For those who don't know what a clipboard manager is.... Read More

What is the core idea of Bohemicus and how it can be useful to you

So, this is the core idea of Bohemicus: Let's create an interface between you and your CAT... Read More

How I became a professional translator

This is the story of how I became a professional translator. The beginnings I certainly... Read More

Why do we, translators, actually hate CAT tools?

So, I suppose, the original idea of a CAT tool was something like this: Let's create a... Read More

How I developed, marketed and sold a translation software product that Proz.com would not let me speak about

And why do some people seem to utterly hate it ...without even trying it out? Am I getting... Read More

Why do translation agencies require translation tests free of charge?

I have never really understood this concept. So, an agency requires you to do a translation... Read More

Rename file extensions easily!

Why is file extension rename useful? You can very easily rename a file extension. This... Read More

Transferring large files with a download link

You can very easily and conveniently send large files up to 100 MB through the Bohemicus... Read More

Working with hotkeys

What are hotkeys? Hotkeys are the heart of Bohemicus. They are simply combinations of... Read More

Connecting an Android phone through WiFi

If you want to use the speech-to-text feature, you can connect your Android phone/tablet also... Read More

Quick-open folders

What is it good for? You can very quickly and easily open your pre-defined folders just by... Read More

Machine translation

Setting it up Machine translation is very easy in Bohemicus. First, you need to set it up -... Read More

Snipping tool

You can very easily and conveniently launch the Windows Snipping Tool to make screenshots by... Read More

Hints

What are hints in hintboxes Every time you press the Ctrl key, a couple of semi-transparent... Read More

Activating Bohemicus

Activating Bohemicus is easy. You will need your activation code that you received upon your... Read More

How to get the Google API translation key

Prerequisities 1. In order to receive a Google API translation key, you will need a Google... Read More

Quick set-up

You should set up Bohemicus before you run it for the first time. Set up the machine... Read More

Working with online CATs

If you want to work with online CAT tools, such as SmartCat, XTM, Crowdin, Coach, etc..., just... Read More

Metric/imperial unit conversions

Converting metric/imperial units is very easy with Bohemicus. You can set up 3 hotkeys to... Read More

Connecting Bluetooth

Now, let's see how to connect your Android phone to your Windows and then to Bohemicus. If... Read More

Troubleshooting Bluetooth

Why you should use Bluetooth Bluetooth is the preferred way of connecting Bohemicus both in... Read More

Local file transfer between your office computers

In Bohemicus, you can very easily transfer files and folders between 2 or more local computers... Read More

Taking notes in Bohemicus

Why do translators and writers take notes Note taking is an important task for all... Read More

Working with translation memories in Bohemicus

How to work with translation memories in Bohemicus Use your own translation memories...... Read More

How to insert the current date with Bohemicus

What is it good for? You can use this function to e. g. distinguish various folders from... Read More

Non-breakable spaces

What are they good for? Non-breakable spaces are an important text element in case you want... Read More

How to google in Bohemicus

We have all been there: you need to google someting, so normally you would just select your... Read More

Quotation marks

Quotation marks can be a hassle Different languages use different quotation marks. The... Read More

How to make more money as a translator

Make more money as a translator If you are a translator, I am sure, you want to make more... Read More

Text editing features

Bohemicus offers a bunch of text editing features that can be really handy. It is... Read More

Speech recognition (voice dictation) in Bohemicus

Speech recognition, or speech-to-text functionality, or just voice dictation, is... Read More

Working with online dictionaries

You can use Bohemicus to interactively search in online dictionaries. How it... Read More

Working with local offline dictionaries

While working with Bohemicus, you can plug-in 2 local offline dictionaries. This can be very... Read More

Voice dictation with Bohemicus

Voice dictation (speech-to-text functionality) is an extremely important feature of Bohemicus. Why... Read More

Help & Blogposts

Bohemicus is now available on a montly subscription basis of EUR 9.99! Learn... Read More

How to increase translation speed and productivity: machine translation

Machine translation can greatly increase your translation speed, there's no doubt about it.... Read More

How to translate and write faster: a clipboard manager

What is a clipboard manager? As you probably know there is this very useful feature in Windows: the... Read More

Convert the Imperial units to the metric system and vice versa

Here is a video presentation of the Bohemicus Imperial/metric unit conversin... Read More

Bohemicus WordPress theme design by Mgr. Jan Kapoun (c) 2022 | Data Protection Policy | Contact: bohemicus@bohemicus-software.cz, +420775601385, skype: yankapoun
PHP Code Snippets Powered By : XYZScripts.com