GT4T: Perhaps the best markdown translator program

This is perhaps the best and only markdown format file translator ūüôā

And it’s perfect. It keeps all the formats, links, images, lists and it translates all that needs to be translated and keeps all that doesn’t need to be translated.

Let’s take the Electron’s from The original English version looks like this:


Drag and drop the file to GT4T File Translator. After several seconds, the resulting Chinese translation now looks like this:

Links are kept. Linked titles are translated. Codes are kept intact. Nicely done!

The Windows/Mac app looks like this. Just select your files and drag them to GT4T File Translator’s interface.


And you can use any of the 30 automatic translation engines world-wide.  Download here: It comes with a free trial out of-the-bx.



Update log

8.14.210525: Fixed broken GT4T Free
8.14.210524: Added translating InDesign .idml files.
8.12.210523: Added Tilde, Neurotolge, Atman
8.12.210516: Added an option to use French quotation marks
8.11.210513: Added Volcano translator
8.11.210511: Fixed a Systran Marketplace bug
8.11.210508: Switch to Wechat merchant account
8.11.210502: Fixed corrupted file bug; price factor bug
8.11.210430: MT voting
8.11.210428: Added Systran Marketplace; added industries
8.11.210414: Really fixed “DeepL returns empty string” error; Ignore more Trados statuses.
8.11.210408: Changed the default pop-up color to ghost white
8.10.210404: Better taghandling when using baidu or sogou; “fix MT” can be used with niutran
8.10.210331: Added translating .xlz files; fix lots of bugs with File Translator tag handling
8.10.210329: Fixed broken .sdlxliff files when containing multi-line segments
8.10.210328: Fixed htmlentities bugs; fixed dollar sign bug; normalizeHTML bug
8.10.210324: Added ModernMT, MyMemory, formality
8.10.210321: CAT file tag handling; reader mode.
8.09.210317: htmlentities now skips tags;
8.09.210316: Fixed mySmartQuotes corrupt tags; more fixes on tag remover
8.09.210315: Fixed corrupted wordfast file when using removing MT.
8.09.210313: AT tag remover now supports wordfast Pro files.
8.09.210312: Fixed: More engines support Trados tag handling; fixed an ‘undefined’ error with memsource files
8.09.210311: Fixed: pop-up background color; keep trados file in-line format
8.09.210310: Fixed: Accented keys are not shown properly on the shortcut list.
8.09.210307: Fixed some proxy issues.
8.09.210306: Pop-up content is now scrollable.
8.09.210305: Fixed: File Translator sometimes outputs empty or corrupted docx files

