diff --git a/.github/workflows/macos-homebrew-breakpad.yml b/.github/workflows/macos-homebrew-breakpad.yml
index d660f5e9..b104882d 100644
--- a/.github/workflows/macos-homebrew-breakpad.yml
+++ b/.github/workflows/macos-homebrew-breakpad.yml
@@ -227,7 +227,7 @@ jobs:
Linux users can use AppImages.
- macOs users can use `.dmg` installer.
+ macOS users can use `.dmg` installer.
`6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive.
diff --git a/.github/workflows/macos-homebrew.yml b/.github/workflows/macos-homebrew.yml
index 27015d1a..36671982 100644
--- a/.github/workflows/macos-homebrew.yml
+++ b/.github/workflows/macos-homebrew.yml
@@ -226,7 +226,7 @@ jobs:
Linux users can use AppImages.
- macOs users can use `.dmg` installer.
+ macOS users can use `.dmg` installer.
`6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive.
diff --git a/.github/workflows/ubuntu-6.2.yml b/.github/workflows/ubuntu-6.2.yml
index 2f61eee8..dc199c0f 100644
--- a/.github/workflows/ubuntu-6.2.yml
+++ b/.github/workflows/ubuntu-6.2.yml
@@ -203,7 +203,7 @@ jobs:
Linux users can use AppImages.
- macOs users can use `.dmg` installer.
+ macOS users can use `.dmg` installer.
`6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive.
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 6029c344..a6ad5caf 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -185,7 +185,7 @@ jobs:
Linux users can use AppImages.
- macOs users can use `.dmg` installer.
+ macOS users can use `.dmg` installer.
`6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive.
diff --git a/.github/workflows/windows-6.x.yml b/.github/workflows/windows-6.x.yml
index 78bfdbbb..16485077 100644
--- a/.github/workflows/windows-6.x.yml
+++ b/.github/workflows/windows-6.x.yml
@@ -257,7 +257,7 @@ jobs:
Linux users can use AppImages.
- macOs users can use `.dmg` installer.
+ macOS users can use `.dmg` installer.
`6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive.
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index bb43a5f5..22096d1a 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -229,7 +229,7 @@ jobs:
Linux users can use AppImages.
- macOs users can use `.dmg` installer.
+ macOS users can use `.dmg` installer.
`6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a3be0ed..50939bdb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,5 @@
cmake_minimum_required(VERSION 3.25) # ubuntu 23.04 Fedora 36
-# Experimental Cmake build only supposed to be used by dev
# Qt6.4+ only
option(WITH_FFMPEG_PLAYER "Enable support for FFMPEG player" ON)
diff --git a/README.md b/README.md
index 80cc1593..04c67f00 100644
--- a/README.md
+++ b/README.md
@@ -29,36 +29,7 @@ dictionaries.
## Installation
-### Downloads
-
-* [Latest stable version](https://github.com/xiaoyifang/goldendict/releases/latest)
-* [Daily pre-release builds](https://github.com/xiaoyifang/goldendict/releases).
-
-Both Qt5 and Qt6 builds are provided.
-
-## Windows
-
-Choose either
-
-* `****-installer.exe ` for traditional installer experience
-* `****.zip` for simply unzip and run experience
-
-If Qt's version is not changed, you can also download a single `goldendict.exe` and drop it into previous installation's folder.
-
-## Linux
-
-* `.Appimage` can be used in any recent linux distros.
-* [Debian packages](https://tracker.debian.org/pkg/goldendict-webengine) are available in Debian 12 or later.
-* [Ubuntu packages](https://launchpad.net/ubuntu/+source/goldendict-webengine) are available in Ubuntu 23.04 or later.
-* Archlinux can use [goldendict-ng-git](https://aur.archlinux.org/packages/goldendict-ng-git). Built binary is also availiable from [archlinuxcn's repo](https://github.com/archlinuxcn/repo/tree/master/archlinuxcn/goldendict-ng-git).
-* [Gentoo package from PG_Overlay](https://gitlab.com/Perfect_Gentleman/PG_Overlay/-/blob/master/app-text/goldendict/goldendict-9999-r6.ebuild)
-* openSUSE ships an old version of this fork.
-
-> Help wanted to package this GoldenDict for linux distros.
-
-## macOS
-
-One of the `.dmg` installers.
+
## Help GoldenDict's Development
@@ -72,174 +43,7 @@ To start development, check out [developer guide](https://xiaoyifang.github.io/g
## Build from source
-### Dependencies
-
-* C++17 compiler
-* Qt 5.15 or latest QT version 6.X
-* Various libraries on Linux, see below
-* On Mac and Windows all the libraries are included in the repository
-* Qt Creator is recommended for development
-
-Steps below are using qt5, and you may use qt6 by replacing `5` with `6`.
-
-#### Ubuntu
-
-```
-sudo apt-get install git pkg-config build-essential qt5-qmake \
- libvorbis-dev zlib1g-dev libhunspell-dev x11proto-record-dev \
- libxtst-dev liblzo2-dev libbz2-dev \
- libavutil-dev libavformat-dev libeb16-dev \
- libqt5svg5-dev libqt5x11extras5-dev qttools5-dev \
- qttools5-dev-tools qtmultimedia5-dev libqt5multimedia5-plugins libqt5webchannel5-dev qtwebengine5-dev \
- libqt5texttospeech5-dev
-```
-
-#### Fedora 35
-
-```
-sudo dnf install git pkg-config libzstd-devel opencc-devel xz-devel xz-lzma-compat\
- libvorbis-devel zlib-devel hunspell-devel lzo-devel bzip2-devel \
- ffmpeg-devel eb-devel qt5-qtx11extras-devel libXtst-devel \
- libxkbcommon-devel qt5-qtbase qt5-qttools qt5-qtsvg-devl qt5-qtwebengine-devel qt5-qtmultimedia-devel
-```
-
-### Build steps
-
-Clone this repository:
-```
-git clone https://github.com/xiaoyifang/goldendict-ng.git
-```
-
-#### Linux build
-
-```
-cd goldendict-ng && qmake-qt5 && make
-```
-
-#### macOS build
-
-```
-brew install qt # or use official offline installer
-qmake CONFIG+=release CONFIG+=zim_support CONFIG+=chinese_conversion_support QMAKE_APPLE_DEVICE_ARCHS="x86_64 arm64"
-make
-make install
-```
-
-#### Windows build
-
-the source code has offered precompile x64 windows libs on winlibs/lib/msvc. you can build your own version either.
-
-To build with Visual Studio.
-check this [how to build with visual studio](howto/how%20to%20build%20and%20debug%20with%20VS2019.md)
-
-Alternatively, you might want to load `goldendict.pro` file from within Qt Creator.
-
-### Build Configurations
-
-**Notice**: All additional configs for `qmake` that must be combined in one of pass config options to `qmake`:
-```
-qmake-qt5 "CONFIG+=release" "CONFIG+=zim_support" "CONFIG+=chinese_conversion_support"
-```
-
-To ensure the changes applied, you may want to use `make clean` before `make`.
-
-#### Building with Chinese conversion support
-
-To add Chinese conversion support you need at first install libopencc-dev package, then pass `"CONFIG+=chinese_conversion_support"` to `qmake`.
-
-```
-sudo apt-get install libopencc-dev
-```
-
-#### Building with Zim dictionaries support
-
-To add Zim and Slob formats support you need at first install lzma-dev and zstd-dev packages, then pass `"CONFIG+=zim_support"` to `qmake`
-
-```
-sudo apt-get install liblzma-dev libzstd-dev libzim-dev
-```
-
-**Note**: Some linux distros do not support latest zim version, so you need to compile from latest source.
-On Windows, you can use vcpkg to compile the libzim
-```
-vcpkg install libzim:x64-windows
-```
-and copy the corresponding(debug/release) library to the `winlibs/lib` folder. the zim's `include` directory to the `winlibs/include` directory.
-
-
-#### Building without Epwing format support
-
-If you have problem building with libeb-dev package, you can pass
-`"CONFIG+=no_epwing_support"` to `qmake` in order to disable Epwing format support
-
-#### Building without internal audio players
-
-If you have problem building with FFmpeg (for example, very old linux distro), you can pass
-`"CONFIG+=no_ffmpeg_player"` to `qmake` in order to disable FFmpeg internal audio player back end.
-
-If you have problem building with Qt5 Multimedia or experience GStreamer run-time errors (for example, Ubuntu 14.04), you can pass
-`"CONFIG+=no_qtmultimedia_player"` to `qmake` in order to disable Qt Multimedia internal audio player back end.
-
-#### Building with xapian
-
-build xapian from source, download and extract the xapian-core source code.
-
-```
-./configure
-make
-make install
-```
-
-On Windows, `vcpkg install xapian:x64-windows` and copy the libs/dlls into the `winlibs`
-A precompiled version of xapian lib has provided in winlibs.
-
-On Linux, install libxapian-dev package using package manager.
-
-On Mac, use homebrew to install xapian `brew install xapian`
-
-Goldendict-ng has used xapian as the default and the only one fulltext engine.
-
-#### use iconv (recommend to enable)
-use `CONFIG+=use_iconv` to enable this feature. when enabled ,iconv will be used to convert encoding other than the QTextCodec(which will be deprecated in future Qt version)
-
-```
-qmake "CONFIG+=use_iconv"
-```
-
-when enabled ,iconv should be installed on the platform at the same time.
-
-#### use breakpad
-
-use `CONFIG+=use_breakpad` to enable this crash dump. when enabled [breakpad](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs), goldendict will generate a crash dump alongside with Goldendict in the `crash` directory.
-
-on Windows:
-`vcpkg install breakpad:x64-windows-release` and copy the installed packages into `thirdparty/breakpad` directory.
-with a structure like this:
-```
-├─breakpad
-│ ├─include
-│ │ ├─client
-│ │ │ └─windows
-│ │ │ ├─common
-│ │ │ ├─crash_generation
-│ │ │ ├─handler
-│ │ │ └─sender
-│ │ ├─common
-│ │ │ └─windows
-│ │ └─google_breakpad
-│ │ ├─common
-│ │ └─processor
-│ └─lib
-```
-
-on Mac/Linux:
-[vcpkg](https://techviewleo.com/install-vcpkg-c-library-manager-on-linux-macos-windows/) can also be used or you can just install breakpad from source or use precompiled packages.
-
-Then enable google breakpad like this with qmake:
-
-```
-qmake "CONFIG+=use_breakpad"
-```
+
## Support
@@ -247,6 +51,7 @@ Bug reporting: [GoldenDict issue tracker](https://github.com/xiaoyifang/goldendi
General discussions: [discussions](https://github.com/xiaoyifang/goldendict-ng/discussions)
+
## License
This project is licensed under the GNU GPLv3+ license, a copy of which can be found in the `LICENSE.txt` file.
diff --git a/website/docs/developer.md b/website/docs/developer.md
index bea17c17..256bc202 100644
--- a/website/docs/developer.md
+++ b/website/docs/developer.md
@@ -4,12 +4,10 @@ If you know some C++ and optionally some Qt, you can start to modify GoldenDict
* Install Qt and QtCreator
* (On Linux, install dependencies)
-* Load `goldendict.pro`
+* Load `goldendict.pro` or `CMakeLists.txt`
* Modify some code
* Hit the `Run`.
-A CMake build script is also provided `CMakeLists.txt` is provided which can be used directly in other IDEs like CLion or Visual Studio 2022.
-
## Coding Standards
Please follow [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) and write modern C++ code.
diff --git a/website/docs/dictformats.md b/website/docs/dictformats.md
index 80ec6e0c..43d3de97 100644
--- a/website/docs/dictformats.md
+++ b/website/docs/dictformats.md
@@ -2,21 +2,22 @@ Popular dictionary formats are all supported.
## Local Dictionaries Sources
-* MDict dictionaries (.mdx/.mdd)
-* StarDict dictionaries (.ifo/.dict./.idx/.syn)
-* DSL dictionaries (ABBYY Lingvo source files .dsl(.dz))
+* [MDict](https://www.mdict.cn/) dictionaries (.mdx/.mdd)
+* [StarDict](http://www.huzheng.org/stardict/) dictionaries (.ifo/.dict./.idx/.syn)
+* [DSL](https://lingvoboard.ru/store/html/DSLReference_HTML/index.html) dictionaries (ABBYY Lingvo source files .dsl(.dz))
* [Xdxf](https://github.com/soshial/xdxf_makedict) dictionaries (.xdxf(.dz))
* [Zim](https://wiki.openzim.org/wiki/OpenZIM) dictionaries (.zim)
* [Slob (Aard 2)](https://aarddict.org/) dictionaries (.slob)
-* DictD dictionaries (.index/.dict(.dz))
-* Epwing dictionaries
-* Babylon dictionaries (.BGL), complete with images and resources
-* Aard Dictionary dictionaries (.aar)
+* [DictD](https://en.wikipedia.org/wiki/DICT#Dict_file_format) dictionaries (.index/.dict(.dz))
+* [Epwing]() dictionaries
+* Aard Dictionary dictionaries, outdated predecessor of Slob (.aar)
* [SDictionary](http://swaj.net/sdict/index.html) dictionaries (.dct)
-* Babylon source files (.gls(.dz))
+* [Babylon glossary builder](https://www.babylon-software.com/glossary-builder/) source files (.gls(.dz))
+* Babylon dictionaries, complete support with images and resources (.BGL)
* ABBYY Lingvo sound archives (.lsa/.dat)
-* Sound files in separate folders
-* Zips sound packs (.zips)
+
+* Sound files in separate folders. File names are used as word
+* Zipped sound pack. Sound files zipped, but with extension changed from .zip to (.zips)
## Network Sources
@@ -27,8 +28,24 @@ Popular dictionary formats are all supported.
## Other Sources
-* Programs: Any External programs that can output text
-* System Text-to-speech engines
+**Programs**
+
+Any external apps can be added by setting a launch command. The `%GDWORD%` will be replaced by word from search line. If command line don't contains such template the word will be fed into standard input stream in 8-bit current locale encoding.
+
+| Type | Notes |
+|--|--|
+| Audio| Application play sound. A sound icon will be provided as article, click it will trigger the program. |
+| Text | Application output some plain text in 8-bit current locale encoding into standard output stream. This text will be shown as separate article. |
+| Html | Application output some html code into standard output stream. This code will be shown as separate article. |
+| Prefix | Application output some word list into standard output stream. This list will be added in common matches list.|
+
+**System Text-to-speech engines**
+
+Its capability is provided via Qt Speech.
+
+On Windows & macOS, the system provides sounds.
+
+On Linux, speech-dispatcher and flite are the backends.
## Additional info
diff --git a/website/docs/howto/How to use ocr together with GoldenDict.md b/website/docs/howto/How to use ocr together with GoldenDict.md
deleted file mode 100644
index 23551a11..00000000
--- a/website/docs/howto/How to use ocr together with GoldenDict.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# Current Situation
-GoldenDict did offer a functionality to translate the word under cursor(when scan popup been enabled) on Windows.
-the technique used there is old and can not work crossplatform .
-
-with the help of another great tool [Capture2Text](https://sourceforge.net/projects/capture2text/) ,GoldenDict can work with ocr seamlessly.
-
-# Note
-Capture2Text has offered Windows precompiled executable files.I have ported it to Linux https://github.com/xiaoyifang/Capture2Text
-
-Thanks to:
-- [Capture2Text Linux Port](https://github.com/GSam/Capture2Text )
-- [another on nixos](https://github.com/sikmir/nur-packages/blob/7c876e3fb20160781207a8f652fb052647e6da0d/pkgs/misc/capture2text/default.nix) from [sikmir](https://github.com/goldendict/goldendict/issues/1445#issuecomment-1022972220)
-
-# Download release or compile by yourself
-https://github.com/xiaoyifang/Capture2Text/releases
-# Configuration on Windows
-after installation of both software.
-configure the Capture2Text ,see screenshots below.
-## configure external `Call Executable` path (Windows for example)
-`path\GoldenDict.exe "${capture}"`
-
-![image](https://user-images.githubusercontent.com/105986/151507994-97ab732d-686a-47b1-b950-3b2db076ef4c.png)
-
-## configure hotkey
-I only left three of them .
-![image](https://user-images.githubusercontent.com/105986/151481239-16cbb733-746c-425d-bc6c-2bb5e5a158c5.png)
-
-## configure `First word only`
-without this configuration ,it will capture the last word of
-![image](https://user-images.githubusercontent.com/105986/151481312-4e9bc457-6667-4e80-95bd-6f2ad58c37e1.png)
-
-
-## Use it
-place the cursor on the word (can be on the image ),press
-- Win+W to capture the first word.
-
-![image](https://user-images.githubusercontent.com/105986/151481735-6c1c7fc1-715f-4f5c-a98c-7452099b9709.png)
-
-- Win+Q select rectangle.
-
-![image](https://user-images.githubusercontent.com/105986/151489148-6fb09787-8d27-4c55-92bb-b385e23ed859.png)
-
-result:
-
-![image](https://user-images.githubusercontent.com/105986/151489807-71231884-75bf-45e7-9bfa-b5242be1b189.png)
-
-
-
-## use Capture2Text on Linxu
-
-### download and build the capture2text
-https://github.com/xiaoyifang/Capture2Text
-
-![2022-01-30 15-54-35屏幕截图](https://user-images.githubusercontent.com/105986/151691526-f28cc053-f6e0-4099-b677-f7a4657aa9fc.png)
-
-### settings
-
-![2022-01-30 15-54-35屏幕截图1](https://user-images.githubusercontent.com/105986/151691583-eda3e059-a77f-4476-a5a5-18d34463005e.png)
-
-![image](https://user-images.githubusercontent.com/105986/151694194-7f0048fc-5649-46b3-940f-d4d5d10968b7.png)
-
-### start capture
-
-`Ctrl+Shift+Q`
-
-![image](https://user-images.githubusercontent.com/105986/151691692-955caf26-e828-4ffe-a630-b17b66b8a955.png)
-
-
-### end capture
-press `Ctrl+Shift+Q` again.
-
-
-
-
-
diff --git a/website/docs/howto/build_from_source.md b/website/docs/howto/build_from_source.md
new file mode 100644
index 00000000..da87e7ea
--- /dev/null
+++ b/website/docs/howto/build_from_source.md
@@ -0,0 +1,217 @@
+## Dependencies
+
+* C++17 compiler
+* Latest QT6
+* Various libraries for Linux & macOS, see below
+* On Windows all the libraries are included in the repository
+
+For debian/ubuntu, those packages are needed
+
+```shell
+libavformat-dev libavutil-dev libbz2-dev libeb16-dev libhunspell-dev \
+liblzma-dev liblzo2-dev libopencc-dev libvorbis-dev \
+libx11-dev libxtst-dev libzim-dev libzstd-dev qt6-5compat-dev \
+qt6-base-dev qt6-multimedia-dev qt6-speech-dev qt6-svg-dev \
+qt6-tools-dev qt6-tools-dev-tools qt6-webchannel-dev \
+qt6-webengine-dev x11proto-record-dev zlib1g-dev
+```
+
+In other words, those libraries
+
+* Qt6 (with webengine)
+* ffmpeg
+* libzim
+* xapian
+* hunspell
+* opencc
+* libeb
+* libvorbis
+* x11 (linux only)
+
+And a few compression libraries:
+* xz (lzma)
+* bzip2
+* lzo2
+* zlib
+* zstd
+
+## CMake Build
+
+```shell
+cd goldendict-ng && mkdir build_dir
+# config step
+cmake -S . -B build_dir \
+ --install-prefix=/usr/local/ \
+ -DCMAKE_BUILD_TYPE=Release
+# actual build
+cmake --build build_dir --parallel 7
+
+cmake --install ./build_dir/
+```
+
+### Feature flags
+
+Append `-D{flag_names}=ON/OFF` to cmake's config step
+
+Available flags:
+
+* `WITH_FFMPEG_PLAYER` "Enable support for FFMPEG player"
+* `WITH_EPWING_SUPPORT` "Enable epwing support"
+* `WITH_XAPIAN` "enable Xapian support"
+* `WITH_ZIM` "enable zim support"
+
+* `USE_SYSTEM_FMT` "use system fmt instead of bundled one"
+* `USE_SYSTEM_TOML` "use system toml++ instead of bundled one"
+
+### Windows
+
+Install Qt6(msvc) through the standard installer
+
+Pass those parameters to cmake, the path should be changed to your actual installation paths
+```
+-DCMAKE_PREFIX_PATH=F:\Qt\6.4.1\msvc2019_64
+```
+
+Use`windeployqt.exe {your_build_dir}/goldendict.exe` which will copy the qt related `.dll` and other necessary files automatically.
+
+Due to the `winlibs` are built on Release mode, there are troubles to build GoldenDict on Debug mode.
+
+### macOS
+
+Similar to Linux build, but need `macdeployqt ./goldendict.app` to copy necessary dependencies to the app bundle.
+
+## Qmake
+
+```shell
+git clone https://github.com/xiaoyifang/goldendict-ng.git
+```
+
+### Build Steps
+
+**Notice**: All additional configs for `qmake` that must be combined in one of pass config options to `qmake`:
+```shell
+qmake6 "CONFIG+=release"
+make
+```
+
+For ARM macOS, `QMAKE_APPLE_DEVICE_ARCHS="arm64"` should be passed to qmake.
+
+#### Building with Chinese conversion support
+
+To add Chinese conversion support you need at first install libopencc-dev package, then pass `"CONFIG+=chinese_conversion_support"` to `qmake`.
+
+```
+sudo apt-get install libopencc-dev
+```
+
+#### Building with Zim dictionaries support
+
+To add Zim and Slob formats support you need at first install lzma-dev and zstd-dev packages, then pass `"CONFIG+=zim_support"` to `qmake`
+
+```
+sudo apt-get install liblzma-dev libzstd-dev libzim-dev
+```
+
+**Note**: Some linux distros do not support latest zim version, so you need to compile from latest source.
+On Windows, you can use vcpkg to compile the libzim
+```
+vcpkg install libzim:x64-windows
+```
+and copy the corresponding(debug/release) library to the `winlibs/lib` folder. the zim's `include` directory to the `winlibs/include` directory.
+
+
+#### Building without Epwing format support
+
+If you have problem building with libeb-dev package, you can pass
+`"CONFIG+=no_epwing_support"` to `qmake` in order to disable Epwing format support
+
+#### Building without internal audio players
+
+If you have problem building with FFmpeg (for example, very old linux distro), you can pass
+`"CONFIG+=no_ffmpeg_player"` to `qmake` in order to disable FFmpeg internal audio player back end.
+
+If you have problem building with Qt5 Multimedia or experience GStreamer run-time errors (for example, Ubuntu 14.04), you can pass
+`"CONFIG+=no_qtmultimedia_player"` to `qmake` in order to disable Qt Multimedia internal audio player back end.
+
+#### Building with xapian
+
+build xapian from source, download and extract the xapian-core source code.
+
+```
+./configure
+make
+make install
+```
+
+On Windows, `vcpkg install xapian:x64-windows` and copy the libs/dlls into the `winlibs`
+A precompiled version of xapian lib has provided in winlibs.
+
+On Linux, install libxapian-dev package using package manager.
+
+On Mac, use homebrew to install xapian `brew install xapian`
+
+Goldendict-ng has used xapian as the default and the only one fulltext engine.
+
+#### use iconv (recommend to enable)
+use `CONFIG+=use_iconv` to enable this feature. when enabled ,iconv will be used to convert encoding other than the QTextCodec(which will be deprecated in future Qt version)
+
+```
+qmake "CONFIG+=use_iconv"
+```
+
+when enabled ,iconv should be installed on the platform at the same time.
+
+#### use breakpad
+
+use `CONFIG+=use_breakpad` to enable this crash dump. when enabled [breakpad](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs), goldendict will generate a crash dump alongside with Goldendict in the `crash` directory.
+
+on Windows:
+`vcpkg install breakpad:x64-windows-release` and copy the installed packages into `thirdparty/breakpad` directory.
+with a structure like this:
+```
+├─breakpad
+│ ├─include
+│ │ ├─client
+│ │ │ └─windows
+│ │ │ ├─common
+│ │ │ ├─crash_generation
+│ │ │ ├─handler
+│ │ │ └─sender
+│ │ ├─common
+│ │ │ └─windows
+│ │ └─google_breakpad
+│ │ ├─common
+│ │ └─processor
+│ └─lib
+```
+
+on Mac/Linux:
+[vcpkg](https://techviewleo.com/install-vcpkg-c-library-manager-on-linux-macos-windows/) can also be used or you can just install breakpad from source or use precompiled packages.
+
+Then enable google breakpad like this with qmake:
+
+```
+qmake "CONFIG+=use_breakpad"
+```
+
+### Build with VS2019
+
+Install `QT tool for VS` from VS extension
+
+#### steps:
+
+- configure qt path
+toolbar Extensions=>Qt VS Tools=>Options=>versions.
+add qt installation folder
+
+- Open pro project file directly throughttoolbar Extensions=>Qt VS Tools=>Open Qt Project file(.pro)
+
+ref:
+[1](https://blog.csdn.net/qq_43493715/article/details/109839046)
+
+#### build
+
+after successfully build,in the target folder(where goldendict.exe resides) ,run windeployqt which copy all the necessary files to this folder.
+and copy other missing dlls to this folder. you can click the exe to verify the application can run .
+
+after alll this ,you can debug the application normally.
diff --git a/website/docs/howto/how to build and debug with VS2019.md b/website/docs/howto/how to build and debug with VS2019.md
deleted file mode 100644
index 230d5100..00000000
--- a/website/docs/howto/how to build and debug with VS2019.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# prerequisite:
-+ [VS2019 ](https://visualstudio.microsoft.com/zh-hans/vs/)
-- QT
-- QT tool for VS(installed from VS extension)
-
-
-# steps:
-
-- configure qt path
-toolbar Extensions=>Qt VS Tools=>Options=>versions.
-add qt installation folder
-
-- Open pro project file directly throughttoolbar Extensions=>Qt VS Tools=>Open Qt Project file(.pro)
-
-
-ref:
-[1](https://blog.csdn.net/qq_43493715/article/details/109839046)
-
-# build
-
-
-# debug
-after successfully build,in the target folder(where goldendict.exe resides) ,run windeployqt which copy all the necessary files to this folder.
-and copy other missing dlls to this folder. you can click the exe to verify the application can run .
-
-after alll this ,you can debug the application normally.
diff --git a/website/docs/howto/how to compile with cmake.md b/website/docs/howto/how to compile with cmake.md
deleted file mode 100644
index 4fba1526..00000000
--- a/website/docs/howto/how to compile with cmake.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Linux
-
-```shell
-cmake -S . -B build_dir \
- --install-prefix=/usr/local/ \
- -G Ninja \
- -DCMAKE_BUILD_TYPE=Release
-
-cmake --build build_dir --parallel 7
-
- cmake --install ./build_dir/
-```
-
-# macOS
-
-Install necessary dependencies
-
-```shell
-brew install pkg-config qt@6 bzip2 zlib \
-hunspell opencc libvorbis ffmpeg
-```
-
-Use standard CMake build commands, then use `macdeployqt ./goldendict.app` to copy necessary dependencies to the app bundle.
-
-# Windows
-
-## Steps
-
-Install Qt6(msvc) through the standard installer
-
-Pass those parameters to cmake, the path should be changed to your actual installation paths
-```
--DCMAKE_PREFIX_PATH=F:\Qt\6.4.1\msvc2019_64
-```
-
-Use`windeployqt.exe {your_build_dir}/goldendict.exe` which will copy the qt related `.dll` and other necessary files automatically.
-
-Due to the `winlibs` are built on Release mode, there are troubles to build GoldenDict on Debug mode.
\ No newline at end of file
diff --git a/website/docs/howto/ocr.md b/website/docs/howto/ocr.md
new file mode 100644
index 00000000..93a7daef
--- /dev/null
+++ b/website/docs/howto/ocr.md
@@ -0,0 +1,80 @@
+## Current Situation
+
+GoldenDict offered a functionality to translate the word under cursor on Windows in the past, but the technique used there is old and does not work crossplatformly.
+
+However, any OCR program that allow you to set "after capturing action" can be easily used in conjunction with GoldenDict.
+
+A few examples are provided below, but there are many options:
+
+## Capture2Text
+
+Capture2Text can call executable after capturing, and you can set the executable to GoldenDict.
+
+Detailed usage document: [Capture2Text](https://capture2text.sourceforge.net/)
+
+For example, change the Output action `Call Executable` to `path_to_the_GD_executable\GoldenDict.exe "${capture}"`
+
+Then press Win+Q and select a region. After capturing a word, Capture2Text will forward the word to GoldenDict. If GoldenDict's scanpopup is enabled, it will show up.
+
+![image](https://user-images.githubusercontent.com/105986/151507994-97ab732d-686a-47b1-b950-3b2db076ef4c.png)
+
+The hotkeys can be configured:
+
+![image](https://user-images.githubusercontent.com/105986/151481239-16cbb733-746c-425d-bc6c-2bb5e5a158c5.png)
+
+Capture2Text can also obtain word near cursor without selecting a region via the "Forward Text Line Capture" by pressing Win+W
+
+you may want to enable "First word only" so that only a single word would be captured
+
+![image](https://user-images.githubusercontent.com/105986/151481312-4e9bc457-6667-4e80-95bd-6f2ad58c37e1.png)
+
+### Use Capture2Text on Linux
+
+Capture2Text does not have Linux version, but I have ported it to Linux thanks to [Capture2Text Linux Port](https://github.com/GSam/Capture2Text ) and
+[sikmir](https://github.com/goldendict/goldendict/issues/1445#issuecomment-1022972220).
+
+![2022-01-30 15-54-35屏幕截图](https://user-images.githubusercontent.com/105986/151691526-f28cc053-f6e0-4099-b677-f7a4657aa9fc.png)
+
+## Shortcuts.app & Apple's OCR
+
+Enable the Clipboard monitoring of GoldenDict, then create a "Shorcut" that will interactively take screnshot and change the clipboard.
+
+![image](https://github.com/xiaoyifang/goldendict-ng/assets/20123683/3933141b-9f06-4829-8135-c69514111971)
+
+You may also add additional capiblities like only getting the first word
+
+![image](https://github.com/xiaoyifang/goldendict-ng/assets/20123683/d8eab075-1c4b-4e82-9515-eafd9df75489)
+
+## Tesseract via command line
+
+On Linux, you can combine command line screenshot then pass the output image to Tesseract then pass the text result to `goldendict`
+
+Example with spectacle (KDE) and grim (wayland/wlroots)
+
+```
+#!/usr/bin/env bash
+
+set -e
+
+case $DESKTOP_SESSION in
+ sway)
+ grim -g "$(slurp)" /tmp/tmp.just_random_name.png
+ ;;
+ plasmawayland | plasma)
+ spectacle --region --nonotify --background \
+ --output /tmp/tmp.just_random_name.png
+ ;;
+ *)
+ echo "Failed to know desktop type"
+ exit 1
+ ;;
+esac
+
+# note that tesseract will apppend .txt to output file
+tesseract /tmp/tmp.just_random_name.png /tmp/tmp.just_random_name --oem 1 -l eng
+
+goldendict "$(cat /tmp/tmp.just_random_name.txt)"
+
+rm /tmp/tmp.just_random_name.png
+rm /tmp/tmp.just_random_name.txt
+```
diff --git a/website/docs/index_cn.md b/website/docs/index_cn.md
deleted file mode 100644
index 600435be..00000000
--- a/website/docs/index_cn.md
+++ /dev/null
@@ -1,3 +0,0 @@
-暂时没有中文文档 😅
-
-如果想翻译文档,请到 github 上开个 issue 讨论一下:)
\ No newline at end of file
diff --git a/website/docs/install.md b/website/docs/install.md
index 18240bbd..b158bf62 100644
--- a/website/docs/install.md
+++ b/website/docs/install.md
@@ -1,3 +1,7 @@
+
+
+
+
## Download
* [Latest stable version](https://github.com/xiaoyifang/goldendict/releases/latest)
@@ -5,6 +9,7 @@
Both Qt5 and Qt6 builds are provided.
+
## Windows
Choose either
@@ -17,13 +22,10 @@ If Qt's version is not changed, you can also download a single `goldendict.exe`
## Linux
* `.Appimage` can be used in any recent linux distros.
-* [Debian packages](https://tracker.debian.org/pkg/goldendict-webengine) are available in Debian 12 or later.
-* [Ubuntu packages](https://launchpad.net/ubuntu/+source/goldendict-webengine) are available in Ubuntu 23.04 or later.
-* Archlinux can use [goldendict-ng-git](https://aur.archlinux.org/packages/goldendict-ng-git). Built binary is also availiable from [archlinuxcn's repo](https://github.com/archlinuxcn/repo/tree/master/archlinuxcn/goldendict-ng-git).
+* See the right side for available packages in various linux distros.
+* In Debian 12 and Ubuntu 23.04, `goldendict-webengine` is available (For later versions it is `goldendict-ng`).
+* Pre-built binary is also available from [archlinuxcn's repo](https://github.com/archlinuxcn/repo/tree/master/archlinuxcn/goldendict-ng-git).
* [Gentoo package from PG_Overlay](https://gitlab.com/Perfect_Gentleman/PG_Overlay/-/blob/master/app-text/goldendict/goldendict-9999-r6.ebuild)
-* openSUSE ships an old version of this fork.
-
-!!! Help "Please package this GoldenDict for your linux distros!"
## macOS
diff --git a/website/mkdocs.yml b/website/mkdocs.yml
index 307ef8fc..547949cb 100644
--- a/website/mkdocs.yml
+++ b/website/mkdocs.yml
@@ -1,5 +1,6 @@
site_name: GoldenDict-NG
-site_description: Goldendict-ng is a dictionary 是一个可以用在 Windows Linux 和 mac 上的字典程序
+site_description: GoldenDict-ng is a open source, cross platform, multi formats, feature rich dictionary 是一个开源跨平台支持各种格式的字典程序
+site_url: https://xiaoyifang.github.io/goldendict-ng/
theme:
name: material
@@ -42,17 +43,15 @@ nav:
- Portable Mode: topic_portablemode.md
- Custom transliteration: topic_transliteration.md
- Customize Dictionary Name: custom_dictionary_name.md
- - OCR Integration: howto/How to use ocr together with GoldenDict.md
+ - OCR Integration: howto/ocr.md
- Report Bugs & Feedbacks: feedbacks.md
- Contributor Guides:
- Developer: developer.md
- How to:
- - Build and debug with VS2019: howto/how to build and debug with VS2019.md
- - Compile with cmake: howto/how to compile with cmake.md
+ - Build from source: howto/build_from_source.md
- Customize the opencc: howto/how to customize the opencc.md
- Qt version and github action: howto/how to find out the latest qt version and module in github qt action.md
- Use .clang-format: howto/how to use .clang-format to format the code.md
- Breadpad crash analysis: howto/how to use breadpad crash analysis.md
- 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
- - 中文文档: index_cn.md