How to translate into a language you do not know, with confidence

The correct answer is of course to hire a translator. If you use machine translation, you know there will be places that are completely wrong.

What if you want to use machine translation and avoid as much as possible downright mistakes?

I added a “display back-translation” feature to GT4T and find it charming. It do sometimes help you identify the completely wrong machine translations.

GT4T is able to display several machine translations for users to pick from. Select the source text and press ctrl win j, you get this pop-up:

It doesn’t help much as I do now know Korean. But if I turn on “display back-translation”, I get this:

Now I know the last one is probably correct. Select it and press Enter and you get the Korean translation with ease of mind (hopefully).

프로파일 중 루프: WIN +

Translate JSON files using GT4T

GT4T is not the only product that can only translate JSON files, but with GT4T,

  1. You can pick any of the 30 automatic translation engines. Whatever your language pair is, you always can get state-of-the-art automatic translation quality.
  2. You can select multiple files and even folders to be translated.
  3. Files are handled locally on your own computer. No upload is needed.
  4. And you can specify key names whose values are to be translated.

In real life, JSON files can be quite large and complicated with all kinds of data. Importing such a JSON file into CAT tools like Trados won’t work well. You simply don’t want to translate all the text data! With GT4T you can specify a list of key names whose values are to be translated.

For example,

In this screenshot, only values of the key “description” need to be translated and you should never touch other values.

It’s pretty easy to translate using GT4T. Just drag the files into the dropping area of GT4T.



“Specify key names” dialog appears. Check “Translate all keys with text values” if you want to translate all text values. If you want only to translate certain keys, fill the “Specify key names” field with key names whose values need to be translated.


In our case above, you type the key name “description” and click “Continue”, wait a while and you will get the perfectly translated file!

GT4T is a Windows/Mac app that helps you translate faster and better. Download now from

GT4T update log: 220811

    8.35.220625: Fixed: several problems with Trados file translation; better tag handling.
    8.35.220617: Fixed: File translator stuck on rare occations
    8.35.220608: Fixed: File translator stuck on start; Pinyin translation; cannot acquire hard code
    8.35.220526: Fixed minor problems when translating markdown. Fixed a rebilling bug
    8.35.220520: Added rtf support. Fixed bugs with docx, and markdown translation
    8.34.220512: Fixed issues with Memsource
    8.34.220505: Fixed an encode detecing issue when translating plaint text files
    8.34.220426: Fixed a pricing problem at in-app purchase
    8.34.220423: Text boxes are properly handled in Word; fixed a spacing problem in translation
    8.34.220418: Fixed missing soft returns in Word
    8.34.220407: Fixed broken Traditional Chinese Hongkong.
    8.34.220331: Really fixed dirpath cannot be empty error when generating target files.
    8.34.220322: Trados segment status can be set; segments with comments are properly handled; fixed broken dash fix; added always translate upper case option
    8.34.220316: Fixed: tag issue when translating xliff files; corrupted xliff files when using xunfei; 100 file limit when dropping folder. File translator file list now can be edited
    8.34.220309: Urgent fix: shortcuts stop working after aborting File Translator; $ sign error when translating sdlxliff
    8.34.220227: Language is now properly set in Translated Word document
    8.34.220221: Fixed broken smartcat support; fixed ‘invalid key’ for deepl
    8.34.220205: Fixed broken dictionaries; added “lock pop-up width/height” options
    8.34.220141: Fixed: 1) Improved sdlxliff translation; 2)Fixed broken multi-file CafeTran and .xlz translation; 3) added html translation 4) fixed broken folder translation
    8.34.220133: Fixed: 1) Error on replacing original file when translating large .docx files; 2) Corrupted Trados file; 3) Improved markdown/Rst/adoc translation
    8.34.220123: Fixed: skipped PDF contents; Remove line-breaking hyphenation for better translation quality
    8.34.220113: Urgent fix: Text sometimes remains untranslated when containing numbers.
    8.34.220108: Fixed: File Translator stuck when translating multiple files. Added .rst, .asciidoc translation. Fixed broken .srt translation;
    8.34.211226: Added translating folders
    8.33.211224: Fixed: contents are skipped when translating PDF
    8.33.211220: Added more Chinese variations (Traditional Chinese HK and Chinese literal)
    8.33.211210: Fixed a bug that could corrupt Word files
    8.33.211209: File Translator can translate doc, ppt, xls formats
    8.33.211208: Fixed: bugs with plain Japanese conversion; Chinese second person choices
    8.33.211203: Fixed: bug with auto detect source language
    8.33.211201: Fixed: corrupted Word file
    8.33.211134: Fixed broken .srt translation
    8.33.211133: Added screen capture translation
    8.32.211123: Added image file translation
    8.31.211120: Fixed: Corrupted Trados file; Target not filled; right to left languages for Word
    8.31.211118: Users can choose to add or remove space between English and Chinese.
    8.30.211116: Fixed: loading issue when starting with Windows
    8.30.211114: Fixed: 1) broken MT/AT tag remover; 2) a bug that could freeze File translator; 3) a but that could corrupt files
    8.20.211038: Removing inline tags applicable to Office or markdown files
    8.20.211030: Added Markdown file translation; fix more bugs with Word file translation.
    8.19.211024: Updated NewTranX and systran Marketplace
    8.19.211015: File translator can handle BIG files, headers, footers, notes, graphs, equations.
    8.18.210930: PDF files, including unedible ones, are better handled.
    8.18.210910: Fixed: UTF-8 BOM mark bug
    8.18.210831: Fixed: Notepad is opened instead of Excel when editing glossary
    8.18.210826: Fixed: corrupted docx file when it contains table of contents
    8.17.210818: Use twin-engine for File Translator
    8.17.210815: Added ctrl shift K to translate in batches with pop-up
    8.16.210812: Fixed another corrupted word file bug.
    8.16.210810: Bilingual files output; marcro enabled office files; fixed right-to-left language problems with pptx
  8.16.210808: Fixed broken atman
    8.16.210709: Added 10jqka and 云上曲率, fixed Tencent
    8.16.210628: Added newTranX; Fixed ModernMT not translating from zh
    8.16.210622: File Translator on-demand payment for China. Fixed a bug with quotation marks replacement
    8.16.210619: Fixed 1) Japanese plain style converter; 2) Corrupted xlsx files
    8.16.210614: Price factors show correctly when an API code is provided
    8.16.210613: Fixed: Broken multil-line sdlxliff translation; Tilde goes official; corrupted Word file; all major languages can choose quotation marks
    8.16.210608: Added an option to output plain Japanese
    8.16.210602: Fixed broken “license information” page
    8.16.210601: Officially added atman

