TranslatePulse covers 253 languages. Most of what you read on a language page is not typed by hand — it is derived from structured datasets, and derived content is only as trustworthy as the account of how it was made. This page is that account.
The translation itself
Text you type into the translator is sent to Google's translation endpoint and the result is returned to your browser. We do not train, host or fine-tune a translation model of our own, and it would be dishonest to imply otherwise.
What that means for you in practice: quality on any given pair is Google's quality on that pair, which is very good between major languages and noticeably weaker on low-resource ones. Nothing on this site improves the raw translation. What this site adds is everything around it — the reference data, the phrase tables, and the structural comparisons below.
Typed text is passed through for translation and is not stored on our servers. The privacy policy covers this in full.
The language encyclopaedia
Each language has a structured record with eleven fields: geographical distribution, language family, writing systems, writing system history, alphabet, vowels, consonants, phonetics, grammar and syntax, loanwords, and total number of speakers. These records are what the "About [language]" sections on pair pages render.
Speaker counts are the field to treat with the most caution. They come from published estimates that differ between sources, often substantially, and they mix first-language and total-speaker figures depending on how the underlying source counted. Treat them as orders of magnitude, not measurements.
The four non-English locales are machine-translated from the English records, with two deliberate exceptions: field labels use the hand-written translations that already existed, and single letters or phonetic symbols are left untranslated — running "ŋ" through a translator produces noise, not a translation.
The phrase library
Every pair page carries a table of 116 common phrases across 10 categories — greetings, courtesy, introductions, numbers, time and dates, directions, food, shopping, emergencies, and asking for language help.
The design decision that matters here: phrases are stored per language, not per pair. A page for X → Y is rendered by joining the X translation and the Y translation of the same English seed phrase. Both sides are independent translations of that seed, so you never see a translation of a translation, which is where compounding errors normally creep in. It also means the dataset is 253 translations rather than tens of thousands.
The seed phrases are written to be short, literal and in one consistent register, because idioms and mixed formality are exactly what machine translation handles worst on short strings.
A language's file is only written if every phrase in the batch came back, so a truncated response cannot silently leave a partial table on the site. One known artefact is corrected automatically: the endpoint lowercases some outputs even when the input was capitalised (measured at 44 of 101 phrases for Spanish and 13 of 101 for Russian), so initial capitals are restored afterwards.
The per-pair comparisons
The "How X and Y compare" section on each pair page is computed from the two languages' records, not written by hand. It reports four things: whether the two share a writing system (and whether either runs right to left), whether they belong to the same language family, whether their basic word order matches, and roughly how many people speak each.
Deriving prose from prose needs care, and three specific traps required fixing after they produced wrong statements on live pages:
- Script detection had to check Latin last. Japanese and Chinese records mention romaji and pinyin in passing, so a naive "does this mention Latin?" test reported both as Latin-script languages.
- Historical clauses had to be cut. Records often read "uses the Latin script; historically used the Arabic script". Matching the whole string reported Turkish and Swahili as Arabic-script languages, which is wrong by about a century.
- Disputed family claims had to be truncated. Korean's record notes that some linguists place it in a proposed Altaic grouping "which also includes Mongolic, Turkic and Tungusic". Reading past the hedge classified Korean as a Turkic language.
Where a fact cannot be established for a given language, the sentence is omitted rather than hedged or guessed.
Language detection
The language detector uses a character-trigram model over 98 languages, trained on the phrase library above. Candidates are first gated by Unicode script, then ranked by trigram overlap.
It is deliberately restricted rather than covering all 253. Letting every language compete is what made off-the-shelf detectors fail on this site's traffic: on short realistic input, rare languages win by chance. Two widely used libraries scored 10 of 15 and 7 of 15 on that class of input, both misclassifying plain Spanish; the restricted model scored 18 of 18 on the same test set.
Its honest limits: it is trained on 116 phrases per language, which is a small corpus. It is weakest on very short input, on single words, and on closely related pairs. Regional variants that the corpus cannot reliably separate — European versus Brazilian Portuguese, for instance — are excluded outright rather than guessed at, because reporting the wrong variant reads as a straightforward mistake.
Image translation
Image translation runs OCR in your browser using Tesseract, then sends the extracted text through the same translation path as typed text. The image itself never leaves your device. Accuracy depends heavily on image quality, and OCR on handwriting or on low-contrast photographs is unreliable in a way no translation step can repair.
Which pages we ask Google to index
253 languages produce 63,756 possible translation pairs. We ask Google to index 4,204 of them. The remaining 59,552 are marked noindex.
Those pages still work. They return normally, they are reachable, and you can use them — we simply do not put them forward as search results. A page for a pair with no realistic audience adds nothing to a search index, and publishing tens of thousands of them would make the pages that are useful harder to find. Pairs qualify by having a plausible audience: one side is English, both sides are widely spoken, or the two are spoken together in the same country — which is why Punjabi–Urdu and Tagalog–Cebuano are included while many larger-looking combinations are not.
What this site does not claim
There is no user-rating system here, so no rating is displayed. There are no testimonials, because we have none we could attribute to real people. Usage figures are not published, because we would have no way for you to check them. The only counts shown anywhere on the site are ones you can verify yourself from the product: how many languages are listed, and what the translator's limits are.
Where a dataset is weak, this page says so rather than leaving you to discover it. If you find something here that is wrong, the contact page reaches us, and corrections to the language data are welcome — several of the fixes described above came from exactly that.