goldendict-ng/README.md

247 lines
9 KiB
Markdown
Raw Normal View History

# GoldenDict-ng
2023-05-03 13:58:23 +00:00
[![Crowdin](https://badges.crowdin.net/goldendict-ng/localized.svg)](https://crowdin.com/project/goldendict-ng)
2023-04-30 04:11:17 +00:00
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=xiaoyifang_goldendict&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=xiaoyifang_goldendict)
2022-01-31 04:19:24 +00:00
[![Windows](https://github.com/xiaoyifang/goldendict/actions/workflows/windows.yml/badge.svg)](https://github.com/xiaoyifang/goldendict/actions/workflows/windows.yml) [![Ubuntu](https://github.com/xiaoyifang/goldendict/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/xiaoyifang/goldendict/actions/workflows/ubuntu.yml)
2022-02-20 03:57:42 +00:00
[![macos](https://github.com/xiaoyifang/goldendict/actions/workflows/macos.yml/badge.svg)](https://github.com/xiaoyifang/goldendict/actions/workflows/macos.yml)
2022-01-31 04:19:24 +00:00
The Next Generation GoldenDict. A feature-rich open-source dictionary lookup program,
supporting [multiple dictionary formats](https://xiaoyifang.github.io/goldendict-ng/dictformats/) and online
dictionaries.
| Linux | Windows | macOS |
|--|--|--|
2023-04-30 05:50:37 +00:00
| [<img src="website/docs/img/linux_genshin.webp" width="500"/>](https://xiaoyifang.github.io/goldendict-ng/) | [<img src="website/docs/img/windows_white.webp" width="500"/>](https://xiaoyifang.github.io/goldendict-ng/) | [<img src="website/docs/img/mac_black.webp" width="500"/>](https://xiaoyifang.github.io/goldendict-ng/) |
2013-05-03 20:25:57 +00:00
# Some significant features of this fork
2023-04-08 06:40:36 +00:00
- webengine with latest html/css feature support
- support >4GB dictionary
- support highdpi screen resolution
- built with xapian(optional) as fulltext engine
- support Qt5.15.2 and higher ,include latest Qt6
- performance optimization(eg. >10000000 headwords support)
- anki integration
- dark theme
- daily auto release support
- lots of bug fixes and improvements
2022-11-21 07:38:01 +00:00
## Installation
2013-05-03 20:25:57 +00:00
### Downloads
2013-05-03 20:25:57 +00:00
* [Latest stable version](https://github.com/xiaoyifang/goldendict/releases/latest)
* [Daily pre-release builds](https://github.com/xiaoyifang/goldendict/releases).
2013-05-03 20:25:57 +00:00
Both Qt5 and Qt6 builds are provided.
2013-05-03 20:25:57 +00:00
## Windows
2013-05-03 20:25:57 +00:00
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
2023-04-26 04:53:04 +00:00
* `.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.
2013-05-03 20:25:57 +00:00
> Help wanted to package this GoldenDict for linux distros.
## macOS
One of the `.dmg` installers.
2013-05-03 20:25:57 +00:00
2023-04-29 15:09:15 +00:00
## Help GoldenDict's Development
GoldenDict is developed by volunteers.
All kinds of help like answering questions, bug reporting, testing, translation and coding are welcomed.
To translate the interface, you can use the Crowdin <https://crowdin.com/project/goldendict-ng>
To start development, check out [developer guide](https://xiaoyifang.github.io/goldendict-ng/developer/)
2022-11-21 07:38:01 +00:00
## Build from source
2013-05-03 20:25:57 +00:00
2022-11-21 07:38:01 +00:00
### Dependencies
2022-03-15 12:45:20 +00:00
2022-11-21 07:38:01 +00:00
* 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
2013-05-03 20:25:57 +00:00
2022-11-21 07:38:01 +00:00
Steps below are using qt5, and you may use qt6 by replacing `5` with `6`.
2013-05-03 20:25:57 +00:00
2022-11-21 07:38:01 +00:00
#### Ubuntu
2022-11-05 02:44:28 +00:00
2022-11-21 07:38:01 +00:00
```
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 \
2022-11-21 07:38:01 +00:00
libqt5svg5-dev libqt5x11extras5-dev qttools5-dev \
2023-04-01 05:53:12 +00:00
qttools5-dev-tools qtmultimedia5-dev libqt5multimedia5-plugins libqt5webchannel5-dev qtwebengine5-dev \
libqt5texttospeech5-dev
2022-11-21 07:38:01 +00:00
```
2022-11-05 02:44:28 +00:00
2022-11-21 07:38:01 +00:00
#### 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 \
2022-11-21 07:38:01 +00:00
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
2022-11-21 07:38:01 +00:00
```
#### Linux build
```
cd goldendict-ng && qmake-qt5 && make
2022-11-21 07:38:01 +00:00
```
#### macOS build
2022-11-05 02:44:28 +00:00
2022-03-15 12:45:20 +00:00
```
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"
2022-03-15 12:45:20 +00:00
make
make install
```
2022-11-21 07:38:01 +00:00
#### Windows build
2013-05-03 20:25:57 +00:00
2022-11-21 07:38:01 +00:00
the source code has offered precompile x64 windows libs on winlibs/lib/msvc. you can build your own version either.
2017-07-05 14:58:43 +00:00
2022-11-21 07:38:01 +00:00
To build with Visual Studio.
check this [how to build with visual studio](howto/how%20to%20build%20and%20debug%20with%20VS2019.md)
2022-11-21 07:38:01 +00:00
Alternatively, you might want to load `goldendict.pro` file from within Qt Creator.
2022-11-21 07:38:01 +00:00
### Build Configurations
2022-11-21 07:38:01 +00:00
**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"
```
2022-11-21 07:38:01 +00:00
To ensure the changes applied, you may want to use `make clean` before `make`.
2022-11-21 07:38:01 +00:00
#### Building with Chinese conversion support
2014-05-05 14:01:50 +00:00
2022-11-21 07:38:01 +00:00
To add Chinese conversion support you need at first install libopencc-dev package, then pass `"CONFIG+=chinese_conversion_support"` to `qmake`.
2014-05-05 14:01:50 +00:00
2022-11-21 07:38:01 +00:00
```
sudo apt-get install libopencc-dev
```
2014-05-05 14:01:50 +00:00
2022-11-21 07:38:01 +00:00
#### Building with Zim dictionaries support
2014-05-05 14:01:50 +00:00
2022-11-21 07:38:01 +00:00
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`
2014-05-05 14:01:50 +00:00
2022-11-21 07:38:01 +00:00
```
sudo apt-get install liblzma-dev libzstd-dev
```
#### Building without Epwing format support
2014-05-20 13:59:56 +00:00
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
2022-11-21 07:38:01 +00:00
#### Building without internal audio players
2022-11-21 07:38:01 +00:00
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
2022-11-21 07:38:01 +00:00
`"CONFIG+=no_qtmultimedia_player"` to `qmake` in order to disable Qt Multimedia internal audio player back end.
2014-05-05 14:01:50 +00:00
2022-11-21 07:38:01 +00:00
#### Building with xapian
2022-10-02 07:34:46 +00:00
build xapian from source, download and extract the xapian-core source code.
2022-11-21 07:38:01 +00:00
```
./configure
make
make install
```
2022-10-10 16:15:28 +00:00
On Windows,follow the instructions in the xapian-core/INSTALL Visual Studio parts.**xapian does not support to use the Debug lib in Windows. have to debug in release version mode using xapian's release lib**.
2022-10-10 16:13:21 +00:00
A precompiled version of xapian lib has provided in winlibs
2022-10-02 07:34:46 +00:00
use `CONFIG+=use_xapian` to enable this feature. when enabled ,xapian will be used to support as the the fulltext's backend engine.
2022-11-21 07:38:01 +00:00
```
qmake "CONFIG+=use_xapian"
```
2023-02-01 15:23:23 +00:00
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.
2023-05-02 00:07:56 +00:00
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"
```
2022-11-21 07:38:01 +00:00
## Support
2013-05-03 20:25:57 +00:00
Bug reporting: [GoldenDict issue tracker](https://github.com/xiaoyifang/goldendict-ng/issues)
2020-10-01 21:59:19 +00:00
General discussions: [discussions](https://github.com/xiaoyifang/goldendict-ng/discussions)
2020-10-01 21:59:19 +00:00
2013-05-03 20:25:57 +00:00
## License
This project is licensed under the <b>GNU GPLv3+</b> license, a copy of which can be found in the `LICENSE.txt` file.
2022-11-21 07:38:01 +00:00
## History
The original project was developed at <http://goldendict.org/> and <https://github.com/goldendict/goldendict>.
2013-05-03 20:25:57 +00:00