Spreadsheets are where most translation work actually happens, and a spreadsheet does not know that one of its columns is a key, another is the English somebody translates from, and a third is a note that was never meant to be translated. It treats all of them as cells. That is why keys come back as dates, why a column reported as finished is still full of English, and why nobody can tell what is left.
The layout it recognises
Language columns are detected from their headers on open, including the forms a real export actually uses: plain codes such as en and ja, regional variants such as pt-BR and zh-Hans, written-out language names, and decorated headers such as [EN], text_en or EN_translation. Comment and metadata columns are recognised too, in English and in Japanese, so developer correspondence is never counted as untranslated strings.
What it does with a translation file
- Progress per language, not per fileA file that is 80% translated overall may be four languages at 100% and one at nil. Each target column is reported on its own terms.
- Untranslated rows as a filterTurn it on and the grid shows only the rows still needing work in the language you are on. It is somewhere to go, not a number to read.
- Strings still identical to the source, counted apartAn export that pre-filled every target column with English leaves rows that are not empty and not translated. They are reported separately rather than folded into either bucket.
- The source column locked, comments shown as notesEditing what the translator reads from is almost never intended, so it is read-only. Comment columns are attached to the row as notes rather than presented as cells to fill in.
What it catches before you ship
- Duplicate keys — two rows with the same identifier, where whichever is read second wins and the other is silently ignored.
- Missing keys — a row nothing can look up, because its key column is empty.
- Invisible characters — a zero-width space or a full-width space in a key, which makes two identical-looking strings fail to match.
- Length outliers — a translation far longer than that language pair normally runs, measured against the column’s own median rather than a fixed threshold.
Nothing is uploaded. The file is read, checked and written by your browser — which for a translation hand-off under an agreement about where the content may go is not a small detail.