Translation in Context

In the vocabulary mobile app ( I have implemented what I call translation in context. It works like this: when the user makes a Ctrl+Click on a string/translation anywhere on the UI, a browser tab/window is opened automatically with the correct url in the translation server (web application), where he can give a translation or a new suggestion for the selected string. Of course, for a normal Click the UI works as normally it should.

The funny thing is that this is a mobile application and in a mobile application you cannot make a Ctrl+Click. But for translation purposes it can be opened in a desktop browser. Anyway, at least it illustrates/demonstrates the idea of "translation in context" (or whatever it can be called).

The implementation details are not so complicated. This app uses a gettext-like localization system, where there is a JavaScript function _() that is used to mark the strings that need to be translated, like this: _("string"). It returns the corresponding translation, which is then used in the application.

I have overridden the function _() so that it does not return just the plain translation, but it returns instead a decorated translation like this:

<span class="gettext" sguid="id-of-the-string">translation</span>

See: s/_app/translate_in_context.js#L43-L54.

Then I assign with jQuery an event-handler for the event Ctrl+Click to all the elements of the class "gettext". This event handler gets the id of the string and opens a tab with the proper URL for translating that string in the translation server.
See: js/_app/translate_in_context.js#L82-L98.

I am sure that it is possible to do the same thing for any JavaScript application that has a translation system based on PO files. Actually it can be done for any web application, since it should be possible to mark/decorate the translation in the same way, and include a small JavaScript function that handles the Ctrl+Click event.

What about the desktop applications (KDE, GNOME, etc.)? Is it possible to do something similar? I am not sure, maybe it is, maybe it is not possible. The most difficult part in my opinion is how to mark (or decorate) the translated string, so that it can respond to a Ctrl+Click event. Then you can construct the correct url and open it in browser.