1
0

Merge branch 'develop' into main

This commit is contained in:
Saturneric 2021-06-21 03:53:03 +08:00
commit baf3e9f8a2
30 changed files with 14473 additions and 26994 deletions

View File

@ -5,12 +5,14 @@ on:
branches: [ main, develop ]
paths-ignore:
- '**/README.md'
- 'resources/**'
- 'resource/ts/**'
- 'docs/**'
pull_request:
branches: [ develop ]
paths-ignore:
- '**/README.md'
- 'resources/**'
- 'resource/ts/**'
- 'docs/**'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
@ -25,86 +27,87 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install Dependence (Linux)
run: |
sudo apt-get update
sudo apt-get -y install build-essential binutils git autoconf automake
sudo apt-get -y install gcc g++
sudo apt-get -y install libgpgme-dev gpg
if: matrix.os == 'ubuntu-latest'
- uses: actions/checkout@v2
- name: Install Dependence (macOS)
run: |
brew install cmake git autoconf automake qt@5
if: matrix.os == 'macos-latest'
- name: Install Dependence (Linux)
run: |
sudo apt-get update
sudo apt-get -y install build-essential binutils git autoconf automake
sudo apt-get -y install gcc g++
sudo apt-get -y install libgpgme-dev gpg
if: matrix.os == 'ubuntu-latest'
- name: Install Qt
uses: jurplel/install-qt-action@v2
if: matrix.os == 'ubuntu-latest'
- name: Install Dependence (macOS)
run: |
brew install cmake git autoconf automake qt@5
if: matrix.os == 'macos-latest'
- name: Set up MinGW (Windows)
uses: msys2/setup-msys2@v2
with:
install: git msys2-devel base-devel binutils pactoys-git mercurial cvs wget p7zip perl ruby mingw-w64-x86_64-toolchain
update: true
if: matrix.os == 'windows-latest'
- name: Install Qt
uses: jurplel/install-qt-action@v2
if: matrix.os == 'ubuntu-latest'
- name: Set up Dependence (Windows)
shell: msys2 {0}
run: |
pacman --noconfirm -Syu mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake autoconf automake mingw-w64-x86_64-qt-creator mingw-w64-x86_64-gpgme
if: matrix.os == 'windows-latest'
- name: Set up MinGW (Windows)
uses: msys2/setup-msys2@v2
with:
install: git msys2-devel base-devel binutils pactoys-git mercurial cvs wget p7zip perl ruby mingw-w64-x86_64-toolchain
update: true
if: matrix.os == 'windows-latest'
- name: Build GpgME
run: |
git clone https://github.com/gpg/gpgme
cd gpgme
./autogen.sh
./configure && make -j2
sudo make install
cd ..
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
- name: Set up Dependence (Windows)
shell: msys2 {0}
run: |
pacman --noconfirm -Syu mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake autoconf automake mingw-w64-x86_64-qt-creator mingw-w64-x86_64-gpgme
if: matrix.os == 'windows-latest'
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}}
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
- name: Build GpgME
run: |
git clone https://github.com/gpg/gpgme
cd gpgme
./autogen.sh
./configure && make -j2
sudo make install
cd ..
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
- name: Build GpgFrontend
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config $env.BUILD_TYPE}} -- -j 2
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}}
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
- name: Configure CMake & Build Binary(Windows)
shell: msys2 {0}
run: |
cd $(echo "/${{github.workspace}}" | sed 's/\\/\//g' | sed 's/://')
mkdir build && cd build
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} ..
- name: Build GpgFrontend
# Build your program with the given configuration
cmake --build . --config ${{env.BUILD_TYPE}} -- -j 2
if: matrix.os == 'windows-latest'
run: cmake --build ${{github.workspace}}/build --config $env.BUILD_TYPE}} -- -j 2
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
- name: Upload Artifact(Linux)
uses: actions/upload-artifact@master
with:
name: gpgfrontend-linux-release-${{github.sha}}
path: ${{github.workspace}}/build/release/*
if: matrix.os == 'ubuntu-latest'
- name: Configure CMake & Build Binary(Windows)
shell: msys2 {0}
run: |
cd $(echo "/${{github.workspace}}" | sed 's/\\/\//g' | sed 's/://')
mkdir build && cd build
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} ..
# Build your program with the given configuration
cmake --build . --config ${{env.BUILD_TYPE}} -- -j 2
if: matrix.os == 'windows-latest'
- name: Upload Artifact(macOS)
uses: actions/upload-artifact@master
with:
name: gpgfrontend-macos-release-${{github.sha}}
path: ${{github.workspace}}/build/release/*
if: matrix.os == 'macos-latest'
- name: Upload Artifact(Linux)
uses: actions/upload-artifact@master
with:
name: gpgfrontend-linux-release-${{github.sha}}
path: ${{github.workspace}}/build/release/*
if: matrix.os == 'ubuntu-latest'
- name: Upload Artifact(Windows)
uses: actions/upload-artifact@master
with:
name: gpgfrontend-windows-release-${{github.sha}}
path: ${{github.workspace}}/build/release/*
if: matrix.os == 'windows-latest'
- name: Upload Artifact(macOS)
uses: actions/upload-artifact@master
with:
name: gpgfrontend-macos-release-${{github.sha}}
path: ${{github.workspace}}/build/release/*
if: matrix.os == 'macos-latest'
- name: Upload Artifact(Windows)
uses: actions/upload-artifact@master
with:
name: gpgfrontend-windows-release-${{github.sha}}
path: ${{github.workspace}}/build/release/*
if: matrix.os == 'windows-latest'

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
# Project
include/GpgFrontend.h
#CLion
.idea/*

View File

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.19)
cmake_minimum_required(VERSION 3.16)
project(GpgFrontend VERSION 1.0.0 LANGUAGES CXX)

View File

@ -7,7 +7,8 @@
![GitHub release (latest by date)](https://img.shields.io/github/v/release/saturneric/gpgfrontend)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend.svg?type=small)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend?ref=badge_small)
GpgFrontend is a Modern, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP Frontend Tool.
GpgFrontend is a Modern, Easy-to-Use, Compact, Cross-Platform, and Installation-Free [OpenPGP](https://www.openpgp.org/)
Frontend Tool.
By using GpgFrontend, you can quickly **encrypt and decrypt text or files**. Or at the same time as the above
operations, you can add **your own signature** to let others know that this document or this paragraph of text was
@ -18,9 +19,11 @@ gpg and make professional users more convenient. GpgFrontend supports new featur
![Main ScreenShot](https://github.com/saturneric/Blob/blob/master/screenshots/main.png?raw=true)
Workflows Status:
#### Workflows Status:
![main](https://github.com/saturneric/gpgfrontend/actions/workflows/cmake.yml/badge.svg?branch=main)
[![Build & Package](https://github.com/saturneric/GpgFrontend/actions/workflows/cmake.yml/badge.svg?branch=main)](https://github.com/saturneric/GpgFrontend/actions/workflows/cmake.yml)
---
## Table of Contents
@ -29,33 +32,75 @@ Workflows Status:
- [Purpose](#purpose)
- [Build](#build)
- [Contract](#contract)
- [Contributing](#contributing)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [Maintainers](#maintainers)
- [Licenses](#LICENSES)
## Features
- Open source, free, no need to install.
- Can run on **Windows, Linux and macOS**.
- Open source, free, no need to install.
- Just double-click, and then you can use it freely.
- Before use, you only need to install gnupg. A tiny tool of a few MB.
- Before use, you only need to install [gnupg](https://gnupg.org/). A tiny GNU tool.
- Supports multiple languages. Dont forget to help me translate this software.
## Usage
0. Install gnupg. To check if it is installed, you can enter gpg on the command line.
- For Windows User, Click [this link](https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.3.1_20210420.exe) to download
gnupg.
- For macOS User, Use [Homebrew](https://brew.sh/) to install **gpg**.
- For Linux User, Use the package manager(e.g., apt, yum, pacman) to install **gpg**.
1. Unzip GpgFrontend.zip. The compressed package can be downloaded in Release.
2. Start GpgFrontend with GpgFrontend.exe or GpgFrontend (depending on your os).
### Windows
1. [Download](https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.3.1_20210420.exe) gnupg-w32-******.exe
2. Double Click it to install it
3. [Download](https://github.com/saturneric/GpgFrontend/releases) GpgFrontend Windows Edition
4. Unzip GpgFrontend
5. Double Click gpgfrontend.exe
### MacOS
1. Install Homebrew [Here](https://brew.sh/) if you don't know it.
2. Install gnupg
```shell
% brew update
% brew install gnupg
```
3. [Download](https://github.com/saturneric/GpgFrontend/releases) GpgFrontend macOS Edition
4. Unzip GpgFrontend
5. Get into folder and Give gpgfrontend permission to execute
```shell
% cd gpgfrontend-*.*.*-macos-amd64-release/
% chmod u+x gpgfrontend
```
6. Just run it
```shell
% ./gpgfrontend
```
### Debian/Ubuntu/CentOS
1. Install gnupg
- For Debian/Ubuntu
```shell
$ sudo apt update
$ sudo apt install gpg
```
- For CentOS
```shell
$ sudo yum install gnupg
```
2. [Download](https://github.com/saturneric/GpgFrontend/releases) GpgFrontend Linux Edition
3. Unzip GpgFrontend
4. Get into folder and Give gpgfrontend permission to execute
```shell
$ cd gpgfrontend-*.*.*-linux-amd64-release/
$ chmod u+x gpgfrontend
```
5. Just run it
```shell
$ ./gpgfrontend
```
## Purpose
The GpgFrontend project inherit from a relatively mature but not maintained gpg4usb project. It inherits the stable,
easy-to-use, compact, and installation-free features of gpg4usb, and plans to support some new features of OpenPGP based
on it and continue to improve it.
The GpgFrontend project inherit from a relatively mature but not maintained [gpg4usb](https://www.gpg4usb.org/) project.
It inherits the stable, easy-to-use, compact, and installation-free features of gpg4usb, and plans to support some new
features of OpenPGP based on it and continue to improve it.
GpgFrontend will add more functions in the future to improve the ease of use of GPG in end-to-end transmission. At the
same time, the addition of new functions does not affect the old basic functions. My personal strength is always
@ -70,7 +115,7 @@ The tutorial for building the software will be released shortly.
## Contract
If you want to contact me individually, you can email [eric@bktus.com](mailto:eric@bktus.com).
If you want to contact me individually, you can email [eric@bktus.com](mailto:eric@bktus.com).
### Contributing
@ -88,11 +133,18 @@ Feel free to dive in! [Open an issue](https://github.com/saturneric/GpgFrontend/
GpgFrontend itself is licensed under the [GPLv3](COPYING).
There are some libraries, and the gpg-binary included in the zip-file / a static gpg-build which (may) have different
There are some libraries and binary included in the zip-file which (may) have different
licenses, for more information check their homepages. You can also obtain the sources from there.
GPG: http://gnupg.org/
QT: http://trolltech.no/ , http://trolltech.no/downloads/opensource
gpg4usb: https://www.gpg4usb.org/
Gnupg: https://gnupg.org/
QT: https://www.qt.io/
MSYS2: https://www.msys2.org/
mingw-w64: http://mingw-w64.org/doku.php
The icons of this software use materials from Alibaba vector icon library. The Alibaba vector icon library is free to
use. The icons in the free library aren't registered as trademarks. There is no copyright issue involved and can be used

View File

@ -18,15 +18,15 @@
#define PROJECT_NAME "GpgFrontend"
#define BUILD_VERSION "1.0.0_Windows-10.0.19042_AMD64_Release"
#define GIT_VERSION "main_2104aa97267bd755f9fdffbf35f472929418de6b"
#define GIT_VERSION "main_0c3f90583dff56fe15e4395552056c4ebc1e0cf2"
#define VERSION_MAJOR 1
#define VERSION_MINOR 0
#define VERSION_PATCH 0
#define BUILD_TIMESTAMP "2021-06-20 18:28:34"
#define BUILD_TIMESTAMP "2021-06-21 03:49:55"
#define GIT_BRANCH_NAME "main"
#define GIT_COMMIT_HASH "2104aa97267bd755f9fdffbf35f472929418de6b"
#define GIT_COMMIT_HASH "0c3f90583dff56fe15e4395552056c4ebc1e0cf2"
#endif //GPGFRONTEND_H_IN

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,548 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en">
<context>
<name>MainWindow</name>
<message>
<location filename="../../src/MainWindow.cpp" line="175"/>
<source>&amp;New</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="181"/>
<source>Open a new file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="184"/>
<source>&amp;Open...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="187"/>
<source>Open an existing file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="190"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="193"/>
<source>Save the current File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="196"/>
<source>Save &amp;As</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="199"/>
<source>Save the current File as...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="202"/>
<source>&amp;Print</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="205"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="208"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="210"/>
<source>Close file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="213"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="216"/>
<source>Quit Program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="221"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="223"/>
<source>Undo Last Edit Action</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="226"/>
<source>&amp;Redo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="228"/>
<source>Redo Last Edit Action</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="231"/>
<source>Zoom In</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="235"/>
<source>Zoom Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="239"/>
<source>&amp;Paste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="242"/>
<source>Paste Text From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="245"/>
<source>Cu&amp;t</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="248"/>
<source>Cut the current selection&apos;s contents to the clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="252"/>
<source>&amp;Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="255"/>
<source>Copy the current selection&apos;s contents to the clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="259"/>
<source>&amp;Quote</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="261"/>
<source>Quote whole text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="264"/>
<source>Select &amp;All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="267"/>
<source>Select the whole text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="270"/>
<source>&amp;Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="272"/>
<source>Find a word</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="275"/>
<source>Remove &amp;spacing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="278"/>
<source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="281"/>
<source>Se&amp;ttings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="282"/>
<source>Open settings dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="288"/>
<source>&amp;Encrypt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="291"/>
<source>Encrypt Message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="294"/>
<source>&amp;Encrypt &amp;Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="297"/>
<source>Encrypt and Sign Message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="300"/>
<source>&amp;Decrypt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="303"/>
<source>Decrypt Message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="306"/>
<source>&amp;Decrypt &amp;Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="309"/>
<source>Decrypt and Verify Message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="552"/>
<source>Special Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="601"/>
<source>Key ToolBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="609"/>
<source>Information Board</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="726"/>
<location filename="../../src/MainWindow.cpp" line="773"/>
<location filename="../../src/MainWindow.cpp" line="1076"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="733"/>
<location filename="../../src/MainWindow.cpp" line="780"/>
<location filename="../../src/MainWindow.cpp" line="1083"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="734"/>
<source>The selected key contains a key that does not actually have a encrypt function.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="735"/>
<location filename="../../src/MainWindow.cpp" line="782"/>
<location filename="../../src/MainWindow.cpp" line="1085"/>
<source>&lt;br/&gt;For example the Following Key: &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="781"/>
<source>The selected key contains a key that does not actually have a signature function.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="1084"/>
<source>The selected key cannot be used for signing and encryption at the same time.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="315"/>
<source>&amp;Encrypt File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="316"/>
<source>Encrypt File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="319"/>
<source>&amp;Decrypt File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="320"/>
<source>Decrypt File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="323"/>
<source>&amp;Sign File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="324"/>
<source>Sign File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="327"/>
<source>&amp;Verify File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="328"/>
<source>Verify File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="332"/>
<source>&amp;Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="335"/>
<source>Sign Message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="338"/>
<source>&amp;Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="341"/>
<source>Verify Message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="347"/>
<source>&amp;Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="349"/>
<source>Import New Key From Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="352"/>
<source>Manage &amp;keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="354"/>
<source>Open Keymanagement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="359"/>
<source>&amp;About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="361"/>
<source>Show the application&apos;s About box</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="364"/>
<source>Open &amp;Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="365"/>
<source>Open the wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="370"/>
<source>Append Selected Key(s) To Text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="371"/>
<source>Append The Selected Keys To Text in Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="374"/>
<source>Copy EMail-address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="375"/>
<source>Copy selected EMailaddress to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="379"/>
<source>Show Keydetails</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="380"/>
<source>Show Details for this Key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="383"/>
<source>Refresh key from keyserver</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="384"/>
<source>Refresh key from default keyserver</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="387"/>
<source>Upload Key(s) To Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="388"/>
<source>Upload The Selected Keys To Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="446"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="458"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="476"/>
<source>&amp;File...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="482"/>
<source>&amp;Crypt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="493"/>
<source>&amp;Keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="503"/>
<source>&amp;Steganography</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="402"/>
<source>Remove PGP Header</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="405"/>
<source>Add PGP Header</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="494"/>
<source>&amp;Import Key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="512"/>
<source>&amp;View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="514"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="522"/>
<source>File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="530"/>
<source>Crypt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="540"/>
<source>Key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="545"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="564"/>
<source>Import key from...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="565"/>
<source>Import key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="573"/>
<source>Encrypt or decrypt File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="574"/>
<source>File..</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="594"/>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="629"/>
<source>Attached files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="692"/>
<source>There is one unencrypted file in attachment folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="694"/>
<source>There are </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/MainWindow.cpp" line="694"/>
<source> unencrypted files in attachment folder</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,5 @@
set(ALL_SOURCE_FILE)
add_subdirectory(gpg)
add_subdirectory(ui)
@ -10,34 +12,38 @@ set_property(SOURCE gpgfrontend.rc APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_SOURCE
file(GLOB_RECURSE GPGFRONTEND_HEADER_FILES RELACTIVE ${CMAKE_SOURCE_DIR}/include/*.h)
qt5_wrap_cpp(QT5_MOCS ${GPGFRONTEND_HEADER_FILES} TARGET gpgfrontend)
# Set Binary Output Path
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/release)
message(STATUS "CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
# Get ALL SOURCE FILES
file(GLOB_RECURSE ALL_SOURCE_FILES RELACTIVE ${CMAKE_SOURCE_DIR}/src/*.cpp)
# Set Translation Files
file(GLOB_RECURSE QT_TS_FILES RELACTIVE ${CMAKE_SOURCE_DIR}/resource/ts/*.ts)
set(QT_QM_FILES_OUTPUT_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ts)
set(QT_TS_FILES gpgfrontend_en_us.ts gpgfrontend_zh_chs.ts gpgfrontend_zh_cht.ts gpg_frontend_fr.ts gpg_frontend_ru.ts)
list(TRANSFORM QT_TS_FILES PREPEND ${CMAKE_SOURCE_DIR}/resource/ts/)
message(STATUS "QT_TS_FILES ${QT_TS_FILES}")
set(QT_QM_FILES_OUTPUT_DIR ${CMAKE_BINARY_DIR}/src/ts)
set_source_files_properties(${QT_TS_FILES} PROPERTIES OUTPUT_LOCATION ${QT_QM_FILES_OUTPUT_DIR})
QT5_create_translation(QON_QM_FILES ${BASE_SOURCE} ${QT_TS_FILES})
QT5_create_translation(QON_QM_FILES ${CMAKE_SOURCE_DIR} ${QT_TS_FILES})
message(STATUS "QON_QM_FILES ${QON_QM_FILES}")
add_custom_target(translations DEPENDS ${QON_QM_FILES})
# Set Build Information
configure_file(${CMAKE_SOURCE_DIR}/include/GpgFrontend.h.in ${CMAKE_SOURCE_DIR}/include/GpgFrontend.h @ONLY)
# Copy Resource Files
file(COPY ${CMAKE_SOURCE_DIR}/resource/css DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/icons DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/help DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/conf DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/css DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/icons DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/help DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/conf DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
# Copy Utils Files
if(MINGW)
message(STATUS "Copying Dependent DLL For Windows Runtime Env")
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/lib/ DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/gpgme/ DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/bearer DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/iconengines DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/imageformats DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/printsupport DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/platforms DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/lib/ DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/gpgme/ DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/bearer DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/iconengines DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/imageformats DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/printsupport DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
file(COPY ${CMAKE_SOURCE_DIR}/resource/utils/platforms DESTINATION ${EXECUTABLE_OUTPUT_PATH}/ FOLLOW_SYMLINK_CHAIN)
endif()
set(RESOURCE_FILES ${CMAKE_SOURCE_DIR}/gpgfrontend.qrc ${APP_ICON_RESOURCE_WINDOWS} ${QON_QM_FILES})
@ -53,14 +59,14 @@ endif()
IF (MINGW)
message(STATUS "Link Application Static Library For MINGW")
target_link_libraries(gpgfrontend
qtui gpg
gpgfrontend-ui gpg
Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
else()
message(STATUS "Link Application Static Library For UNIX")
target_link_libraries(gpgfrontend
qtui gpg
gpgfrontend-ui gpg
Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
endif()

View File

@ -72,7 +72,7 @@ int main(int argc, char *argv[]) {
lang = QLocale::system().name();
}
qDebug() << "Language set" << lang;
translator.load( appPath + "/ts/" + "gpg4usb_" + lang);
translator.load( appPath + "/ts/" + "gpgfrontend_" + lang);
qDebug() << "Translator" << translator.filePath();
QApplication::installTranslator(&translator);

View File

@ -1,9 +1,11 @@
aux_source_directory(. QTUI_SOURCE)
aux_source_directory(./keypair_details QTUI_SOURCE)
aux_source_directory(./widgets QTUI_SOURCE)
aux_source_directory(./keygen QTUI_SOURCE)
aux_source_directory(. UI_SOURCE)
aux_source_directory(./keypair_details UI_SOURCE)
aux_source_directory(./widgets UI_SOURCE)
aux_source_directory(./keygen UI_SOURCE)
add_library(qtui STATIC ${QTUI_SOURCE} ${QTUI_KEYPAIR_DETAILS_SOURCE})
add_library(gpgfrontend-ui STATIC ${UI_SOURCE})
target_link_libraries(qtui
Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
target_link_libraries(gpgfrontend-ui
Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
message(STATUS "UI SOURCE ${UI_SOURCE}")

View File

@ -99,7 +99,7 @@ QHash<QString, QString> SettingsDialog::listLanguages() {
QString appPath = qApp->applicationDirPath();
QDir qmDir = QDir(appPath + "/ts/");
QStringList fileNames =
qmDir.entryList(QStringList("gpg4usb_*.qm"));
qmDir.entryList(QStringList("gpgfrontend_*.qm"));
for (int i = 0; i < fileNames.size(); ++i) {
QString locale = fileNames[i];
@ -112,7 +112,7 @@ QHash<QString, QString> SettingsDialog::listLanguages() {
QString language = QLocale::languageToString(qloc.language()) +" (" + locale + ")"; //+ " (" + QLocale::languageToString(qloc.language()) + ")";
#else
QString language = qloc.nativeLanguageName() + " (" + locale +
")"; //+ " (" + QLocale::languageToString(qloc.language()) + ")";
")";
#endif
languages.insert(locale, language);
}
@ -167,7 +167,7 @@ GeneralTab::GeneralTab(GpgME::GpgContext *ctx, QWidget *parent)
langBoxLayout->addWidget(langSelectBox);
langBoxLayout->addWidget(
new QLabel(tr("<b>NOTE: </b> Gpg4usb will restart automatically if you change the language!")));
new QLabel(tr("<b>NOTE: </b> GpgFrontend will restart automatically if you change the language!")));
langBox->setLayout(langBoxLayout);
connect(langSelectBox, SIGNAL(currentIndexChanged(int)), this, SLOT(slotLanguageChanged()));