Skip to content

Ajatt-Tools/gd-tools

Repository files navigation

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).

  2. Install mecab (mecab-git from the AUR).

  3. 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.

screencast-area-2023-.3.-18_20-56-12.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

  • --font-size SIZE the font size to be used, e.g. 30px.
  • --user-dict FILE full path to the user_dic.dic file. This is done automatically if you install via make.

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:

  • --max-len 5 maximum size of the input string.
  • --font-size 10rem font size. It has to be large in order to see the stroke numbers.

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:

  • --field-name NAME optional field to limit search to.
  • --deck-name NAME optional deck to limit search to.
  • --show-fields VocabKanji,SentKanji optional comma-separated list of fields to show.

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.