Skip to content
vic

richtr/guessLanguage.js

A natural language detection library based on trigram statistical analysis for Node.js and the Web.

richtr/guessLanguage.js.json
{
"createdAt": "2012-09-14T00:42:40Z",
"defaultBranch": "master",
"description": "A natural language detection library based on trigram statistical analysis for Node.js and the Web.",
"fullName": "richtr/guessLanguage.js",
"homepage": "http://richtr.github.com/guessLanguage.js/",
"language": "JavaScript",
"name": "guessLanguage.js",
"pushedAt": "2015-06-18T14:07:34Z",
"stargazersCount": 213,
"topics": [],
"updatedAt": "2025-11-19T11:12:02Z",
"url": "https://github.com/richtr/guessLanguage.js"
}

A natural language detection library based on trigram statistical analysis. This library is written in JavaScript and works equally well when run in either the Browser or Node.js.

An online demo is available here.

You can clone this repo as follows:

Terminal window
git clone git@github.com:richtr/guessLanguage.js.git

You can use this library in a web page by including the following files:

<script unsrc="lib/_languageData.js"></script>
<script unsrc="lib/guessLanguage.js"></script>

You can also use this library in a Node.js project. This library can be installed via npm as follows:

Terminal window
sudo npm install -g guesslanguage

Including this library for use in a Node.js project can then be done as follows:

var guessLanguage = require('./lib/guessLanguage');
// See the API section for usage

You can use guessLanguage.js in any of the following ways:

guessLanguage.detect('...input text here...', function(language) {
console.log('Detected language code of provided text is [' + language + ']');
});
guessLanguage.name('...input text here...', function(languageName) {
console.log('Detected language name of provided text is [' + languageName + ']');
});
guessLanguage.code('...input text here...', function(languageIANA) {
console.log('Detected language IANA number of provided text is [' + languageIANA + ']');
});
guessLanguage.info('...input text here...', function(languageInfo) {
console.log('Detected language code of provided text is [' + languageInfo[0] + ']');
console.log('Detected language IANA number of provided text is [' + languageInfo[1] + ']');
console.log('Detected language name of provided text is [' + languageInfo[2] + ']');
});
  • “ab”: Abkhazian
  • “af”: Afrikaans
  • “ar”: Arabic
  • “az”: Azerbaijani
  • “be”: Belarusian
  • “bg”: Bulgarian
  • “bn”: Bengali
  • “bo”: Tibetan
  • “br”: Breton
  • “ca”: Catalan, Valencian
  • “ceb”: Cebuano
  • “cs”: Czech
  • “cy”: Welsh
  • “da”: Danish
  • “de”: German
  • “el”: Modern Greek
  • “en”: English
  • “eo”: Esperanto
  • “es”: Spanish, Castilian
  • “et”: Estonian
  • “eu”: Basque
  • “fa”: Persian
  • “fi”: Finnish
  • “fo”: Faroese
  • “fr”: French
  • “fy”: Western Frisian
  • “gd”: Scottish Gaelic, Gaelic
  • “gl”: Galician
  • “gu”: Gujarati
  • “ha”: Hausa
  • “haw”: Hawaiian
  • “he”: Hebrew
  • “hi”: Hindi
  • “hr”: Croatian
  • “hu”: Hungarian
  • “hy”: Armenian
  • “id”: Indonesian
  • “is”: Icelandic
  • “it”: Italian
  • “ja”: Japanese
  • “ka”: Georgian
  • “kk”: Kazakh
  • “km”: Central Khmer
  • “kn”: Kannada
  • “ko”: Korean
  • “ku”: Kurdish
  • “ky”: Kirghiz, Kyrgyz
  • “la”: Latin
  • “lo”: Lao
  • “lt”: Lithuanian
  • “lv”: Latvian
  • “mg”: Malagasy
  • “mk”: Macedonian
  • “ml”: Malayalam
  • “mn”: Mongolian
  • “mr”: Marathi
  • “ms”: Malay (macrolanguage)
  • “nd”: North Ndebele
  • “ne”: Nepali
  • “nl”: Dutch, Flemish
  • “nn”: Norwegian Nynorsk
  • “no”: Norwegian
  • “nso”: Pedi, Northern Sotho, Sepedi
  • “or”: Oriya
  • “pa”: Panjabi, Punjabi
  • “pl”: Polish
  • “ps”: Pushto, Pashto
  • “pt”: Portuguese
  • “pt-BR”: Portuguese (Brazil)
  • “pt-PT”: Portuguese (Portugal)
  • “ro”: Romanian, Moldavian, Moldovan
  • “ru”: Russian
  • “sa”: Sanskrit
  • “sh”: Serbo-Croatian
  • “si”: Sinhala, Sinhalese
  • “sk”: Slovak
  • “sl”: Slovenian, Slovene
  • “so”: Somali
  • “sq”: Albanian
  • “sr”: Serbian
  • “sv”: Swedish
  • “sw”: Swahili (macrolanguage)
  • “ta”: Tamil
  • “te”: Telugu
  • “th”: Thai
  • “tl”: Tagalog
  • “tlh”: Klingon, tlhIngan-Hol
  • “tn”: Tswana, Setswana
  • “tr”: Turkish
  • “ts”: Tsonga
  • “tw”: Twi
  • “uk”: Ukrainian
  • “ur”: Urdu
  • “uz”: Uzbek
  • “ve”: Venda
  • “vi”: Vietnamese
  • “xh”: Xhosa
  • “zh”: Chinese
  • “zh-TW” Chinese (Taiwan)
  • “zu”: Zulu

If you find any bugs or issues please file them on this project and I’ll take a look.

Please also feel free to catch me on Twitter @richtibbett.