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 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

How to translate PO files using DeepL, Gemini, GPT, ClaudeSonnet

You can use Bohemicus to translate PO (Portable Object) files with DeepL, Gemini, GPT or... Read more...

Improved translation algorithm

I have improved the algorithm to translate MS Word/Excel files in Bohemicus. Previously, if there... Read more...

Large DeepL glossaries are now supported

Large DeepL glossaries are now supported - there was a bug in Bohemicus that prevented glossaries... Read more...

Translate MS Word/Excel directly

You can now translate MS Word/Excel files directly using ChatGPT-4o, DeepL, ModernMT,... Read more...

Windows 7: Issue with activation

Users on Windows 7 might have experienced issues when activating Bohemicus. This was due to my... Read more...

Voice typing in Windows 7/8/10/11

Voicetyping requirements These are the advantages of voice-typing with Bohemicus: 1) No... Read more...

Export file from Across to Trados

People usually try to export their files from Across to e.g. Trados, because Across is a pain... Read more...

memoQ: Remove any machine-translation markers

This is how you REMOVE your machine-translation markers from your memoQ files:... Read more...

ChatGPT-4o support added

I have added support for the latest iteration of ChatGPT, the gpt-4o version. Simply select it... Read more...

Improved DeepL glossaries functionality

I have improved the DeepL glossaries functionality - Bohemicus will now go through your glossary... Read more...

Translate with DeepL using your own glossaries

You can create a glossary for DeepL manually directly in Bohemicus DeepL Glossary Setting... Read more...

How to quickly rephrase text using ChatGPT

You can rephrase any text in many languages using ChatGPT You can rephrase any text in many... Read more...

How to use ChatGPT 5.1 to translate Trados files using your own glossary

You can now use Bohemicus to machine translate texts in any CAT tool, or directly Trados... Read more...

How to use machine translation in any CAT tool

Dear Translator, in the video below, I am going to show you how you can easily use machine... Read more...

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

Recent announcements: • PO files can now be translated in Bohemicus! Click to 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

User using the Windows clipboard What is a clipboard manager? As you probably know there is this... 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: [email protected], +420775601385, skype: yankapoun
PHP Code Snippets Powered By : XYZScripts.com