For everyone who was handed a .xliff

Someone sent you an XLIFF file. Send it back translated.

Upload the file, pick the languages, download it in exactly the format it arrived in. Your CMS, your app or your agency reads it straight back — no developer, no plugin subscription, no copying sentences into a spreadsheet by hand.

XLIFF 1.2 and 2.0 · up to 10 MB per file · 64 target languages

Three steps, roughly a coffee break

The same three steps whether the file came from WordPress, Xcode or a translation agency.

1. Export the file

Whatever holds your text writes the XLIFF: WPML and Polylang do it from the WordPress dashboard, Xcode from the Product menu, Drupal and TYPO3 from their translation modules. If a colleague or agency already sent you the file, you can skip this step.

2. Translate it

Upload the file, tick the target languages, start the run. Everything the file already had a translation for stays as it is — only empty entries get filled.

3. Import it back

Download one file per language and load it back where it came from. The importer recognises the entries by their IDs, so the text lands in the right place without anyone matching rows by hand.

The second run is cheaper than the first: sentences that were already translated once are recognised and not paid for again.

Where your file came from

XLIFF is a handover format. Almost every system that manages text can write one — and each of them calls it something different.

WordPress with WPML or Polylang

WPML exports XLIFF from Translation Management, Polylang Pro from its export dialog. The file contains posts, pages, WooCommerce products and menus — exactly what you selected.

Xcode and iOS apps

Product, then Export Localizations, gives you an .xcloc folder for each language. The .xliff sits inside it under Localized Contents — that is the file you translate.

Agency, Trados or memoQ

Translation agencies work in XLIFF: .sdlxliff from Trados, .mqxliff from memoQ, plain .xliff from Phrase or Smartcat. All of them are XLIFF underneath and open here.

Drupal and TYPO3

Drupal writes XLIFF through the TMGMT module, TYPO3 through l10nmgr. Both read the translated file back in and fill their translation fields from it.

Angular, Symfony, Laravel

A messages.xlf from Angular or a Symfony translation file works the same way as any other XLIFF — with the difference that a developer usually keeps it in the repository.

Contentful, Storyblok, Sitecore

Headless systems export their entries as XLIFF or JSON. If yours can write the file and read it back, the export is the beginning of your workflow and the rest runs like everything above.

What survives the round trip

An XLIFF file is not a text document. Half of it is bookkeeping, and that half decides whether the import works.

The IDs

Every entry keeps the identifier it arrived with. That is what the importer matches on — lose it and the text no longer finds its place.

Inline formatting

Bold, links and line breaks inside a sentence are markup, not characters. They stay where the sentence puts them.

Placeholders

Names, counts and prices that the system fills in later are checked against the source before anything is saved. A translation that would break one is retried, and after a second failure it is not written.

Translations already in the file

Entries that already carry a translation are left alone. You send the whole file and still only pay for the empty parts.

Comments and context

Notes that developers or your agency left on an entry stay in the file. Xcode in particular stores the on-screen context there.

Plural forms

One item, two items, and the five forms some languages need for that: the entries stay separate instead of collapsing into one sentence.

What it costs

Two lines, and that is all of them. There is no plan that unlocks languages, and no per-word rate that rewards you for writing less.

  • €19 per seat per month, VAT included, cancellable at the end of the period.
  • €10 per million tokens — measured on what the model actually read and wrote, not estimated from your word count.
  • All 64 target languages are in the seat. The twelfth language costs no more than the second.
  • Bring your own model key and the token line disappears entirely. The seat still pays for the engine.

A worked example

A company site of about 8,000 words, translated into five languages, is roughly 172,000 characters of source text. Measured against a real run that is about €0.98 of usage per language, so under €5 once, plus the seat. The following month you only pay for what changed.

Files you own, or a subscription in front of your site

Weglot is the best known alternative and it works differently on purpose. The difference is not the translation quality — it is where the translations live afterwards.

ShipGlobalWeglot
How it worksFile in, file outScript or proxy in front of your site
Where the translations liveIn your system, in your fileWith the vendor
One more language costsOne more run of usageUsually the next plan up
Billed bySeat plus measured tokensWords and number of languages
New contentYou export againPicked up automatically
After you cancelTranslations stay where they areNo longer served

When Weglot is the better buy

One target language, a small site, nobody in-house who wants to touch an export: Weglot Starter at €15 a month is cheaper than our seat, and it picks up new pages on its own. We would rather say that here than after you have signed up. The maths turns around at roughly three languages, and it turns around hard at six — that is where their plan jumps from €79 to €299 without you adding a single word.

Questions people actually ask

Do I need to be a developer for this?

No. If you can download a file and upload it again, you can do the whole thing. The step that needs care is the export from your system, and that is a dialog with checkboxes, not a command line.

Can I not just open the file in Word or Google Translate?

You can open it, and that is the problem. Word saves the file back with its own formatting and the importer stops recognising it. Translating the raw file in a general tool usually rewrites the IDs and the inline tags along with the text, which breaks the import in a way that is hard to see until it is live.

What happens to text that is already translated?

It stays exactly as it is. Only entries without a translation are filled, so you can send the whole file after every content update and still only pay for the new parts.

Which XLIFF versions work?

XLIFF 1.2 and XLIFF 2.0, which between them cover WPML, Polylang, Xcode, Trados, memoQ, Drupal, TYPO3 and Angular. Files up to 10 MB, in both directions.

Who sees my text?

The engine sends the strings to the model, gets the translations back and does not keep your text as training material. If you bring your own model key, the request goes straight from your machine to the provider and we never see it at all.

Can I check the translations before they go live?

Yes, and you should. Download the translated file and read it before importing, or open it in our free viewer, where source and translation sit side by side. The desktop app is built for going through entries one by one.

Your file is already waiting somewhere

Start with the free viewer if you just want to see what is in it. Start an account if you want it back in 64 languages.

No upfront charge at checkout. Cancellable at the end of the period.