Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Natural language detection
| Date | Stars |
|---|---|
| 2026-07-24 | 4408 |
| 2026-07-25 | 4408 |
| 2026-07-28 | 4408 |
| 2026-07-30 | 4408 |
| 2026-08-06 | 4408 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# ![franc][logo]
[![Build Status][build-badge]][build]
[![Coverage Status][coverage-badge]][coverage]
Detect the language of text.
## What’s so cool about franc?
1. **franc** can support more languages<sup>(†)</sup> than any other
library
2. **franc** is packaged with support for [82][s], [186][m], or [419][l]
languages
3. **franc** has a CLI
† - Based on the [UDHR][], the most translated copyright-free 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
> 👉 **Note**: this installs the [`franc`][m] package, with support for 187
> languages (languages which have 1 million or more speakers).
> [`franc-min`][s] (82 languages, 8m or more speakers) and [`franc-all`][l]
> (all 414 possible languages) are also available.
> Finally, use `franc-cli` to install the [CLI][].
This package is [ESM only][esm].
In Node.js (version 14.14+, 16.0+), install with [npm][]:
```sh
npm install franc
```
In Deno with [`esm.sh`][esmsh]:
```js
import {franc, francAll} from 'https://esm.sh/franc@6'
```
In browsers with [`esm.sh`][esmsh]:
```html
<script type="module">
import {franc, francAll} from 'https://esm.sh/franc@6?bundle'
</script>
```
## Use
```js
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'
console.log(francAll('Considerando ser essencial que os direitos humanos'))
//=> [['por', 1], ['glg', 0.771284519307895], ['spa', 0.6034146900423971], …123 more items]
console.log(francAll('Considerando ser essencial que os direitos humanos', {only: ['por', 'spa']}))
//=> [['por', 1 ], ['spa', 0.6034146900423971]]
console.log(francAll('Considerando ser essencial que os direitos humanos', {ignore: ['spa', 'glg']}))
//=> [['por', 1], ['cat', 0.5367251059928957], ['src', 0.47461899851037015], …121 more items]
```
## API
This package exports the identifiers `franc`, `francAll`.
There is no default export.
### `franc(value[, options])`
Get the most probable language for the given value.
###### Parameters
* `value` (`string`) — value to test
* `options` (`Options`, optional) — configuration
###### Returns
The most probable language (`string`).
### `francAll(value[, options])`
Get the most probable language for the given value.
###### Parameters
* `value` (`string`) — value to test
* `options` (`Options`, optional) — configuration
###### Returns
Array containing language—distance tuples (`Array<[string, number]>`).
### `Options`
Configuration (`Object`, optional) with the following fields:
###### `options.only`
Languages to allow (`Array<string>`, optional).
###### `options.ignore`
Languages to ignore (`Array<string>`, optional).
###### `options.minLength`
Minimum length to accept (`number`, default: `10`).
## CLI
Install:
```sh
npm install franc-cli --global
```
Use:
```text
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
# nExcerpt of 7,773 characters
Read on GitHubTitus · @igalia · Netherlands
380
Kamil Bielawski · Poland
3
1
Denis Kabishev · Across Systems GmbH · Germany
1
1
Jeff Huijsmans · Vesper · Netherlands
1
1
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:89f16ad35019cd10, topic:nlp