Translate XLIFF online: Trados, memoQ, Phrase and Smartcat

Author: — Technical translator and founder of Insight Translation · Updated 2026-09-17

This page is for translators and agencies who already work in a CAT tool and want to close one step inside it: a good pre-translation of a bilingual file. You export XLIFF from Trados, memoQ, Phrase or Smartcat, upload it here and get the same file back with target filled in. Markup stays where it was, segment ids and order do not change, and the file goes back into the same project and opens in your tool. Below, in order: how the file goes through, which extensions we accept, what happens to tags and terminology, and what it costs.

The point of the step is a consistent draft. Before translating, the system reads the whole file, or the whole job if there are several files, and then holds one term to one translation across all of it; your glossary applies to every file in the job at once. $1.50 per page of 250 words, and the first document up to 10 pages is free, with no signup.

How the file goes through

Export the bilingual file from your tool, upload it on hardtrans.pro and pick the language pair. You get back a file with the same extension and the pair added to the name: manual.sdlxliff comes back as manual.de-en.sdlxliff.

Inside, the order is this. The system first reads every segment of the file, and every file of the job if there are several. From that reading it writes a project brief and a glossary: terminology, abbreviations, decisions that have to hold throughout. Only then does it translate the segments in batches, with that brief in front of it.

HardTrans rewrites one thing: the content of <target>. Segment order, ids and attributes stay as they were, and where a segment had no <target>, the system creates one and puts the translation there. There is one exception, and it concerns Trados: where Trados itself did not create a <target>, the segment comes back exactly as it arrived.

We do not touch segment status. Whatever state the file had is what comes back. Marking a segment "translated" on the reviewer's behalf is not our call: a person confirms segments.

Which XLIFF types HardTrans accepts

Six extensions from different CAT tools.

That is exactly what your tool produces when you export a bilingual file, including the memoQ .mqxlz archive, which we take as is; there is no need to unpack it.

For now the system reads XLIFF 1.2 only. A file in version 2.0 yields no segments at all, so export from your tool in 1.2, or write to [email protected] and we will add it. File size limit: 50 MB.

How to translate a file from Smartcat, Trados or memoQ

Smartcat gives you the bilingual file as a document export; it is a plain .xliff in version 1.2. Translate it here and upload it back into the same document of the project. Segmentation and ids have not changed, so the translation lands in place.

In Trados there is nothing to export, because the project's working file already is the .sdlxliff. It sits in the project folder, in the target-language subfolder. Copy it from there, translate it, put it back and open the project.

memoQ gives you the bilingual file in its own format, .mqxliff, or the same thing in an .mqxlz archive. We accept both, and the archive is reassembled with everything in it. Phrase works the same way with .mxliff.

Tags and markup stay in place

The model translates text only. Tags are lifted out before translation and put back in their places when the file is assembled, so target gets the same markup that stood in source. The file opens in your CAT tool and imports back into the project: extension, encoding and structure stay the way that tool expects them.

One note on Smartcat. The empty inline tags it inserts into target from the translation memory are filled with the content of the same-named tag from source. Without that, reimport fails with "parameter length cannot be zero".

We do not show before-and-after panels for tags. Markup survival is worth checking on your file, not ours, and the free first document up to 10 pages exists for exactly that.

One term, one translation across the file

XLIFF cuts a document into segments, and an ordinary engine translates each one as a standalone sentence. What it chose twenty segments ago, it no longer remembers. That is where the drift comes from, and a CAT tool shows it better than anything else: filter the segments by term.

On August 25, 2026 we put § 14 of the German BetrSichV, the rules on inspecting work equipment, through DeepL, Google Translate and HardTrans: 4,291 characters, eight paragraphs, six terms that repeat between 3 and 32 times. We counted one thing: how many different English forms one German term came back in. Paragraph (2), verbatim:

