Skip to content

Commit

Permalink
doc: several clarifications
Browse files Browse the repository at this point in the history
  • Loading branch information
Crissium committed Oct 12, 2023
1 parent cd55d6d commit e14357d
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![favicon](/client/public/favicon.ico)

[Documentation and Guides](https://github.com/Crissium/SilverDict/wiki) (under work)
[Documentation and Guides](https://github.com/Crissium/SilverDict/wiki) (under work, only an outdated version of the API documentation at the moment)

This project is intended to be a modern, from-the-ground-up, maintainable alternative to [GoldenDict](https://github.com/goldendict/goldendict)(-[ng](https://github.com/xiaoyifang/goldendict-ng)), developed with Flask and React.

Expand All @@ -22,9 +22,9 @@ The dark theme is not built in, but rendered with the [Dark Reader Firefox exten
- The wildcard characters are `^` and `+` (instead of `%` and `_` of SQL or the more traditional `*` and `?`) for technical reasons. Hint: imagine `%` and `_` are shifted one key to the right on an American keyboard.
- This project creates a back-up of DSL dictionaries, overhauls[^3] them and _silently overwrites_ the original files. So after adding a DSL dictionary to SilverDict, it may no longer work with GoldenDict.
- During the indexing process of DSL dictionaries, the memory usage could reach as high as 1.5 GiB (tested with the largest DSL ever seen, the _Encyclopædia Britannica_), and even after that the memory used remains at around 500 MiB. Restart the server process and the memory usage will drop to a few MiB. (The base server with no dictionaries loaded uses around 50 MiB of memory.)
- Both-sides suggestion matching is implemented with an $n$-gram based method, where $n = 4$, meaning that it will only begin working when the query is equal to or longer than 4 characters. This feature is disabled by default, and can be enabled by editing `~/.silverdict/preferences.yaml` and create the ngram table in the settings menu. This process could be slow. You have to do this manually each time you add a new dictionary.
- Both-sides suggestion matching is implemented with an $n$-gram based method, where $n = 4$, meaning that it will only begin working when the query is equal to or longer than 4 characters. This feature is disabled by default, and can be enabled by editing `~/.silverdict/preferences.yaml` and create the ngram table in the settings menu. This process could be slow. You have to do this manually each time a dictionary is added or deleted.
- Morphology analysis (word stemming & spelling suggestions) is disabled unless you have installed the Python package `hunspell`, which could be non-trivial on some platforms. On Termux you can try out the script `termux_setup.sh` (Please ensure you have run `termux-setup-storage` before running the script).
- To ensure cross-platform compatibility, the morphology dictionaries (Hunspell dictionaries with .aff and .dic files) should be placed into `~/.silverdict/hunspell`. Each dictionary's name must be `[language code].aff/dic`, e.g. `en.aff` & `en.dic`; `en_GB.aff` will be ignored. These dictionaries are usually distributed as myspell/hunspell data packages on Linux and can be found in `/usr/share/hunspell` or `/usr/share/myspell`. Please read [this](https://github.com/hunspell/hunspell#dictionaries) to see where to get Hunspell dictionaries if you are on other platforms. Warning: these dictionaries use a huge amount of memory despite their small size, so please add them only when you really need them.
- To ensure cross-platform compatibility, the morphology dictionaries (Hunspell dictionaries with .aff and .dic files) should be placed into `~/.silverdict/hunspell`. Each dictionary's name must be `[language code].aff/dic`, e.g. `en.aff` & `en.dic`; `en_GB.aff` will be ignored. These dictionaries are usually distributed as myspell/hunspell data packages on Linux and can be found in `/usr/share/hunspell` or `/usr/share/myspell`. Please read [this](https://github.com/hunspell/hunspell#dictionaries) to see where to get Hunspell dictionaries if you are on other platforms. Warning: these dictionaries use a huge amount of memory (tens of megabytes each) despite their small size, so please add them only when you really need them.

## Features

Expand Down Expand Up @@ -72,7 +72,7 @@ The dark theme is not built in, but rendered with the [Dark Reader Firefox exten
- [ ] Beautify the dialogues (help wanted!)
- [X] GoldenDict-like dictionary group support
- [X] A mobile-friendly interface (retouch needed)
- [ ] **A real mobile app**
- [ ] [**A real mobile app**](https://github.com/Crissium/SilverDict-mobile)
- [ ] A C++/Qt (or QML) desktop app (development is scheduled to begin in July, 2024)[^7]

### Issue backlog
Expand All @@ -86,7 +86,7 @@ The dark theme is not built in, but rendered with the [Dark Reader Firefox exten

This project utilises some Python 3.10 features, such as the _match_ syntax, and a minimal set of dependencies:
```
PyYAML # for better efficiency, please install libyaml
PyYAML # for better efficiency, please install libyaml before building the wheel
Flask
Flask-Cors
waitress
Expand Down

0 comments on commit e14357d

Please sign in to comment.