go-stardict
A stardict dictionary library for Go.
Status
The API is currently unstable and will change. This package will use module
version numbering to manage
versions and compatibility.
Features
- [x] Reading dictionary metadata (.ifo files).
- [x] Reading & searching the dictionary index (.idx file).
- [x] Reading full dictionary articles.
- [x] Efficient access for large files.
- [x] Dictzip support.
- [x] Capitalization, diacritic, punctuation, and whitespace folding (#19, #25).
- [ ] Support for concurrent access (#1)
- [ ] Synonym support (.syn file) (#2).
- [ ] Support for tree dictionaries (.tdx file) (#3).
- [ ] Support for Resource Storage (res/ directory) (#4).
- [ ] Glob/Wildcard search support (#21).
Installation
To install this package run
go get github.com/ianlewis/go-stardict
Examples
Searching a Dictionary
You can search a stardict dictionary directly and list the entries.
// Open dictonaries in a directory
dictionaries, _ := stardict.OpenAll(".")
// Search the dictionaries.
for _, d := range dictionaries {
entries, _ := d.Search("banana")
for _, e := range entries {
// Print out matching index entries.
fmt.Println(e)
}
}
Related projects
References