files/en-us/web/api/languagedetector/detect/index.md
{{APIRef("Translator and Language Detector APIs")}}{{SeeCompatTable}}{{securecontext_header}}
The detect() method of the {{domxref("LanguageDetector")}} interface detects the closest matching language or languages that a given text string is most likely to be written in.
detect(input)
detect(input, options)
input
options {{optional_inline}}
detect() operation. Possible values include:
signal
detect() operation to be aborted via the associated {{domxref("AbortController")}}.A {{jsxref("Promise")}} that fulfills with an array of objects representing the detected languages. Each object contains the following properties:
detectedLanguage
confidence
0 and 1 representing the AI model's confidence that the detected language is correct.The sum of all the returned confidence values should theoretically be 1, however, it may be lower because very low confidence values are excluded from the results.
The last array element returned will always have a detectedLanguage value of und — this is an abbreviation of "undetermined", and represents the probability that the text is not written in a language the model knows.
AbortError {{domxref("DOMException")}}
LanguageDetector was previously destroyed (had {{domxref("LanguageDetector.destroy()")}} called on it, or was aborted via its abort signal after creation).InvalidStateError {{domxref("DOMException")}}
detect() usageconst detector = await LanguageDetector.create({
expectedInputLanguages: ["en-US", "zh"],
});
const results = await detector.detect(myTextString);
results.forEach((result) => {
console.log(`${result.detectedLanguage}: ${result.confidence}`);
});
// Results in logs like this:
// la: 0.8359838724136353
// es: 0.017705978825688362
// sv: 0.012977192178368568
// en: 0.011148443445563316
// und: 0.0003214875760022551
{{Specifications}}
{{Compat}}