GT4T update logs

      7.18.201112: Source Language is now detected before translating with File Translator; Word file can be translated even when the file is open.
      7.18.201108: Fixed pt-br with niutrans; change built-in proxy.
      7.18.201020: Added British English support
      7.18.201014: Added Japanese to Papago
      7.18.200928: You can choose whether to translate the unconfirmed segments with File Translator
      7.17.200919: File Translator resumes at break points.
      7.16.200910: API settings now stay the same on changing profiles
      7.15.200901: Added MT Papago.
      7.14.200830: Fixed File Translator right-click menu item problem.
      7.14.200731: Fixed broken NiuTrans
      7.14.200625: Added TradooIT MT and dictionary.
      7.14.200618: Fixed broken on-line dictionaries
      7.14.200614: You can now select which connections go through proxy
      7.14.200531: File Translator sometimes outputs corrupted files
      7.14.200527: File Translator now skips locked segments in .sdlxliff files
      7.14.200519: Fixed 1) Broken Portuguese dictionaries; 2) linking bugs at the purchase pop-up
      7.14.200320: Fixed: File Translator corrupts Word files with hyperlinks
      7.14.200318: File Translator: Added .dvsat file type.
      7.14.200314: F1-F10 keys can be set as global to search for selected words. Fixed the Punjabi language
      7.12.200130: Added progress bar to File Translator. Fixed: right-click command issue; File Translator freezes at finishing
      7.12.200124: File Translator now can translate Word, Excel or PowerPoint files. Added drag & drop support, and option to add to file right-click menu
      7.12.200117: File Translator now can translate DVX3 files
      7.12.200112: File Translator Bug fixes for translating Trados and MemoQ files
      7.12.200105: Urgent bug fix: GT4T stops working for time-based users; File Translator now can translate Wordfast files
      7.11.200104: File Translator can translate memoQ bilingual files. Lots of bug fixes to 7.xx.
      6.06.191125: Improved multiple-paragrah translation
      6.06.191121: Fixed broken license information page
      6.06.191015: Added SysTran
      6.06.191007: Fixed/removed broken dictionaries; added TAUS and LEO
      6.06.190724: Fixed the pasting problem in Trados
      6.05.190504: Improve stability of copy/paste by adding a slight delay
      6.05.190413: Added Alchemy Catalyst support
      6.05.190407: Added dictionary, bing dictionary for en-zh pair.
      6.05.190402: Fixed: Glossary file not found error on Windows 7; Added MT: (Yunyi)
      6.05.190323: Dictionaries can be automatically selected based on language pair; added glossary
      6.04.190309: Aquiring source text and pasting translation gets faster and more reliable.
      6.04.190307: New char-based users can use their own API; Slim users can now use built-in API
      6.04.190304: Fixed broken Tencent MT
      6.04.190221: Added Crisco,, and WebSlovnik
      6.03.190201: Direct replace has less delay; Chinese localization
      6.03.190129: Added Sogou MT, the best MT for en-zh pair.
      6.03.190125: Profile names now can be changed.
      6.03.190118: Dictionary & Glossary are now free features and chars are no longer counted for character-based licenses
      6.03.190113: 1) Added Tencent Translator; 2) More specific error messages
      6.02.190109: Profiles now also remember dictionary, MT selections
      6.02.190105: You can now save settings as profiles and loop among them using a hotkey.
      6.01.181230: Fixed support for MateCat; nag screen shows localized prices.
      6.01.181228: Added support for Transtool, Cent Browser, Tstream Editor

GT4T now supports translations between 309 languages!

GT4T has updated to support all the languages MT engines support, making the total number languages to 309! Yes, 14 MT engines, 309 languages, endless language pairs.

The MT engine that supports most number of languages is probably It supports 304 languages.

I used to think big companies like Google or Miscrosft are the best and when a Chinese MT provider provides many languages, I immediately think that they might buy or use data from either Google or Microsoft.

But no, translations from are different and neither Google nor Microsoft provides that many languages. And the translation quality is pretty good too. Here are my calculations.

name: Google Neural, Number of languages: 105
name: Microsoft Translator, Number of languages: 77
name: Youdao, Number of languages: 111
name: Yandex, Number of languages: 33
name: Google Phrase Based, Number of languages: 105
name: DeepL Pro, Number of languages: 14
name: Baidu, Number of languages: 26
name: Tencent, Number of languages: 16
name: Sogou, Number of languages: 61
name: CloudTranslation, Number of languages: 15
name: NiuTrans, Number of languages: 304
name: Systran, Number of languages: 46
name: TradooIT, Number of languages: 2
name: Papago, Number of languages: 9

All languages that GT4T supports:

const allSupportedLan= {
knj: ‘Acateco’,
ace: ‘Aceh’,
acr: ‘Achi’,
acu: ‘Achuar’,
adh: ‘Adhola’,
af: ‘Afrikaans’,
any: ‘Agni Sanvi’,
duo: ‘Agta Eastern Cagayan’,
agr: ‘Aguaruna’,
ake: ‘Akawaio’,
sq: ‘Albanian’,
amk: ‘Ambai’,
am: ‘Amharic’,
amu: ‘Amuzgo’,
ar: ‘Arabic’,
hy: ‘Armenian’,
cpb: ‘Ash√©ninka’,
aym: ‘Aymara’,
az: ‘Azerbaijani’,
azb: ‘Azerbaijani South’,
bdh: ‘Bak√°’,
ptu: ‘Bambam’,
bam: ‘Bambara’,
bqj: ‘Bandial’,
bno: ‘Bantoanon’,
bsn: ‘Barasana’,
bfa: ‘Bari’,
bch: ‘Bariai’,
bba: ‘Bariba’,
ba: ‘Bashkir’,
eu: ‘Basque’,
be: ‘Belarusian’,
bem: ‘Bemba’,
bn: ‘Bengali’,
ber: ‘Berber’,
bi: ‘Bislama’,
bus: ‘Bokobaru’,
bnp: ‘Bola’,
bs: ‘Bosnian’,
br: ‘Brezhoneg’,
bg: ‘Bulgarian’,
my: ‘Burmese’,
bqp: ‘Busa’,
cjp: ‘Cabecar’,
cak: ‘Cakchiquel’,
cni: ‘Campa’,
kbh: ‘Camsa’,
yue: ‘Cantonese (Á≤ĶŤ™ě)’,
ca: ‘Catalan’,
ceb: ‘Cebuano’,
ccp: ‘Chakma’,
cha: ‘Chamorro’,
che: ‘Chechen’,
chr: ‘Cherokee’,
ny: ‘Chewa’,
cbl: ‘Chin Bualkhaw’,
cfm: ‘Chin Falam’,
cnh: ‘Chin Hakha’,
ctd: ‘Chin Tedim’,
czt: ‘Chin Zotung’,
chq: ‘Chinantec’,
‘zh-py’: ‘Chinese Pinyin’,
‘zh-cn’: ‘Chinese Simplified’,
‘zh-tw’: ‘Chinese Traditional’,
cdf: ‘Chiru’,
cv: ‘Chuvash’,
cop: ‘Coptic’,
co: ‘Corsican’,
hwc: ‘Creole English Hawai‚Äôi’,
ht: ‘Creole Haitian’,
crs: ‘Creole Seychelles’,
hr: ‘Croatian’,
cs: ‘Czech’,
mps: ‘Dadibi’,
da: ‘Danish’,
dik: ‘Dinka’,
tbz: ‘Ditammari’,
dv: ‘Divehi’,
dtp: ‘Dusun Central’,
nl: ‘Dutch’,
dyu: ‘Dyula’,
dz: ‘Dzongkha’,
en: ‘English’,
enx: ‘Enxet’,
eo: ‘Esperanto’,
et: ‘Estonian’,
ee: ‘Ewe’,
fo: ‘Faroese’,
fj: ‘Fijian’,
fil: ‘Filipino’,
fi: ‘Finnish’,
gur: ‘Frafra’,
fr: ‘French’,
fy: ‘Frisian’,
fuv: ‘Fulfulde Nigerian’,
gd: ‘Gaelic Scottish’,
gbi: ‘Galela’,
gl: ‘Galician’,
krs: ‘Gbaya’,
jy: ‘Georgian’,
de: ‘German’,
gof: ‘Goffa’,
gbo: ‘Grebo Northern’,
el: ‘Greek’,
gub: ‘Guajaj√°ra’,
gnw: ‘Guaran√≠ Western Bolivian’,
gu: ‘Gujarati’,
hlb: ‘Halbi’,
ha: ‘Hausa’,
haw: ‘Hawaiian’,
he: ‘Hebrew’,
hi: ‘Hindi’,
hmn: ‘Hmong’,
huv: ‘Huave San Mateo del Mar’,
hui: ‘Huli’,
hu: ‘Hungarian’,
is: ‘Icelandic’,
ify: ‘Ifugao Antipolo’,
ifb: ‘Ifugao Ayangan’,
ifa: ‘Ifugao Central’,
ig: ‘Igbo’,
ikk: ‘Ika’,
id: ‘Indonesian’,
ga: ‘Irish’,
it: ‘Italian’,
izz: ‘Izi’,
jac: ‘Jakalteko’,
ja: ‘Japanese’,
jv: ‘Javanese’,
kac: ‘Jingpho’,
kab: ‘Kabyle’,
keo: ‘Kakwa’,
xal: ‘Kalmyk-Oirat’,
kn: ‘Kannada’,
kpg: ‘Kapingamarangi’,
cki: ‘Kaqchikel’,
xsm: ‘Kasem’,
pss: ‘Kaulong’,
kyu: ‘Kayah Western’,
ka: ‘Kazakh’,
kk: ‘Kazakh(Cyrillic)’,
kbo: ‘Keliko’,
km: ‘Khmer’,
quc: ‘Kiche’,
kg: ‘Kikongo’,
rw: ‘Kinyarwanda’,
gil: ‘Kiribati’,
rn: ‘Kirundi’,
jmc: ‘Kisiha’,
‘tlh-Latn’: ‘Klingon Latin’,
‘tlh-Piqd’: ‘Klingon Piqd’,
ko: ‘Korean’,
ksd: ‘Kuanua’,
kle: ‘Kulung’,
ku: ‘Kurdish’,
kmr: ‘Kurdish Northern’,
ky: ‘Kyrgyz’,
lsi: ‘Lacid’,
lo: ‘Lao’,
la: ‘Latin’,
lv: ‘Latvian’,
lcp: ‘Lawa Western’,
ln: ‘Lingala’,
ond: ‘Lingao’,
lt: ‘Lithuanian’,
ngl: ‘Lomwe’,
lg: ‘Luganda’,
dop: ‘Lukpa’,
lnd: ‘Lun Bawang’,
lb: ‘Luxembourgish’,
mdy: ‘Maale’,
mk: ‘Macedonian’,
mad: ‘Madurese’,
mg: ‘Malagasy’,
ms: ‘Malay’,
ml: ‘Malayalam’,
mt: ‘Maltese’,
mam: ‘Mam’,
map: ‘Mam Northern’,
mni: ‘Manipuri’,
mbb: ‘Manobo Western Bukidnon’,
gv: ‘Manx’,
mi: ‘Maori’,
mrw: ‘Maranao’,
mr: ‘Marathi’,
mhr: ‘Mari’,
mrj: ‘Mari Hill’,
mah: ‘Marshallese’,
yua: ‘Maya Yucatec’,
mo: ‘Mongol’,
mn: ‘Mongolian Cyrillic’,
me: ‘Montenegro’,
mos: ‘Mossi’,
meu: ‘Motu’,
hmo: ‘Motu Hiri’,
tih: ‘Murut Timugon’,
muv: ‘Muthuvan’,
nhg: ‘Nahuatl’,
ntm: ‘Nateni’,
djk: ‘Ndyuka’,
ne: ‘Nepali’,
no: ‘Norwegian’,
nop: ‘Numanggang’,
nyy: ‘Nyakyusa’,
ojb: ‘Ojibwa’,
or: ‘Oriya’,
bdu: ‘Oroko’,
om: ‘Oromoo’,
os: ‘Ossetic’,
otq: ‘Otomi Queretaro’,
pck: ‘Paite’,
pap: ‘Papiamento’,
ps: ‘Pashto’,
ata: ‘Pele-Ata’,
fa: ‘Persian’,
pl: ‘Polish’,
poh: ‘Poqomchi‚Äô’,
‘pt-pt’: ‘Portuguese’,
‘pt-br’: ‘Portuguese Brazil’,
pot: ‘Potawatomi’,
pa: ‘Punjabi’,
kek: ‘Qeqchi’,
quz: ‘Quechua Cusco’,
quh: ‘Quechua South Bolivian’,
quw: ‘Quichua’,
qxr: ‘Quichua Ca√Īar Highland’,
rmn: ‘Romani’,
ro: ‘Romanian’,
rug: ‘Roviana’,
ru: ‘Russian’,
spy: ‘Sabaot’,
ssx: ‘Samberigi’,
sm: ‘Samoan’,
sg: ‘Sango’,
‘sr-Cyrl’: ‘Serbian’,
‘sr-Latn’: ‘Serbian Latin’,
st: ‘Sesotho’,
shp: ‘Shipibo’,
sn: ‘Shona’,
jiv: ‘Shuar’,
sid: ‘Sidamo’,
sd: ‘Sindhi’,
si: ‘Sinhalese’,
ssd: ‘Siroi’,
sk: ‘Slovak’,
sl: ‘Slovenian’,
so: ‘Somali’,
es: ‘Spanish’,
swp: ‘Suau’,
su: ‘Sundanese’,
sw: ‘Swahili’,
sv: ‘Swedish’,
syc: ‘Syriac’,
shi: ‘Tachelhit’,
ty: ‘Tahitian’,
tg: ‘Tajik’,
tmh: ‘Tamajaq’,
ta: ‘Tamil’,
tpm: ‘Tampulma’,
tt: ‘Tatar’,
crh: ‘Tatar Crimean’,
te: ‘Telugu’,
tex: ‘Tennet’,
teo: ‘Teso’,
tet: ‘Tetun’,
th: ‘Thai’,
ti: ‘Tibetic (ŗĹĖŗĹľŗĹĎŗľčŗŶŗĺźŗĹĎŗľć, ŤóŹŤĮ≠)’,
tig: ‘Tigre’,
tpi: ‘Tok Pisin’,
to: ‘Tongan’,
cas: ‘Tsiman√©’,
tn: ‘Tswana’,
iou: ‘Tuma-Irumu’,
lcm: ‘Tungag’,
tr: ‘Turkish’,
tk: ‘Turkmen’,
tyv: ‘Tuvan’,
tw: ‘Twi’,
udm: ‘Udmurt’,
uk: ‘Ukrainian’,
ppk: ‘Uma’,
ur: ‘Urdu’,
usp: ‘Uspanteco’,
uy: ‘Uyghur’,
uz: ‘Uzbek’,
ve: ‘Venda’,
vi: ‘Vietnamese’,
vun: ‘Vunjo’,
prk: ‘Wa’,
wlx: ‘Wali’,
war: ‘Waray’,
wrs: ‘Waris’,
wsk: ‘Waskia’,
cy: ‘Welsh’,
wal: ‘Wolaytta’,
wol: ‘Wolof’,
xh: ‘Xhosa’,
ts: ‘Xitsonga’,
jae: ‘Yabem’,
ii: ‘Yi (ÍÜąÍƆÍČô, ŚĹĚ)’,
yi: ‘Yiddish’,
byr: ‘Yipma’,
pil: ‘Yom’,
yon: ‘Yongkom’,
yo: ‘Yoruba’,
dje: ‘Zarma’,
za: ‘Zhuang (Ś£ģ)’,
zyb: ‘Zhuang Yongbei (ťāēŚĆóŚ£ģ)’,
zu: ‘Zulu’

Use your own DeepL Subscription with GT4T

1. Buy a subscription from Don’t buy the Starter plan which does not support CAT integration.

2. Log on to after purchasing and go to ‘account’

3. Find ‘Authentication Key for DeepL API’ and click ‘copy to clipboard’ button.


4. Open GT4T Setup screen (Press Ctrl+Alt+F2 on Windows, Cmd+Option+F2 on Mac), go to API tab. Tick ‘Enable Deepl Pro’ and paste your DeepL API code.

5. You can then buy GT4T slim plan to use with your own deepl subscription. If you use your deepl API with other GT4T char-based plans, the character count will be discounted proportionally.



Talking with the Developer of GT4T -ATA chronicle March/April

Talking with the Developer of GT4T

Dallas Cao is the developer of GT4T1, a little, unobtrusive application that allows you to connect from any Windows or Mac application to a large range of machine translation (MT) engines. As such, it represents a different way of accessing MT suggestions from many of the translation environment tools within their interfaces, and it also allows you to access MT suggestions from within any non-translation-specific environment. Also, you can use GT4T to automatically override terminology used by the MT engines. I talked to Dallas about the history of the tool, its features, and his future plans.

Jost: More and more translators use MT as one of their resources for translation. Professional translators who are using a translation environment or computer-assisted translation (CAT) tool usually use an API-based2 connector to a MT engine that brings the MT suggestions right into their environment alongside translation memory matches, term base suggestions, and other resources. Your tool, GT4T, deals with MT differently. But before we get into what it actually does and how it can be used, tell us a little bit about GT4T’s history and why you chose to create it in the first place.

Dallas: The original idea of GT4T is simple. You select a portion of source text and press a keyboard shortcut, and the selection is then replaced by Google’s MT translation.

I started working on GT4T for my personal use as early as 2009, when the neural MT engine was nonexistent and MT was little more than a laughingstock. But I found while MT was almost always bad at understanding the structure of a sentence, it could be used to translate phrases. I wanted to have a tool that would allow humans to decide and choose which part of a sentence to be ‚Äútranslated‚ÄĚ by MT on the fly without disrupting their workflow.

I was a translator who had never thought of becoming a programmer. If there had been such a tool then, I would have been a happy user of it and there would never have been a GT4T.

The first version of GT4T was written as a Microsoft Word macro and only worked in Microsoft Word. I was excited to find that it was even more useful than I had initially thought, and very soon the idea of selling it came to my mind. There are always phrases that human translators know MT will certainly do well with, like a list of country names. Using GT4T would simply save some keystrokes. With time, that alone would be a huge productivity gain.

To make a long story short, the spirit of entrepreneurship is to continually push a simple idea forward and see how far it can go. With some twists and turns, GT4T has grown in features and translation quality. As MT gets better, GT4T automatically gets better too! I have also grown into a confident programmer.

J:¬†Let‚Äôs talk about the tool itself. It runs on Windows and Mac and gives access to Google Translate (either the neural or the statistical MT engine), Microsoft Translator, DeepL Pro, Yandex, and a variety of Chinese-based providers, including Baidu, Youdao, Tencent, Sogou, CloudTranslation, and NiuTrans. The user can select which engines‚ÄĒand which language combination‚ÄĒthey want to use, and upon highlighting text in any application and pressing a keyboard combination, the result(s) is displayed in a pop-up window. If any of the suggestions are helpful, they can replace the original text in the originating application. Am I correct so far? Do you want to talk about some other features that differentiate GT4T?

D: GT4T also offers special shortcuts that allow you to automatically translate segments in a CAT tool like SDL Trados Studio or memoQ. You can hit a shortcut to translate the current segment or several segments. The shortcuts work in a long list of CAT tools, including web-based ones like Smartling and Crowdin.

Other than MT engines, GT4T also helps access various online dictionaries in the same fashion‚ÄĒwithout having to leave your working environment or open a browser window. You can use a shortcut to submit your selection simultaneously to several online dictionaries, glossaries, or terminology sites like the Interactive Terminology for Europe (the EU‚Äôs terminology database), Microsoft Glossary, or the terminology collection at GT4T goes one step further than similar tools like IntelliWebSearch. Instead of automatically opening the webpages, GT4T collects the dictionary results and displays them in a pop-up window. The user can pick a translation and hit Enter to insert it into the document in which they are working.

J: One interesting feature of GT4T you didn’t mention is the custom-made glossary that automatically replaces terms in the MT suggestions. I assume that it’s particularly valuable for languages with no morphology, like Chinese. What about languages with rich morphology (which I assume will result in a lot of missed replacements)? Can the user apply some kind of wildcard to find morphological variants? And is there a way to accommodate things like gender and possible automatic replacement of articles or pronouns?

D: The replacement feature doesn’t support wildcards, just exact matches, and there’s no way to accommodate things like gender, nor are there any future plans for this. A feature like that would require a team of linguists who know many languages. So far, GT4T is still a one-man endeavor, and I have no plan to have a team or incorporate it.

I have limited knowledge of linguistics and don’t know how well the replacement feature would work with language pairs other than English>Chinese. However, I know of at least one Dutch>English translator who is very excited about this feature, so I assume it’s also useful for languages with rich morphology when properly used.

Other than replacing MT translation results, users can also use glossaries to keep their translations consistent. The glossary file is an Excel spreadsheet and users can easily import old translations or add items. To find out how a term is translated in previous translations, you’ll just have to select it and press a shortcut. And you’re not limited to one CAT tool or app. You can search the glossary anywhere in any app.

J: I personally think that MT as a translation resource is often more useful on a subsegment level. The way that’s often done in translation environments is to have the tool automatically select subsegments from a longer MT suggestion on the basis of keystrokes. Is that something that’s possible with your tool? And if not, are you thinking of introducing something like that?

D: Yes, that’s actually the original idea of GT4T! You select a chunk of text, whether it be a phrase or even a word, where you think MT will do a good job. I always want GT4T to be used only as a productivity tool, a reference. Translators use it to save a few keystrokes, or get translation suggestions on a subsegment, or simply when their brain stops at a word and needs to be nudged.

J: But that’s not really what I mean. What I mean is rather than manually highlighting a fragment and looking for a translation, it’s much more efficient to have various MT suggestions in the background that display fragments only when there are matches between the first few keystrokes of the translator within their translation environment and something within the MT suggestions. I understand that this is possibly not as relevant in a target language like Chinese, but it is for many other languages. Is that something that could be implemented?

D:¬†That‚Äôs an interesting idea, and would be revolutionary if this could be done. GT4T is a standalone app that offers system-wide keyboard shortcuts. It cannot ‚Äúsee‚ÄĚ the text of a document until a user makes a selection and hits a shortcut. Perhaps it‚Äôs easier for CAT tool developers to implement this feature within their tools. It could also be an add-on. As a standalone app, GT4T would probably need to pre-translate documents first in the background. I‚Äôll think about it.

J: In your tool, it’s possible to enter personal API keys for the various MT engines. I assume this means that I would then receive suggestions from that respective engine via my own API and pay for it. How is that different from receiving suggestions without me entering an API? Can users access their own customized engines at Google or Microsoft like this? I assume that you’re also accessing the engines via your API key and that you need to pay for that. How does that work for you financially? Also, some users who use your tool to access DeepL Pro cannot access it otherwise because they’re living outside the European Union. Suggestions from DeepL Pro are more expensive than those from other tools. How do you account for that?

D: Yes, users can choose either to use their own API and pay a small subscription fee for GT4T, or buy a plan that already includes MT data. There’s no difference between using your own API or the built-in API. You get the same results from the MT engine. I haven’t started on the customized engines yet, but I’ll certainly study them when I have time.

GT4T offers very flexible plans. Users can buy either time-based packages that have no usage-limit, or character-based packages with no time-limit. I pay MT engines on the basis of the number of characters used. Time-based licenses work on only one computer at a time, but you can install a character-based license on up to 30 computers. I calculate profits for each purchase using server-side scripts. Occasionally I do actually end up paying more for a user than they pay me, but on the whole I make money from time-based licenses. But the danger is real: theoretically, a very hard-working translator on a time-based plan could bankrupt me, and I don’t have a plan for that.

GT4T is also valuable as a free tool. The dictionary, glossary feature, and two MT engines (Yandex and Tencent) are actually free.

J: Let’s talk about the accessible engines I listed earlier. What I’m missing are engines such as Amazon Translate, SDL BeGlobal, PROMT, and Naver Papago. How do you decide which engines to include, and can users ask you to add engines?

D: The first thing I consider is translation quality. It seems DeepL and Google excel in quality, and there’s no urgency to add more engines. I seriously consider suggestions from users. Some engines don’t offer API access. I recently added Systran at the request of a user and later removed it because I couldn’t reach an agreement with Systran. I recommended NiuTrans to her and she was happy with it. By the way, NiuTrans is a dark horse that deserves more attention. It performs pretty well, even for European
language pairs.

J: I’m not sure I agree completely. For instance, in the case of Naver Papago (whose engineer we interviewed in the November/December issue3), the results are often judged better by Korean users. Amazon also might produce better results in some language combinations. Maybe it would be possible to just add the framework so users can add their own API keys for some engines that are not supported?

D: Thanks for updating me with this information and recommending Naver Papago and other engines. If they offer API access and I can reach an agreement with them, I’ll certainly add them to GT4T. Users certainly will then be able to use their own API as well.

J: Here’s a question about security and privacy. You’re located in China, which might be a concern to some users or their clients. Are requests to the various MT engines actually visible to you and/or do you store that data? Or does your tool just facilitate the connection between the user and the respective MT engine so you don’t actually ever get to the data?

D: Neither the requests nor the replies from MT servers are visible to me or are being collected. When a user selects some text and presses a GT4T shortcut, the selection is sent directly to the respective MT servers and then the user receives replies from them. GT4T collects the following for licensing purposes: a unique hardware code and the number of characters you submit to MT servers through GT4T. The last time you used GT4T and your IP address are also collected automatically by the GT4T licensing server. They’re actually collected by all websites you visit, and it takes hard work not to collect them.

J: Any future plans with GT4T that might be interesting for us?

D: I’m currently working on a new version that does document translation. It will support many file types, including popular CAT file types as well as Microsoft Office types. Users will then be able to translate their documents without having to upload them to a server, and they can even browse a folder and ask GT4T to translate all the files in the folder and subfolders in the background. Your idea of providing suggestions while a user is typing is also helpful. I’ll reevaluate it and other suggestions that you brought up.

As the sole developer of this app, my strength is flexibility, but I also know my limits. Frankly, I’ve been hugely dependent on users’ suggestions and reports for new features, and sometimes even for debugging.

Remember, if you have any ideas and/or suggestions regarding helpful resources or tools you would like to see featured, please e-mail Jost Zetzsche at

  1. You can check out GT4T at
  2. API stands for application programming interface, and is the technology that allows different programs to talk with each other (such as Trados or GT4T with Google Translate).
  3. Zetzsche, Jost. ‚ÄúThoughts on Naver Papago with MT Engineer Lucy Park,‚Ä̬†The ATA Chronicle¬†(November/December 2019), 30,¬†

Dallas Cao is an English>Chinese translator and self-taught programmer. He developed GT4T, a Windows/Mac app that allows users to use online machine translation and dictionaries in any programs without having to open the browser. Contact:

Jost Zetzsche is chair of ATA’s Translation and Interpreting Resources Committee. He is the author of Translation Matters, a collection of 81 essays about translators and translation technology. Contact:

Pre-translate Memoq bilingual files .mqxlz or .mqxliff using machine translation

GT4T can translat Memoq exported bilingual files .mqxlz in batches with all tags in the right position, and you can choose from 10+ MT engines. Files are process on your own computer and there is no need to upload.

Translating files is super easy.

1.¬† Open Memoq, select a project click ‘Export bilingual files’.

2. Locate and  select the exported .mqxlz files and then drag & drop them to GT4T File Translator drop area and translation starts.

3. Double click the pre-translated .mqxlz files and they will then be imported automatically to your project.

Pre-translate Office documents .docx, .pptx, .xlsx and .pdf files using machine translation

GT4T can translate Office documents .docx, .pptx, .xlsx and .pdf files in batches with all tags in the right position, and you can choose from 10+ MT engines. Files are process on your own computer and there is no need to upload.

Translating files is super easy.

1.  Locate the files using file browser.

2. Select and then drag & drop files to GT4T File Translator drop area and translation starts.

3. Reopen the files and be happy.

Pre-translate Memsource .mxliff files using machine translation

GT4T can translate Memsource .mxliff files in batches with all tags in the right position, and you can choose from 10+ MT engines. Files are process on your own computer and there is no need to upload.

Translating Memsource files is super easy.

1.  Locate the .mxliff files using file browser.

2. Select and then drag & drop files to GT4T File Translator drop area and translation starts.

3. Reopen the files in Memsource editor and be happy.