Source: «Arbeitsmittel, die Schäden verursachenden Einflüssen ausgesetzt sind, die zu Gefährdungen der Beschäftigten führen können, hat der Arbeitgeber wiederkehrend von einer zur Prüfung befähigten Person prüfen zu lassen. Die Prüfung muss entsprechend den nach § 3 Absatz 6 ermittelten Fristen stattfinden. Ergibt die Prüfung, dass ein Arbeitsmittel nicht bis zu der nach § 3 Absatz 6 ermittelten nächsten wiederkehrenden Prüfung sicher betrieben werden kann, ist die Prüffrist neu festzulegen.»

DeepL

(2) The employer must have work equipment that is exposed to damaging influences which could endanger employees inspected at regular intervals by a qualified inspector. The inspection must take place in accordance with the intervals determined under § 3(6). If the inspection reveals that a piece of work equipment cannot be operated safely until the next periodic inspection determined under § 3(6), the inspection interval must be rescheduled.

Google Translate

(2) The employer must have work equipment that is exposed to damaging influences that could endanger employees inspected periodically by a qualified person. The inspection must be carried out in accordance with the intervals determined pursuant to Section 3, paragraph 6. If the inspection reveals that work equipment cannot be operated safely until the next periodic inspection determined pursuant to Section 3, paragraph 6, the inspection interval must be redefined.

HardTrans · no glossary, whole file in one job

(2) The employer shall have work equipment that is exposed to deteriorating influences which may give rise to hazards for workers subjected to periodic inspection by a competent person. The inspection shall take place in accordance with the intervals determined pursuant to Section 3(6). If the inspection reveals that a piece of work equipment cannot be operated safely until the next periodic inspection determined pursuant to Section 3(6), the inspection interval shall be redetermined.

Tested: August 25, 2026

The highlighting marks the two terms this paragraph tests, not mistakes. Wiederkehrend occurs twice in three sentences, and DeepL rendered it once as "at regular intervals" and once as "periodic". Over the whole text, Google Translate needed 13 different English forms for the six terms and DeepL 8; HardTrans used one form per term, six for six. Competent person is the term of Directive 2009/104/EC, which is what a translator would have picked.

This is one paragraph, and on one paragraph the difference is always modest. It is the whole file where it counts, and the whole file is what a CAT project is. The full count, with the terms and the method, is on the page about a DeepL alternative for documents. Why segmented text drifts in the first place is the subject of why machine translation breaks on technical documents.

Glossary: your terms across the whole job

Upload a Smartcat XLSX export, CSV, TSV or plain TXT, several files at once if you like; they apply to every file in the job. At the estimate, before you pay, you see how many terms were picked up and how many of them conflict: one source term, different targets in different lists.

What your list changes is easiest to see where the standard leaves a choice. Material number 1.4541 in a pump specification: Google Translate leaves it as a bare "1.4541"; with an eight-entry glossary HardTrans writes "X6CrNiTi18-10 (AISI 321)", the designation an English-reading engineer looks for. And the honest side of the same run: without a glossary, three runs of the same sentence returned "The power of the drive" twice and "The power output of the drive" once. Where your house term is fixed, put it in the list; the system will not guess it for you.

The system also builds its own project glossary before translating, and gives it to you as a separate CSV next to the result. If you have no list of your own, that one does the work; if you do, your terms take precedence, and the system fills in what your list does not have. The pump specification above, with all four engines side by side, is on the examples page.

Repeats, pre-translation and price

Identical segments are translated once, and the translation goes into every occurrence, both within a file and between the files of one job. Repeated segments get a 75% discount, and the discounted total is on the estimate before you pay.

A repeat in XLIFF is counted by the pair "source + target", not by source alone. A segment with a target filled from the translation memory and the same segment with an empty target are different to us, because the model has to see where a version has already been proposed and where it has not.

With pre-translation you have a choice. The "Skip pre-translated segments" switch appears as soon as there is an XLIFF among the uploaded files. With it on, segments with a non-empty target do not go to the model at all and come back untouched; with it off, they are translated again and your target is overwritten with ours.

