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.
| ShipGlobal | Weglot | |
|---|---|---|
| How it works | File in, file out | Script or proxy in front of your site |
| Where the translations live | In your system, in your file | With the vendor |
| One more language costs | One more run of usage | Usually the next plan up |
| Billed by | Seat plus measured tokens | Words and number of languages |
| New content | You export again | Picked up automatically |
| After you cancel | Translations stay where they are | No 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.
If you want to read first
What is an XLIFF file?
What is inside one, why Word ruins it, and which programs open it safely.
Translate an XLIFF file, step by step
From export to import, written for people who do not write code.
Weglot pricing, explained
What the six plans actually cost, and the second axis nobody notices until the invoice.
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.