dictionaryx
English dictionary with about 120.000 entries, based on Wordnet.
A live Flutter demo can be found here: https://xerik.github.io/dictionaryx/.
Dictionaries
This package offers four optimized Dart
versions of the same base dictionary.
Additonally, a Dart
ready JSON-based dictionary is provided, which reads the entries from the file system and not from the memory.
Additonally, a Flutter
ready JSON-based dictionary is provided, which reads the entries from the file system and not from the memory.
The dictionaries offer meaning (M), synonym (S) and antonym (A). In some cases the meaning (M) is left out to reduce the file size.
Based on the selected dictionary, application startup time and memory footprint are impacted accordingly.
DictionaryMSAFlutter (1213 JSON files, each has a size of 15 KB)
- About 120.000 entries. Meanings, synonyms and antonyms.
Flutter
only.
DictionaryMSAJson (1213 JSON files, each has a size of 15 KB)
- About 120.000 entries. Meanings, synonyms and antonyms.
Dart
only.
DictionaryMSA (16.4 MB)
- About 120.000 entries. Meanings, synonyms and antonyms.
Dart
only.
DictionarySA (7.3 MB)
- About 120.000 entries. Synonyms and antonyms.
Dart
only.
DictionaryReducedMSA (1.8 MB)
- About 3700 entries. Meanings, synonyms and antonyms.
Dart
only.
DictionaryReducedSA (274 KB)
- About 3700 entries. Synonyms and antonyms.
Dart
only.
Installing
In your pubspec.yaml:
dependencies:
dictionaryx: ^0.3.5
How To Use
Flutter - Complete dictionary in JSON files
A live Flutter demo can be found here: https://xerik.github.io/dictionaryx/.
An example showing how to access the dictionary using Flutter is
provided in the example/flutter_example/
folder. Please find an excerpt below.
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final cText = TextEditingController();
final dMSAJson = DictionaryMSAFlutter();
DictEntry _entry = DictEntry('', [], [], []);
// Call this method to lookup a word
void lookupWord() async {
DictEntry? tmp;
final txt = cText.text.trim();
if (await dMSAJson.hasEntry(txt)) {
tmp = await dMSAJson.getEntry(txt);
}
setState(() {
if (tmp != null) {
_entry = tmp;
} else {
_entry = DictEntry('', [], [], []);
}
});
}
// Render the content of _entry
}
Run the example as follows:
cd example/flutter_example/
flutter pub get
flutter run
Dart - Complete dictionary in JSON files
// -------------------------------------------------------
// With meanings (M) and synonyms (S) and antonyms (A).
// -------------------------------------------------------
var dMSAJson = DictionaryMSAJson();
var entry = dMSAJson.getEntry('meeting');
// A meaning comes with a POS, description
// and optional contextual-meanings and optional examples.
print(entry.meanings.first.pos); // POS.NOUN
print(entry.meanings.first.description); // a formally arranged gathering
print(entry.meanings.first.hasMeanings()); // true
print(entry.meanings.first.hasExamples()); // true
print(entry.meanings.first.meanings.first); // Gathering
print(entry.meanings.first.examples.first); // "next year the meeting (...)
Dart - Reduced dictionary as a data literal
// -------------------------------------------------------
// With synonyms (S) and antonyms (A).
// -------------------------------------------------------
var dReducedSA = DictionaryReducedSA();
print(dReducedSA.hasEntry('assafef')); // false
print(dReducedSA.hasEntry('meeting')); // true
var entry = dReducedSA.getEntry('meeting');
print(entry.word); // meeting
print(entry.synonyms); // [Assemble, Contact, Adjoin, Forgather, See]
print(entry.antonyms); // [diverge]
// -------------------------------------------------------
// With meanings (M) and synonyms (S) and antonyms (A).
// -------------------------------------------------------
var dReducedMSA = DictionaryReducedMSA();
entry = dReducedMSA.getEntry('meeting');
print(entry.word); // meeting
print(entry.synonyms); // [Assemble, Contact, Adjoin, Forgather, See]
print(entry.antonyms); // [diverge]
// A meaning comes with a POS, description
// and optional contextual-meanings and optional examples.
print(entry.meanings.first.pos); // POS.NOUN
print(entry.meanings.first.description); // a formally arranged gathering
print(entry.meanings.first.hasMeanings()); // true
print(entry.meanings.first.hasExamples()); // true
print(entry.meanings.first.meanings.first); // Gathering
print(entry.meanings.first.examples.first); // "next year the meeting (...)
Dart - Complete dictionary as a data literal
In the same manner, the complete dictionary can be accessed. Compared to the reduced dictionary, the complete dictionary has a larger memory footprint.
// -------------------------------------------------------
// With meanings (M) and synonyms (S) and antonyms (A).
// -------------------------------------------------------
var dMSA = DictionaryMSA();
entry = dMSA.getEntry('tree');
// -------------------------------------------------------
// With synonyms (S) and antonyms (A).
// -------------------------------------------------------
var dSA = DictionarySA();
entry = dSA.getEntry('tree');
Powershell
> .\bin\dict.ps1 tree
WORD:tree
EXPL:[[NOUN "a tall perennial woody plant having a main trunk and branches forming a distinct elevated crown; includes both gymnosperms and angiosperms" [Woody plant, Ligneous plant] []], [VERB "plant
with trees" [Plant, Set] [this lot should be treed so that the house will be shaded in summer]], [VERB "chase an animal up a tree" [Chase, Chase after, Trail, Tail, Tag, Give chase, Dog, Go after, Track] [the hunters treed the bear with dogs and killed it, her dog likes to tree squirrels]], [VERB "stretch (a shoe) on a shoetree" [Elongate, Stretch] []]]
SYN:[Corner, Tree, Shoetree, Sir herbert beerbohm tree, Tree diagram]
ANT:[]
Command line
Activate:
dart pub global activate dictionaryx
Deactivate:
dart pub global deactivate dictionaryx
> dict tree
WORD:tree
EXPL:[[NOUN "a tall perennial woody plant having a main trunk and branches forming a distinct elevated crown; includes both gymnosperms and angiosperms" [Woody plant, Ligneous plant] []], [VERB "plant
with trees" [Plant, Set] [this lot should be treed so that the house will be shaded in summer]], [VERB "chase an animal up a tree" [Chase, Chase after, Trail, Tail, Tag, Give chase, Dog, Go after, Track] [the hunters treed the bear with dogs and killed it, her dog likes to tree squirrels]], [VERB "stretch (a shoe) on a shoetree" [Elongate, Stretch] []]]
SYN:[Corner, Tree, Shoetree, Sir herbert beerbohm tree, Tree diagram]
ANT:[]
Bugs and Requests
If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on Github and I'll look into it. Pull request are also welcome.
https://github.com/xErik/dictionaryx/issues
Inspirations and Sources
Wordnet License
https://wordnet.princeton.edu/license-and-commercial-use
Merged JSON
https://github.com/nightblade9/simple-english-dictionary
License
This project is licensed under the MIT License - see the LICENSE file for details