diff --git a/website/docs/howto/add-program-dictionary.png b/website/docs/howto/add-program-dictionary.png new file mode 100644 index 00000000..31e25c3a Binary files /dev/null and b/website/docs/howto/add-program-dictionary.png differ diff --git a/website/docs/howto/how to add a program as dictionary.md b/website/docs/howto/how to add a program as dictionary.md new file mode 100644 index 00000000..aaf2eb2e --- /dev/null +++ b/website/docs/howto/how to add a program as dictionary.md @@ -0,0 +1,51 @@ +# How to add a program or script to the goldendict-ng + +GoldenDict has offered a program dictionary function that allow you to customize the user experience when using the this software. + +# An example + +tokenize the input german sentence into words. + +## use python script + +You can use any script language or program to implement this feature. + + +## install python + +## install SoMaJo + +you can follow the instructions in the documentation https://github.com/tsproisl/SoMaJo?tab=readme-ov-file#installation + +`pip install -U SoMaJo` + +## create a script + +``` +from somajo import SoMaJo +import sys + +tokenizer = SoMaJo("de_CMC", split_camel_case=True) + +# note that paragraphs are allowed to contain newlines +paragraphs = [sys.argv[1]] +sentences = tokenizer.tokenize_text(paragraphs) +for sentence in sentences: + for token in sentence: + if token.token_class=='regular': + print(f"{token.text}") +``` + +and save the script in the E:\test.py for example. + +## add the script to the program dictionary + +![Add the script as program dictionary](add-program-dictionary.png) +`python e:\test.py %GDWORD%` + +## the result + +![](program-result.png) + + + diff --git a/website/docs/howto/program-result.png b/website/docs/howto/program-result.png new file mode 100644 index 00000000..5bbb7084 Binary files /dev/null and b/website/docs/howto/program-result.png differ diff --git a/website/mkdocs.yml b/website/mkdocs.yml index be344e76..171fea72 100644 --- a/website/mkdocs.yml +++ b/website/mkdocs.yml @@ -57,4 +57,5 @@ nav: - Build ffmpeg on Windows: howto/how to build ffmpeg for visual studio.md - How to update the crowdin.ts file: howto/how to update crowdin.ts file.md - How to debug dictionary js: howto/how to debug dictionary js.md + - How to add a program dictionary: howto/how to add a program as dictionary.md