Language Identifier

Paste text to detect its language. Shows the top 3 matches with scores and the writing system. Searches 109 main languages or all 178, in your browser.

Free No Signup Required Browser-Based

Detection runs in your browser, so the text never leaves this page. At least 10 characters are needed, and a full sentence works much better than a few words.

By default the search covers 109 languages: those with 8 million or more speakers, plus every official language in Unicode CLDR’s territory data. That leaves out regional languages, which avoids odd matches on short text. A language outside the set is matched to the nearest one in it, so tick the box if your text may be in one.

Try an example:

Paste some text above and the three most likely languages appear here, with the writing system.

What Language Identifier Does

This tool tells you which language a piece of text is written in. It uses franc, an open-source detector that runs inside this page, so your text is never sent anywhere. franc first finds the writing system the text is mostly in. A few writing systems belong to a single language, such as Hangul, Greek and Thai, and that settles it. For shared systems such as Latin, Cyrillic, Arabic and Devanagari, franc compares your text’s three-letter sequences with a stored profile of each candidate language and ranks them. By default the candidates are 109 languages: those franc lists with 8 million or more speakers (the cut-off its own smaller build uses), plus every language that Unicode’s CLDR territory data marks as official in at least one territory. That keeps Danish, Hebrew, Armenian, Estonian and similar languages, and leaves out regional ones such as Scots and Makonde. A checkbox widens the search to all 178 languages franc can return.

The page shows the top three matches with their ISO 639-3 codes, a relative score for each, the share of each writing system in your text, and notes when the result deserves less trust. The score is not a percent chance: the best match is always 1.00 and the others are scaled against it. The most useful signal is how many letters you gave it and whether the second-place score is close to the first.

How to Use Language Identifier

  1. Paste text into the box, or press one of the example buttons
  2. Read the most likely language and the reliability line beside it
  3. Tick Search all 178 languages if the text may be in a smaller, regional language
  4. Compare the top three matches and their relative scores
  5. Check the writing system and the notes about short text or close calls
  6. Press Copy result to copy the language name and its ISO code

How Language Identifier Works

How the language is chosen

Find the dominant script → if one language owns it, return that language → otherwise rank candidate languages by trigram distance and scale so the best is 1

Trigram
Three characters in a row. A space counts, so “ de” and “de ” are different trigrams in franc’s Spanish profile
Relative score
Best match = 1; every other language = how close it is compared with the best
Minimum length
franc returns no answer for fewer than 10 characters, and reads only the first 2,048

Worked example

Text: “Rubah cokelat yang cepat melompati anjing malas sementara matahari perlahan terbenam di balik bukit.” (86 letters, Latin script).

  1. The Latin script is shared by many languages, so franc ranks trigram profiles
  2. Indonesian and Malay both score 1.00, because the two languages are close and the sentence is valid in both
  3. Sundanese comes next at 0.80 in the default search (Pampanga at 0.83 when all 178 languages are searched)

Result: Indonesian 1.00, Malay 1.00, Sundanese 0.80. The page flags this as a close call.

What the Detector Returned on Sample Text

franc 6.2.0, run through this tool on 2026-10-05, first with the default search (109 languages) and then with Search all 178 languages ticked. Scores are relative, and the best is always 1.00.

TextLettersDefault search: top threeAll 178 languages: top three
French sentence about a fox and a dog87French 1.00, Spanish 0.81, Catalan 0.76French 1.00, Logudorese Sardinian 0.81, Spanish 0.81
Italian request to book a table127Italian 1.00, Spanish 0.89, Catalan 0.87Italian 1.00, Spanish 0.89, Catalan 0.87
Indonesian sentence about a fox and a dog (close call)86Indonesian 1.00, Malay 1.00, Sundanese 0.80Indonesian 1.00, Malay 1.00, Pampanga 0.83
English business sentence (“Please send me the report…”)93English 1.00, Danish 0.86, German 0.85Scots 1.00, English 0.92, Danish 0.79
Danish sentence about a fox and a dog (close call)74Danish 1.00, Norwegian Bokmål 0.94, Norwegian Nynorsk 0.90Danish 1.00, Norwegian Bokmål 0.94, Norwegian Nynorsk 0.90
Spanish phrase (“hola mundo, ¿cómo estás hoy?”), low reliability21Zulu 1.00, Southern Sotho 1.00, Tswana 0.96 (Spanish is fourth at 0.90)Makonde 1.00, Yao 0.96, Ganda 0.94
“hola mundo”, very low reliability9Nyanja 1.00, Zulu 0.98, Southern Sotho 0.93Makonde 1.00, Yao 0.94, Koongo 0.86
Japanese sentence (settled by script)40Japanese 1.00Japanese 1.00

