Install instructions for Windows, macOS and Linux.
Filename pattern: GoldenDict-ng-[version]-[Qt version]-[system name]...
For Linux, the released version is on Flathub → io.github.xiaoyifang.goldendict_ng.
What's Changed
- feat: add founded dictionaries bar in the scanpop dialog in #2050
- feat: auto dark reader mode for Windows in #1985
- feat: auto dark reader mode that sync with system theme in #1907
- feat: decode program dicts as UTF-8 instead of local8bit in #1821
- feat: favorite clear and import refactor in #2084
- feat: macOS, check and request Accessibility permission for ⌘+C+C in #1807
- feat: set the default history and favorite saving interval to 15 minutes in #1814
- feat: Windows, use Fusion only when dark mode applied in #1964
- feat: add an option to enable log through the preference in #2097
- feat: add Large toolbar icons support in #1789
- feat: rename the [Enable Scanning] to a more accurate tooltip in #1810
- opt: [mdx]js script with defer attribute in #1869
- opt: [win] update Windows compiler name in #1898
- opt: add debug log and more friendly error message in #2039
- opt: add gdprg as audio in #2079
- opt: add save to pdf & save mhtml in #2029
- opt: beautify the layout of dictserver output in #2012
- opt: combine the file filters as one entry in #2022
- opt: dictionary tab switch will show blank widget when source changing. in #1924
- opt: disable collapse area when print in #2004
- opt: do not change font size of combobox and wordlist etc . in #2047
- opt: don't focus on the main window if word comes from headword dialog in #1933
- opt: extract GDWORD replace logic in #1889
- opt: extract GroupBackup structure to store the old group info in #1883
- opt: favorite panel ,unify the export txt&xml as one in #2031
- opt: generate dictionary icon ,put number at the right-bottom position. in #2040
- opt: generate dictionary icon from dictionary name in #2025
- opt: Group struct default constructor only invoked with empty string in #1927
- opt: hide website [as link] column in #1893
- opt: icon generate refactor in #2046
- opt: large icon and word zoom in #2038
- opt: log more info about the stream in #1858
- opt: make custom javascript delay execution in #1905
- opt: mdx -> avoid duplicated Adler-32 checksum in zlib decompression in #1932
- opt: modify the anki icon in #1835
- opt: move special GroupIDs to a seperate enum in #1900
- opt: optimize the audio auto pronounciation logic in #1846
- opt: proxy http rewrite in #2081
- opt: rearrange some code execution order in #1906
- opt: refactor code in articleview in #1888
- opt: refactor file existence detect logic in #2041
- opt: refine modern style in #2035
- opt: remove audio search logic in the current group in #1851
- opt: remove dictionary website extra word placeholders in #1891
- opt: remove gls qtextcodec in #2058
- opt: remove npm package prettier in #2033
- opt: remove qtext codec from indexzip.cc in #2057
- opt: remove qtextcodec in #2064
- opt: remove qtextcodec dsl in #2059
- opt: remove the tooltip ,too simple to display in #2005
- opt: remove unused parameter in #1854
- opt: remove words zoom in(out) from the menu and keep the shortcut in #2049
- opt: reorder the action in #2018
- opt: replace some inefficient uses of QUrlQuery in #2003
- opt: replace the stardict icon in #2023
- opt: reply remove unnecessary signal in #1866
- opt: restrict anki button size in #1832
- opt: revise QKeySequenceEdit usages in #1914
- opt: rewrite the html of gdprg in #2080
- opt: rewrite the logic of determine the existence of audio link in #1860
- opt: simplify Folding::apply in #1947
- opt: unify the small large icon actions in #1879
- opt: update doc in #1861
- opt: update document for GDWORD etc. placeholder in #2068
- opt: update document for javascript customizations in #2069
- opt: use std::lower_bound replace custom bsearch in #2078
- opt: website url placeholder only keep %GDWORD% in #2060
- opt: when the marked word is CJK / Han, mark it partially in #1852
- opt: while change icon size ,change the font size as well in #2027
- opt: while the user provided folder name existed,append time to the f… in #2037
- opt:add constraint to the method readu32sizeanddata method in #2090
- opt:generate unique id in #2066
- opt:optimize the openLink method in #1853
- opt:remove authentication dialog in #2093
- opt:remove custom smallset and use qset instead in #2089
- opt:remove romaji invalid options in #2098
- action: add Archlinux pull request check in #1831
- action: merge all
release
workflows into one in #1836 - clean: add
override
to satisfy clang'sWinconsistent-missing-override
in #1903 - clean: apply clang-tidy's
modernize-use-using
(replace mosttypedef
) in #1908 - clean: delete Dictionary::getProperties which is unused since the first commit of GD in #1982
- clean: delete
gddebug
in #1977 - clean: delete
MainWindow::fillWordListFromHistory
andLangCoder::icon
in #1813 - clean: delete
stub_msvc.h
in #1970 - clean: delete a non-existential "welcome tab" widget in #1992
- clean: delete Hunspell::encodeToHunspell which is a synonym of utf32->utf8 in #1989
- clean: delete most Qt5 & <=6.3 conditional compiled code (
QT_VERSION_CHECK
macro) in #1950 - clean: delete or rewrite weird things in
history.cc
in #1815 - clean: delete unused & empty builtin qt-style.css for macOS/Linux in #1986
- clean: delete unused QSemaphore and do a header cleanup in #1975
- clean: delete useless fopen style mode char* API from File::Index in #1968
- clean: delete wall of text in
wstring.hh
in #1784 - clean: deprecated
QKeySequence[]->int
in #1912 - clean: disable Qt≤6.7 deprecated features and disable Qt deprecation warnings in #1921
- clean: disable more code related to macOS trayicon -> dock icon in #1935
- clean: fix all
globalPosition
deprecations to stop related warnings in #1911 - clean: fix some issues found by the code analysis of Visual Studio in #1953
- clean: just use
#pragma once
in #1919 - clean: limit QHotkeyApplication::(un)registerWrapper to Windows only in #1996
- clean: mark all
Idxheader
packed explicitly in #1785 - clean: mass apply clang-tidy's
readability-braces-around-statements
in #1817 - clean: minor deprecation fixes in #1801
- clean: port DSL encoding guessing away from QTextCodec in #1799
- clean: purge undocumented and useless
editDictionaryCommandLine
in #1794 - clean: QLocale country -> territory renaming in #1922
- clean: remaning deprecated
QCryptographicHash::addData
code in #1920 - clean: remove duplicated
getName
overrides in #1972 - clean: remove redundant gd::toWString in #1946
- clean: remove unused
DEF_EX
in #1940 - clean: reorganize dictionary processing related code in #1783
- clean: simplify loadDictionaries & Initializing dialog's
showInitialy
parameter in #1833 - clean: simplify macOS hotkey mapping code in #1942
- clean: unify a common idx file read pattern uint32_t size + data in #1969
- clean: use native JS methods instead of JQuery in #1845
- dev: .mm / obj-c files -> clang-format and simplify includes in #1941
- dev: fix changelog generation again in #1909
- dev: fix macOS build in #1811
- dev: generally improve cmake build script in #1983
- dev: ignore error when installing deps in macOS workflows in #2014
- dev: make new test build in #1791
- doc: various updates Nov 2024 in #1949
- doc: windows runtime requirement in #2074
- fix: Hunspell regression related to encoding in #1999
- fix: icu mac builds in #1763
- fix: macOS libzim <> icu4c again and add verification to make mismatch a fatal error in #1955
- fix: startdict index file reading in #1981
- fix: [dictserver] some word does not got displayed in #1958
- fix: [mdx] use file name as dictionary name when title has not been set in #1876
- fix: <script> without src is not delayed like <script src="..." defer> in #2000
- fix: a DICT crash caused by string out of bound access in #1944
- fix: auto pronounce gdprg & gdtts in #2082
- fix: cjk expand character can not be searched in #2016
- fix: crash in archlinux due to 0 uncompress size in #2053
- fix: css js formatter in #2036
- fix: ctrl+F crashes when last tab is closed in #1819
- fix: default
content
directory in portable mode in #1872 - fix: deploy qt translations for macOS in #1918
- fix: dictd's description display (00databaseinfo) in #1800
- fix: disable anchor default behavior in #1857
- fix: dsl zip can not read the stream file in #2055
- fix: duplicate dictionary in config file in #1886
- fix: even loadfinised=false, the cursor will also have to be unset in #1856
- fix: full text search panel status label in #1863
- fix: group width in macos display improperly in #2063
- fix: indexedzip indexFile method rewrite in #2061
- fix: init icon size is not normal due to missing null check in #1792
- fix: local audio files without extension are not added to dictAudioMap in #1963
- fix: macOS -> replace the tray icon with a dock menu in #1934
- fix: manually deploy icu4c dylibs for macOS in #1961
- fix: properly load Qt and Webengine's built in translations, delete GD's custom ones in #1916
- fix: Qt6.8 compiling error -> QDebug in #1830
- fix: regression in finding
{id}-{id}
lang pair from dict name in #2020 - fix: remove empty line in #2067
- fix: replace default external audio player from
mplayer
tovlc
in #1995 - fix: respect the setting of QT_ENABLE_HIGHDPI_SCALING of the system in #2077
- fix: set scanPopup flags to what's is needed instead of Qt::Popup in #1804
- fix: stardict format's description HTML display (.ifo file) in #1966
- fix: windows global hotkey Win/Meta and 1-9 doesn't work in #1951
- fix: workaround KDE adding unwanted
&
by avoid using tabText() in groupWidget in #1897 - Fix: wrong use of
QBtyeArrayView::compare
in #1971 - icon: replace the anki icon in #1809
- refactor: change
DEF_EX
macro's underlying implementation to template in #1939 - refactor: consistently rename all Edit->Dictionaries ->
ui
files in #1993 - refactor: default to Qt Multimedia and delete default player shenanigans in #1994
- refactor: merge some encoding and encoding names related code in #1990
- refactor: move "internalpayerbackend", which is not a backend, to src/audio in #1956
- refactor: move most of the Windows specific code out of
hotkeywrapper.cc
in #1952 - refactor: move transliteration code to
src/dict/transliteration
in #1973 - refactor: move X11 global hotkey out of hotkeywrapper.cc in #1978
- refactor: port StarDict -> Ifo away from File::Index in #1965
- refactor: prepare config code to implement auto dark (reader) mode in #1904
- refactor: remove
DataCommitter
interface fromQHotkeyApplication
in #1997 - refactor: use standard string types and merge wstring(-qt) & utf8 namespaces into Text in #1987
- refactor: reorganize code a bit (move audio playing code to src/audio) in #1931
- Update topic_userstyle.md in #1899
Contributors
- @xiaoyifang
- @shenlebantongying
- @atauzki
- @KonstantinDjairo
- @alex4814 made their first contribution in #1872
- @BEST8OY made their first contribution in #2069
- @saeedark made their first contribution in #2074
- @HanatoK made their first contribution in #2077
Full Changelog: v24.09.1-Release.ca9dd133...v25.02.0-Release.e895b18c