What the service does not do

There is no translation memory, neither ours nor one you could plug in: fuzzy matches are not searched or inserted, and TMX goes nowhere. There is no segment editor either, and QA checks on numbers, tags and terminology, with their reports, are your CAT tool's job. It does that better than we would.

We do not replace Trados, memoQ, Phrase or Smartcat. We close one step inside them, the pre-translation, after which the reviewer starts from a consistent draft rather than an empty file. It is a draft for editing, not a final translation.

What it costs and how to start

$1.50 per page of 250 words, repeated segments at a 75% discount. The first document up to 10 pages is free, with no signup and no card.

Export the XLIFF from your tool and upload it on the home page, the very file you are stuck on now. If there are several files, send them as one job: the shared brief and the shared project glossary are built for a set.

Frequently asked questions

Does the result import back into Trados, memoQ or Smartcat?

We return exactly the format you uploaded: .sdlxliff stays .sdlxliff, .mqxlz stays an archive with its own skeleton. Custom namespace prefixes, attribute order in <xliff>, the BOM and the XML declaration are brought to the form CAT tools expect, and empty inline tags from the memory are filled from source. Checking this is cheaper than discussing it: the first document up to 10 pages is free.

How do I translate a file from Smartcat?

Export the bilingual XLIFF from the document, upload it on hardtrans.pro, pick the language pair and download the same file with target filled in. Then upload it back into the same Smartcat document. Extension and structure do not change, and the empty inline tags Smartcat inserts from the memory are filled with the content from source.

How do I pre-translate in Trados or memoQ?

The same way; only the file comes from a different place. In Trados it is the .sdlxliff in the project folder; in memoQ it is the bilingual export, .mqxliff or .mqxlz. The translated file goes back where it came from, and the reviewer opens the project with filled segments instead of empty ones. Confirming segments and running QA happens in your tool: we do not do that.

Do you support XLIFF 2.0?

Not yet. We read XLIFF 1.2: .xliff and .xlf, .sdlxliff, .mqxliff, .mqxlz, .mxliff and Smartcat exports. A file in 2.0 yields no segments, because the structure is different: <unit> and <segment> instead of <trans-unit>. Export from your tool in 1.2, or write to [email protected].

What happens to segments already translated from the memory?

By default they are translated again and your target is overwritten. If the pre-translation has to stay, turn on "Skip pre-translated segments": segments with a non-empty target then do not go to the model and come back as they arrived. The switch appears in the options as soon as there is an XLIFF among the uploaded files.

How long does a translation take?

Measured on jobs that went through the service from March to July 2026: on 132 jobs of 5 pages or more the median was 0.49 minutes per page, on 15 sets of 100 pages or more it was 0.34. A 10-page file takes about 5 minutes, a 200-page set a little over an hour. The sample covers all formats; we have no separate measurement for XLIFF.

Is this a replacement for a CAT tool?

No. We have no translation memory, no segment editor and no QA checks, and we do not set segment status. Our step is one: pre-translation. You hand over the exported file, get it back with a draft in target, and edit where you always have.

What happens to my files?

Files are deleted from our servers automatically after 7 days. Your text is never used to train models — neither by us nor by Anthropic, the model provider. Anthropic retains API data for a limited period under its policy and does not train on it.

Other pages: what makes an AI translator good for documents, a DeepL alternative for documents, medical document translation.

Method. The BetrSichV paragraph and the count of English forms per term come from the run of August 25, 2026: § 14 of the German BetrSichV from the federal legal portal, taken verbatim, DeepL and Google Translate through their web interfaces, HardTrans through the service as one job, no glossary on any of the three. The pump specification and the material number come from the glossary run published on the DeepL alternative page: the same four German lines and the same eight-entry glossary for DeepL and HardTrans; Google Translate has no glossary feature. Both were counted on plain text, not on XLIFF; for XLIFF the same whole-file reading before translation applies.

Related guides

Translate a document

First document free