How to read this data
What "sentence pairs" means
OPUS is a collection of parallel corpora: pairs of documents that are the same text in two different languages, aligned sentence by sentence. A "sentence pair" is one aligned pair of sentences between a language and a partner language in one of those documents. A language's total sentence-pair count is the sum of its aligned pairs across every corpus and every partner language it appears with in OPUS.
Raw counts reflect tagging, not real-world translation supply
These numbers describe what OPUS has indexed and how its source corpora tag their language codes — not how much genuine translation exists between two languages in the world, and not a judgment about corpus quality, licensing, or fitness for any particular task.
A few things worth knowing before reading too much into a count:
- A single large corpus can dominate a language's total. GNOME (desktop UI translations) is the clearest example: it alone can account for the overwhelming majority of a language's sentence pairs, simply because it ships translated strings across ~180 languages and versions. A high total doesn't necessarily mean broad, diverse translation coverage — it can mean one very large, very repetitive corpus.
- Locale tags can reflect tagging convention, not genuine regional content. Codes like
en_GBvsen_US, orzh_CNvszh_TW, come from however the source corpus labeled its files. A large gap between two locale variants of the same language (e.g. one has far more sentence pairs than the other) often just reflects how a corpus like GNOME organizes its translation files by locale — not that one region genuinely has more real-world translation activity than the other. - Languages with multiple regional variants often show inflated per-variant counts, for a specific, confirmed reason: GNOME (and possibly other corpora) ships several near-duplicate editions of the same underlying translation per language — e.g. English as
en,en_GB,en_US,en_CA,en_AU— and OPUS generates an aligned resource file between every pair of them, including edition-vs-edition (English-GB aligned against English-US, not just against another language). That inflates each variant's own sentence-pair count with what is largely the same content counted once per edition, not once per genuinely distinct translation. This is why each language's detail page lists its sibling locale variants separately rather than adding them into one combined total — summing them would compound this duplication rather than reflect real coverage. Languages known to have several GNOME-tracked variants include Spanish, Portuguese, German, Norwegian, Arabic, Persian, Azerbaijani, Chinese, Bengali, Bulgarian, Danish, Turkish, Urdu, Italian, and Serbian, in addition to English.
Languages without an ISO badge
Most rows show an ISO 639-3 code (e.g. "ISO cmn"). Some don't — these are languages this observatory couldn't confidently resolve to a specific ISO 639-3 code, usually for one of two reasons:
- The raw code is genuinely ambiguous. Some regional/locale tags on a broader "macrolanguage" code don't reliably pick out one specific individual language — a Hong Kong Chinese tag, for example, could mean Cantonese or written/Mandarin Chinese depending on the corpus, and there's no way to tell which from the tag alone.
- The code doesn't match anything in the reference data this observatory checks against, at a high enough confidence to accept automatically.
Rather than guess, these are left without an ISO code so the uncertainty is visible instead of hidden.
Snapshots and history
Each time the data pipeline runs, it writes a new dated snapshot rather than overwriting the last one. OPUS corpora don't update often enough for week-to-week change figures to be meaningful, so this site doesn't compute or display them. What each language's page does show is a history chart of its sentence-pair count across every snapshot collected — straight lines between the real data points, with each point clearly marked, so it reads honestly as sparse periodic measurements rather than implying continuous change. A language with only one snapshot on record won't have a chart yet; that's expected, not missing data.
Source
All underlying data comes from OPUS (opus.nlpl.eu), the open parallel corpus collection maintained by the University of Helsinki. OPUS is the authoritative source for the corpora, resource counts, and language codes this observatory aggregates — this site adds no data of its own beyond that aggregation.