franc alternatives and similar modules
Based on the "Natural Language Processing" category.
Alternatively, view franc alternatives based on common mentions on social networks and blogs.
-
nlp.js
An NLP library for building bots, with entity extraction, sentiment analysis, automatic language identify, and so more -
leven
Measure the difference between two strings with the fastest JS implementation of the Levenshtein distance algorithm
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of franc or a related project?
Popular Comparisons
README
Detect the language of text.
What’s so cool about franc?
- franc can support more languages(†) than any other library
- franc is packaged with support for 82, 187, or 403 languages
- franc has a CLI
† - Based on the UDHR, the most translated document in the world.
What’s not so cool about franc?
franc supports many languages, which means it’s easily confused on small samples. Make sure to pass it big documents to get reliable results.
Install
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install franc
This installs the franc
package, with support for 187 languages
(languages which have 1 million or more speakers).
franc-min
(82 languages, 8m or more speakers) and franc-all
(all
403 possible languages) are also available.
Finally, use franc-cli
to install the CLI.
Browser builds for franc-min
, franc
, and franc-all
are
available on GitHub Releases.
Use
This package exports the following identifiers: franc
, francAll
.
There is no default export.
import {franc, francAll} from 'franc'
franc('Alle menslike wesens word vry') // => 'afr'
franc('এটি একটি ভাষা একক IBM স্ক্রিপ্ট') // => 'ben'
franc('Alle menneske er fødde til fridom') // => 'nno'
franc('') // => 'und' (language code that stands for undetermined)
// You can change what’s too short (default: 10):
franc('the') // => 'und'
franc('the', {minLength: 3}) // => 'sco'
francAll
console.log(francAll('Considerando ser essencial que os direitos humanos'))
Yields:
[
[ 'por', 1 ],
[ 'glg', 0.771284519307895 ],
[ 'spa', 0.6034146900423971 ],
[ 'cat', 0.5367251059928957 ],
[ 'src', 0.47461899851037015 ],
... 122 more items ]
only
console.log(
francAll('Considerando ser essencial que os direitos humanos', {
only: ['por', 'spa']
})
)
Yields:
[ [ 'por', 1 ], [ 'spa', 0.6034146900423971 ] ]
ignore
console.log(
francAll('Considerando ser essencial que os direitos humanos', {
ignore: ['src', 'glg']
})
)
Yields:
[ [ 'por', 1 ],
[ 'spa', 0.6034146900423971 ],
[ 'cat', 0.5367251059928957 ],
[ 'ita', 0.4740460639394981 ],
[ 'fra', 0.44757648676521145 ],
... 120 more items ]
CLI
Install:
npm install franc-cli --global
Use:
CLI to detect the language of text
Usage: franc [options] <string>
Options:
-h, --help output usage information
-v, --version output version number
-m, --min-length <number> minimum length to accept
-o, --only <string> allow languages
-i, --ignore <string> disallow languages
-a, --all display all guesses
Usage:
# output language
$ franc "Alle menslike wesens word vry"
# afr
# output language from stdin (expects utf8)
$ echo "এটি একটি ভাষা একক IBM স্ক্রিপ্ট" | franc
# ben
# ignore certain languages
$ franc --ignore por,glg "O Brasil caiu 26 posições"
# src
# output language from stdin with only
$ echo "Alle mennesker er født frie og" | franc --only nob,dan
# nob
Supported languages
Package | Languages | Speakers |
---|---|---|
franc-min |
82 | 8M or more |
franc |
187 | 1M or more |
franc-all |
403 | - |
Language code
Note that franc returns ISO 639-3 codes (three letter codes). Not ISO 639-1 or ISO 639-2. See also GH-10 and GH-30.
To get more info about the languages represented by ISO 639-3, use
iso-639-3
.
There is also an index available to map ISO 639-3 to ISO 639-1 codes,
iso-639-3/to-1.json
, but note that not all 639-3 codes can
be represented in 639-1.
Ports
Franc has been ported to several other programming languages.
- Elixir —
paasaa
- Erlang —
efranc
- Go —
franco
,whatlanggo
- R —
franc
- Rust —
whatlang-rs
- Dart —
francd
- Python —
pyfranc
The works franc is derived from have themselves also been ported to other languages.
Derivation
Franc is a derivative work from guess-language (Python, LGPL), guesslanguage (C++, LGPL), and Language::Guess (Perl, GPL). Their creators granted me the rights to distribute franc under the MIT license: respectively, Kent S. Johnson, Jacob R. Rideout, and Maciej Ceglowski.
License
[MIT][] © Titus Wormer
<!-- Definitions -->
*Note that all licence references and agreements mentioned in the franc README section above
are relevant to that project's source code only.