fix: merge conflict
4
.git-blame-ignore-revs
Normal file
|
@ -0,0 +1,4 @@
|
|||
# To use this file: https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view
|
||||
|
||||
# reformat everything commit
|
||||
b5349478cfb0dc2dd0de8c8e8aeebdd24cf7ac6b
|
13
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -38,3 +38,16 @@ Copy & paste `help` -> `about` -> `Copy version info` to here
|
|||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
||||
Windows:
|
||||
|
||||
Upload the dmp file in the crash folder located in the configuration folder (can be opened through the menu help->configuration folder) to here
|
||||
|
||||
Macos:
|
||||
|
||||
upload the crashpad crash log
|
||||
|
||||
Linux:
|
||||
|
||||
gdb backtrace info.
|
||||
|
||||
|
|
12
.github/ISSUE_TEMPLATE/bug_report_cn.md
vendored
|
@ -33,3 +33,15 @@ assignees: ''
|
|||
- Version [e.g. 22]
|
||||
|
||||
**额外的信息**
|
||||
|
||||
Windows:
|
||||
|
||||
_将位于配置文件夹中(可以通过菜单 **help->配置文件夹** 打开)crash文件夹里面的dmp文件上传到此处_
|
||||
|
||||
Macos:
|
||||
|
||||
将macos自带的crashpad的log粘贴到此处
|
||||
|
||||
Linux:
|
||||
|
||||
gdb crash 堆栈信息
|
1
.github/scripts/windows-publish.ps1
vendored
|
@ -57,7 +57,6 @@ function Main() {
|
|||
Write-Host "copy sdk dll$($sdkDll)"
|
||||
Copy-Item $sdkDll $archiveName\
|
||||
Copy-Item winlibs\lib\msvc\*.dll $archiveName\
|
||||
Copy-Item winlibs\lib\xapian\rel\*.dll $archiveName\
|
||||
Copy-Item winlibs\lib\*.dll $archiveName\
|
||||
Copy-Item locale\*.qm $archiveName\locale\
|
||||
|
||||
|
|
2
.github/workflows/AutoTag.yml
vendored
|
@ -43,7 +43,7 @@ jobs:
|
|||
|
||||
|
||||
- name: Bump version and push tag
|
||||
if: ${{env.prerelease != true}}
|
||||
if: ${{env.prerelease != 'true'}}
|
||||
uses: mathieudutour/github-tag-action@v6.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
|
44
.github/workflows/auto clang format.yml
vendored
|
@ -1,44 +0,0 @@
|
|||
name: "auto clang-format code"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
# - dev
|
||||
# - master
|
||||
- staged
|
||||
paths-ignore:
|
||||
- "docs/**"
|
||||
# - ".github/**"
|
||||
- "howto/**"
|
||||
- "*.md"
|
||||
- "locale/**"
|
||||
|
||||
jobs:
|
||||
format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.5.2
|
||||
with:
|
||||
# check out HEAD on the branch
|
||||
ref: ${{ github.head_ref }}
|
||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
# make sure the parent commit is grabbed as well, because
|
||||
# that's what will get formatted (i.e. the most recent commit)
|
||||
fetch-depth: 2
|
||||
# format the latest commit
|
||||
- name: ubuntu install clang-format
|
||||
if: ${{ github.event.pull_request.head.repo.full_name == 'xiaoyifang/goldendict-ng' }}
|
||||
id: clang-format
|
||||
run: |
|
||||
sudo apt-get install git lsb-release wget software-properties-common
|
||||
wget -qO - https://apt.llvm.org/llvm.sh| sudo bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y clang-format
|
||||
git-clang-format --style=file HEAD^
|
||||
|
||||
|
||||
- uses: EndBug/add-and-commit@v9
|
||||
if: ${{ github.event.pull_request.head.repo.full_name == 'xiaoyifang/goldendict-ng' }}
|
||||
with:
|
||||
default_author: github_actor
|
||||
message: 🎨 apply clang-format changes
|
61
.github/workflows/auto format.yml
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
name: autofix.ci
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
# - dev
|
||||
# - master
|
||||
- staged
|
||||
paths-ignore:
|
||||
- "docs/**"
|
||||
# - ".github/**"
|
||||
- "howto/**"
|
||||
- "*.md"
|
||||
- "locale/**"
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.5.2
|
||||
with:
|
||||
# check out HEAD on the branch
|
||||
# ref: ${{ github.head_ref }}
|
||||
# repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
# make sure the parent commit is grabbed as well, because
|
||||
# that's what will get formatted (i.e. the most recent commit)
|
||||
fetch-depth: 2
|
||||
# format the latest commit
|
||||
- name: ubuntu install clang-format
|
||||
# if: ${{ github.event.pull_request.head.repo.full_name == 'xiaoyifang/goldendict-ng' }}
|
||||
id: clang-format
|
||||
run: |
|
||||
sudo apt-get install git lsb-release wget software-properties-common
|
||||
wget -qO - https://apt.llvm.org/llvm.sh| sudo bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y clang-format
|
||||
git-clang-format --style=file HEAD^
|
||||
|
||||
- uses: autofix-ci/action@89762f9c25dd85f6b78cd40e521232e403357ec0
|
||||
|
||||
|
||||
css-js-html-format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- run: npm ci
|
||||
- run: npx prettier --write src/stylesheets src/scripts/gd-*.js
|
||||
# Optimize all PNGs with https://pngquant.org/
|
||||
# - run: sudo apt-get update && sudo apt-get install -y pngquant
|
||||
# - name: Run pngquant
|
||||
# run: |
|
||||
# shopt -s globstar
|
||||
# pngquant -f --ext .png --skip-if-larger -- **/*.png
|
||||
- uses: autofix-ci/action@89762f9c25dd85f6b78cd40e521232e403357ec0
|
4
.github/workflows/build.yml
vendored
|
@ -24,9 +24,9 @@ jobs:
|
|||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: 6.4.3
|
||||
version: 6.5.1
|
||||
arch: gcc_64
|
||||
cached: 'false'
|
||||
|
||||
#serialport linuxdeploy need serialport to work.
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech qtserialport
|
||||
setup-python: 'false'
|
||||
|
|
12
.github/workflows/cmake build check.yml
vendored
|
@ -26,9 +26,9 @@ jobs:
|
|||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: 6.4.3
|
||||
version: 6.5.1
|
||||
arch: gcc_64
|
||||
cached: 'false'
|
||||
|
||||
#serialport linuxdeploy need serialport to work.
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech qtserialport
|
||||
setup-python: 'false'
|
||||
|
@ -70,9 +70,9 @@ jobs:
|
|||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: 6.4.3
|
||||
version: 6.5.1
|
||||
arch: win64_msvc2019_64
|
||||
cached: 'false'
|
||||
|
||||
#serialport linuxdeploy need serialport to work.
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech qtserialport
|
||||
setup-python: 'false'
|
||||
|
@ -96,9 +96,9 @@ jobs:
|
|||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: 6.4.3
|
||||
version: 6.5.1
|
||||
arch: clang_64
|
||||
cached: 'false'
|
||||
|
||||
#serialport linuxdeploy need serialport to work.
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech qtserialport
|
||||
setup-python: 'false'
|
||||
|
|
223
.github/workflows/ffmpeg-macos-build.yml
vendored
|
@ -1,223 +0,0 @@
|
|||
name: ffmpeg-macos-build
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-12]
|
||||
|
||||
steps:
|
||||
# macos 11.0 默认环境变了,要指定
|
||||
- name: prepare env
|
||||
if: ${{ matrix.os == 'macos-11' }}
|
||||
run: |
|
||||
softwareupdate --all --install --force
|
||||
sudo xcode-select --print-path
|
||||
sudo xcode-select --switch /Library/Developer/CommandLineTools
|
||||
|
||||
- name: build ffmpeg
|
||||
run: |
|
||||
mkdir build
|
||||
brew install automake fdk-aac git lame libass libtool libvorbis libvpx opus sdl shtool texi2html theora wget x264 x265 xvid nasm
|
||||
brew install speex
|
||||
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
|
||||
cd ffmpeg
|
||||
./configure --prefix=../build/ \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--disable-debug \
|
||||
--disable-programs \
|
||||
--disable-network \
|
||||
--disable-avdevice \
|
||||
--disable-avfilter \
|
||||
--disable-swscale \
|
||||
--disable-network \
|
||||
--disable-muxers \
|
||||
--disable-demuxers \
|
||||
--enable-rdft \
|
||||
--enable-demuxer=aac \
|
||||
--enable-demuxer=ac3 \
|
||||
--enable-demuxer=aiff \
|
||||
--enable-demuxer=ape \
|
||||
--enable-demuxer=asf \
|
||||
--enable-demuxer=flac \
|
||||
--enable-demuxer=matroska \
|
||||
--enable-demuxer=mp3 \
|
||||
--enable-demuxer=mpc \
|
||||
--enable-demuxer=mov \
|
||||
--enable-demuxer=mpc8 \
|
||||
--enable-demuxer=ogg \
|
||||
--enable-demuxer=tta \
|
||||
--enable-demuxer=wav \
|
||||
--enable-demuxer=wv \
|
||||
--disable-bsfs \
|
||||
--disable-filters \
|
||||
--disable-parsers \
|
||||
--enable-parser=aac \
|
||||
--enable-parser=ac3 \
|
||||
--enable-parser=mpegaudio \
|
||||
--disable-protocols \
|
||||
--disable-indevs \
|
||||
--disable-outdevs \
|
||||
--disable-encoders \
|
||||
--disable-decoders \
|
||||
--enable-decoder=eightsvx_exp \
|
||||
--enable-decoder=eightsvx_fib \
|
||||
--enable-decoder=aac \
|
||||
--enable-decoder=aac_latm \
|
||||
--enable-decoder=ac3 \
|
||||
--enable-decoder=adpcm_4xm \
|
||||
--enable-decoder=adpcm_adx \
|
||||
--enable-decoder=adpcm_afc \
|
||||
--enable-decoder=adpcm_ct \
|
||||
--enable-decoder=adpcm_ea \
|
||||
--enable-decoder=adpcm_ea_maxis_xa \
|
||||
--enable-decoder=adpcm_ea_r1 \
|
||||
--enable-decoder=adpcm_ea_r2 \
|
||||
--enable-decoder=adpcm_ea_r3 \
|
||||
--enable-decoder=adpcm_ea_xas \
|
||||
--enable-decoder=adpcm_g722 \
|
||||
--enable-decoder=adpcm_g726 \
|
||||
--enable-decoder=adpcm_ima_amv \
|
||||
--enable-decoder=adpcm_ima_apc \
|
||||
--enable-decoder=adpcm_ima_dk3 \
|
||||
--enable-decoder=adpcm_ima_dk4 \
|
||||
--enable-decoder=adpcm_ima_ea_eacs \
|
||||
--enable-decoder=adpcm_ima_ea_sead \
|
||||
--enable-decoder=adpcm_ima_iss \
|
||||
--enable-decoder=adpcm_ima_oki \
|
||||
--enable-decoder=adpcm_ima_qt \
|
||||
--enable-decoder=adpcm_ima_smjpeg \
|
||||
--enable-decoder=adpcm_ima_wav \
|
||||
--enable-decoder=adpcm_ima_ws \
|
||||
--enable-decoder=adpcm_ms \
|
||||
--enable-decoder=adpcm_sbpro_2 \
|
||||
--enable-decoder=adpcm_sbpro_3 \
|
||||
--enable-decoder=adpcm_sbpro_4 \
|
||||
--enable-decoder=adpcm_swf \
|
||||
--enable-decoder=adpcm_thp \
|
||||
--enable-decoder=adpcm_xa \
|
||||
--enable-decoder=adpcm_yamaha \
|
||||
--enable-decoder=alac \
|
||||
--enable-decoder=amrnb \
|
||||
--enable-decoder=libopencore_amrnb \
|
||||
--enable-decoder=amrwb \
|
||||
--enable-decoder=libopencore_amrwb \
|
||||
--enable-decoder=ape \
|
||||
--enable-decoder=atrac1 \
|
||||
--enable-decoder=atrac3 \
|
||||
--enable-decoder=binkaudio_dct \
|
||||
--enable-decoder=binkaudio_rdft \
|
||||
--enable-decoder=bmv_audio \
|
||||
--enable-decoder=comfortnoise \
|
||||
--enable-decoder=cook \
|
||||
--enable-decoder=dsicinaudio \
|
||||
--enable-decoder=dca \
|
||||
--enable-decoder=eac3 \
|
||||
--enable-decoder=flac \
|
||||
--enable-decoder=g723_1 \
|
||||
--enable-decoder=g729 \
|
||||
--enable-decoder=gsm \
|
||||
--enable-decoder=libgsm \
|
||||
--enable-decoder=gsm_ms \
|
||||
--enable-decoder=libgsm_ms \
|
||||
--enable-decoder=iac \
|
||||
--enable-decoder=imc \
|
||||
--enable-decoder=interplay_dpcm \
|
||||
--enable-decoder=mace3 \
|
||||
--enable-decoder=mace6 \
|
||||
--enable-decoder=mlp \
|
||||
--enable-decoder=mp1 \
|
||||
--enable-decoder=mp1float \
|
||||
--enable-decoder=mp2 \
|
||||
--enable-decoder=mp2float \
|
||||
--enable-decoder=mp3 \
|
||||
--enable-decoder=mp3float \
|
||||
--enable-decoder=mp3adu \
|
||||
--enable-decoder=mp3adufloat \
|
||||
--enable-decoder=mp3on4 \
|
||||
--enable-decoder=mp3on4float \
|
||||
--enable-decoder=als \
|
||||
--enable-decoder=mpc7 \
|
||||
--enable-decoder=mpc8 \
|
||||
--enable-decoder=nellymoser \
|
||||
--enable-decoder=libopus \
|
||||
--enable-decoder=paf_audio \
|
||||
--enable-decoder=pcm_alaw \
|
||||
--enable-decoder=pcm_bluray \
|
||||
--enable-decoder=pcm_dvd \
|
||||
--enable-decoder=pcm_f32be \
|
||||
--enable-decoder=pcm_f32le \
|
||||
--enable-decoder=pcm_f64be \
|
||||
--enable-decoder=pcm_f64le \
|
||||
--enable-decoder=pcm_lxf \
|
||||
--enable-decoder=pcm_mulaw \
|
||||
--enable-decoder=pcm_s16be \
|
||||
--enable-decoder=pcm_s16be_planar \
|
||||
--enable-decoder=pcm_s16le \
|
||||
--enable-decoder=pcm_s16le_planar \
|
||||
--enable-decoder=pcm_s24be \
|
||||
--enable-decoder=pcm_s24daud \
|
||||
--enable-decoder=pcm_s24le \
|
||||
--enable-decoder=pcm_s24le_planar \
|
||||
--enable-decoder=pcm_s32be \
|
||||
--enable-decoder=pcm_s32le \
|
||||
--enable-decoder=pcm_s32le_planar \
|
||||
--enable-decoder=pcm_s8 \
|
||||
--enable-decoder=pcm_s8_planar \
|
||||
--enable-decoder=pcm_u16be \
|
||||
--enable-decoder=pcm_u16le \
|
||||
--enable-decoder=pcm_u24be \
|
||||
--enable-decoder=pcm_u24le \
|
||||
--enable-decoder=pcm_u32be \
|
||||
--enable-decoder=pcm_u32le \
|
||||
--enable-decoder=pcm_u8 \
|
||||
--enable-decoder=pcm_zork \
|
||||
--enable-decoder=qcelp \
|
||||
--enable-decoder=qdm2 \
|
||||
--enable-decoder=ra_144 \
|
||||
--enable-decoder=ra_288 \
|
||||
--enable-decoder=ralf \
|
||||
--enable-decoder=roq_dpcm \
|
||||
--enable-decoder=s302m \
|
||||
--enable-decoder=shorten \
|
||||
--enable-decoder=sipr \
|
||||
--enable-decoder=smackaud \
|
||||
--enable-decoder=sol_dpcm \
|
||||
--enable-decoder=sonic \
|
||||
--enable-decoder=libspeex \
|
||||
--enable-decoder=tak \
|
||||
--enable-decoder=truehd \
|
||||
--enable-decoder=truespeech \
|
||||
--enable-decoder=tta \
|
||||
--enable-decoder=twinvq \
|
||||
--enable-decoder=vima \
|
||||
--enable-decoder=vmdaudio \
|
||||
--enable-decoder=vorbis \
|
||||
--enable-decoder=ffwavesynth \
|
||||
--enable-decoder=wavpack \
|
||||
--enable-decoder=ws_snd1 \
|
||||
--enable-decoder=wmalossless \
|
||||
--enable-decoder=wmapro \
|
||||
--enable-decoder=wmav1 \
|
||||
--enable-decoder=wmav2 \
|
||||
--enable-decoder=wmavoice \
|
||||
--enable-decoder=xan_dpcm \
|
||||
--enable-libspeex
|
||||
make
|
||||
sudo make install
|
||||
|
||||
ls -al ../build
|
||||
# otool -L build/*.dylib
|
||||
|
||||
# - uses: actions/upload-artifact@v2
|
||||
# with:
|
||||
# name: build
|
||||
# path: build/*
|
52
.github/workflows/ffmpeg.yml
vendored
|
@ -1,52 +0,0 @@
|
|||
name: ffmpeg-build
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-12]
|
||||
|
||||
steps:
|
||||
# macos 11.0 默认环境变了,要指定
|
||||
- name: prepare env
|
||||
if: ${{ matrix.os == 'macos-11' }}
|
||||
run: |
|
||||
softwareupdate --all --install --force
|
||||
sudo xcode-select --print-path
|
||||
sudo xcode-select --switch /Library/Developer/CommandLineTools
|
||||
|
||||
- name: build ffmpeg
|
||||
run: |
|
||||
mkdir build
|
||||
|
||||
brew install autoconf automake libtool
|
||||
brew install nasm
|
||||
export VCPKG_OSX_ARCHITECTURES="x86_64 arm64"
|
||||
vcpkg install ffmpeg[core,avcodec,avformat,mp3lame,opus,speex,swresample,vorbis,fdk-aac,gpl]:arm64-osx-dynamic --x-install-root=build
|
||||
vcpkg install ffmpeg[core,avcodec,avformat,mp3lame,opus,speex,swresample,vorbis,fdk-aac,gpl]:x64-osx-dynamic --x-install-root=build
|
||||
ls -al build/arm64-osx-dynamic/lib
|
||||
ls -al build/
|
||||
lipo -info build/arm64-osx-dynamic/lib/libavco*
|
||||
|
||||
cd build
|
||||
lipo -create -output libavcodec.dylib arm64-osx-dynamic/lib/libavcodec.dylib x64-osx-dynamic/lib/libavcodec.dylib
|
||||
lipo -create -output libspeex.dylib arm64-osx-dynamic/lib/libspeex.dylib x64-osx-dynamic/lib/libspeex.dylib
|
||||
lipo -detailed_info libavcodec.dylib
|
||||
lipo -detailed_info libspeex.dylib
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: build
|
||||
path: build/*
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: build-lipo
|
||||
path: build/*.dylib
|
2
.github/workflows/issue-translator.yml
vendored
|
@ -12,7 +12,7 @@ jobs:
|
|||
- uses: a631807682/issues-translator@v1.2.1
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
match-languages: cmn
|
||||
match-languages: cmn,rus
|
||||
min-match-percent: 0.15
|
||||
modify-title: true
|
||||
modify-body: true
|
||||
|
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
os: [macos-12]
|
||||
qt_ver: [6.4.3]
|
||||
qt_ver: [6.5.1]
|
||||
qt_arch: [clang_64]
|
||||
env:
|
||||
targetName: GoldenDict
|
||||
|
@ -41,7 +41,7 @@ jobs:
|
|||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
cached: 'false'
|
||||
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtspeech
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
|
|
238
.github/workflows/macos-homebrew-breakpad.yml
vendored
Normal file
|
@ -0,0 +1,238 @@
|
|||
name: macos-homebrew-breakpad
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
on:
|
||||
workflow_dispatch:
|
||||
#push:
|
||||
# branches:
|
||||
# - dev
|
||||
# - master
|
||||
# # - staged
|
||||
# paths-ignore:
|
||||
# - 'docs/**'
|
||||
# - ".github/**"
|
||||
# - "howto/**"
|
||||
# - "*.md"
|
||||
# - ".clang-format"
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-13]
|
||||
qt_ver: [ 6.4.3,6.5.1 ]
|
||||
qt_arch: [clang_64]
|
||||
env:
|
||||
targetName: GoldenDict
|
||||
version: 23.06.02
|
||||
version-suffix: alpha
|
||||
prerelease: true
|
||||
steps:
|
||||
# macos 11.0 默认环境变了,要指定
|
||||
- name: prepare env
|
||||
if: ${{ matrix.os == 'macos-11' }}
|
||||
run: |
|
||||
softwareupdate --all --install --force
|
||||
sudo xcode-select --print-path
|
||||
sudo xcode-select --switch /Library/Developer/CommandLineTools
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- name: Set outputs
|
||||
id: githash
|
||||
run: |
|
||||
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
|
||||
|
||||
- name: install deps on macos
|
||||
run: |
|
||||
brew install pcre2 harfbuzz freetype
|
||||
brew install cmake ninja python
|
||||
brew install automake
|
||||
brew install autoconf
|
||||
brew install libtool
|
||||
brew install opencc
|
||||
brew install speex
|
||||
brew install wavpack
|
||||
brew install automake fdk-aac git lame libass libtool libvorbis libvpx opus sdl shtool texi2html theora wget x264 x265 xvid nasm
|
||||
brew install speex
|
||||
|
||||
brew tap homebrew-ffmpeg/ffmpeg
|
||||
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-speex
|
||||
|
||||
brew install libiconv
|
||||
brew install lzo bzip2
|
||||
brew install libogg
|
||||
brew install zstd lzip
|
||||
brew install libvorbis
|
||||
brew install hunspell
|
||||
git clone https://github.com/xiaoyifang/eb.git
|
||||
cd eb && ./configure && make -j 8 && sudo make install && cd ..
|
||||
brew install xz lzo
|
||||
brew install pkg-config
|
||||
brew install create-dmg
|
||||
brew install xapian
|
||||
brew install libzim
|
||||
# brew reinstall icu4c
|
||||
brew install dylibbundler
|
||||
find /opt -name libicudata.72.dylib
|
||||
find /usr/local -name libicudata.72.dylib
|
||||
- name: version-file
|
||||
shell: bash
|
||||
env:
|
||||
VAR_SUFFIX: ${{env.version-suffix}}
|
||||
VAR_VERSION: ${{env.version}}
|
||||
run: |
|
||||
current_tag=$(git rev-parse --short=8 HEAD)
|
||||
release_date=$(date +'%Y%m%d')
|
||||
echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt
|
||||
cat version.txt
|
||||
echo "$version"
|
||||
|
||||
- name: vcpkg install
|
||||
shell: bash
|
||||
run: |
|
||||
vcpkg install breakpad
|
||||
- name: copy vcpkg packages into winlibs
|
||||
shell: bash
|
||||
run: |
|
||||
ls -al /usr/local/share/vcpkg/packages/breakpad*
|
||||
cp -R /usr/local/share/vcpkg/packages/breakpad*/* thirdparty/breakpad
|
||||
ls -al thirdparty/breakpad/lib
|
||||
- uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: '3.9'
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
|
||||
setup-python: 'false'
|
||||
|
||||
- name: compile
|
||||
run: |
|
||||
qmake CONFIG+=release CONFIG+=no_macos_universal CONFIG+=zim_support CONFIG+=use_xapian CONFIG+=use_breakpad
|
||||
make -j8
|
||||
|
||||
- name: package
|
||||
run: |
|
||||
|
||||
macdeployqt ${targetName}.app -no-strip -qmldir=. -verbose=1
|
||||
otool -L GoldenDict.app/Contents/MacOS/GoldenDict
|
||||
ls -al GoldenDict.app/Contents/Frameworks
|
||||
otool -L GoldenDict.app/Contents/Frameworks/libicu*.dylib
|
||||
ls -al /usr/local/Cellar/icu4c/7*/lib/libicudata.*.dylib
|
||||
cp -r /usr/local/Cellar/icu4c/7*/lib/libicudata.*.dylib GoldenDict.app/Contents/Frameworks
|
||||
|
||||
codesign --force --deep -s - GoldenDict.app
|
||||
|
||||
ls -al GoldenDict.app/Contents/Frameworks
|
||||
mkdir tmp
|
||||
mv ${targetName}.app ./tmp
|
||||
# --background "installer_background.png"
|
||||
create-dmg --volname "${targetName} Installer" --volicon "icons/macicon.icns" --window-pos 200 120 --window-size 800 400 --icon-size 100 --icon "${targetName}.app" 200 190 --hide-extension "${targetName}.app" --app-drop-link 600 185 --skip-jenkins "${targetName}.dmg" tmp/
|
||||
- name: changelog
|
||||
id: changelog
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | grep "^v" | sed -n 2p)
|
||||
echo "previousTag : $previousTag"
|
||||
|
||||
|
||||
echo "::set-output name=prev_tag::$previousTag"
|
||||
echo "::set-output name=curr_tag::$(git tag --sort=-creatordate | grep "^v" | sed -n 1p)"
|
||||
|
||||
- name: Set outputs
|
||||
id: vars
|
||||
run: |
|
||||
echo "::set-output name=sha_short::$(git rev-parse --short=8 HEAD)"
|
||||
echo "::set-output name=release_date::$(date +'%Y%m%d')"
|
||||
echo "::set-output name=release_time::$(date +'%H%M%S')"
|
||||
echo "::set-output name=release_time_clock::$(date +'%H:%M:%S')"
|
||||
echo "::set-output name=release_hm::$(date +'%y%m%d')"
|
||||
|
||||
# tag 上传Release
|
||||
- name: "Build Changelog"
|
||||
id: build_changelog
|
||||
uses: mikepenz/release-changelog-builder-action@v3
|
||||
with:
|
||||
commitMode: false
|
||||
fromTag: ${{ steps.changelog.outputs.prev_tag }}
|
||||
toTag: "${{ steps.changelog.outputs.curr_tag }}"
|
||||
configurationJson: |
|
||||
{
|
||||
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>🔴 Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>",
|
||||
"categories": [
|
||||
{
|
||||
"title": "## 🚀 Features",
|
||||
"labels": ["feature","feat","opt"]
|
||||
},
|
||||
{
|
||||
"title": "## 🐛 Fixes",
|
||||
"labels": ["fix","bug"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🤖 Github action",
|
||||
"labels": ["action"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🧼 Clean Code",
|
||||
"labels": ["clean"]
|
||||
}
|
||||
|
||||
],
|
||||
"label_extractor": [
|
||||
{
|
||||
"pattern": "([^:]*):.*",
|
||||
"target": "$1",
|
||||
"on_property": "title",
|
||||
"flags": "gu"
|
||||
}
|
||||
]
|
||||
}
|
||||
- name: uploadRelease
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.targetName }}.dmg
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_homebrew_breakpad_${{steps.vars.outputs.release_date}}.dmg
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
#### Install instructions for Windows, macOS and Linux
|
||||
|
||||
<https://xiaoyifang.github.io/goldendict-ng/install/>.
|
||||
|
||||
#### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]**
|
||||
|
||||
Qt6.X is recommended for various enhancements.
|
||||
|
||||
Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run).
|
||||
The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed).
|
||||
|
||||
Linux users can use AppImages.
|
||||
|
||||
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.
|
||||
|
||||
#### Build Details
|
||||
|
||||
AppImage: Ubuntu-20.04
|
||||
macOS: macOS-12 and macOS-13
|
||||
Windows: Visual studio 2019
|
||||
|
||||
|
||||
|
||||
#### Changes
|
||||
|
||||
${{steps.build_changelog.outputs.changelog}}
|
|
@ -1,4 +1,4 @@
|
|||
name: macos-homebrew-xapian
|
||||
name: macos-homebrew
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
@ -11,7 +11,7 @@ on:
|
|||
# - staged
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- ".github/**"
|
||||
# - ".github/**"
|
||||
- "howto/**"
|
||||
- "*.md"
|
||||
- ".clang-format"
|
||||
|
@ -21,14 +21,14 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-11,macos-12]
|
||||
qt_ver: [6.4.3]
|
||||
os: [macos-12,macos-13]
|
||||
qt_ver: [ 6.4.3 ]
|
||||
qt_arch: [clang_64]
|
||||
env:
|
||||
targetName: GoldenDict
|
||||
version: 23.06.01
|
||||
version-suffix: ChildrenDay
|
||||
prerelease: false
|
||||
version: 23.06.02
|
||||
version-suffix: alpha
|
||||
prerelease: true
|
||||
steps:
|
||||
# macos 11.0 默认环境变了,要指定
|
||||
- name: prepare env
|
||||
|
@ -37,17 +37,6 @@ jobs:
|
|||
softwareupdate --all --install --force
|
||||
sudo xcode-select --print-path
|
||||
sudo xcode-select --switch /Library/Developer/CommandLineTools
|
||||
- uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: '3.9'
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
cached: 'false'
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
|
||||
setup-python: 'false'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
|
@ -93,9 +82,38 @@ jobs:
|
|||
find /usr/local -name libicudata.72.dylib
|
||||
- name: version-file
|
||||
shell: bash
|
||||
env:
|
||||
VAR_SUFFIX: ${{env.version-suffix}}
|
||||
VAR_VERSION: ${{env.version}}
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 1p |cut -c 2-)
|
||||
echo "$previousTag">version.txt
|
||||
current_tag=$(git rev-parse --short=8 HEAD)
|
||||
release_date=$(date +'%Y%m%d')
|
||||
echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt
|
||||
cat version.txt
|
||||
echo "$version"
|
||||
|
||||
- name: vcpkg install
|
||||
shell: bash
|
||||
run: |
|
||||
vcpkg install breakpad
|
||||
- name: copy vcpkg packages into winlibs
|
||||
shell: bash
|
||||
run: |
|
||||
ls -al /usr/local/share/vcpkg/packages/breakpad*
|
||||
cp -R /usr/local/share/vcpkg/packages/breakpad*/* thirdparty/breakpad
|
||||
ls -al thirdparty/breakpad/lib
|
||||
- uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: '3.9'
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
|
||||
setup-python: 'false'
|
||||
|
||||
- name: compile
|
||||
run: |
|
||||
qmake CONFIG+=release CONFIG+=no_macos_universal CONFIG+=zim_support CONFIG+=use_xapian
|
||||
|
@ -108,7 +126,7 @@ jobs:
|
|||
otool -L GoldenDict.app/Contents/MacOS/GoldenDict
|
||||
ls -al GoldenDict.app/Contents/Frameworks
|
||||
otool -L GoldenDict.app/Contents/Frameworks/libicu*.dylib
|
||||
cp /usr/local/Cellar/icu4c/72.1/lib/libicudata.72.dylib GoldenDict.app/Contents/Frameworks/libicudata.72.dylib
|
||||
cp -r /usr/local/Cellar/icu4c/7*/lib/libicudata.*.dylib GoldenDict.app/Contents/Frameworks
|
||||
|
||||
codesign --force --deep -s - GoldenDict.app
|
||||
|
||||
|
@ -120,16 +138,12 @@ jobs:
|
|||
- name: changelog
|
||||
id: changelog
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 2p)
|
||||
previousTag=$(git tag --sort=-creatordate | grep "v.*" | sed -n 2p)
|
||||
echo "previousTag : $previousTag"
|
||||
|
||||
CHANGELOG="$(git log --oneline --no-decorate $previousTag..HEAD)"
|
||||
CHANGELOG="${CHANGELOG//'%'/'%25'}"
|
||||
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
|
||||
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
|
||||
CHANGELOG="${CHANGELOG//'\"'/'%22'}"
|
||||
CHANGELOG="${CHANGELOG//"'"/ }"
|
||||
echo "::set-output name=changelog::$(echo "$CHANGELOG")"
|
||||
|
||||
echo "::set-output name=prev_tag::$previousTag"
|
||||
echo "::set-output name=curr_tag::$(git tag --sort=-creatordate | grep "v.*" | sed -n 1p)"
|
||||
|
||||
- name: Set outputs
|
||||
id: vars
|
||||
|
@ -141,41 +155,83 @@ jobs:
|
|||
echo "::set-output name=release_hm::$(date +'%y%m%d')"
|
||||
|
||||
# tag 上传Release
|
||||
- name: "Build Changelog"
|
||||
id: build_changelog
|
||||
uses: mikepenz/release-changelog-builder-action@v3
|
||||
with:
|
||||
commitMode: false
|
||||
fromTag: ${{ steps.changelog.outputs.prev_tag }}
|
||||
toTag: "${{ steps.changelog.outputs.curr_tag }}"
|
||||
configurationJson: |
|
||||
{
|
||||
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>🔴 Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>",
|
||||
"categories": [
|
||||
{
|
||||
"title": "## 🚀 Features",
|
||||
"labels": ["feature","feat","opt"]
|
||||
},
|
||||
{
|
||||
"title": "## 🐛 Fixes",
|
||||
"labels": ["fix","bug"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🤖 Github action",
|
||||
"labels": ["action"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🧼 Clean Code",
|
||||
"labels": ["clean"]
|
||||
}
|
||||
|
||||
],
|
||||
"label_extractor": [
|
||||
{
|
||||
"pattern": "([^:]*):.*",
|
||||
"target": "$1",
|
||||
"on_property": "title",
|
||||
"flags": "gu"
|
||||
}
|
||||
]
|
||||
}
|
||||
- name: uploadRelease
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.targetName }}.dmg
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_homebrew_${{steps.vars.outputs.release_date}}.dmg
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
release on date: ${{steps.vars.outputs.release_date}} time: ${{steps.vars.outputs.release_time_clock}}
|
||||
branch: ${{ github.ref_name }}
|
||||
commit: ${{ steps.vars.outputs.sha_short }}
|
||||
Qt version: Qt5.15.2, Qt6.X
|
||||
Windows built with: msvc64, Visual studio 2019
|
||||
## goldendict.exe can not be used alone
|
||||
if you have a previous version. replace this maybe ok. if not ,download the whole bundle.
|
||||
#### Install instructions for Windows, macOS and Linux
|
||||
|
||||
AppImage built with: Ubuntu-20.04 ,latest gcc
|
||||
macos built with: macos-10.15,macos-11.0,clang_64 x86_64
|
||||
Qt6.X(Universal Build)
|
||||
Qt5.15.2(Intel Kind)
|
||||
auto built by github action. use on your on risk:-)
|
||||
**recommend version**:Qt6.X (with the latest bug fixes and performance enhancements)
|
||||
<https://xiaoyifang.github.io/goldendict-ng/install/>.
|
||||
|
||||
Filename pattern: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) is enabled by default which offers 10X~20X performance
|
||||
------------------------------
|
||||
文件名的模式: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) 用于全文索引的创建,提供更快的全文索引创建、搜索支持
|
||||
比如:
|
||||
6.4.3-GoldenDict.exe_windows-2022_20230502.zip
|
||||
表示基于qt6.4.3,windows-2022, 于20230502日创建的版本。
|
||||
#### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]**
|
||||
|
||||
Qt6.X is recommended for various enhancements.
|
||||
|
||||
Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run).
|
||||
The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed).
|
||||
|
||||
Linux users can use AppImages.
|
||||
|
||||
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.
|
||||
|
||||
#### Build Details
|
||||
|
||||
AppImage: Ubuntu-20.04
|
||||
macOS: macOS-12 and macOS-13
|
||||
Windows: Visual studio 2019
|
||||
|
||||
|
||||
CHANGES:
|
||||
${{ steps.changelog.outputs.changelog }}
|
||||
|
||||
#### Changes
|
||||
|
||||
${{steps.build_changelog.outputs.changelog}}
|
|
@ -1,5 +1,4 @@
|
|||
name: Ubuntu-6.2-xapian
|
||||
# Qt官方没有linux平台的x86包
|
||||
name: Ubuntu-6.2
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
@ -15,7 +14,7 @@ on:
|
|||
# - staged
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- ".github/**"
|
||||
# - ".github/**"
|
||||
- "howto/**"
|
||||
- "*.md"
|
||||
- ".clang-format"
|
||||
|
@ -26,20 +25,20 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
qt_ver: [6.4.3]
|
||||
os: [ubuntu-20.04]
|
||||
qt_ver: [ 6.5.1 ]
|
||||
qt_arch: [gcc_64]
|
||||
env:
|
||||
version: 23.06.01
|
||||
version-suffix: ChildrenDay
|
||||
prerelease: false
|
||||
version: 23.06.02
|
||||
version-suffix: alpha
|
||||
prerelease: true
|
||||
steps:
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
cached: 'false'
|
||||
|
||||
#serialport linuxdeploy need serialport to work.
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech qtserialport
|
||||
|
||||
|
@ -69,8 +68,8 @@ jobs:
|
|||
# sudo make install
|
||||
# cd ..
|
||||
sudo apt install libxapian-dev
|
||||
sudo apt-get install libzim-dev
|
||||
# sudo ls -al /usr/lib/|grep xapian
|
||||
sudo add-apt-repository --yes --update ppa:kiwixteam/release
|
||||
sudo apt install libzim-dev
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
|
@ -79,9 +78,15 @@ jobs:
|
|||
|
||||
- name: version-file
|
||||
shell: bash
|
||||
env:
|
||||
VAR_SUFFIX: ${{env.version-suffix}}
|
||||
VAR_VERSION: ${{env.version}}
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 1p |cut -c 2-)
|
||||
echo "$previousTag">version.txt
|
||||
current_tag=$(git rev-parse --short=8 HEAD)
|
||||
release_date=$(date +'%Y%m%d')
|
||||
echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt
|
||||
cat version.txt
|
||||
echo "$version"
|
||||
|
||||
- name: build goldendict
|
||||
run: |
|
||||
|
@ -91,6 +96,15 @@ jobs:
|
|||
ls -al appdir
|
||||
- name: Build AppImage
|
||||
run: |
|
||||
# for /usr/lib/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so
|
||||
sudo apt-get install extra-cmake-modules libxkbcommon-dev libxcb1 libxcb-cursor0
|
||||
git clone --single-branch --depth 1 https://github.com/fcitx/fcitx5-qt.git
|
||||
cd fcitx5-qt
|
||||
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_QT4=OFF -DENABLE_QT5=OFF -DENABLE_QT6=ON -DBUILD_ONLY_PLUGIN=ON
|
||||
cmake --build build
|
||||
sudo cmake --install ./build
|
||||
cd ..
|
||||
|
||||
wget -c -nv "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage"
|
||||
chmod a+x linuxdeploy-plugin-qt-x86_64.AppImage
|
||||
wget -c -nv "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
|
||||
|
@ -100,16 +114,11 @@ jobs:
|
|||
- name: changelog
|
||||
id: changelog
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 2p)
|
||||
previousTag=$(git tag --sort=-creatordate | grep "^v" | sed -n 2p)
|
||||
echo "previousTag : $previousTag"
|
||||
|
||||
CHANGELOG="$(git log --oneline --no-decorate $previousTag..HEAD)"
|
||||
CHANGELOG="${CHANGELOG//'%'/'%25'}"
|
||||
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
|
||||
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
|
||||
CHANGELOG="${CHANGELOG//'\"'/'%22'}"
|
||||
CHANGELOG="${CHANGELOG//"'"/ }"
|
||||
echo "::set-output name=changelog::$(echo "$CHANGELOG")"
|
||||
echo "::set-output name=prev_tag::$previousTag"
|
||||
echo "::set-output name=curr_tag::$(git tag --sort=-creatordate | grep "^v" | sed -n 1p)"
|
||||
|
||||
- name: Set outputs
|
||||
id: vars
|
||||
|
@ -121,6 +130,46 @@ jobs:
|
|||
echo "::set-output name=release_hm::$(date +'%y%m%d')"
|
||||
echo "::set-output name=appname::$(ls *.AppImage*)"
|
||||
|
||||
- name: "Build Changelog"
|
||||
id: build_changelog
|
||||
uses: mikepenz/release-changelog-builder-action@v3
|
||||
with:
|
||||
commitMode: false
|
||||
fromTag: ${{ steps.changelog.outputs.prev_tag }}
|
||||
toTag: "${{ steps.changelog.outputs.curr_tag }}"
|
||||
configurationJson: |
|
||||
{
|
||||
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>🔴 Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>",
|
||||
"categories": [
|
||||
{
|
||||
"title": "## 🚀 Features",
|
||||
"labels": ["feature","feat","opt"]
|
||||
},
|
||||
{
|
||||
"title": "## 🐛 Fixes",
|
||||
"labels": ["fix","bug"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🤖 Github action",
|
||||
"labels": ["action"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🧼 Clean Code",
|
||||
"labels": ["clean"]
|
||||
}
|
||||
|
||||
],
|
||||
"label_extractor": [
|
||||
{
|
||||
"pattern": "([^:]*):.*",
|
||||
"target": "$1",
|
||||
"on_property": "title",
|
||||
"flags": "gu"
|
||||
}
|
||||
]
|
||||
}
|
||||
- name: uploadRelease
|
||||
# if: startsWith(github.event.ref, 'refs/tags/')
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
|
@ -128,35 +177,35 @@ jobs:
|
|||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.vars.outputs.appname }}
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ steps.vars.outputs.appname }}
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
release on date: ${{steps.vars.outputs.release_date}} time: ${{steps.vars.outputs.release_time_clock}}
|
||||
branch: ${{ github.ref_name }}
|
||||
commit: ${{ steps.vars.outputs.sha_short }}
|
||||
Qt version: Qt5.15.2, Qt6.X
|
||||
Windows built with: msvc64, Visual studio 2019
|
||||
## goldendict.exe can not be used alone
|
||||
if you have a previous version. replace this maybe ok. if not ,download the whole bundle.
|
||||
#### Install instructions for Windows, macOS and Linux
|
||||
|
||||
AppImage built with: Ubuntu-20.04 ,latest gcc
|
||||
macos built with: macos-10.15,macos-11.0,clang_64 x86_64
|
||||
Qt6.X(Universal Build)
|
||||
Qt5.15.2(Intel Kind)
|
||||
auto built by github action. use on your on risk:-)
|
||||
**recommend version**:Qt6.X (with the latest bug fixes and performance enhancements)
|
||||
<https://xiaoyifang.github.io/goldendict-ng/install/>.
|
||||
|
||||
Filename pattern: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) is enabled by default which offers 10X~20X performance
|
||||
------------------------------
|
||||
文件名的模式: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) 用于全文索引的创建,提供更快的全文索引创建、搜索支持
|
||||
比如:
|
||||
6.4.3-GoldenDict.exe_windows-2022_20230502.zip
|
||||
表示基于qt6.4.3,windows-2022, 于20230502日创建的版本。
|
||||
#### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]**
|
||||
|
||||
Qt6.X is recommended for various enhancements.
|
||||
|
||||
CHANGES:
|
||||
${{ steps.changelog.outputs.changelog }}
|
||||
Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run).
|
||||
The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed).
|
||||
|
||||
Linux users can use AppImages.
|
||||
|
||||
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.
|
||||
|
||||
#### Build Details
|
||||
|
||||
AppImage: Ubuntu-20.04
|
||||
macOS: macOS-12 and macOS-13
|
||||
Windows: Visual studio 2019
|
||||
|
||||
#### Changes
|
||||
|
||||
${{steps.build_changelog.outputs.changelog}}
|
6
.github/workflows/ubuntu-PR-check.yml
vendored
|
@ -26,7 +26,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
qt_ver: [5.15.2,6.4.3]
|
||||
qt_ver: [5.15.2,6.5.1]
|
||||
qt_arch: [gcc_64]
|
||||
|
||||
steps:
|
||||
|
@ -35,7 +35,7 @@ jobs:
|
|||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
cached: 'false'
|
||||
|
||||
modules: qtwebengine
|
||||
|
||||
- name: Install Qt
|
||||
|
@ -44,7 +44,7 @@ jobs:
|
|||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
cached: 'false'
|
||||
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
|
||||
|
||||
- name: ubuntu install thirdparty dependencies
|
||||
|
|
127
.github/workflows/ubuntu.yml
vendored
|
@ -15,7 +15,7 @@ on:
|
|||
# - staged
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- ".github/**"
|
||||
# - ".github/**"
|
||||
- "howto/**"
|
||||
- "*.md"
|
||||
- ".clang-format"
|
||||
|
@ -26,19 +26,19 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
os: [ubuntu-20.04]
|
||||
qt_ver: [5.15.2]
|
||||
qt_arch: [gcc_64]
|
||||
env:
|
||||
version: 23.06.01
|
||||
version-suffix: ChildrenDay
|
||||
prerelease: false
|
||||
version: 23.06.02
|
||||
version-suffix: alpha
|
||||
prerelease: true
|
||||
steps:
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
cached: 'false'
|
||||
|
||||
modules: qtwebengine
|
||||
- name: ubuntu install thirdparty dependencies
|
||||
run: |
|
||||
|
@ -57,7 +57,8 @@ jobs:
|
|||
make PREFIX=/usr -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
sudo apt-get install libzim-dev
|
||||
sudo add-apt-repository --yes --update ppa:kiwixteam/release
|
||||
sudo apt install libzim-dev
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
@ -65,9 +66,15 @@ jobs:
|
|||
|
||||
- name: version-file
|
||||
shell: bash
|
||||
env:
|
||||
VAR_SUFFIX: ${{env.version-suffix}}
|
||||
VAR_VERSION: ${{env.version}}
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 1p |cut -c 2-)
|
||||
echo "$previousTag">version.txt
|
||||
current_tag=$(git rev-parse --short=8 HEAD)
|
||||
release_date=$(date +'%Y%m%d')
|
||||
echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt
|
||||
cat version.txt
|
||||
echo "$version"
|
||||
|
||||
- name: build goldendict
|
||||
run: |
|
||||
|
@ -81,6 +88,7 @@ jobs:
|
|||
|
||||
- name: Build AppImage
|
||||
run: |
|
||||
sudo apt install fcitx5-frontend-qt5
|
||||
wget -c -nv "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage"
|
||||
chmod a+x linuxdeploy-plugin-qt-x86_64.AppImage
|
||||
wget -c -nv "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
|
||||
|
@ -90,16 +98,11 @@ jobs:
|
|||
- name: changelog
|
||||
id: changelog
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 2p)
|
||||
previousTag=$(git tag --sort=-creatordate | grep "^v" | sed -n 2p)
|
||||
echo "previousTag : $previousTag"
|
||||
|
||||
CHANGELOG="$(git log --oneline --no-decorate $previousTag..HEAD)"
|
||||
CHANGELOG="${CHANGELOG//'%'/'%25'}"
|
||||
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
|
||||
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
|
||||
CHANGELOG="${CHANGELOG//'\"'/'%22'}"
|
||||
CHANGELOG="${CHANGELOG//"'"/ }"
|
||||
echo "::set-output name=changelog::$(echo "$CHANGELOG")"
|
||||
echo "::set-output name=prev_tag::$previousTag"
|
||||
echo "::set-output name=curr_tag::$(git tag --sort=-creatordate | grep "^v" | sed -n 1p)"
|
||||
- name: Set outputs
|
||||
id: vars
|
||||
run: |
|
||||
|
@ -110,42 +113,82 @@ jobs:
|
|||
echo "::set-output name=release_hm::$(date +'%y%m%d')"
|
||||
echo "::set-output name=appname::$(ls *.AppImage*)"
|
||||
|
||||
- name: "Build Changelog"
|
||||
id: build_changelog
|
||||
uses: mikepenz/release-changelog-builder-action@v3
|
||||
with:
|
||||
commitMode: false
|
||||
fromTag: ${{ steps.changelog.outputs.prev_tag }}
|
||||
toTag: "${{ steps.changelog.outputs.curr_tag }}"
|
||||
configurationJson: |
|
||||
{
|
||||
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>🔴 Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>",
|
||||
"categories": [
|
||||
{
|
||||
"title": "## 🚀 Features",
|
||||
"labels": ["feature","feat","opt"]
|
||||
},
|
||||
{
|
||||
"title": "## 🐛 Fixes",
|
||||
"labels": ["fix","bug"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🤖 Github action",
|
||||
"labels": ["action"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🧼 Clean Code",
|
||||
"labels": ["clean"]
|
||||
}
|
||||
|
||||
],
|
||||
"label_extractor": [
|
||||
{
|
||||
"pattern": "([^:]*):.*",
|
||||
"target": "$1",
|
||||
"on_property": "title",
|
||||
"flags": "gu"
|
||||
}
|
||||
]
|
||||
}
|
||||
- name: uploadRelease
|
||||
# if: startsWith(github.event.ref, 'refs/tags/')
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.vars.outputs.appname }}
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_${{steps.vars.outputs.release_date}}.AppImage
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ steps.vars.outputs.appname }}
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
release on date: ${{steps.vars.outputs.release_date}} time: ${{steps.vars.outputs.release_time_clock}}
|
||||
branch: ${{ github.ref_name }}
|
||||
commit: ${{ steps.vars.outputs.sha_short }}
|
||||
Qt version: Qt5.15.2, Qt6.X
|
||||
Windows built with: msvc64, Visual studio 2019
|
||||
## goldendict.exe can not be used alone
|
||||
if you have a previous version. replace this maybe ok. if not ,download the whole bundle.
|
||||
#### Install instructions for Windows, macOS and Linux
|
||||
|
||||
AppImage built with: Ubuntu-20.04 ,latest gcc
|
||||
macos built with: macos-10.15,macos-11.0,clang_64 x86_64
|
||||
Qt6.X(Universal Build)
|
||||
Qt5.15.2(Intel Kind)
|
||||
auto built by github action. use on your on risk:-)
|
||||
**recommend version**:Qt6.X (with the latest bug fixes and performance enhancements)
|
||||
<https://xiaoyifang.github.io/goldendict-ng/install/>.
|
||||
|
||||
Filename pattern: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) is enabled by default which offers 10X~20X performance
|
||||
------------------------------
|
||||
文件名的模式: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) 用于全文索引的创建,提供更快的全文索引创建、搜索支持
|
||||
比如:
|
||||
6.4.3-GoldenDict.exe_windows-2022_20230502.zip
|
||||
表示基于qt6.4.3,windows-2022, 于20230502日创建的版本。
|
||||
#### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]**
|
||||
|
||||
Qt6.X is recommended for various enhancements.
|
||||
|
||||
Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run).
|
||||
The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed).
|
||||
|
||||
Linux users can use AppImages.
|
||||
|
||||
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.
|
||||
|
||||
#### Build Details
|
||||
|
||||
AppImage: Ubuntu-20.04
|
||||
macOS: macOS-12 and macOS-13
|
||||
Windows: Visual studio 2019
|
||||
|
||||
|
||||
CHANGES:
|
||||
${{ steps.changelog.outputs.changelog }}
|
||||
#### Changes
|
||||
|
||||
${{steps.build_changelog.outputs.changelog}}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name: Windows-6.x-xapian
|
||||
name: Windows-6.x
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
@ -14,7 +14,7 @@ on:
|
|||
# - staged
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- ".github/**"
|
||||
# - ".github/**"
|
||||
- "howto/**"
|
||||
- "*.md"
|
||||
- ".clang-format"
|
||||
|
@ -27,13 +27,13 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
os: [windows-2019]
|
||||
qt_ver: [6.4.3]
|
||||
qt_ver: [6.5.1]
|
||||
qt_arch: [win64_msvc2019_64]
|
||||
env:
|
||||
targetName: GoldenDict.exe
|
||||
version: 23.06.01
|
||||
version-suffix: ChildrenDay
|
||||
prerelease: false
|
||||
version: 23.06.02
|
||||
version-suffix: alpha
|
||||
prerelease: true
|
||||
steps:
|
||||
- uses: actions/setup-python@v3
|
||||
with:
|
||||
|
@ -56,16 +56,57 @@ jobs:
|
|||
id: changelog
|
||||
shell: bash
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 2p)
|
||||
previousTag=$(git tag --sort=-creatordate | grep "^v" | sed -n 2p)
|
||||
echo "previousTag : $previousTag"
|
||||
|
||||
CHANGELOG="$(git log --oneline --no-decorate $previousTag..HEAD)"
|
||||
CHANGELOG="${CHANGELOG//'%'/'%25'}"
|
||||
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
|
||||
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
|
||||
CHANGELOG="${CHANGELOG//'\"'/'%22'}"
|
||||
CHANGELOG="${CHANGELOG//"'"/ }"
|
||||
echo "::set-output name=changelog::$(echo "$CHANGELOG")"
|
||||
echo "::set-output name=prev_tag::$previousTag"
|
||||
echo "::set-output name=curr_tag::$(git tag --sort=-creatordate | grep "^v" | sed -n 1p)"
|
||||
|
||||
- name: "Build Changelog"
|
||||
id: build_changelog
|
||||
uses: mikepenz/release-changelog-builder-action@v3
|
||||
with:
|
||||
commitMode: false
|
||||
fromTag: "${{ steps.changelog.outputs.prev_tag }}"
|
||||
toTag: "${{ steps.changelog.outputs.curr_tag }}"
|
||||
configurationJson: |
|
||||
{
|
||||
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>🔴 Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>",
|
||||
"categories": [
|
||||
{
|
||||
"title": "## 🚀 Features",
|
||||
"labels": ["feature","feat","opt"]
|
||||
},
|
||||
{
|
||||
"title": "## 🐛 Fixes",
|
||||
"labels": ["fix","bug"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🤖 Github action",
|
||||
"labels": ["action"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🧼 Clean Code",
|
||||
"labels": ["clean"]
|
||||
}
|
||||
|
||||
|
||||
],
|
||||
"label_extractor": [
|
||||
{
|
||||
"pattern": "([^:]*):.*",
|
||||
"target": "$1",
|
||||
"on_property": "title",
|
||||
"flags": "gu"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Set outputs
|
||||
id: vars
|
||||
shell: bash
|
||||
|
@ -78,10 +119,15 @@ jobs:
|
|||
|
||||
- name: version-file
|
||||
shell: bash
|
||||
env:
|
||||
VAR_SUFFIX: ${{env.version-suffix}}
|
||||
VAR_VERSION: ${{env.version}}
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 1p |cut -c 2-)
|
||||
echo "$previousTag">version.txt
|
||||
current_tag=$(git rev-parse --short=8 HEAD)
|
||||
release_date=$(date +'%Y%m%d')
|
||||
echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt
|
||||
cat version.txt
|
||||
echo "$version"
|
||||
|
||||
- name: vcpkg install
|
||||
shell: powershell
|
||||
|
@ -125,42 +171,7 @@ jobs:
|
|||
$name = ${env:archiveName}
|
||||
echo "::set-output name=packageName::$name"
|
||||
|
||||
- name: uploadRelease
|
||||
# if: startsWith(github.event.ref, 'refs/tags/')
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.package.outputs.packageName }}.zip
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_${{steps.vars.outputs.release_date}}-xapian.zip
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
release on date: ${{steps.vars.outputs.release_date}} time: ${{steps.vars.outputs.release_time_clock}}
|
||||
branch: ${{ github.ref_name }}
|
||||
commit: ${{ steps.vars.outputs.sha_short }}
|
||||
Qt version: Qt5.15.2, Qt6.X
|
||||
Windows built with: msvc64, Visual studio 2019
|
||||
AppImage built with: Ubuntu-20.04 ,latest gcc
|
||||
macos built with: macos-10.15,macos-11.0,clang_64 x86_64
|
||||
Qt6.X(Universal Build)
|
||||
Qt5.15.2(Intel Kind)
|
||||
auto built by github action. use on your on risk:-)
|
||||
**recommend version**:Qt6.X (with the latest bug fixes and performance enhancements)
|
||||
|
||||
Filename pattern: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) is enabled by default which offers 10X~20X performance
|
||||
------------------------------
|
||||
文件名的模式: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) 用于全文索引的创建,提供更快的全文索引创建、搜索支持
|
||||
比如:
|
||||
6.4.3-GoldenDict.exe_windows-2022_20230502.zip
|
||||
表示基于qt6.4.3,windows-2022, 于20230502日创建的版本。
|
||||
|
||||
|
||||
CHANGES:
|
||||
${{ steps.changelog.outputs.changelog }}
|
||||
|
||||
- name: upload goldendict.exe only
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
|
@ -168,7 +179,8 @@ jobs:
|
|||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: release/${{ env.targetName }}
|
||||
asset_name: ${{ matrix.qt_ver }}.${{ matrix.os }}-${{ env.targetName }}
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
|
@ -179,7 +191,8 @@ jobs:
|
|||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: release/GoldenDict.pdb
|
||||
asset_name: ${{ matrix.qt_ver }}.${{ matrix.os }}-GoldenDict.pdb
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
|
@ -198,13 +211,54 @@ jobs:
|
|||
cd ${{ steps.package.outputs.packageName }}
|
||||
ls *.exe
|
||||
- name: upload goldendict installer
|
||||
# if: startsWith(github.event.ref, 'refs/tags/')
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.package.outputs.packageName }}/GoldenDict-ng-v23-Installer.exe
|
||||
asset_name: ${{ matrix.qt_ver }}-GoldenDict-ng-Installer.exe
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
|
||||
- name: uploadRelease
|
||||
# if: startsWith(github.event.ref, 'refs/tags/')
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.package.outputs.packageName }}.zip
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_${{steps.vars.outputs.release_date}}.zip
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
#### Install instructions for Windows, macOS and Linux
|
||||
|
||||
<https://xiaoyifang.github.io/goldendict-ng/install/>.
|
||||
|
||||
#### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]**
|
||||
|
||||
Qt6.X is recommended for various enhancements.
|
||||
|
||||
Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run).
|
||||
The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed).
|
||||
|
||||
Linux users can use AppImages.
|
||||
|
||||
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.
|
||||
|
||||
#### Build Details
|
||||
|
||||
AppImage: Ubuntu-20.04
|
||||
macOS: macOS-12 and macOS-13
|
||||
Windows: Visual studio 2019
|
||||
|
||||
|
||||
#### Changes
|
||||
|
||||
${{steps.build_changelog.outputs.changelog}}
|
6
.github/workflows/windows-PR-check.yml
vendored
|
@ -27,7 +27,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
os: [windows-2019]
|
||||
qt_ver: [5.15.2,6.4.3]
|
||||
qt_ver: [5.15.2,6.5.1]
|
||||
qt_arch: [win64_msvc2019_64]
|
||||
steps:
|
||||
- uses: actions/setup-python@v3
|
||||
|
@ -39,7 +39,7 @@ jobs:
|
|||
with:
|
||||
version: ${{ matrix.qt_ver }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
cached: 'false'
|
||||
|
||||
modules: qtwebengine
|
||||
- name: Install Qt
|
||||
if: ${{ matrix.qt_ver != '5.15.2' }}
|
||||
|
@ -48,7 +48,7 @@ jobs:
|
|||
version: ${{ matrix.qt_ver }}
|
||||
# target: ${{ matrix.qt_target }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
cached: 'false'
|
||||
|
||||
modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech
|
||||
setup-python: 'false'
|
||||
|
||||
|
|
150
.github/workflows/windows.yml
vendored
|
@ -14,7 +14,7 @@ on:
|
|||
# - staged
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- ".github/**"
|
||||
# - ".github/**"
|
||||
- "howto/**"
|
||||
- "*.md"
|
||||
- ".clang-format"
|
||||
|
@ -32,9 +32,9 @@ jobs:
|
|||
qt_arch: [win64_msvc2019_64]
|
||||
env:
|
||||
targetName: GoldenDict.exe
|
||||
version: 23.06.01
|
||||
version-suffix: ChildrenDay
|
||||
prerelease: false
|
||||
version: 23.06.02
|
||||
version-suffix: alpha
|
||||
prerelease: true
|
||||
# 步骤
|
||||
steps:
|
||||
# 安装Qt
|
||||
|
@ -47,7 +47,7 @@ jobs:
|
|||
# Target platform for build
|
||||
# target: ${{ matrix.qt_target }}
|
||||
arch: ${{ matrix.qt_arch }}
|
||||
cached: 'false'
|
||||
|
||||
modules: qtwebengine
|
||||
# 拉取代码
|
||||
- uses: actions/checkout@v3
|
||||
|
@ -59,16 +59,12 @@ jobs:
|
|||
id: changelog
|
||||
shell: bash
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 2p)
|
||||
previousTag=$(git tag --sort=-creatordate | grep "^v" | sed -n 2p)
|
||||
echo "previousTag : $previousTag"
|
||||
|
||||
CHANGELOG="$(git log --oneline --no-decorate $previousTag..HEAD)"
|
||||
CHANGELOG="${CHANGELOG//'%'/'%25'}"
|
||||
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
|
||||
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
|
||||
CHANGELOG="${CHANGELOG//'\"'/'%22'}"
|
||||
CHANGELOG="${CHANGELOG//"'"/ }"
|
||||
echo "::set-output name=changelog::$(echo "$CHANGELOG")"
|
||||
|
||||
echo "::set-output name=prev_tag::$previousTag"
|
||||
echo "::set-output name=curr_tag::$(git tag --sort=-creatordate | grep "^v" | sed -n 1p)"
|
||||
|
||||
- name: Set outputs
|
||||
id: vars
|
||||
|
@ -82,9 +78,15 @@ jobs:
|
|||
|
||||
- name: version-file
|
||||
shell: bash
|
||||
env:
|
||||
VAR_SUFFIX: ${{env.version-suffix}}
|
||||
VAR_VERSION: ${{env.version}}
|
||||
run: |
|
||||
previousTag=$(git tag --sort=-creatordate | sed -n 1p |cut -c 2-)
|
||||
echo "$previousTag">version.txt
|
||||
current_tag=$(git rev-parse --short=8 HEAD)
|
||||
release_date=$(date +'%Y%m%d')
|
||||
echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt
|
||||
cat version.txt
|
||||
echo "$version"
|
||||
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
# msvc编译
|
||||
|
@ -114,44 +116,47 @@ jobs:
|
|||
$name = ${env:archiveName}
|
||||
echo "::set-output name=packageName::$name"
|
||||
|
||||
- name: uploadRelease
|
||||
# if: startsWith(github.event.ref, 'refs/tags/')
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
- name: "Build Changelog"
|
||||
id: build_changelog
|
||||
uses: mikepenz/release-changelog-builder-action@v3
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.package.outputs.packageName }}.zip
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_${{steps.vars.outputs.release_date}}.zip
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
release on date: ${{steps.vars.outputs.release_date}} time: ${{steps.vars.outputs.release_time_clock}}
|
||||
branch: ${{ github.ref_name }}
|
||||
commit: ${{ steps.vars.outputs.sha_short }}
|
||||
Qt version: Qt5.15.2, Qt6.X
|
||||
Windows built with: msvc64, Visual studio 2019
|
||||
## goldendict.exe can not be used alone
|
||||
if you have a previous version. replace this maybe ok. if not ,download the whole bundle.
|
||||
AppImage built with: Ubuntu-20.04 ,latest gcc
|
||||
macos built with: macos-10.15,macos-11.0,clang_64 x86_64
|
||||
Qt6.X(Universal Build)
|
||||
Qt5.15.2(Intel Kind)
|
||||
auto built by github action. use on your on risk:-)
|
||||
**recommend version**:Qt6.X (with the latest bug fixes and performance enhancements)
|
||||
commitMode: false
|
||||
fromTag: ${{ steps.changelog.outputs.prev_tag }}
|
||||
toTag: "${{ steps.changelog.outputs.curr_tag }}"
|
||||
configurationJson: |
|
||||
{
|
||||
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>🔴 Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>",
|
||||
"categories": [
|
||||
{
|
||||
"title": "## 🚀 Features",
|
||||
"labels": ["feature","feat","opt"]
|
||||
},
|
||||
{
|
||||
"title": "## 🐛 Fixes",
|
||||
"labels": ["fix","bug"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🤖 Github action",
|
||||
"labels": ["action"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"title": "## 🧼 Clean Code",
|
||||
"labels": ["clean"]
|
||||
}
|
||||
|
||||
Filename pattern: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) is enabled by default which offers 10X~20X performance
|
||||
------------------------------
|
||||
文件名的模式: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
|
||||
[xapian](https://xapian.org/) 用于全文索引的创建,提供更快的全文索引创建、搜索支持
|
||||
比如:
|
||||
6.4.3-GoldenDict.exe_windows-2022_20230502.zip
|
||||
表示基于qt6.4.3,windows-2022, 于20230502日创建的版本。
|
||||
],
|
||||
"label_extractor": [
|
||||
{
|
||||
"pattern": "([^:]*):.*",
|
||||
"target": "$1",
|
||||
"on_property": "title",
|
||||
"flags": "gu"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
CHANGES:
|
||||
${{ steps.changelog.outputs.changelog }}
|
||||
- name: upload goldendict.exe only
|
||||
# if: startsWith(github.event.ref, 'refs/tags/')
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
|
@ -159,7 +164,8 @@ jobs:
|
|||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: release/${{ env.targetName }}
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
|
@ -187,8 +193,48 @@ jobs:
|
|||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.package.outputs.packageName }}/GoldenDict-ng-v23-Installer.exe
|
||||
asset_name: ${{ matrix.qt_ver }}-GoldenDict-ng-Installer.exe
|
||||
tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
- name: uploadRelease
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ steps.package.outputs.packageName }}.zip
|
||||
asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_${{steps.vars.outputs.release_date}}.zip
|
||||
|
||||
tag: tag-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }}
|
||||
overwrite: true
|
||||
release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
|
||||
prerelease: ${{env.prerelease}}
|
||||
body: |
|
||||
#### Install instructions for Windows, macOS and Linux
|
||||
|
||||
<https://xiaoyifang.github.io/goldendict-ng/install/>.
|
||||
|
||||
#### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]**
|
||||
|
||||
Qt6.X is recommended for various enhancements.
|
||||
|
||||
Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run).
|
||||
The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed).
|
||||
|
||||
Linux users can use AppImages.
|
||||
|
||||
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.
|
||||
|
||||
#### Build Details
|
||||
|
||||
AppImage: Ubuntu-20.04
|
||||
macOS: macOS-12 and macOS-13
|
||||
Windows: Visual studio 2019
|
||||
|
||||
|
||||
|
||||
#### Changes
|
||||
|
||||
${{steps.build_changelog.outputs.changelog}}
|
||||
|
|
5
.gitignore
vendored
|
@ -53,3 +53,8 @@ CMakeSettings.json
|
|||
goldendict.vcxproj
|
||||
goldendict.vcxproj.filters
|
||||
GoldenDict_resource.rc
|
||||
|
||||
*.TMP
|
||||
*.orig
|
||||
|
||||
node_modules
|
2
.prettierignore
Normal file
|
@ -0,0 +1,2 @@
|
|||
**/.clang-format
|
||||
|
1
.prettierrc.json
Normal file
|
@ -0,0 +1 @@
|
|||
|
|
@ -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)
|
||||
|
@ -15,7 +14,7 @@ option(USE_SYSTEM_TOML "use system toml++ instead of bundled one" OFF)
|
|||
include(FeatureSummary)
|
||||
|
||||
project(goldendict-ng
|
||||
VERSION 23.06.01
|
||||
VERSION 23.06.02
|
||||
LANGUAGES CXX C)
|
||||
|
||||
set(GOLDENDICT "goldendict") # binary/executable name
|
||||
|
@ -95,6 +94,11 @@ endif ()
|
|||
# Note: used as c++ string thus need surrounding " "
|
||||
add_compile_definitions(PROGRAM_VERSION="${PROJECT_VERSION}")
|
||||
|
||||
if (LINUX)
|
||||
# see: config.cc -> getProgramDataDir
|
||||
add_compile_definitions(PROGRAM_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/goldendict")
|
||||
endif ()
|
||||
|
||||
target_link_libraries(${GOLDENDICT} PRIVATE
|
||||
Qt6::Xml
|
||||
Qt6::Concurrent
|
||||
|
|
|
@ -40,7 +40,6 @@ pkg_check_modules(PKGCONFIG_DEPS IMPORTED_TARGET
|
|||
vorbis # .ogg
|
||||
vorbisfile
|
||||
liblzma
|
||||
libzstd
|
||||
)
|
||||
|
||||
target_link_libraries(${GOLDENDICT} PRIVATE
|
||||
|
|
|
@ -15,16 +15,15 @@ foreach (A_WIN_LIB ${WINLIBS_FILES})
|
|||
target_link_libraries(${GOLDENDICT} PRIVATE ${A_WIN_LIB})
|
||||
endforeach ()
|
||||
|
||||
file(GLOB WINLIBS_FILES "${CMAKE_SOURCE_DIR}/winlibs/lib/xapian/rel/*.lib")
|
||||
foreach (A_WIN_LIB ${WINLIBS_FILES})
|
||||
target_link_libraries(${GOLDENDICT} PRIVATE ${A_WIN_LIB})
|
||||
endforeach ()
|
||||
|
||||
# zim dependencies
|
||||
file(GLOB WINLIBS_FILES "${CMAKE_SOURCE_DIR}/winlibs/lib/*.lib")
|
||||
foreach (A_WIN_LIB ${WINLIBS_FILES})
|
||||
target_link_libraries(${GOLDENDICT} PRIVATE ${A_WIN_LIB})
|
||||
endforeach ()
|
||||
set(THIRD_PARTY_LIBARY
|
||||
debug ${CMAKE_SOURCE_DIR}/winlibs/lib/dbg/lzma.lib optimized ${CMAKE_SOURCE_DIR}/winlibs/lib/lzma.lib
|
||||
debug ${CMAKE_SOURCE_DIR}/winlibs/lib/dbg/zstd.lib optimized ${CMAKE_SOURCE_DIR}/winlibs/lib/zstd.lib
|
||||
debug ${CMAKE_SOURCE_DIR}/winlibs/lib/dbg/xapian.lib optimized ${CMAKE_SOURCE_DIR}/winlibs/lib/xapian.lib
|
||||
debug ${CMAKE_SOURCE_DIR}/winlibs/lib/dbg/hunspell-1.7.lib optimized ${CMAKE_SOURCE_DIR}/winlibs/lib/hunspell-1.7.lib
|
||||
debug ${CMAKE_SOURCE_DIR}/winlibs/lib/dbg/zim.lib optimized ${CMAKE_SOURCE_DIR}/winlibs/lib/zim.lib
|
||||
debug ${CMAKE_SOURCE_DIR}/winlibs/lib/dbg/opencc.lib optimized ${CMAKE_SOURCE_DIR}/winlibs/lib/opencc.lib
|
||||
)
|
||||
target_link_libraries(${GOLDENDICT} PRIVATE ${THIRD_PARTY_LIBARY})
|
||||
|
||||
# Copy .dlls to output dir
|
||||
|
||||
|
@ -34,13 +33,11 @@ foreach (A_DLL_FILE ${DLL_FILES})
|
|||
configure_file("${A_DLL_FILE}" "${CMAKE_BINARY_DIR}/${TEMP_VAR_HOLDING_DLL_FILENAME}" COPYONLY)
|
||||
endforeach ()
|
||||
|
||||
file(GLOB DLL_FILES LIST_DIRECTORIES false "${CMAKE_SOURCE_DIR}/winlibs/lib/xapian/rel/*.dll")
|
||||
foreach (A_DLL_FILE ${DLL_FILES})
|
||||
get_filename_component(TEMP_VAR_HOLDING_DLL_FILENAME ${A_DLL_FILE} NAME)
|
||||
configure_file("${A_DLL_FILE}" "${CMAKE_BINARY_DIR}/${TEMP_VAR_HOLDING_DLL_FILENAME}" COPYONLY)
|
||||
endforeach ()
|
||||
|
||||
file(GLOB DLL_FILES LIST_DIRECTORIES false "${CMAKE_SOURCE_DIR}/winlibs/lib/*.dll")
|
||||
if (CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
file(GLOB DLL_FILES LIST_DIRECTORIES false "${CMAKE_SOURCE_DIR}/winlibs/lib/dbg/*.dll")
|
||||
else ()
|
||||
file(GLOB DLL_FILES LIST_DIRECTORIES false "${CMAKE_SOURCE_DIR}/winlibs/lib/*.dll")
|
||||
endif ()
|
||||
foreach (A_DLL_FILE ${DLL_FILES})
|
||||
get_filename_component(TEMP_VAR_HOLDING_DLL_FILENAME ${A_DLL_FILE} NAME)
|
||||
configure_file("${A_DLL_FILE}" "${CMAKE_BINARY_DIR}/${TEMP_VAR_HOLDING_DLL_FILENAME}" COPYONLY)
|
||||
|
@ -49,7 +46,9 @@ endforeach ()
|
|||
if (WITH_EPWING_SUPPORT)
|
||||
add_subdirectory(thirdparty/eb EXCLUDE_FROM_ALL)
|
||||
target_include_directories(${GOLDENDICT} PRIVATE
|
||||
thirdparty
|
||||
)
|
||||
thirdparty
|
||||
)
|
||||
target_link_libraries(${GOLDENDICT} PRIVATE eb)
|
||||
|
||||
set_target_properties(eb PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
endif ()
|
||||
|
|
128
CODE_OF_CONDUCT.md
Normal file
|
@ -0,0 +1,128 @@
|
|||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
1
CONTRIBUTING.md
Normal file
|
@ -0,0 +1 @@
|
|||
https://xiaoyifang.github.io/goldendict-ng/developer/
|
205
README.md
|
@ -2,9 +2,9 @@
|
|||
|
||||
[![Crowdin](https://badges.crowdin.net/goldendict-ng/localized.svg)](https://crowdin.com/project/goldendict-ng)
|
||||
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=xiaoyifang_goldendict&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=xiaoyifang_goldendict)
|
||||
[![Windows-6.x-xapian](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/windows-6.x-xapian.yml/badge.svg)](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/windows-6.x-xapian.yml)
|
||||
[![Ubuntu-6.2-xapian](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/ubuntu-6.2-xapian.yml/badge.svg)](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/ubuntu-6.2-xapian.yml)
|
||||
[![macos-homebrew-xapian](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/macos-homebrew-xapian.yml/badge.svg)](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/macos-homebrew-xapian.yml)
|
||||
[![Windows-6.x](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/windows-6.x.yml/badge.svg)](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/windows-6.x.yml)
|
||||
[![Ubuntu-6.2](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/ubuntu-6.2.yml/badge.svg?branch=staged)](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/ubuntu-6.2.yml)
|
||||
[![macos-homebrew](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/macos-homebrew.yml/badge.svg)](https://github.com/xiaoyifang/goldendict-ng/actions/workflows/macos-homebrew.yml)
|
||||
|
||||
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
|
||||
|
@ -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.
|
||||
<https://xiaoyifang.github.io/goldendict-ng/install/>
|
||||
|
||||
## Help GoldenDict's Development
|
||||
|
||||
|
@ -72,172 +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,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**).
|
||||
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"
|
||||
```
|
||||
<https://xiaoyifang.github.io/goldendict-ng/howto/build_from_source/>
|
||||
|
||||
## Support
|
||||
|
||||
|
@ -245,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 <b>GNU GPLv3+</b> license, a copy of which can be found in the `LICENSE.txt` file.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
TEMPLATE = app
|
||||
TARGET = goldendict
|
||||
VERSION = 23.06.01-ChildrenDay
|
||||
VERSION = 23.06.02-alpha
|
||||
|
||||
# Generate version file. We do this here and in a build rule described later.
|
||||
# The build rule is required since qmake isn't run each time the project is
|
||||
|
@ -19,13 +19,7 @@ system(git describe --tags --always --dirty): hasGit=1
|
|||
}
|
||||
|
||||
|
||||
!CONFIG( verbose_build_output ) {
|
||||
!win32|*-msvc* {
|
||||
# Reduce build log verbosity except for MinGW builds (mingw-make cannot
|
||||
# execute "@echo ..." commands inserted by qmake).
|
||||
CONFIG += silent
|
||||
}
|
||||
}
|
||||
# users can suppress verbose console compile output by add `CONFIG += silent` to qmake.
|
||||
|
||||
CONFIG( release, debug|release ) {
|
||||
DEFINES += NDEBUG
|
||||
|
@ -74,8 +68,8 @@ contains(DEFINES, MAKE_QTMULTIMEDIA_PLAYER|MAKE_FFMPEG_PLAYER) {
|
|||
|
||||
#xapian is the must option now.
|
||||
win32{
|
||||
Debug: LIBS+= -L$$PWD/winlibs/lib/xapian/dbg/ -lxapian
|
||||
Release: LIBS+= -L$$PWD/winlibs/lib/xapian/rel/ -lxapian
|
||||
Debug: LIBS+= -L$$PWD/winlibs/lib/dbg/ -lxapian
|
||||
Release: LIBS+= -L$$PWD/winlibs/lib -lxapian
|
||||
}else{
|
||||
LIBS += -lxapian
|
||||
}
|
||||
|
@ -83,8 +77,8 @@ win32{
|
|||
CONFIG( use_breakpad ) {
|
||||
DEFINES += USE_BREAKPAD
|
||||
|
||||
win32: LIBS += -L$$PWD/thirdparty/breakpad/lib/ -llibbreakpad -llibbreakpad_client
|
||||
else:unix: LIBS += -L$$PWD/thirdparty/breakpad/lib/ -llibbreakpa
|
||||
LIBS += -L$$PWD/thirdparty/breakpad/lib/ -llibbreakpad -llibbreakpad_client
|
||||
|
||||
|
||||
INCLUDEPATH += $$PWD/thirdparty/breakpad/include
|
||||
DEPENDPATH += $$PWD/thirdparty/breakpad/include
|
||||
|
@ -138,7 +132,7 @@ win32 {
|
|||
|
||||
win32-msvc* {
|
||||
# VS does not recognize 22.number.alpha,cause errors during compilation under MSVC++
|
||||
VERSION = 23.06.01
|
||||
VERSION = 23.06.02
|
||||
DEFINES += __WIN32 _CRT_SECURE_NO_WARNINGS
|
||||
contains(QMAKE_TARGET.arch, x86_64) {
|
||||
DEFINES += NOMINMAX __WIN64
|
||||
|
@ -150,9 +144,8 @@ win32 {
|
|||
|
||||
# QMAKE_CXXFLAGS_RELEASE += /GL # slows down the linking significantly
|
||||
LIBS += -lshell32 -luser32 -lsapi -lole32
|
||||
Debug: LIBS+= -lhunspelld
|
||||
Release: LIBS+= -lhunspell
|
||||
HUNSPELL_LIB = hunspell
|
||||
Debug: LIBS+= -L$$PWD/winlibs/lib/dbg/ -lhunspell-1.7
|
||||
Release: LIBS+= -L$$PWD/winlibs/lib/ -lhunspell-1.7
|
||||
}
|
||||
|
||||
LIBS += -lwsock32 \
|
||||
|
@ -291,16 +284,17 @@ HEADERS += \
|
|||
src/ankiconnector.hh \
|
||||
src/article_maker.hh \
|
||||
src/article_netmgr.hh \
|
||||
src/common/atomic_rename.hh \
|
||||
src/audiolink.hh \
|
||||
src/audioplayerfactory.hh \
|
||||
src/audioplayerinterface.hh \
|
||||
src/btreeidx.hh \
|
||||
src/chunkedstorage.hh \
|
||||
src/common/atomic_rename.hh \
|
||||
src/common/base_type.hh \
|
||||
src/common/ex.hh \
|
||||
src/common/file.hh \
|
||||
src/common/filetype.hh \
|
||||
src/common/folding.hh \
|
||||
src/common/gddebug.hh \
|
||||
src/common/globalbroadcaster.hh \
|
||||
src/common/globalregex.hh \
|
||||
|
@ -359,7 +353,6 @@ HEADERS += \
|
|||
src/externalviewer.hh \
|
||||
src/ffmpegaudio.hh \
|
||||
src/ffmpegaudioplayer.hh \
|
||||
src/common/folding.hh \
|
||||
src/ftshelpers.hh \
|
||||
src/fulltextsearch.hh \
|
||||
src/gestures.hh \
|
||||
|
@ -376,6 +369,7 @@ HEADERS += \
|
|||
src/metadata.hh \
|
||||
src/multimediaaudioplayer.hh \
|
||||
src/parsecmdline.hh \
|
||||
src/pronounceengine.hh \
|
||||
src/resourceschemehandler.hh \
|
||||
src/splitfile.hh \
|
||||
src/termination.hh \
|
||||
|
@ -407,10 +401,10 @@ HEADERS += \
|
|||
src/ui/searchpanewidget.hh \
|
||||
src/ui/stylescombobox.hh \
|
||||
src/ui/translatebox.hh \
|
||||
src/version.hh \
|
||||
src/webmultimediadownload.hh \
|
||||
src/weburlrequestinterceptor.hh \
|
||||
src/wordfinder.hh \
|
||||
src/wordlist.hh \
|
||||
src/zipfile.hh \
|
||||
thirdparty/tomlplusplus/toml++/toml.h
|
||||
|
||||
|
@ -420,13 +414,14 @@ SOURCES += \
|
|||
src/ankiconnector.cc \
|
||||
src/article_maker.cc \
|
||||
src/article_netmgr.cc \
|
||||
src/common/atomic_rename.cc \
|
||||
src/audiolink.cc \
|
||||
src/audioplayerfactory.cc \
|
||||
src/btreeidx.cc \
|
||||
src/chunkedstorage.cc \
|
||||
src/common/atomic_rename.cc \
|
||||
src/common/file.cc \
|
||||
src/common/filetype.cc \
|
||||
src/common/folding.cc \
|
||||
src/common/gddebug.cc \
|
||||
src/common/globalbroadcaster.cc \
|
||||
src/common/globalregex.cc \
|
||||
|
@ -481,7 +476,6 @@ SOURCES += \
|
|||
src/externalaudioplayer.cc \
|
||||
src/externalviewer.cc \
|
||||
src/ffmpegaudio.cc \
|
||||
src/common/folding.cc \
|
||||
src/ftshelpers.cc \
|
||||
src/fulltextsearch.cc \
|
||||
src/gestures.cc \
|
||||
|
@ -499,6 +493,7 @@ SOURCES += \
|
|||
src/metadata.cc \
|
||||
src/multimediaaudioplayer.cc \
|
||||
src/parsecmdline.cc \
|
||||
src/pronounceengine.cc \
|
||||
src/resourceschemehandler.cc \
|
||||
src/splitfile.cc \
|
||||
src/termination.cc \
|
||||
|
@ -528,10 +523,10 @@ SOURCES += \
|
|||
src/ui/searchpanel.cc \
|
||||
src/ui/stylescombobox.cc \
|
||||
src/ui/translatebox.cc \
|
||||
src/version.cc \
|
||||
src/webmultimediadownload.cc \
|
||||
src/weburlrequestinterceptor.cc \
|
||||
src/wordfinder.cc \
|
||||
src/wordlist.cc \
|
||||
src/zipfile.cc \
|
||||
thirdparty/fmt/format.cc
|
||||
|
||||
|
@ -559,7 +554,7 @@ SOURCES += src/common/wildcard.cc
|
|||
|
||||
CONFIG( zim_support ) {
|
||||
DEFINES += MAKE_ZIM_SUPPORT
|
||||
LIBS += -llzma -lzstd -lzim
|
||||
LIBS += -llzma -lzim
|
||||
|
||||
win32{
|
||||
Debug: LIBS+= -L$$PWD/winlibs/lib/dbg/
|
||||
|
@ -595,9 +590,16 @@ CONFIG( chinese_conversion_support ) {
|
|||
src/ui/chineseconversion.hh
|
||||
SOURCES += src/dict/chinese.cc \
|
||||
src/ui/chineseconversion.cc
|
||||
|
||||
win32{
|
||||
Debug: LIBS+= -L$$PWD/winlibs/lib/dbg/ -lopencc
|
||||
Release: LIBS+= -L$$PWD/winlibs/lib -lopencc
|
||||
}else{
|
||||
LIBS += -lopencc
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
RESOURCES += resources.qrc \
|
||||
src/scripts/scripts.qrc \
|
||||
icons/flags.qrc \
|
||||
|
|
Before Width: | Height: | Size: 1.4 KiB |
381
icons/lsasound.svg
Normal file
|
@ -0,0 +1,381 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
sodipodi:docname="lsasound.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
sodipodi:version="0.32"
|
||||
id="svg2963"
|
||||
height="48px"
|
||||
width="48px"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1"
|
||||
inkscape:export-filename="Package-x-generic.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
|
||||
id="defs3"><rect
|
||||
x="10.606602"
|
||||
y="25.102291"
|
||||
width="26.870057"
|
||||
height="13.788583"
|
||||
id="rect3582" /><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 24 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="48 : 24 : 1"
|
||||
inkscape:persp3d-origin="24 : 16 : 1"
|
||||
id="perspective77" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5060"
|
||||
id="radialGradient6719"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
|
||||
cx="605.71429"
|
||||
cy="486.64789"
|
||||
fx="605.71429"
|
||||
fy="486.64789"
|
||||
r="117.14286" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient5060"><stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5062" /><stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5064" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5060"
|
||||
id="radialGradient6717"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
|
||||
cx="605.71429"
|
||||
cy="486.64789"
|
||||
fx="605.71429"
|
||||
fy="486.64789"
|
||||
r="117.14286" /><linearGradient
|
||||
id="linearGradient5048"><stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="0"
|
||||
id="stop5050" /><stop
|
||||
id="stop5056"
|
||||
offset="0.5"
|
||||
style="stop-color:black;stop-opacity:1;" /><stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5052" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5048"
|
||||
id="linearGradient6715"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
|
||||
x1="302.85715"
|
||||
y1="366.64789"
|
||||
x2="302.85715"
|
||||
y2="609.50507" /><linearGradient
|
||||
id="linearGradient2869"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2871" /><stop
|
||||
style="stop-color:#cccccc;stop-opacity:1.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2873" /></linearGradient><linearGradient
|
||||
id="linearGradient4995"><stop
|
||||
id="stop4997"
|
||||
offset="0"
|
||||
style="stop-color:#de9523;stop-opacity:1;" /><stop
|
||||
id="stop4999"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#a36d18;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4987"
|
||||
inkscape:collect="always"><stop
|
||||
id="stop4989"
|
||||
offset="0"
|
||||
style="stop-color:#a0670c;stop-opacity:1;" /><stop
|
||||
id="stop4991"
|
||||
offset="1"
|
||||
style="stop-color:#a0670c;stop-opacity:0;" /></linearGradient><linearGradient
|
||||
id="linearGradient4979"><stop
|
||||
id="stop4981"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#fbf0e0;stop-opacity:1.0000000;" /><stop
|
||||
id="stop4983"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#f0ce99;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4946"
|
||||
inkscape:collect="always"><stop
|
||||
id="stop4948"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" /><stop
|
||||
id="stop4950"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0;" /></linearGradient><linearGradient
|
||||
id="linearGradient4222"><stop
|
||||
id="stop4224"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" /><stop
|
||||
id="stop4226"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.68639052;" /></linearGradient><linearGradient
|
||||
id="linearGradient4210"><stop
|
||||
id="stop4212"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#eaba6f;stop-opacity:1.0000000;" /><stop
|
||||
id="stop4214"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#b97a1b;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4192"><stop
|
||||
id="stop4194"
|
||||
offset="0"
|
||||
style="stop-color:#e9b96e;stop-opacity:1;" /><stop
|
||||
id="stop4196"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#f1d19e;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4182"><stop
|
||||
id="stop4184"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#a36d18;stop-opacity:1.0000000;" /><stop
|
||||
id="stop4186"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#d79020;stop-opacity:1.0000000;" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4946"
|
||||
id="radialGradient2252"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,2.658463e-16,23.58206)"
|
||||
cx="22.930462"
|
||||
cy="35.373093"
|
||||
fx="22.930462"
|
||||
fy="35.373093"
|
||||
r="17.576654" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4995"
|
||||
id="linearGradient2274"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="36.288929"
|
||||
y1="14.661557"
|
||||
x2="47.065835"
|
||||
y2="15.267649" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4192"
|
||||
id="linearGradient2277"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,0.986355,0.000000,0.316638)"
|
||||
x1="25.381256"
|
||||
y1="24.720648"
|
||||
x2="24.119167"
|
||||
y2="16.170370" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4182"
|
||||
id="linearGradient2280"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,1.039184,0.000000,-4.057054e-2)"
|
||||
x1="16.148972"
|
||||
y1="12.636667"
|
||||
x2="34.193642"
|
||||
y2="12.636667" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4987"
|
||||
id="linearGradient2282"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="21.906841"
|
||||
y1="9.7577486"
|
||||
x2="22.071806"
|
||||
y2="16.020695" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4222"
|
||||
id="linearGradient2285"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="18.706615"
|
||||
y1="19.912336"
|
||||
x2="30.014812"
|
||||
y2="47.388485" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4210"
|
||||
id="linearGradient2288"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="24.990499"
|
||||
y1="34.004856"
|
||||
x2="24.990499"
|
||||
y2="22.585211" /><radialGradient
|
||||
xlink:href="#a"
|
||||
id="d"
|
||||
cx="4.3920336"
|
||||
cy="32.307854"
|
||||
r="6.375"
|
||||
fx="4.3920336"
|
||||
fy="32.307854"
|
||||
gradientTransform="matrix(1,0,0,0.5098,0,16.05392)"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#a"
|
||||
id="e"
|
||||
cx="4.3920336"
|
||||
cy="32.307854"
|
||||
r="6.375"
|
||||
fx="4.3920336"
|
||||
fy="32.307854"
|
||||
gradientTransform="matrix(1,0,0,0.5098,0,16.05392)"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#linearGradient5060"
|
||||
id="c"
|
||||
cx="23.25"
|
||||
cy="35.375"
|
||||
r="18.5"
|
||||
fx="23.25"
|
||||
fy="35.375"
|
||||
gradientTransform="matrix(1,0,0,0.39865,0,21.2728)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="a"><stop
|
||||
offset="0"
|
||||
stop-color="#fff"
|
||||
id="stop3397" /><stop
|
||||
offset="1"
|
||||
stop-color="#fff"
|
||||
stop-opacity="0"
|
||||
id="stop3399" /></linearGradient></defs><sodipodi:namedview
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-height="991"
|
||||
inkscape:window-width="1920"
|
||||
stroke="#c17d11"
|
||||
fill="#e9b96e"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
showgrid="false"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:cy="80.079843"
|
||||
inkscape:cx="83.615377"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="0.16470588"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:window-maximized="1" /><metadata
|
||||
id="metadata4"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:creator><cc:Agent><dc:title>Jakub Steiner</dc:title></cc:Agent></dc:creator><dc:source>http://jimmac.musichall.cz/</dc:source><dc:subject><rdf:Bag><rdf:li>package</rdf:li><rdf:li>archive</rdf:li><rdf:li>tarball</rdf:li><rdf:li>tar</rdf:li><rdf:li>bzip</rdf:li><rdf:li>gzip</rdf:li><rdf:li>zip</rdf:li><rdf:li>arj</rdf:li><rdf:li>tar</rdf:li><rdf:li>jar</rdf:li></rdf:Bag></dc:subject><cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><g
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1"><g
|
||||
style="display:inline"
|
||||
transform="matrix(2.105461e-2,0,0,2.086758e-2,42.60172,35.4036)"
|
||||
id="g6707"><rect
|
||||
style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
id="rect6709"
|
||||
width="1339.6335"
|
||||
height="478.35718"
|
||||
x="-1559.2523"
|
||||
y="-150.69685" /><path
|
||||
style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
|
||||
id="path6711"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path6713"
|
||||
d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
|
||||
style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /></g><rect
|
||||
ry="2.3944440"
|
||||
rx="2.4241352"
|
||||
y="15.275433"
|
||||
x="7.4623847"
|
||||
height="23.112879"
|
||||
width="31.978371"
|
||||
id="rect3115"
|
||||
style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2288);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000007;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible" /><rect
|
||||
style="opacity:0.48101267;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient2285);stroke-width:1.0000011;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
|
||||
id="rect4220"
|
||||
width="29.804138"
|
||||
height="21.075352"
|
||||
x="8.4989996"
|
||||
y="16.243698"
|
||||
rx="1.2846882"
|
||||
ry="1.2846882" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path4162"
|
||||
d="M 8.7697819,16.547178 L 13.819731,9.7363408 L 32.615291,9.6353255 L 37.835264,16.408941 L 8.7697819,16.547178 z "
|
||||
style="fill:url(#linearGradient2280);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2282);stroke-width:1.0000008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path4164"
|
||||
d="M 38.276321,16.325703 L 43.469269,23.520364 L 3.9609455,23.520364 L 8.6250143,16.320763 L 38.276321,16.325703 z "
|
||||
style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2277);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000005;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path4178"
|
||||
d="M 32.849333,9.6141009 L 37.532219,16.536370 L 46.565835,20.921197 L 38.451329,12.008545 L 32.849333,9.6141009 z "
|
||||
style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2274);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000005;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
style="opacity:1.0000000;color:#000000;fill:#f8e8cf;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
|
||||
d="M 13.617702,9.7151161 L 9.6419233,16.435355 L 0.50729183,20.820182 L 8.6217973,11.907530 L 13.617702,9.7151161 z "
|
||||
id="path4180" /><path
|
||||
style="opacity:1.0000000;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#f4e3ca;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
|
||||
d="M 37.024959,16.436050 L 41.478871,22.493011 L 5.6482792,22.493011 L 9.7892982,16.312694 L 37.024959,16.436050 z "
|
||||
id="path4954"
|
||||
sodipodi:nodetypes="ccccc" /><g
|
||||
color="#000000"
|
||||
id="g3414"
|
||||
transform="matrix(0.56662726,0,0,0.57555804,7.9823278,3.8741842)"><path
|
||||
fill="url(#c)"
|
||||
fill-rule="evenodd"
|
||||
d="m 41.75,35.375 a 18.5,7.375 0 1 1 -37,0 18.5,7.375 0 1 1 37,0 z"
|
||||
opacity="0.3"
|
||||
overflow="visible"
|
||||
style="fill:url(#c);marker:none"
|
||||
transform="translate(0,2.834646)"
|
||||
id="path3404" /><path
|
||||
fill="#9db029"
|
||||
stroke="#596616"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M 41.625,7.7951523 18.5625,10.629798 v 21.78125 c -1.645955,-0.557651 -3.931785,-0.703429 -6.4375,-0.1875 -4.356314,0.896969 -7.4778602,3.299487 -7,5.34375 0.4778601,2.044263 4.393685,2.99072 8.75,2.09375 4.116641,-0.84762 7.684123,-3.037802 7.602633,-5 l 0.15625,-19.03125 16.930457,-2.895306 v 17.284614 c -10.25,-1.5 -13.292201,2.893236 -12.81434,4.9375 0.47786,2.044263 4.393686,2.990719 8.75,2.09375 3.865376,-0.795885 6.63241,-2.763211 6.90625,-4.625 z"
|
||||
display="block"
|
||||
style="marker:none"
|
||||
id="path3406" /><path
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
d="M 40.729036,8.8956383 19.547267,11.730284 V 33.568621 C 11.982012,31.663311 5.8141632,35.40303 6.2685944,37.347065 6.9730255,40.6661 20.646969,38.449299 20.569474,34.208305 l 0.148589,-19.473166 18.850374,-2.892332 v 19.437166 c -7.566284,-1.926647 -13.265498,1.376384 -12.811066,3.32042 0.579431,3.194035 12.378226,2.113362 13.76364,-2.657146 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
style="marker:none"
|
||||
id="path3408" /><path
|
||||
fill="url(#d)"
|
||||
d="m 12.25,32.75 a 6.375,3.25 0 1 1 -12.75,0 6.375,3.25 0 1 1 12.75,0 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
overflow="visible"
|
||||
style="fill:url(#d);marker:none"
|
||||
transform="matrix(0.73452,-0.11164,0.11164,0.73452,3.903362,12.22551)"
|
||||
id="path3410" /><path
|
||||
fill="url(#e)"
|
||||
d="m 12.25,32.75 a 6.375,3.25 0 1 1 -12.75,0 6.375,3.25 0 1 1 12.75,0 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
overflow="visible"
|
||||
style="fill:url(#e);marker:none"
|
||||
transform="matrix(0.73452,-0.11164,0.11164,0.73452,23.74587,9.390864)"
|
||||
id="path3412" /></g><text
|
||||
xml:space="preserve"
|
||||
id="text3580"
|
||||
style="white-space:pre;shape-inside:url(#rect3582);fill:#808080;stroke:#000000"
|
||||
transform="translate(4.5961941,0.70710678)"><tspan
|
||||
x="10.607422"
|
||||
y="36.020065"
|
||||
id="tspan3816"><tspan
|
||||
style="fill:#008000"
|
||||
id="tspan3814">lsa</tspan></tspan></text></g></svg>
|
After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 28 KiB |
241
icons/programdict.svg
Normal file
|
@ -0,0 +1,241 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="48px"
|
||||
height="48px"
|
||||
id="svg1256"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
sodipodi:docname="programdict.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
|
||||
id="defs3"><linearGradient
|
||||
id="linearGradient12512"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop12513" /><stop
|
||||
style="stop-color:#fff520;stop-opacity:0.89108908;"
|
||||
offset="0.50000000"
|
||||
id="stop12517" /><stop
|
||||
style="stop-color:#fff300;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop12514" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient12512"
|
||||
id="radialGradient278"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="55.000000"
|
||||
cy="125.00000"
|
||||
fx="55.000000"
|
||||
fy="125.00000"
|
||||
r="14.375000" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient21644"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop21646" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop21648" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2116"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2118" /><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2120" /></linearGradient><linearGradient
|
||||
id="linearGradient2094"><stop
|
||||
style="stop-color:#d6e3f0;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop2096" /><stop
|
||||
style="stop-color:#95b1cf;stop-opacity:1.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2098" /></linearGradient><linearGradient
|
||||
id="linearGradient2803"><stop
|
||||
id="stop2805"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" /><stop
|
||||
id="stop2807"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#cbcbcb;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient2795"><stop
|
||||
id="stop2797"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.068627454;" /><stop
|
||||
id="stop2799"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="4.9530048"
|
||||
x2="41.219128"
|
||||
y1="4.9530050"
|
||||
x1="35.433035"
|
||||
gradientTransform="matrix(0.254000,0.000000,1.822151e-16,3.759813,0.788629,0.148567)"
|
||||
id="linearGradient2801"
|
||||
xlink:href="#linearGradient2795"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="84.287079"
|
||||
x2="10.219901"
|
||||
y1="93.338043"
|
||||
x1="10.496115"
|
||||
gradientTransform="matrix(2.262742,0.000000,0.000000,0.441942,1.000000,-0.875000)"
|
||||
id="linearGradient2813"
|
||||
xlink:href="#linearGradient2803"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2094"
|
||||
id="linearGradient2100"
|
||||
gradientTransform="matrix(0.957750,0.000000,0.000000,1.027989,1.000000,-0.571911)"
|
||||
x1="6.5871811"
|
||||
y1="22.132999"
|
||||
x2="14.511404"
|
||||
y2="22.132999"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2116"
|
||||
id="linearGradient2112"
|
||||
gradientTransform="matrix(1.025428,0.000000,0.000000,0.957303,0.000000,-0.806758)"
|
||||
x1="73.361984"
|
||||
y1="26.652197"
|
||||
x2="-2.7582901"
|
||||
y2="21.270376"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient21644"
|
||||
id="radialGradient21650"
|
||||
cx="25.125"
|
||||
cy="36.75"
|
||||
fx="25.125"
|
||||
fy="36.75"
|
||||
r="15.75"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,0.595238,-6.245005e-16,14.87500)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3264"><stop
|
||||
id="stop3266"
|
||||
offset="0"
|
||||
style="stop-color:#c9c9c9;stop-opacity:1;" /><stop
|
||||
style="stop-color:#f8f8f8;stop-opacity:1;"
|
||||
offset="0.25"
|
||||
id="stop3276" /><stop
|
||||
style="stop-color:#e2e2e2;stop-opacity:1;"
|
||||
offset="0.5"
|
||||
id="stop3272" /><stop
|
||||
id="stop3274"
|
||||
offset="0.75"
|
||||
style="stop-color:#b0b0b0;stop-opacity:1;" /><stop
|
||||
id="stop3268"
|
||||
offset="1"
|
||||
style="stop-color:#c9c9c9;stop-opacity:1;" /></linearGradient><radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.315315,0,26.81305)"
|
||||
r="19.622213"
|
||||
fy="39.161163"
|
||||
fx="25.455845"
|
||||
cy="39.161163"
|
||||
cx="25.455845"
|
||||
id="radialGradient3262"
|
||||
xlink:href="#linearGradient21644" /><linearGradient
|
||||
gradientTransform="matrix(1.241935,0,0,1.241935,-5.027508,-7.208988)"
|
||||
y2="39.684914"
|
||||
x2="34.534348"
|
||||
y1="12.284524"
|
||||
x1="14.462892"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3281"
|
||||
xlink:href="#linearGradient3264" /></defs><sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="0.27843137"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6568542"
|
||||
inkscape:cx="20.948039"
|
||||
inkscape:cy="24.483573"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="991"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
fill="#ef2929"
|
||||
stroke="#cc0000"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1" /><metadata
|
||||
id="metadata4"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:date /><dc:creator><cc:Agent><dc:title>Jakub Steiner</dc:title></cc:Agent></dc:creator><dc:source>http://jimmac.musichall.cz</dc:source><dc:subject><rdf:Bag><rdf:li>address</rdf:li><rdf:li>contact</rdf:li><rdf:li>book</rdf:li><rdf:li>office</rdf:li></rdf:Bag></dc:subject><cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /></cc:Work><cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"><cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" /><cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" /><cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" /><cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Attribution" /><cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" /><cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" /></cc:License></rdf:RDF></metadata><g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"><path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:1;color:#000000;fill:url(#radialGradient21650);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
id="path21642"
|
||||
sodipodi:cx="25.125"
|
||||
sodipodi:cy="36.75"
|
||||
sodipodi:rx="15.75"
|
||||
sodipodi:ry="9.375"
|
||||
d="M 40.875 36.75 A 15.75 9.375 0 1 1 9.375,36.75 A 15.75 9.375 0 1 1 40.875 36.75 z"
|
||||
transform="matrix(1.150794,0.000000,0.000000,1.000000,-4.913690,0.625000)" /><path
|
||||
style="color:#000000;fill:#5b6b94;fill-opacity:1;fill-rule:nonzero;stroke:#364878;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
d="M 6.3643222,5.5185897 C 6.4551049,3.6036003 7.3719758,2.5542814 9.0788784,2.549044 L 38.405776,2.4590577 C 38.652361,2.4583011 38.974317,2.6592071 38.999012,2.9089888 L 42.257491,35.867228 L 40.942189,35.923862 L 41.571429,42.369516 C 41.632441,42.994499 41.390059,43.52882 40.5,43.533035 L 9.7893046,43.678474 C 7.25676,43.690468 4.6538454,41.59976 4.7759337,39.024403 L 6.3643222,5.5185897 z "
|
||||
id="rect1408"
|
||||
sodipodi:nodetypes="csssccsssss" /><path
|
||||
id="path2489"
|
||||
d="M 40.125,34.875 L 10.9375,35 C 9.3809819,35.177868 8.125,36.39612 8.125,38 C 8.125,39.60388 9.3809819,40.822132 10.9375,41 L 40.125,41.125 L 40.125,41.0625 C 38.469378,40.984348 37.125,39.674851 37.125,38 C 37.125,36.325149 38.469378,35.015652 40.125,34.9375 L 40.125,34.875 z "
|
||||
style="color:#000000;fill:url(#linearGradient2813);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
|
||||
sodipodi:nodetypes="ccccccssc"
|
||||
id="path2784"
|
||||
d="M 9.6875,2.8125 C 7.9805897,2.8125 7.050103,3.8215062 6.96875,5.6738658 L 5.3125,37.825772 C 5.22054,40.904199 7.1393732,42.654485 9.125,43.15625 C 4.875,41.525579 5.4375,34.164455 10.75,34.195222 L 41.648286,34.195222 L 38.335786,3.2432432 C 38.310025,3.0025304 37.987878,2.8125 37.742036,2.8125 L 9.6875,2.8125 z "
|
||||
style="color:#000000;fill:url(#linearGradient2100);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><rect
|
||||
y="3.968539"
|
||||
x="9.7886267"
|
||||
height="29.604792"
|
||||
width="2"
|
||||
id="rect2793"
|
||||
style="opacity:0.48044691;color:#000000;fill:url(#linearGradient2801);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.60818715;visibility:visible;display:inline;overflow:visible"
|
||||
transform="matrix(1.000000,0.000000,-3.582731e-2,0.999358,0.000000,0.000000)" /><path
|
||||
style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2112);stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:20;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
d="M 9.8751008,3.3336831 C 8.1912014,3.3336831 7.5384236,4.0658459 7.4581673,5.887831 L 6.1592633,35.777198 C 7.0925916,34.170451 8.5988591,33.594437 11.011665,33.594437 L 40.963081,33.594437 L 38.137179,3.7573631 C 38.114727,3.5203092 37.793961,3.3336831 37.551434,3.3336831 L 9.8751008,3.3336831 z "
|
||||
id="path2104"
|
||||
sodipodi:nodetypes="cccscssc" /><g
|
||||
id="layer1-6"
|
||||
transform="matrix(0.53009019,0,0,0.4975302,20.296504,20.285242)"><path
|
||||
transform="translate(-0.883885,2.474874)"
|
||||
d="m 45.078058,39.161163 a 19.622213,6.187185 0 1 1 -39.2444265,0 19.622213,6.187185 0 1 1 39.2444265,0 z"
|
||||
id="path3254"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.409091;fill:url(#radialGradient3262);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /><path
|
||||
id="path3243"
|
||||
d="M 23.25,0.46875 C 22.784561,0.50059628 22.332166,0.57268469 21.875,0.625 H 21.84375 L 20.75,6.59375 C 18.967275,6.9997399 17.290091,7.6887415 15.78125,8.625 L 10.875,5.09375 C 9.5487118,6.1234406 8.3418016,7.3243453 7.28125,8.625 l 3.40625,4.96875 c -1.0342329,1.580515 -1.8119683,3.385224 -2.25,5.28125 -7.5e-5,0.009 -6.09e-5,0.02969 0,0.03125 L 2.5,19.84375 c -0.1085533,0.886633 -0.15625,1.802939 -0.15625,2.71875 10e-8,0.7493 0.020689,1.488589 0.09375,2.21875 l 5.9375,1.0625 c 0.422279,2.061892 1.2244587,3.987512 2.34375,5.6875 L 7.1875,36.375 c 1.0113261,1.255518 2.1788917,2.398616 3.4375,3.40625 l 5,-3.4375 c 1.747433,1.114717 3.698083,1.896374 5.8125,2.28125 l 0.9375,5.90625 c 0.666183,0.06064 1.349349,0.0625 2.03125,0.0625 0.962685,-10e-7 1.882237,-0.03648 2.8125,-0.15625 l 1.125,-6.03125 C 30.351311,37.906649 32.237219,37.03996 33.875,35.875 l 4.8125,3.5 c 1.248028,-1.061797 2.389277,-2.282256 3.375,-3.59375 l -3.5,-5.0625 c 0.947853,-1.63699 1.604629,-3.443141 1.9375,-5.375 l 5.90625,-0.9375 c 0.05179,-0.616346 0.0625,-1.214087 0.0625,-1.84375 0,-1.094214 -0.127182,-2.167084 -0.28125,-3.21875 l -6,-1.09375 C 39.717306,16.513776 38.945824,14.893898 37.96875,13.4375 L 41.5,8.59375 C 40.405427,7.2551429 39.156822,6.0185688 37.78125,4.96875 l -5.09375,3.5 C 31.223504,7.6029126 29.648037,6.9385679 27.9375,6.5625 L 27,0.625 C 26.146701,0.52462461 25.286379,0.46875 24.40625,0.46875 c -0.237872,10e-9 -0.482684,-0.007485 -0.71875,0 -0.115083,0.003649 -0.228966,-0.006695 -0.34375,0 -0.03109,0.001813 -0.06272,-0.002123 -0.09375,0 z m 0.8125,15.1875 c 0.114166,-0.0058 0.228152,0 0.34375,0 3.699127,0 6.71875,3.019624 6.71875,6.71875 1e-6,3.699126 -3.019624,6.6875 -6.71875,6.6875 -3.699125,1e-6 -6.6875,-2.988374 -6.6875,-6.6875 1e-6,-3.583527 2.8046,-6.539158 6.34375,-6.71875 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient3281);fill-opacity:1;fill-rule:nonzero;stroke:#808080;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /><path
|
||||
transform="matrix(0.606518,0,0,0.606518,10.15021,7.936835)"
|
||||
d="m 36.239223,23.781593 a 12.727922,12.727922 0 1 1 -25.455844,0 12.727922,12.727922 0 1 1 25.455844,0 z"
|
||||
id="path3283"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.647727;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.64876;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /><path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.346591;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
d="M 22.557788,1.6501132 21.679599,7.4291233 C 20.008601,7.8096689 16.934874,8.9735344 15.520595,9.8511162 L 10.848562,6.3639293 C 9.6053938,7.3290873 9.5201391,7.3945394 8.5260544,8.6136804 l 3.3780526,5.0099536 c -0.969415,1.481461 -2.1338039,4.121495 -2.5518734,6.008088 0,0 -5.9194088,0.997841 -5.9194088,0.997841 -0.1017499,0.831066 -0.05285,2.609798 0.015632,3.294198 l 5.6542436,1.018588 c 0.395814,1.932669 1.8770306,5.043588 2.9261736,6.637034 l -3.575576,4.724044 c 0.9479445,1.176832 1.1376642,1.284521 2.317393,2.229005 l 4.781168,-3.50282 c 1.637918,1.044855 4.889033,2.315886 6.870935,2.676641 l 0.784687,5.706254 c 0.624432,0.05684 2.349481,0.216281 3.221443,0.10402 l 0.878188,-5.940154 c 1.881743,-0.468289 5.13316,-1.80296 6.668298,-2.89491 l 4.776055,3.450808 c 1.169811,-0.995251 1.180292,-1.145216 2.104238,-2.374516 l -3.539198,-5.030701 c 0.888449,-1.534398 2.037228,-4.535223 2.349237,-6.346009 l 5.794642,-0.961463 c 0.04855,-0.577719 0.05091,-2.188789 -0.0935,-3.174545 L 39.463105,19.226449 C 39.022378,17.599038 37.509894,14.666467 36.594056,13.301345 L 40.346408,8.5773019 C 39.320436,7.3225876 38.938964,7.150431 37.649602,6.1664065 L 32.707289,9.7056032 C 31.335043,8.8940304 28.598675,7.6568558 26.995341,7.3043568 L 26.122266,1.6501132 c -0.799821,-0.094085 -3.107395,-0.052306 -3.564478,0 z"
|
||||
id="path3285" /></g></g></svg>
|
After Width: | Height: | Size: 17 KiB |
192
icons/sounddir.svg
Normal file
|
@ -0,0 +1,192 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.0"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg97"
|
||||
sodipodi:docname="sounddir.svg"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview26"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="5.9514821"
|
||||
inkscape:cx="-9.1573829"
|
||||
inkscape:cy="61.749325"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="991"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg97" /><defs
|
||||
id="defs3"><radialGradient
|
||||
cx="605.71429"
|
||||
cy="486.64789"
|
||||
r="117.14286"
|
||||
fx="605.71429"
|
||||
fy="486.64789"
|
||||
id="radialGradient6719"
|
||||
xlink:href="#linearGradient5060"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" /><linearGradient
|
||||
id="linearGradient5060"><stop
|
||||
id="stop5062"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" /><stop
|
||||
id="stop5064"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" /></linearGradient><radialGradient
|
||||
cx="605.71429"
|
||||
cy="486.64789"
|
||||
r="117.14286"
|
||||
fx="605.71429"
|
||||
fy="486.64789"
|
||||
id="radialGradient6717"
|
||||
xlink:href="#linearGradient5060"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" /><linearGradient
|
||||
id="linearGradient5048"><stop
|
||||
id="stop5050"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="0" /><stop
|
||||
id="stop5056"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0.5" /><stop
|
||||
id="stop5052"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
x1="302.85715"
|
||||
y1="366.64789"
|
||||
x2="302.85715"
|
||||
y2="609.50507"
|
||||
id="linearGradient6715"
|
||||
xlink:href="#linearGradient5048"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" /><linearGradient
|
||||
id="linearGradient4970"><stop
|
||||
id="stop4972"
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="0" /><stop
|
||||
id="stop4974"
|
||||
style="stop-color:#b9b9b9;stop-opacity:1"
|
||||
offset="1" /></linearGradient><linearGradient
|
||||
x1="23.150063"
|
||||
y1="36.103832"
|
||||
x2="23.150063"
|
||||
y2="8.6947012"
|
||||
id="linearGradient4976"
|
||||
xlink:href="#linearGradient4970"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#a"
|
||||
id="d"
|
||||
cx="4.3920336"
|
||||
cy="32.307854"
|
||||
r="6.375"
|
||||
fx="4.3920336"
|
||||
fy="32.307854"
|
||||
gradientTransform="matrix(1,0,0,0.5098,0,16.05392)"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#a"
|
||||
id="e"
|
||||
cx="4.3920336"
|
||||
cy="32.307854"
|
||||
r="6.375"
|
||||
fx="4.3920336"
|
||||
fy="32.307854"
|
||||
gradientTransform="matrix(1,0,0,0.5098,0,16.05392)"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#linearGradient5060"
|
||||
id="c"
|
||||
cx="23.25"
|
||||
cy="35.375"
|
||||
r="18.5"
|
||||
fx="23.25"
|
||||
fy="35.375"
|
||||
gradientTransform="matrix(1,0,0,0.39865,0,21.2728)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="a"><stop
|
||||
offset="0"
|
||||
stop-color="#fff"
|
||||
id="stop325" /><stop
|
||||
offset="1"
|
||||
stop-color="#fff"
|
||||
stop-opacity="0"
|
||||
id="stop327" /></linearGradient></defs><g
|
||||
id="layer1" /><g
|
||||
id="layer3"><g
|
||||
transform="matrix(2.262383e-2,0,0,2.086758e-2,43.38343,36.36962)"
|
||||
id="g6707"
|
||||
style="display:inline"
|
||||
inkscape:label="g6707"><rect
|
||||
width="1339.6335"
|
||||
height="478.35718"
|
||||
x="-1559.2523"
|
||||
y="-150.69685"
|
||||
id="rect6709"
|
||||
style="opacity:0.40206185;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
|
||||
d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z"
|
||||
id="path6711"
|
||||
style="opacity:0.40206185;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
|
||||
d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z"
|
||||
id="path6713"
|
||||
style="opacity:0.40206185;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /></g><path
|
||||
d="M 2.3125,5.4375 C 1.8987305,5.4375 1.551942,5.8362304 1.59375,6.25 L 4.625,38.75 C 4.666808,39.163769 5.1174803,39.5625 5.53125,39.5625 L 6.25,39.5625 C 6.3134628,39.584176 6.330441,39.65625 6.40625,39.65625 L 39.71875,39.65625 C 39.925644,39.65625 40.21924,39.541309 40.40625,39.40625 C 40.936652,39.023186 41.074578,38.790769 41.3125,38.4375 C 43.760628,34.80244 47.125,18.96875 47.125,18.96875 C 47.228443,18.761866 46.997826,18.53125 46.6875,18.53125 L 35.4375,18.53125 L 34.71875,11.4375 C 34.676942,11.02373 34.226269,10.59375 33.8125,10.59375 L 21.09375,10.59375 C 20.503204,10.59375 19.881278,10.2278 19.6875,9.65625 L 18.5625,6.15625 C 18.393248,5.6570373 18.017323,5.4375 17.25,5.4375 L 2.3125,5.4375 z"
|
||||
transform="matrix(0.987714,0,0,0.993607,-7.07861e-2,9.727255e-2)"
|
||||
id="path2375"
|
||||
style="fill:url(#linearGradient4976);fill-opacity:1;fill-rule:nonzero;stroke:#5a5a5a;stroke-width:1.00943172;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /></g><g
|
||||
id="layer2" /><g
|
||||
color="#000000"
|
||||
id="g342"
|
||||
transform="matrix(0.54899486,0,0,0.56569663,7.467974,12.963828)"><path
|
||||
fill="url(#c)"
|
||||
fill-rule="evenodd"
|
||||
d="m 41.75,35.375 a 18.5,7.375 0 1 1 -37,0 18.5,7.375 0 1 1 37,0 z"
|
||||
opacity="0.3"
|
||||
overflow="visible"
|
||||
style="fill:url(#c);marker:none"
|
||||
transform="translate(0,2.834646)"
|
||||
id="path332" /><path
|
||||
fill="#9db029"
|
||||
stroke="#596616"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M 41.625,7.7951523 18.5625,10.629798 v 21.78125 c -1.645955,-0.557651 -3.931785,-0.703429 -6.4375,-0.1875 -4.356314,0.896969 -7.4778602,3.299487 -7,5.34375 0.4778601,2.044263 4.393685,2.99072 8.75,2.09375 4.116641,-0.84762 7.684123,-3.037802 7.602633,-5 l 0.15625,-19.03125 16.930457,-2.895306 v 17.284614 c -10.25,-1.5 -13.292201,2.893236 -12.81434,4.9375 0.47786,2.044263 4.393686,2.990719 8.75,2.09375 3.865376,-0.795885 6.63241,-2.763211 6.90625,-4.625 z"
|
||||
display="block"
|
||||
style="marker:none"
|
||||
id="path334" /><path
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
d="M 40.729036,8.8956383 19.547267,11.730284 V 33.568621 C 11.982012,31.663311 5.8141632,35.40303 6.2685944,37.347065 6.9730255,40.6661 20.646969,38.449299 20.569474,34.208305 l 0.148589,-19.473166 18.850374,-2.892332 v 19.437166 c -7.566284,-1.926647 -13.265498,1.376384 -12.811066,3.32042 0.579431,3.194035 12.378226,2.113362 13.76364,-2.657146 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
style="marker:none"
|
||||
id="path336" /><path
|
||||
fill="url(#d)"
|
||||
d="m 12.25,32.75 a 6.375,3.25 0 1 1 -12.75,0 6.375,3.25 0 1 1 12.75,0 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
overflow="visible"
|
||||
style="fill:url(#d);marker:none"
|
||||
transform="matrix(0.73452,-0.11164,0.11164,0.73452,3.903362,12.22551)"
|
||||
id="path338" /><path
|
||||
fill="url(#e)"
|
||||
d="m 12.25,32.75 a 6.375,3.25 0 1 1 -12.75,0 6.375,3.25 0 1 1 12.75,0 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
overflow="visible"
|
||||
style="fill:url(#e);marker:none"
|
||||
transform="matrix(0.73452,-0.11164,0.11164,0.73452,23.74587,9.390864)"
|
||||
id="path340" /></g></svg>
|
After Width: | Height: | Size: 9.3 KiB |
BIN
icons/splash.png
Normal file
After Width: | Height: | Size: 356 KiB |
367
icons/zipsound.svg
Normal file
|
@ -0,0 +1,367 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
sodipodi:docname="zipsound.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
sodipodi:version="0.32"
|
||||
id="svg2963"
|
||||
height="48px"
|
||||
width="48px"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1"
|
||||
inkscape:export-filename="Package-x-generic.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
|
||||
id="defs3"><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 24 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="48 : 24 : 1"
|
||||
inkscape:persp3d-origin="24 : 16 : 1"
|
||||
id="perspective77" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5060"
|
||||
id="radialGradient6719"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
|
||||
cx="605.71429"
|
||||
cy="486.64789"
|
||||
fx="605.71429"
|
||||
fy="486.64789"
|
||||
r="117.14286" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient5060"><stop
|
||||
style="stop-color:black;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5062" /><stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5064" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5060"
|
||||
id="radialGradient6717"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
|
||||
cx="605.71429"
|
||||
cy="486.64789"
|
||||
fx="605.71429"
|
||||
fy="486.64789"
|
||||
r="117.14286" /><linearGradient
|
||||
id="linearGradient5048"><stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="0"
|
||||
id="stop5050" /><stop
|
||||
id="stop5056"
|
||||
offset="0.5"
|
||||
style="stop-color:black;stop-opacity:1;" /><stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5052" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5048"
|
||||
id="linearGradient6715"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
|
||||
x1="302.85715"
|
||||
y1="366.64789"
|
||||
x2="302.85715"
|
||||
y2="609.50507" /><linearGradient
|
||||
id="linearGradient2869"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2871" /><stop
|
||||
style="stop-color:#cccccc;stop-opacity:1.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2873" /></linearGradient><linearGradient
|
||||
id="linearGradient4995"><stop
|
||||
id="stop4997"
|
||||
offset="0"
|
||||
style="stop-color:#de9523;stop-opacity:1;" /><stop
|
||||
id="stop4999"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#a36d18;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4987"
|
||||
inkscape:collect="always"><stop
|
||||
id="stop4989"
|
||||
offset="0"
|
||||
style="stop-color:#a0670c;stop-opacity:1;" /><stop
|
||||
id="stop4991"
|
||||
offset="1"
|
||||
style="stop-color:#a0670c;stop-opacity:0;" /></linearGradient><linearGradient
|
||||
id="linearGradient4979"><stop
|
||||
id="stop4981"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#fbf0e0;stop-opacity:1.0000000;" /><stop
|
||||
id="stop4983"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#f0ce99;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4946"
|
||||
inkscape:collect="always"><stop
|
||||
id="stop4948"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" /><stop
|
||||
id="stop4950"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0;" /></linearGradient><linearGradient
|
||||
id="linearGradient4222"><stop
|
||||
id="stop4224"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" /><stop
|
||||
id="stop4226"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.68639052;" /></linearGradient><linearGradient
|
||||
id="linearGradient4210"><stop
|
||||
id="stop4212"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#eaba6f;stop-opacity:1.0000000;" /><stop
|
||||
id="stop4214"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#b97a1b;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4192"><stop
|
||||
id="stop4194"
|
||||
offset="0"
|
||||
style="stop-color:#e9b96e;stop-opacity:1;" /><stop
|
||||
id="stop4196"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#f1d19e;stop-opacity:1.0000000;" /></linearGradient><linearGradient
|
||||
id="linearGradient4182"><stop
|
||||
id="stop4184"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#a36d18;stop-opacity:1.0000000;" /><stop
|
||||
id="stop4186"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#d79020;stop-opacity:1.0000000;" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4946"
|
||||
id="radialGradient2252"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,2.658463e-16,23.58206)"
|
||||
cx="22.930462"
|
||||
cy="35.373093"
|
||||
fx="22.930462"
|
||||
fy="35.373093"
|
||||
r="17.576654" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4995"
|
||||
id="linearGradient2274"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="36.288929"
|
||||
y1="14.661557"
|
||||
x2="47.065835"
|
||||
y2="15.267649" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4192"
|
||||
id="linearGradient2277"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,0.986355,0.000000,0.316638)"
|
||||
x1="25.381256"
|
||||
y1="24.720648"
|
||||
x2="24.119167"
|
||||
y2="16.170370" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4182"
|
||||
id="linearGradient2280"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,1.039184,0.000000,-4.057054e-2)"
|
||||
x1="16.148972"
|
||||
y1="12.636667"
|
||||
x2="34.193642"
|
||||
y2="12.636667" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4987"
|
||||
id="linearGradient2282"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="21.906841"
|
||||
y1="9.7577486"
|
||||
x2="22.071806"
|
||||
y2="16.020695" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4222"
|
||||
id="linearGradient2285"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="18.706615"
|
||||
y1="19.912336"
|
||||
x2="30.014812"
|
||||
y2="47.388485" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4210"
|
||||
id="linearGradient2288"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="24.990499"
|
||||
y1="34.004856"
|
||||
x2="24.990499"
|
||||
y2="22.585211" /><radialGradient
|
||||
xlink:href="#a"
|
||||
id="d"
|
||||
cx="4.3920336"
|
||||
cy="32.307854"
|
||||
r="6.375"
|
||||
fx="4.3920336"
|
||||
fy="32.307854"
|
||||
gradientTransform="matrix(1,0,0,0.5098,0,16.05392)"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#a"
|
||||
id="e"
|
||||
cx="4.3920336"
|
||||
cy="32.307854"
|
||||
r="6.375"
|
||||
fx="4.3920336"
|
||||
fy="32.307854"
|
||||
gradientTransform="matrix(1,0,0,0.5098,0,16.05392)"
|
||||
gradientUnits="userSpaceOnUse" /><radialGradient
|
||||
xlink:href="#linearGradient5060"
|
||||
id="c"
|
||||
cx="23.25"
|
||||
cy="35.375"
|
||||
r="18.5"
|
||||
fx="23.25"
|
||||
fy="35.375"
|
||||
gradientTransform="matrix(1,0,0,0.39865,0,21.2728)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="a"><stop
|
||||
offset="0"
|
||||
stop-color="#fff"
|
||||
id="stop3397" /><stop
|
||||
offset="1"
|
||||
stop-color="#fff"
|
||||
stop-opacity="0"
|
||||
id="stop3399" /></linearGradient></defs><sodipodi:namedview
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-height="991"
|
||||
inkscape:window-width="1920"
|
||||
stroke="#c17d11"
|
||||
fill="#e9b96e"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
showgrid="false"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:cy="80.079843"
|
||||
inkscape:cx="83.615377"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="0.16470588"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:window-maximized="1" /><metadata
|
||||
id="metadata4"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:creator><cc:Agent><dc:title>Jakub Steiner</dc:title></cc:Agent></dc:creator><dc:source>http://jimmac.musichall.cz/</dc:source><dc:subject><rdf:Bag><rdf:li>package</rdf:li><rdf:li>archive</rdf:li><rdf:li>tarball</rdf:li><rdf:li>tar</rdf:li><rdf:li>bzip</rdf:li><rdf:li>gzip</rdf:li><rdf:li>zip</rdf:li><rdf:li>arj</rdf:li><rdf:li>tar</rdf:li><rdf:li>jar</rdf:li></rdf:Bag></dc:subject><cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><g
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1"><g
|
||||
style="display:inline"
|
||||
transform="matrix(2.105461e-2,0,0,2.086758e-2,42.60172,35.4036)"
|
||||
id="g6707"><rect
|
||||
style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
id="rect6709"
|
||||
width="1339.6335"
|
||||
height="478.35718"
|
||||
x="-1559.2523"
|
||||
y="-150.69685" /><path
|
||||
style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
|
||||
id="path6711"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path6713"
|
||||
d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
|
||||
style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /></g><rect
|
||||
ry="2.3944440"
|
||||
rx="2.4241352"
|
||||
y="15.275433"
|
||||
x="7.4623847"
|
||||
height="23.112879"
|
||||
width="31.978371"
|
||||
id="rect3115"
|
||||
style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2288);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000007;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible" /><rect
|
||||
style="opacity:0.48101267;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient2285);stroke-width:1.0000011;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
|
||||
id="rect4220"
|
||||
width="29.804138"
|
||||
height="21.075352"
|
||||
x="8.4989996"
|
||||
y="16.243698"
|
||||
rx="1.2846882"
|
||||
ry="1.2846882" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path4162"
|
||||
d="M 8.7697819,16.547178 L 13.819731,9.7363408 L 32.615291,9.6353255 L 37.835264,16.408941 L 8.7697819,16.547178 z "
|
||||
style="fill:url(#linearGradient2280);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2282);stroke-width:1.0000008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path4164"
|
||||
d="M 38.276321,16.325703 L 43.469269,23.520364 L 3.9609455,23.520364 L 8.6250143,16.320763 L 38.276321,16.325703 z "
|
||||
style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2277);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000005;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path4178"
|
||||
d="M 32.849333,9.6141009 L 37.532219,16.536370 L 46.565835,20.921197 L 38.451329,12.008545 L 32.849333,9.6141009 z "
|
||||
style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2274);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000005;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible" /><path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
style="opacity:1.0000000;color:#000000;fill:#f8e8cf;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
|
||||
d="M 13.617702,9.7151161 L 9.6419233,16.435355 L 0.50729183,20.820182 L 8.6217973,11.907530 L 13.617702,9.7151161 z "
|
||||
id="path4180" /><path
|
||||
style="opacity:1.0000000;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#f4e3ca;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible"
|
||||
d="M 37.024959,16.436050 L 41.478871,22.493011 L 5.6482792,22.493011 L 9.7892982,16.312694 L 37.024959,16.436050 z "
|
||||
id="path4954"
|
||||
sodipodi:nodetypes="ccccc" /><g
|
||||
color="#000000"
|
||||
id="g3414"
|
||||
transform="matrix(0.56662726,0,0,0.57555804,9.3965414,4.9348444)"><path
|
||||
fill="url(#c)"
|
||||
fill-rule="evenodd"
|
||||
d="m 41.75,35.375 a 18.5,7.375 0 1 1 -37,0 18.5,7.375 0 1 1 37,0 z"
|
||||
opacity="0.3"
|
||||
overflow="visible"
|
||||
style="fill:url(#c);marker:none"
|
||||
transform="translate(0,2.834646)"
|
||||
id="path3404" /><path
|
||||
fill="#9db029"
|
||||
stroke="#596616"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M 41.625,7.7951523 18.5625,10.629798 v 21.78125 c -1.645955,-0.557651 -3.931785,-0.703429 -6.4375,-0.1875 -4.356314,0.896969 -7.4778602,3.299487 -7,5.34375 0.4778601,2.044263 4.393685,2.99072 8.75,2.09375 4.116641,-0.84762 7.684123,-3.037802 7.602633,-5 l 0.15625,-19.03125 16.930457,-2.895306 v 17.284614 c -10.25,-1.5 -13.292201,2.893236 -12.81434,4.9375 0.47786,2.044263 4.393686,2.990719 8.75,2.09375 3.865376,-0.795885 6.63241,-2.763211 6.90625,-4.625 z"
|
||||
display="block"
|
||||
style="marker:none"
|
||||
id="path3406" /><path
|
||||
fill="none"
|
||||
stroke="#ffffff"
|
||||
d="M 40.729036,8.8956383 19.547267,11.730284 V 33.568621 C 11.982012,31.663311 5.8141632,35.40303 6.2685944,37.347065 6.9730255,40.6661 20.646969,38.449299 20.569474,34.208305 l 0.148589,-19.473166 18.850374,-2.892332 v 19.437166 c -7.566284,-1.926647 -13.265498,1.376384 -12.811066,3.32042 0.579431,3.194035 12.378226,2.113362 13.76364,-2.657146 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
style="marker:none"
|
||||
id="path3408" /><path
|
||||
fill="url(#d)"
|
||||
d="m 12.25,32.75 a 6.375,3.25 0 1 1 -12.75,0 6.375,3.25 0 1 1 12.75,0 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
overflow="visible"
|
||||
style="fill:url(#d);marker:none"
|
||||
transform="matrix(0.73452,-0.11164,0.11164,0.73452,3.903362,12.22551)"
|
||||
id="path3410" /><path
|
||||
fill="url(#e)"
|
||||
d="m 12.25,32.75 a 6.375,3.25 0 1 1 -12.75,0 6.375,3.25 0 1 1 12.75,0 z"
|
||||
display="block"
|
||||
opacity="0.511765"
|
||||
overflow="visible"
|
||||
style="fill:url(#e);marker:none"
|
||||
transform="matrix(0.73452,-0.11164,0.11164,0.73452,23.74587,9.390864)"
|
||||
id="path3412" /></g></g></svg>
|
After Width: | Height: | Size: 18 KiB |
4
locale/.clang-format
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
DisableFormat: true
|
||||
SortIncludes: Never
|
||||
...
|
2802
locale/ar_SA.ts
2201
locale/ay_BO.ts
2200
locale/be_BY.ts
2568
locale/bg_BG.ts
2168
locale/crowdin.ts
2312
locale/cs_CZ.ts
2282
locale/de_CH.ts
2200
locale/de_DE.ts
2296
locale/el_GR.ts
3410
locale/eo_UY.ts
2204
locale/es_AR.ts
2240
locale/es_BO.ts
2308
locale/es_ES.ts
2700
locale/fa_IR.ts
2296
locale/fi_FI.ts
2296
locale/fr_FR.ts
2670
locale/hi_IN.ts
2168
locale/ie_001.ts
2296
locale/it_IT.ts
2320
locale/ja_JP.ts
2172
locale/jbo_EN.ts
2712
locale/ko_KR.ts
2538
locale/lt_LT.ts
2864
locale/mk_MK.ts
2312
locale/nl_NL.ts
2310
locale/pl_PL.ts
2307
locale/pt_BR.ts
2330
locale/pt_PT.ts
2218
locale/qu_PE.ts
2206
locale/ru_RU.ts
2726
locale/sk_SK.ts
2918
locale/sq_AL.ts
2856
locale/sr_SP.ts
2311
locale/sv_SE.ts
2620
locale/tg_TJ.ts
3024
locale/tk_TM.ts
2654
locale/tr_TR.ts
2329
locale/uk_UA.ts
4018
locale/vi_VN.ts
2172
locale/zh_CN.ts
2170
locale/zh_TW.ts
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Traditional Chinese (Hong Kong standard) to Simplified Chinese",
|
||||
"name": "Traditional Chinese (Hong Kong variant) to Simplified Chinese",
|
||||
"segmentation": {
|
||||
"type": "mmseg",
|
||||
"dict": {
|
||||
|
|
22
opencc/hk2t.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Traditional Chinese (Hong Kong variant) to Traditional Chinese",
|
||||
"segmentation": {
|
||||
"type": "mmseg",
|
||||
"dict": {
|
||||
"type": "ocd2",
|
||||
"file": "HKVariantsRevPhrases.ocd2"
|
||||
}
|
||||
},
|
||||
"conversion_chain": [{
|
||||
"dict": {
|
||||
"type": "group",
|
||||
"dicts": [{
|
||||
"type": "ocd2",
|
||||
"file": "HKVariantsRevPhrases.ocd2"
|
||||
}, {
|
||||
"type": "ocd2",
|
||||
"file": "HKVariantsRev.ocd2"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Simplified Chinese to Traditional Chinese (Hong Kong standard)",
|
||||
"name": "Simplified Chinese to Traditional Chinese (Hong Kong variant)",
|
||||
"segmentation": {
|
||||
"type": "mmseg",
|
||||
"dict": {
|
||||
|
@ -20,14 +20,8 @@
|
|||
}
|
||||
}, {
|
||||
"dict": {
|
||||
"type": "group",
|
||||
"dicts": [{
|
||||
"type": "ocd2",
|
||||
"file": "HKVariantsPhrases.ocd2"
|
||||
}, {
|
||||
"type": "ocd2",
|
||||
"file": "HKVariants.ocd2"
|
||||
}]
|
||||
"type": "ocd2",
|
||||
"file": "HKVariants.ocd2"
|
||||
}
|
||||
}]
|
||||
}
|
||||
|
|
|
@ -1,22 +1,16 @@
|
|||
{
|
||||
"name": "Traditional Chinese to Traditional Chinese (Hong Kong standard)",
|
||||
"name": "Traditional Chinese to Traditional Chinese (Hong Kong variant)",
|
||||
"segmentation": {
|
||||
"type": "mmseg",
|
||||
"dict": {
|
||||
"type": "ocd2",
|
||||
"file": "HKVariantsPhrases.ocd2"
|
||||
"file": "HKVariants.ocd2"
|
||||
}
|
||||
},
|
||||
"conversion_chain": [{
|
||||
"dict": {
|
||||
"type": "group",
|
||||
"dicts": [{
|
||||
"type": "ocd2",
|
||||
"file": "HKVariantsPhrases.ocd2"
|
||||
}, {
|
||||
"type": "ocd2",
|
||||
"file": "HKVariants.ocd2"
|
||||
}]
|
||||
"type": "ocd2",
|
||||
"file": "HKVariants.ocd2"
|
||||
}
|
||||
}]
|
||||
}
|
||||
|
|
22
opencc/tw2t.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Traditional Chinese (Taiwan standard) to Traditional Chinese",
|
||||
"segmentation": {
|
||||
"type": "mmseg",
|
||||
"dict": {
|
||||
"type": "ocd2",
|
||||
"file": "TWVariantsRevPhrases.ocd2"
|
||||
}
|
||||
},
|
||||
"conversion_chain": [{
|
||||
"dict": {
|
||||
"type": "group",
|
||||
"dicts": [{
|
||||
"type": "ocd2",
|
||||
"file": "TWVariantsRevPhrases.ocd2"
|
||||
}, {
|
||||
"type": "ocd2",
|
||||
"file": "TWVariantsRev.ocd2"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
}
|