How to Read Your Result

Reading the three scores together

One clear winner, with the next score at 0.8 or lower, is a confident result. A runner-up at 0.9 or above is a close call: the page flags it and says which language is second. Closely related languages, such as Indonesian and Malay, or Norwegian and Danish, often tie.

Short text

With fewer than 50 letters the page labels the result low or very low reliability. These cutoffs are this tool’s own rule of thumb, not published accuracy numbers. The table above shows the failure: “hola mundo, ¿cómo estás hoy?” ranks Zulu and Southern Sotho first and Spanish only fourth at 0.90, and the bare “hola mundo” returns Nyanja with Spanish nowhere in the top three. The default set narrows the field but does not fix this. Add a full sentence and the answer firms up.

Writing systems that settle it

When franc’s data holds one language for a script, such as Hangul for Korean, Greek for Greek and Thai for Thai, the answer comes from the script and length matters little. Japanese is recognized by its kana. Han characters alone are reported as Mandarin Chinese, so Cantonese and kanji-only Japanese give the same result.

Mixed-language text

The detector returns the language that dominates. If the script breakdown shows two writing systems with a meaningful share each, the page notes it, since the text then holds more than one language.

Limitations & Accuracy Notes

  • The default search covers 109 languages: the 76 with 8 million or more speakers in franc’s documentation, plus the languages that Unicode CLDR release 48.2 lists as official in at least one territory (its territoryInfo data, mapped to ISO 639-3 codes with SIL’s tables). The checkbox extends the search to all 178 languages franc can return. A language outside the searched set, such as Tibetan, gets no answer by default, or is matched to the nearest language inside it. The score gives no sign of this.
  • Short text is unreliable, and so is text full of names, numbers, code or URLs, which carry little language. Related languages can rank above the correct one even on a full sentence. With all 178 languages searched, the English business sentence above comes back as Scots first.
  • Only the first 2,048 characters are analyzed. The page tells you when it trims a longer text.
  • Dialects and regional variants are not separated: it cannot tell US English from British English, or Brazilian from European Portuguese.
  • Han-only text is reported as Mandarin Chinese; Cantonese, Classical Chinese and kanji-only Japanese are not told apart.
  • The relative score is a ranking aid, not a probability. A score of 1.00 means best of the candidates, not certain.

Frequently Asked Questions

How do I find out what language a text is written in?

Paste the text into the box and the three most likely languages appear straight away, with the writing system. Use at least a full sentence. The tool needs a minimum of 10 characters, and it is much more reliable on a paragraph than on a few words.

How accurate is the language detector?

It depends on length and on how close the languages are. It compares three-letter sequences in your text with a profile of each language. Short text can go wrong: in our test, “hola mundo, ¿cómo estás hoy?” ranked Zulu first and Spanish only fourth. Neighbors tie too, and Indonesian and Malay both scored 1.00. The page flags close calls.

What does the score mean?

It is relative, not a percent chance. The best match always scores 1.00, and each other language is scaled against it, so a runner-up at 0.95 is nearly tied and one at 0.40 is far behind. A high score on a very short text still means little. Read the reliability line next to the result.

How much text do I need?

Ten characters is the minimum, and below 50 letters the page labels the result low or very low reliability. Those cutoffs are this tool’s own rule of thumb, not published accuracy figures. A sentence or two usually separates major languages; telling close relatives apart takes a paragraph. Only the first 2,048 characters are analyzed.

Which languages can it detect?

By default it searches 109 languages: those with 8 million or more speakers, plus every official language in Unicode CLDR’s territory data, such as Danish, Hebrew, Armenian and Estonian. Tick Search all 178 languages to add regional ones. A language outside the searched set is matched to the nearest one in it, so a wrong answer is possible.

Can it tell Chinese from Japanese?

Often, by the writing system. Text containing Japanese kana (hiragana or katakana) is reported as Japanese. Text written only in Han characters is reported as Mandarin Chinese, which also happens with Cantonese or with Japanese written in kanji alone. The page notes this when it applies.

Is the text I paste uploaded?

No. The detector is part of this page and runs in your browser. Your text is never sent to a server, and it is cleared when you close or reload the tab. If the text mixes several languages, the result is the one that dominates, not a list of every language present.

References & Further Reading

By OnlineToolHubs Team • Updated October 2026