Tool · multilingual review
Merge XLIFF files into one multilingual Excel
Drop the translations of one source file, one bilingual file per language. You get one table: each segment's source, every language beside it, and a comment column for each language at the end. Write your comments in the table, then download it as an Excel workbook or a CSV.
The segments are lined up by their IDs, or by their source text where the IDs do not match. Rows whose source differs between files, segments a file does not have and empty targets are flagged, on screen and in the workbook.
Every file is read and merged in this browser tab. Nothing is uploaded: xliff.ai has no server that receives files, and the workbook is built here and handed straight to you as a download.
What it is for
- Reviewing every language at once
- A product name translated in one language and left in English in another, a number that changed, a placeholder one file lost: across a row, the odd one out is easy to see.
- One file for the client, not twenty
- Send one workbook to the client or the in-country reviewers, with a comment column for each language, instead of a bilingual file per language and a spreadsheet to collect the answers.
- Finding the file that is out of date
- A language exported from an older version of the source shows up: its source differs where the IDs match, and the strings added since are missing from it.
- A string list in every language
- The whole product's strings, with their keys, in every language side by side — for a style guide, a terminology check, or a developer who wants to see what shipped.
The workbook
Translations is the table on the screen, column for column: No., ID, Key (when the files have keys), Source, one column per language headed by its language code, and then one Comments column per language, last, in the same order. The header row and the columns up to the source are frozen, the text wraps, and the header has filters. Your comments are in the comment columns; the rest are empty, ready for whoever you send it to.
Nothing is written into a translation cell that the file did not say. A segment a file does not have is a grey, empty cell. Where a file's source is different, its cell is amber and the cell's note gives that file's source. A comment the file itself carries is the note on its cell, and one that every file carries — a developer's note on the source — is the note on the source cell.
Checks lists each of those flags as a row — segment, language, what is wrong — to filter or hand on. Files says which file each column came from, its format and segment count, how it was lined up, and what it lacks.
The CSV is the Translations table alone, in UTF-8 with the byte-order mark Excel needs to read it. Cell notes have no place in a CSV, so the files' own comments are not in it.
How the rows are lined up
- The rows
- The table follows the file with the most segments, in its order. A segment that file does not have gets a row of its own, right after the row of the segment before it in its own file, so a string only one language has still sits where it belongs.
- Matching
- Automatic lines a file up by segment ID when it shares real IDs with the others (XLIFF, SDLXLIFF, MQXLIFF, PO) and most of the shared IDs carry the same source. Otherwise — and for whatever the IDs leave over — a segment goes with the next unmatched row that has the same source text, in file order, so the third "OK" goes with the third. CSV and XLSX rows are named by row number, so those always line up by source. You can force either way. It is the compare page's matching, file by file.
- Different source
- A file whose segment is lined up by ID but whose source text is not the row's. A run of spaces counts as one space, and inline tags are not counted, because every format writes tags its own way.
- Not in every file
- A row some file has no segment for.
- Untranslated
- A segment the file has with nothing in its target.
- The columns
- One per file, named by the target language the file names, in language order. Two files of the same language are told apart by their names, and a file that names no language is named after the file until you type one.
Steps
- Drop one file per language. The translations of one source file, one bilingual file for each target language — or the folder that holds them. XLIFF 1.2 and 2.0, SDLXLIFF, MQXLIFF, PO, XLSX and CSV all open, in any mix.
- Check the file list. Each file becomes a column named by its target language. A file that names no language is named after the file; type the language over it. The list says how each file was lined up and how many rows it lacks.
- Read across the languages. Every segment is one row: the source, then each language. Filter to the rows to check — a different source, a segment some files lack, an empty target — or search for a word.
- Write your comments. The comment columns come last, one for each language. Type into any of them; they stay in this tab until you download the table.
- Download the table. Excel workbook for the table with your comments, the checks and the file list; CSV for the table alone. Both have the same columns as the screen.
The gotchas
Your comments live in this tab until you download the table. Reloading or closing it loses them, and the browser asks first. Download the workbook before you walk away from a long review.
A different source can only be seen when the IDs line the files up. Files whose IDs do not match — two formats, or a re-export that renumbered the segments — line up by source text, and a source that changed then shows as a row the other files lack plus a row only that file has.
The download is a spreadsheet for reading and commenting; each language's file stays as it is. To change a translation, open that language's file in the editor. The layout is the one CAT tools call multilingual Excel, but importing it into Trados Studio or memoQ has not been tested.
In the CSV, a cell that starts with =,
+, - or
@ gets a leading apostrophe, so Excel does not run a
client's text as a formula. The workbook stores the same text as it is.