Translate markdown / adoc / reStructuredText (.rst) files using GT4T


CSDN, a popular programmer community website in China, after lots of comparison of different solutions, finally chose GT4T as its provider for translating markdown /adoc /reStructuredText files.

CSDN chose GT4T as its provider for a reason: GT4T can handle these types of files very well. Look at this screenshot of the Electron markdown manual.


Here is the translation by GT4T. It can keep tags, and formats and translate only parts that need to be translated and skip code blocks.


Besides formats, GT4T integrates 30 automatic translation engines worldwide. Whatever your language pair is, you can always get the state-of-the-art translation.

And you can use a glossary file to fix automatic translation so terms will be translated correctly. You can also easily add untranslatables – lots of terms in IT do not need to be translated!

GT4T is a Windows/Mac app that helps you translate faster and better. Download it here



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.19.201119: Fixed a crash problem with source text is “NULL”
      7.19.201117: Repetitions won’t be resubmitted to MT and chars won’t be recounted.
      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.201028: Users can open Glossary with WPS if it’s installed.
      7.18.201020: Added British English support
      7.18.201015: Urgent fix: File Translator translates Trados locked segments when ‘translate unconfirmed’ is ticked.
      7.18.201014: Added Japanese to Papago
      7.18.201006: Added support to SDL, Memsource, XTM, Lokalise, 译马网 online editors and Transit NXT; Fixed a problem with OmegaT
      7.18.200928: You can choose whether to translate the unconfirmed segments with File Translator
      7.17.200923: Urgent fix: File Translator broken when ‘Fix MT’ is ticked; ‘Fix MT’ setting is lost upon updating from older versions
      7.17.200919: File Translator resumes at break points.
      7.16.200910: API settings now stay the same on changing profiles
      7.16.200906: Added many languages; added ‘pre-translate’ to Fix MT for better quality
      7.15.200901: Added MT Papago.
      7.14.200830: Fixed File Translator right-click menu item problem.
      7.14.200801: Fixed ‘Language pair not supported’ tencent/youdao bug with Portuguese
      7.14.200731: Fixed broken NiuTrans
      7.14.200722: Fixed a crucial bug with ‘Fix MT with Glossary’ when translating on files
      7.14.200713: Fixed broken Baidu, Tencent & CloudTranslation; ‘Fix MT with Glossary’ feature now also works with File Translator
      7.14.200712: ‘Fix MT with Glossary’ feature now also works with File Translator
      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.14.200305: Fixed broken Niutrans to 0304. Added Systran. Fixed: ESC won’t work when requests take too long
      7.14.200304: Added Systran. Fixed: ESC won’t work when requests take too long
      7.12.200207: Fixed: ‘no more character remaining’ with time-based licenses
      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.
      7.01.191222: Added ‘File Translator’ (only Trados bilingual file for the moment)
      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.190926: New feature: Press ‘a’ to paste all translations at pop-up.
      6.06.190820: Fixed ‘object null is not iterable’ error google neural
      6.06.190724: Fixed the pasting problem in Trados
      6.06.190711: Google returns ‘bad request’ when ‘auto detect source language’ is on; GT4T hangs when ‘Auto Swap language pair’ is on;
      6.05.190709: Fixed occasional Google ‘Rate or quota exceeded’ error.
      6.05.190619: Removed ‘selected too much text error’
      6.05.190604: Added ‘Do not auto close pop-up’ option
      6.05.190508: Added ‘Auto swap language pair’ option
      6.05.190504: Improve stability of copy/paste by adding a slight delay
      6.05.190417: Fixed ‘too many request error’ with Google phrase-based
      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.190320: Fixed: Holding down Ctrl triggers shortcut when it is set to ‘press ctrl twice quickly’; Adding more dictionaries
      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.04.190216: For the new char-based users, using ‘lower-tier’ MT engines will deduct fewer chars. Italian translation by Riccardo Schiaffino
      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.190115: Fixed a spacing problem with ‘fix MT with glossary’
      6.03.190113: 1) Added Tencent Translator; 2) More specific error messages
      6.02.190109: Profiles now also remember dictionary, MT selections
      6.02.190107: 1) Removed follow caret in Word option which could interfere with typing. 2) Fixed: Pop-up won’t appear on some rare occasions.
      6.02.190105: You can now save settings as profiles and loop among them using a hotkey.
      6.01.190103: 1) Fixed broken Chinese Pinyin support; 2) Fixed broken auto detect for dictionaries; 3) Fixed ‘undefined’ error with dictionaries
      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: