Ajatt-Tools / gd-tools

🍣 A set of tools to enhance GoldenDict.
https://tatsumoto.neocities.org/blog/setting-up-goldendict#gd-tools
GNU General Public License v3.0
35 stars 6 forks source link
goldendict

GoldenDict tools

A set of helpful programs to enhance goldendict for immersion learning.

Table of Contents

Installation

First, install goldendict-ng.

Pacman-based distros

Install gd-tools-git from the AUR.

Other distros

If you want to package gd-tools for your distro and know how to do it, please create a pull request.

Manual installation This way is not recommended because it's easy to make a mistake during the process and end up with a broken install. 1) To build the `gd-tools` you need to install `xmake` and `gcc` (13.1 and newer). 1) Install `mecab` (`mecab-git` from the AUR). 2) Run `./quickinstall.sh`. **Note:** You can run `./quickinstall.sh --local` to install the program locally (to `~/.local/` ).

Setup

Open GoldenDict, press "Edit" > "Dictionaries" > "Programs" and add the installed executables. Set type to html. Command Line: <name of script> --word %GDWORD% --sentence %GDSEARCH%. Optionally add arguments, such as: gd-mecab --word %GDWORD% --sentence %GDSEARCH% --user-dict <path> --font-size 20px. These programs are treated as dictionaries and you can add them under "Dictionaries" or "Groups".

gd-marisa

This script outputs the sentence with clickable characters and searches for the longest available dictionary entry (from a predefined list) beginning at that character. For deinflection it currently relies on rdricpp. It also provides links of available entries of smaller substrings.

demo

Usage

gd-marisa --word %GDWORD% --sentence %GDSEARCH% --path-to-dic [PATH_TO_DIC_FILE]

The path to the .dic is an optional argument and defaults to /usr/share/gd-tools/marisa_words.dic

Dependencies

marisa-trie. The official Arch Linux package is called marisa, but it's already a dependency of goldendict.

Building an own index from a set of words

If you would like to make changes to found words, you can also create an own index from a newline-separated list of words (here called keyset.txt):

marisa-build < keyset.txt > keyset.dic

More information at https://www.s-yata.jp/marisa-trie/docs/readme.en.html

gd-mecab

This script passes a sentence through mecab in order to make every part of the sentence clickable.

https://user-images.githubusercontent.com/50422430/226139459-0c8bcf0e-e68f-491e-8171-bae3f50a7ae1.mp4

Dependencies

This script requires MeCab and the IPA dictionary to be installed. If you are on an Arch Linux system you can simply install the AUR package mecab-ipa to obtain both.

Command format

Add this script to GoldenDict under "Dictionaries" > "Programs" (format HTML), like this:

gd-mecab --word %GDWORD% --sentence %GDSEARCH%

Optional arguments

gd-images

This script shows the top 5 pictures from Bing images for the given search string.

image

gd-images --word %GDWORD%

gd-strokeorder

This script shows the search string in the KanjiStrokeOrders font.

gd-strokeorder --word %GDWORD%

screenshot

Font source: https://www.nihilist.org.uk/

Arguments:

How to call:

gd-strokeorder --word %GDWORD%

gd-handwritten

This script displays the handwritten form of each character

gd-handwritten --word %GDWORD% --font-size 4rem

screenshot

Font source: ArmedLemon.

How to call:

gd-handwritten --word %GDWORD%

gd-massif

This script shows example sentences from https://massif.la/

gd-massif --word %GDWORD%

image

gd-ankisearch

This script searches Anki cards in your collection that contain %GDWORD%.

screenshot

Arguments:

Example invocation:

gd-ankisearch --field-name VocabKanji --show-fields VocabKanji,SentKanji,Image,SentAudio --word %GDWORD%

gd-mandarin

This script passes a sentence through mecab in order to make every part of the sentence clickable. It also automatically converts the sentence to traditional characters.

image

To use gd-mandarin, you need to install gd-tools by running ./quickinstall.sh --mandarin.