From ba206871c233e5786134f0ac8277a1b60e38bf94 Mon Sep 17 00:00:00 2001
From: DbDibyendu <55906713+DbDibyendu@users.noreply.github.com>
Date: Sat, 24 Oct 2020 01:23:05 +0530
Subject: [PATCH 01/54] Update README.md
Updated the new Hotkeys
(cherry picked from commit 8ebb0999a8f31024fab5357710bdd2d4af2b6c75)
---
README.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/README.md b/README.md
index 8bbbbea4..6551a620 100644
--- a/README.md
+++ b/README.md
@@ -168,15 +168,31 @@ These shortcuts are available in GUI mode:
| Keys | Description |
|--- |--- |
+| P | Set the Pencil as paint tool |
+| D | Set the Line as paint tool |
+| A | Set the Arrow as paint tool |
+| S | Set Selection as paint tool |
+| R | Set the Rectangle as paint tool |
+| C | Set the Circle as paint tool |
+| M | Set the Marker as paint tool |
+| T | Add text to your capture |
+| B | Set Pixalate as the paint tool |
| ←, ↓, ↑, → | Move selection 1px |
| Shift + ←, ↓, ↑, → | Resize selection 1px |
| Esc | Quit capture |
+| Ctrl + M | Move the selection area |
| Ctrl + C | Copy to clipboard |
| Ctrl + S | Save selection as a file |
| Ctrl + Z | Undo the last modification |
+| Ctrl + Shift + Z | Redo the next modification |
+| Ctrl + Q | Leave the capture screen |
+| Ctrl + O | Choose an app to open the capture |
+| Return | Upload the selection to Imgur |
| Spacebar | Toggle visibility of sidebar with options of the selected tool, color picker for the drawing color and history menu |
| Right Click | Show the color wheel |
| Mouse Wheel | Change the tool's thickness |
+| Print screen | Capture Screen |
+| Shift + Print | Screenshot History |
Shift + drag a handler of the selection area: mirror redimension in the opposite handler.
From 2bae14416e9ca7d5b580eaa61b91e0cac3f24853 Mon Sep 17 00:00:00 2001
From: Jeremy Borgman
Date: Sun, 25 Oct 2020 21:38:53 +0200
Subject: [PATCH 02/54] always trigger CI on PR
(cherry picked from commit 3acd61fdec8be0cb37faace1d6361bb98dd4d46d)
---
.github/workflows/Linux-pack.yml | 2 --
.github/workflows/Windows-pack.yml | 2 --
.github/workflows/build_cmake.yml | 4 ++--
3 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/Linux-pack.yml b/.github/workflows/Linux-pack.yml
index 8734eb9f..080cdab8 100644
--- a/.github/workflows/Linux-pack.yml
+++ b/.github/workflows/Linux-pack.yml
@@ -9,8 +9,6 @@ on:
- 'LICENSE'
pull_request:
- branches:
- - master
paths-ignore:
- 'README.md'
- 'LICENSE'
diff --git a/.github/workflows/Windows-pack.yml b/.github/workflows/Windows-pack.yml
index aaaead8d..32972e5e 100644
--- a/.github/workflows/Windows-pack.yml
+++ b/.github/workflows/Windows-pack.yml
@@ -9,8 +9,6 @@ on:
- 'LICENSE'
pull_request:
- branches:
- - master*
paths-ignore:
- 'README.md'
- 'LICENSE'
diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml
index 279709a9..155b2b82 100644
--- a/.github/workflows/build_cmake.yml
+++ b/.github/workflows/build_cmake.yml
@@ -2,12 +2,12 @@ name: Building(CMake)
on:
push:
- branches: [ master, master_nc_merge_upstream_test ]
+ branches: [ master ]
paths-ignore:
- 'README.md'
- 'LICENSE'
pull_request:
- branches: [ master, master_nc_merge_upstream_test ]
+ branches: [ master ]
paths-ignore:
- 'README.md'
- 'LICENSE'
From f9f396bd693e41fb1b2eb1ca1dd474f69019ef35 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Tue, 27 Oct 2020 16:52:26 +0200
Subject: [PATCH 03/54] fixed race condition between notifcation and clipboard
(cherry-pick with manual fix)
---
src/tools/storage/imgur/imguruploader.cpp | 2 +-
src/tools/storage/s3/imgs3uploader.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/tools/storage/imgur/imguruploader.cpp b/src/tools/storage/imgur/imguruploader.cpp
index 565f6372..db449061 100644
--- a/src/tools/storage/imgur/imguruploader.cpp
+++ b/src/tools/storage/imgur/imguruploader.cpp
@@ -79,10 +79,10 @@ void ImgurUploader::handleReply(QNetworkReply* reply)
resultStatus = true;
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
- QApplication::clipboard()->setText(imageUrl().toString());
SystemNotification().sendMessage(
QObject::tr("URL copied to clipboard."));
Controller::getInstance()->updateRecentScreenshots();
+ QApplication::clipboard()->setText(imageUrl().toString());
close();
} else {
onUploadOk();
diff --git a/src/tools/storage/s3/imgs3uploader.cpp b/src/tools/storage/s3/imgs3uploader.cpp
index 7a7c846f..6012121a 100644
--- a/src/tools/storage/s3/imgs3uploader.cpp
+++ b/src/tools/storage/s3/imgs3uploader.cpp
@@ -198,9 +198,9 @@ void ImgS3Uploader::handleReplyUpload(QNetworkReply* reply)
// Copy url to clipboard if required
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
- QApplication::clipboard()->setText(imageUrl().toString());
SystemNotification().sendMessage(tr("URL copied to clipboard."));
Controller::getInstance()->updateRecentScreenshots();
+ QApplication::clipboard()->setText(imageUrl().toString());
close();
} else {
onUploadOk();
From 40f65dc252349e0c204bdb31eb06be20837a6ddc Mon Sep 17 00:00:00 2001
From: DbDibyendu <55906713+DbDibyendu@users.noreply.github.com>
Date: Sat, 24 Oct 2020 01:23:05 +0530
Subject: [PATCH 04/54] Update README.md
---
README.md | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/README.md b/README.md
index 6551a620..a864e2ab 100644
--- a/README.md
+++ b/README.md
@@ -234,6 +234,24 @@ Steps for using the configuration:
6. Now the Flameshot entry should appear in the list. Click _Apply_ to apply the changes.
7. If you want to change the defaults, you can expand the entry, select the appropriate action and modify it as you wish; the process is pretty mush self-explanatory.
+### On Ubuntu (Tested on 18.04)
+
+Taken from [adaptation](https://askubuntu.com/posts/1039949/revisions) of [Pavel Answer on askubuntu](https://askubuntu.com/revisions/1036473/1). To use flameshot instead of default screenshot application in ubuntu we need to release the binding on Prt Sc key, and then create a new binding for `/usr/bin/flameshot gui`.
+
+1. Release the binding on Prt Sc using the following command.
+
+ ```shell
+ gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot ''
+ ```
+
+2. Go to Settings > Device > Keyboard and press the '+' button at the bottom.
+
+3. Name the command as you like it, e.g. `flameshot`. And in the command insert `/usr/bin/flameshot gui`.
+
+4. Then click "_Set Shortcut.._" and press Prt Sc. This will show as "_print_".
+
+Now everytime You press Prt Sc it will start the flameshot gui instead of the default application
+
## Considerations
- Experimental Gnome Wayland and Plasma Wayland support.
@@ -294,6 +312,7 @@ some Linux distributions:
Alternatively, in case you don't want to have a systray, you can always call Flameshot from the terminal. See [Usage section](#usage).
+
### S3 bucket configuration
S3 bucket credentials are placed in the file `config.ini` and cannot be configured with UI.
From 3c260add45f87dcb48ab57523ec7caf762476109 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Tue, 27 Oct 2020 17:17:39 +0200
Subject: [PATCH 05/54] Update .gitignore
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index 9b11ebb5..fb71df32 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,5 +61,6 @@ data/flatpak/.flatpak-builder
# Jetbrains
.idea/
+.run
# End of https://www.gitignore.io/api/snapcraft
From babbbb8f9bb465c9e16305af60eef24ff39c0801 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Wed, 28 Oct 2020 11:48:40 +0200
Subject: [PATCH 06/54] Make preview files on the local disk for the 'Latest
uploads' smaller
---
src/utils/history.cpp | 13 ++++++++++++-
src/utils/history.h | 3 +++
src/widgets/historywidget.cpp | 2 ++
src/widgets/historywidget.h | 3 ---
4 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/utils/history.cpp b/src/utils/history.cpp
index 35b48567..83844a7f 100644
--- a/src/utils/history.cpp
+++ b/src/utils/history.cpp
@@ -30,9 +30,20 @@ const QString& History::path()
void History::save(const QPixmap& pixmap, const QString& fileName)
{
+ // scale preview only in local disk
+ QPixmap pixmapScaled = QPixmap(pixmap);
+ if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >=
+ pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
+ pixmapScaled = pixmap.scaledToHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
+ } else {
+ pixmapScaled = pixmap.scaledToWidth(HISTORYPIXMAP_MAX_PREVIEW_WIDTH);
+ }
+
+ // save preview
QFile file(path() + fileName);
file.open(QIODevice::WriteOnly);
- pixmap.save(&file, "PNG");
+ pixmapScaled.save(&file, "PNG");
+
history();
}
diff --git a/src/utils/history.h b/src/utils/history.h
index a4569175..a0d7266b 100644
--- a/src/utils/history.h
+++ b/src/utils/history.h
@@ -3,6 +3,9 @@
#define HISTORY_MAX_SIZE 25
+#define HISTORYPIXMAP_MAX_PREVIEW_WIDTH 160
+#define HISTORYPIXMAP_MAX_PREVIEW_HEIGHT 90
+
#include
#include
#include
diff --git a/src/widgets/historywidget.cpp b/src/widgets/historywidget.cpp
index 4a80eddf..83a0d8a5 100644
--- a/src/widgets/historywidget.cpp
+++ b/src/widgets/historywidget.cpp
@@ -106,6 +106,8 @@ void HistoryWidget::addLine(const QString& path, const QString& fileName)
QPixmap pixmap;
pixmap.load(fullFileName, "png");
+ // TODO - remove much later, it is still required to keep old previews works
+ // fine
if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >=
pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
pixmap = pixmap.scaledToHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
diff --git a/src/widgets/historywidget.h b/src/widgets/historywidget.h
index b713f666..163342bc 100644
--- a/src/widgets/historywidget.h
+++ b/src/widgets/historywidget.h
@@ -1,9 +1,6 @@
#ifndef HISTORYWIDGET_H
#define HISTORYWIDGET_H
-#define HISTORYPIXMAP_MAX_PREVIEW_WIDTH 160
-#define HISTORYPIXMAP_MAX_PREVIEW_HEIGHT 90
-
#include
#include
#include
From 7e49d4e5eb1ffc93f028d9b8356ff0f9ad1af946 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Wed, 28 Oct 2020 16:14:45 +0200
Subject: [PATCH 07/54] Fix - Use fixed path for screenshots to save
---
src/config/geneneralconf.cpp | 9 +--------
src/utils/confighandler.cpp | 10 ----------
src/utils/confighandler.h | 3 ---
src/utils/screenshotsaver.cpp | 4 ++--
4 files changed, 3 insertions(+), 23 deletions(-)
diff --git a/src/config/geneneralconf.cpp b/src/config/geneneralconf.cpp
index b0fe1f88..b4f38b60 100644
--- a/src/config/geneneralconf.cpp
+++ b/src/config/geneneralconf.cpp
@@ -61,13 +61,6 @@ void GeneneralConf::updateComponents()
m_copyAndCloseAfterUpload->setChecked(
config.copyAndCloseAfterUploadEnabled());
m_saveAfterCopy->setChecked(config.saveAfterCopyValue());
-
- if (!config.saveAfterCopyPathValue().isEmpty()) {
- m_savePath->setText(config.saveAfterCopyPathValue());
- } else {
- ConfigHandler().setSaveAfterCopyPath(
- QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
- }
m_copyPathAfterSave->setChecked(config.copyPathAfterSaveEnabled());
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
@@ -376,7 +369,7 @@ void GeneneralConf::changeSavePath()
QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
if (!path.isEmpty()) {
m_savePath->setText(path);
- ConfigHandler().setSaveAfterCopyPath(path);
+ ConfigHandler().setSavePath(path);
}
}
diff --git a/src/utils/confighandler.cpp b/src/utils/confighandler.cpp
index fe0e84ec..3a48f069 100644
--- a/src/utils/confighandler.cpp
+++ b/src/utils/confighandler.cpp
@@ -485,16 +485,6 @@ const QString& ConfigHandler::uploadStorage()
return m_strRes;
}
-QString ConfigHandler::saveAfterCopyPathValue()
-{
- return m_settings.value(QStringLiteral("saveAfterCopyPath")).toString();
-}
-
-void ConfigHandler::setSaveAfterCopyPath(const QString& path)
-{
- m_settings.setValue(QStringLiteral("saveAfterCopyPath"), path);
-}
-
void ConfigHandler::setDefaults()
{
m_settings.clear();
diff --git a/src/utils/confighandler.h b/src/utils/confighandler.h
index 0ec01ef0..b493427d 100644
--- a/src/utils/confighandler.h
+++ b/src/utils/confighandler.h
@@ -87,9 +87,6 @@ public:
bool saveAfterCopyValue();
void setSaveAfterCopy(const bool);
- QString saveAfterCopyPathValue();
- void setSaveAfterCopyPath(const QString&);
-
bool copyPathAfterSaveEnabled();
void setCopyPathAfterSaveEnabled(const bool);
diff --git a/src/utils/screenshotsaver.cpp b/src/utils/screenshotsaver.cpp
index f803987a..a19dbdd2 100644
--- a/src/utils/screenshotsaver.cpp
+++ b/src/utils/screenshotsaver.cpp
@@ -35,9 +35,9 @@ void ScreenshotSaver::saveToClipboard(const QPixmap& capture)
// If we are able to properly save the file, save the file and copy to
// clipboard.
if ((ConfigHandler().saveAfterCopyValue()) &&
- (!ConfigHandler().saveAfterCopyPathValue().isEmpty())) {
+ (!ConfigHandler().savePath().isEmpty())) {
saveToFilesystem(capture,
- ConfigHandler().saveAfterCopyPathValue(),
+ ConfigHandler().savePath(),
QObject::tr("Capture saved to clipboard."));
QApplication::clipboard()->setPixmap(capture);
}
From 138707271133cc2c3dcb6655938b4c69833cfd6c Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Wed, 28 Oct 2020 17:06:11 +0200
Subject: [PATCH 08/54] Fix - Remove localized names option for Month, day of
week etc for Windows
---
src/config/strftimechooserwidget.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/config/strftimechooserwidget.cpp b/src/config/strftimechooserwidget.cpp
index e415a077..57de3856 100644
--- a/src/config/strftimechooserwidget.cpp
+++ b/src/config/strftimechooserwidget.cpp
@@ -51,22 +51,34 @@ QMap StrftimeChooserWidget::m_buttonData{
{ QT_TR_NOOP("Century (00-99)"), "%C" },
{ QT_TR_NOOP("Year (00-99)"), "%y" },
{ QT_TR_NOOP("Year (2000)"), "%Y" },
+#ifndef Q_OS_WIN
+ // TODO - fix localized names on windows (ex. Cyrillic)
{ QT_TR_NOOP("Month Name (jan)"), "%b" },
{ QT_TR_NOOP("Month Name (january)"), "%B" },
+#endif
{ QT_TR_NOOP("Month (01-12)"), "%m" },
{ QT_TR_NOOP("Week Day (1-7)"), "%u" },
{ QT_TR_NOOP("Week (01-53)"), "%V" },
+#ifndef Q_OS_WIN
+ // TODO - fix localized names on windows (ex. Cyrillic)
{ QT_TR_NOOP("Day Name (mon)"), "%a" },
{ QT_TR_NOOP("Day Name (monday)"), "%A" },
+#endif
{ QT_TR_NOOP("Day (01-31)"), "%d" },
{ QT_TR_NOOP("Day of Month (1-31)"), "%e" },
{ QT_TR_NOOP("Day (001-366)"), "%j" },
+#ifndef Q_OS_WIN
+ // TODO - fix localized names on windows (ex. Cyrillic)
{ QT_TR_NOOP("Time (%H-%M-%S)"), "%T" },
{ QT_TR_NOOP("Time (%H-%M)"), "%R" },
+#endif
{ QT_TR_NOOP("Hour (00-23)"), "%H" },
{ QT_TR_NOOP("Hour (01-12)"), "%I" },
{ QT_TR_NOOP("Minute (00-59)"), "%M" },
{ QT_TR_NOOP("Second (00-59)"), "%S" },
+#ifndef Q_OS_WIN
+ // TODO - fix localized names on windows (ex. Cyrillic)
{ QT_TR_NOOP("Full Date (%m/%d/%y)"), "%D" },
+#endif
{ QT_TR_NOOP("Full Date (%Y-%m-%d)"), "%F" },
};
From 61cc8a475ce6aa018b18e2fc45e7d27c7b434014 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Wed, 28 Oct 2020 18:01:40 +0200
Subject: [PATCH 09/54] Release 0.8.5.3
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0436273c..0e603f5a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.13)
# This can be read from ${PROJECT_NAME} after project() is called
project(
flameshot
- VERSION 0.8.5.2
+ VERSION 0.8.5.3
LANGUAGES CXX)
set(PROJECT_NAME_CAPITALIZED "Flameshot")
From 50d5afed8ff337603f967d0e5f095daf2aa18d37 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Fri, 6 Nov 2020 17:31:21 +0200
Subject: [PATCH 10/54] Read s3 creds for upload from URL in private network
(VPN)
---
data/translations/Internationalization_ca.ts | 255 +++---
data/translations/Internationalization_cs.ts | 255 +++---
.../Internationalization_de_DE.ts | 255 +++---
data/translations/Internationalization_es.ts | 255 +++---
data/translations/Internationalization_eu.ts | 255 +++---
data/translations/Internationalization_fr.ts | 255 +++---
data/translations/Internationalization_hu.ts | 28 +-
.../Internationalization_it_IT.ts | 251 +++---
data/translations/Internationalization_ja.ts | 255 +++---
data/translations/Internationalization_ka.ts | 255 +++---
data/translations/Internationalization_nl.ts | 255 +++---
.../Internationalization_nl_NL.ts | 255 +++---
data/translations/Internationalization_pl.ts | 255 +++---
.../Internationalization_pt_BR.ts | 255 +++---
data/translations/Internationalization_ru.ts | 253 +++---
data/translations/Internationalization_sk.ts | 255 +++---
.../Internationalization_sr_SP.ts | 255 +++---
.../Internationalization_sv_SE.ts | 255 +++---
data/translations/Internationalization_tr.ts | 255 +++---
data/translations/Internationalization_uk.ts | 253 +++---
.../Internationalization_zh_CN.ts | 255 +++---
.../Internationalization_zh_HK.ts | 829 ++++++++++++------
.../Internationalization_zh_TW.ts | 255 +++---
src/config/uploadstorageconfig.cpp | 4 +-
src/tools/storage/imguploader.cpp | 4 +-
.../s3/amazon-server-side/doc/README.md | 6 +-
.../storage/s3/config-examples/config.ini | 11 +
.../s3/config-examples/config_proxy.ini | 16 +
src/tools/storage/s3/imgs3settings.cpp | 338 ++++++-
src/tools/storage/s3/imgs3settings.h | 63 +-
src/tools/storage/s3/imgs3uploader.cpp | 219 ++---
src/tools/storage/s3/imgs3uploader.h | 16 +-
src/tools/storage/storagemanager.cpp | 22 +-
src/tools/storage/storagemanager.h | 4 +-
src/utils/confighandler.cpp | 37 +-
src/utils/confighandler.h | 7 +
36 files changed, 4039 insertions(+), 2912 deletions(-)
create mode 100644 src/tools/storage/s3/config-examples/config.ini
create mode 100644 src/tools/storage/s3/config-examples/config_proxy.ini
diff --git a/data/translations/Internationalization_ca.ts b/data/translations/Internationalization_ca.ts
index ff56d241..fa37337d 100644
--- a/data/translations/Internationalization_ca.ts
+++ b/data/translations/Internationalization_ca.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -205,22 +205,22 @@ Press Space to open the side panel.
Controller
-
+ &Open Launcher
-
+ &Configuration&Configuració
-
+ &About
-
+ &Latest Uploads
@@ -229,12 +229,12 @@ Press Space to open the side panel.
&Informació
-
+ &Quit&Ix
-
+ &Take Screenshot
@@ -324,170 +324,170 @@ Press Space to open the side panel.
GeneneralConf
-
+ Show help messageMostra el missatge d'ajuda
-
+ Show the help message at the beginning in the capture mode.Mostra el missatge d'ajuda en iniciar el mode de captura.
-
-
+
+ Show desktop notificationsMostra les notificacions d'escriptori
-
+ Show tray iconMostra la icona en la barra de tasques
-
+ Show the systemtray iconMostra la icona en la barra de tasques
-
-
+
+ ImportImportar
-
-
-
-
+
+
+
+ ErrorError
-
+ Unable to read file.Impossible llegir el fitxer.
-
-
+
+ Unable to write file.Impossible escriure al fitxer.
-
+ Save FileGuardar Arxiu
-
+ Confirm ResetConfirmar Reset
-
+ Are you sure you want to reset the configuration?Esteu segur que voleu reiniciar la configuració?
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
+ Configuration FileFitxer de Configuració
-
+ ExportExportar
-
+ ResetReset
-
+ Launch at startupLlançament a l'inici
-
-
+
+ Launch Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -495,27 +495,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLCopia l'URL
-
+ URL copied to clipboard.L'URL s'ha copiat al porta-retalls.
-
+ Open in browser
@@ -528,9 +528,14 @@ Press Space to open the side panel.
- Uploading Image
- S'està pujant la imatge
+ S'està pujant la imatge
+
+
+
+
+ Uploading Image...
+
@@ -543,40 +548,56 @@ Press Space to open the side panel.
-
+ URL copied to clipboard.L'URL s'ha copiat al porta-retalls.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Error
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -594,15 +615,8 @@ Press Space to open the side panel.
-
- Uploading Image
- S'està pujant la imatge
-
-
-
- Upload image
-
+ S'està pujant la imatge
@@ -620,10 +634,16 @@ Press Space to open the side panel.
La captura s'ha copiat al porta-retalls.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -635,6 +655,7 @@ Press Space to open the side panel.
Obri l'URL
+ Delete image
@@ -656,7 +677,7 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to ImgurPuja a Imgur
@@ -677,7 +698,7 @@ Press Space to open the side panel.
Imatge al porta-retalls.
-
+ Unable to open the URL.No es pot obrir l'URL.
@@ -1045,7 +1066,7 @@ You may need to escape the '#' sign as in '\#FFF'
-
+ URL copied to clipboard.L'URL s'ha copiat al porta-retalls.
@@ -1086,77 +1107,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureIx de la captura
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerMostra el selector de color
-
+ Change the tool's thicknessCanvia el gruix de l'eina
@@ -1242,22 +1263,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Dreceres disponibles en el mode de captura de pantalla.
-
+ DescriptionDescripció
-
+ KeyTecla
@@ -1316,92 +1337,92 @@ You can find me in the system tray.
Any (2000)
-
+ Month Name (jan)Nom del mes (jul)
-
+ Month Name (january)Nom del mes (juliol)
-
+ Month (01-12)Mes (01-12)
-
+ Week Day (1-7)Dia de la setmana (1-7)
-
+ Week (01-53)Setmana (01-53)
-
+ Day Name (mon)Nom del dia (dg)
-
+ Day Name (monday)Nom del dia (diumenge)
-
+ Day (01-31)Dia (01-31)
-
+ Day of Month (1-31)Dia del mes (1-31)
-
+ Day (001-366)Dia (001-366)
-
+ Hour (00-23)Hora (00-23)
-
+ Hour (01-12)Hora (01-12)
-
+ Minute (00-59)Minut (00-59)
-
+ Second (00-59)Segon (00-59)
-
+ Full Date (%m/%d/%y)Data (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Data (%Y-%m-%d)
-
+ Time (%H-%M-%S)
-
+ Time (%H-%M)
diff --git a/data/translations/Internationalization_cs.ts b/data/translations/Internationalization_cs.ts
index 2a6fb76a..36cd2633 100644
--- a/data/translations/Internationalization_cs.ts
+++ b/data/translations/Internationalization_cs.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Režim zachytávání</b>
-
+ Rectangular RegionPravouhlá oblast
-
+ Full Screen (All Monitors)Celá obrazovka (všechny monitory)
-
+ No DelayBez zpoždění
-
+ second sekunda
-
+ seconds sekund
-
+ Take new screenshotZachytit nový snímek
-
+ Area:Oblast:
-
+ Delay:Zpoždění:
@@ -208,27 +208,27 @@ Stiskněte mezerník pro otevření postranního panelu.
Controller
-
+ &Take Screenshot&Zachytit obrazovku
-
+ &Open Launcher&Otevřít spouštěč
-
+ &Configuration&Nastavení
-
+ &AboutO &programu
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Stiskněte mezerník pro otevření postranního panelu.
&Informace
-
+ &Quit&Ukončit
@@ -327,114 +327,114 @@ Stiskněte mezerník pro otevření postranního panelu.
GeneneralConf
-
-
+
+ ImportZavést
-
-
-
-
+
+
+
+ ErrorChyba
-
+ Unable to read file.Nelze přečíst soubor.
-
-
+
+ Unable to write file.Nelze zapsat soubor.
-
+ Save FileUložit soubor
-
+ Confirm ResetPotvrdit vrácení na výchozí
-
+ Are you sure you want to reset the configuration?Opravdu chcete nastavení vrátit do výchozího stavu?
-
+ Show help messageUkázat zprávu s nápovědou
-
+ Show the help message at the beginning in the capture mode.Ukázat zprávu s nápovědou na začátku v režimu zachytávání.
-
+ Show the side panel buttonUkázat tlačítko na postranním panelu
-
+ Show the side panel toggle button in the capture mode.V režimu zachytávání ukazovat tlačítko na postranním panelu.
-
-
+
+ Show desktop notificationsUkázat oznámení
-
+ Show tray iconUkázat ikonu v oznamovací oblasti panelu
-
+ Show the systemtray iconUkázat ikonu v oznamovací oblasti panelu
-
+ Configuration FileSoubor s nastavením
-
+ ExportVyvést
-
+ ResetNastavit znovu
-
+ Launch at startupSpustit při spuštění
-
-
+
+ Launch FlameshotSpustit Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -443,58 +443,58 @@ Stiskněte mezerník pro otevření postranního panelu.
Zavřít po vytvoření snímku
-
+ Close after taking a screenshotZavřít po vytvoření snímku obrazovky
-
+ Copy URL after uploadKopírovat adresu (URL) po nahrání
-
+ Copy URL and close window after uploadPo nahrání zkopírovat URL a zavřít okno
-
+ Save image after copyUložit obrázek po kopírování
-
+ Save image file after copying itUložit obrázek se souborem po jeho zkopírování
-
+ Save PathCesta pro ukládání
-
+ Change...Změnit...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a FolderVyberte složku
-
+ Unable to write to directory.Nelze zapsat do adresáře.
@@ -502,27 +502,27 @@ Stiskněte mezerník pro otevření postranního panelu.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLKopírovat adresu (URL)
-
+ URL copied to clipboard.Adresa (URL) zkopírována do schránky.
-
+ Open in browser
@@ -535,9 +535,14 @@ Stiskněte mezerník pro otevření postranního panelu.
- Uploading Image
- Nahrává se obrázek
+ Nahrává se obrázek
+
+
+
+
+ Uploading Image...
+
@@ -550,40 +555,56 @@ Stiskněte mezerník pro otevření postranního panelu.
-
+ URL copied to clipboard.Adresa (URL) zkopírována do schránky.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Chyba
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -601,15 +622,8 @@ Stiskněte mezerník pro otevření postranního panelu.
-
- Uploading Image
- Nahrává se obrázek
-
-
-
- Upload image
-
+ Nahrává se obrázek
@@ -627,10 +641,16 @@ Stiskněte mezerník pro otevření postranního panelu.
Snímek obrazovky zkopírován do schránky.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -642,6 +662,7 @@ Stiskněte mezerník pro otevření postranního panelu.
Otevřít adresu (URL)
+ Delete imageSmazat obrázek
@@ -663,7 +684,7 @@ Stiskněte mezerník pro otevření postranního panelu.
ImgurUploader
-
+ Upload to ImgurNahrát do Imgur
@@ -688,7 +709,7 @@ Stiskněte mezerník pro otevření postranního panelu.
Obrázek do schránky.
-
+ Unable to open the URL.Nelze otevřít adresu (URL).
@@ -1104,7 +1125,7 @@ Možná budete muset napsat před '#' opačné (obrácené) lomítko,
Obvykle se Flameshot spouští na pozadí a přidává do oznamovací oblasti panelu ikonu, kterou je ho možné ovládat.
-
+ URL copied to clipboard.Adresa (URL) zkopírována do schránky.
@@ -1115,77 +1136,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureUkončit zachytávání obrazovky
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerUkázat volič barev
-
+ Change the tool's thicknessZměnit tloušťku nástroje
@@ -1271,22 +1292,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Dostupné zkratky v režimu zachytávání obrazovky.
-
+ DescriptionPopis
-
+ KeyKlávesa
@@ -1345,92 +1366,92 @@ You can find me in the system tray.
Rok (2000)
-
+ Month Name (jan)Název měsíce (led)
-
+ Month Name (january)Název měsíce (leden)
-
+ Month (01-12)Měsíc (01-12)
-
+ Week Day (1-7)Den v týdnu (1-7)
-
+ Week (01-53)Týden (01-53)
-
+ Day Name (mon)Název dne (pon)
-
+ Day Name (monday)Název dne (pondělí)
-
+ Day (01-31)Den (01-31)
-
+ Day of Month (1-31)Den v měsíci (1-31)
-
+ Day (001-366)Den v roce (001-366)
-
+ Time (%H-%M-%S)Čas (%H-%M-%S)
-
+ Time (%H-%M)Čas (%H-%M)
-
+ Hour (00-23)Hodina (00-23)
-
+ Hour (01-12)Hodina (01-12)
-
+ Minute (00-59)Minuta (00-59)
-
+ Second (00-59)Sekunda (00-59)
-
+ Full Date (%m/%d/%y)Celé datum (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Celé datum (%Y-%m-%d)
diff --git a/data/translations/Internationalization_de_DE.ts b/data/translations/Internationalization_de_DE.ts
index b7260abe..71a8a2e2 100644
--- a/data/translations/Internationalization_de_DE.ts
+++ b/data/translations/Internationalization_de_DE.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
Controller
-
+ &Take Screenshot&Bildschirmaufnahme anfertigen
-
+ &Open Launcher
-
+ &Configuration&Einstellungen
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
&Informationen
-
+ &Quit&Beenden
@@ -327,170 +327,170 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
GeneneralConf
-
-
+
+ ImportImportieren
-
-
-
-
+
+
+
+ ErrorFehler
-
+ Unable to read file.Datei kann nicht gelesen werden.
-
-
+
+ Unable to write file.Datei kann nicht geschrieben werden.
-
+ Save FileDatei speichern
-
+ Confirm ResetZurücksetzen bestätigen
-
+ Are you sure you want to reset the configuration?Sind Sie sicher, dass sie die Konfiguration zurücksetzen wollen?
-
+ Show help messageHilfetext anzeigen
-
+ Show the help message at the beginning in the capture mode.Hilfetext am Start der Auswahl anzeigen.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsZeige Desktopbenachrichtigungen
-
+ Show tray iconZeige Taskleistensymbol
-
+ Show the systemtray iconZeigt das Taskleistensymbol
-
+ Configuration FileKonfigurationsdatei
-
+ ExportExportieren
-
+ ResetZurücksetzen
-
+ Launch at startupAutomatisch starten
-
-
+
+ Launch FlameshotStarte Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -498,27 +498,27 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLURL kopieren
-
+ URL copied to clipboard.URL kopiert.
-
+ Open in browser
@@ -531,9 +531,14 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
- Uploading Image
- Bild hochladen
+ Bild hochladen
+
+
+
+
+ Uploading Image...
+
@@ -546,40 +551,56 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
-
+ URL copied to clipboard.URL kopiert.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Fehler
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -597,15 +618,8 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
-
- Uploading Image
- Bild hochladen
-
-
-
- Upload image
-
+ Bild hochladen
@@ -623,10 +637,16 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
Bildschirmaufnahme in Zwischenablage kopiert.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -638,6 +658,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
URL öffnen
+ Delete imageBild löschen
@@ -659,7 +680,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
ImgurUploader
-
+ Upload to ImgurZu Imgur hochladen
@@ -684,7 +705,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
Bild in Zwischenablage.
-
+ Unable to open the URL.Kann URL nicht öffnen.
@@ -1090,7 +1111,7 @@ You may need to escape the '#' sign as in '\#FFF'
-
+ URL copied to clipboard.URL kopiert.
@@ -1101,77 +1122,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureAuswahl verlassen
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerZeige Farbauswahl
-
+ Change the tool's thicknessÄndere die Dicke des Werkzeugs
@@ -1257,22 +1278,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Verfügbare Tastenkürzel im Aufnahmemodus.
-
+ DescriptionBeschreibung
-
+ KeyTaste
@@ -1331,92 +1352,92 @@ You can find me in the system tray.
Jahr (2000)
-
+ Month Name (jan)Monatsname (Jan)
-
+ Month Name (january)Monatsname (Januar)
-
+ Month (01-12)Monat (01-12)
-
+ Week Day (1-7)Wochentag (1-7)
-
+ Week (01-53)Woche (01-53)
-
+ Day Name (mon)Wochentag (Mon)
-
+ Day Name (monday)Wochentag (Montag)
-
+ Day (01-31)Tag (01-31)
-
+ Day of Month (1-31)Tag des Monats (1-31)
-
+ Day (001-366)Tag (001-366)
-
+ Time (%H-%M-%S)Zeit (%H-%M-%S)
-
+ Time (%H-%M)Zeit (%H-%M)
-
+ Hour (00-23)Stunde (00-23)
-
+ Hour (01-12)Stunde (01-12)
-
+ Minute (00-59)Minute (00-59)
-
+ Second (00-59)Sekunde (00-59)
-
+ Full Date (%m/%d/%y)Komplettes Datum (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Komplettes Datum (%Y-%m-%d)
diff --git a/data/translations/Internationalization_es.ts b/data/translations/Internationalization_es.ts
index 0ac6ef0a..906038b1 100644
--- a/data/translations/Internationalization_es.ts
+++ b/data/translations/Internationalization_es.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Presiona Espacio para abrir el panel lateral.
Controller
-
+ &Take Screenshot&Tomar captura de pantalla
-
+ &Open Launcher
-
+ &Configuration&Configuración
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Presiona Espacio para abrir el panel lateral.
&Información
-
+ &Quit&Salir
@@ -327,170 +327,170 @@ Presiona Espacio para abrir el panel lateral.
GeneneralConf
-
-
+
+ ImportImportar
-
-
-
-
+
+
+
+ ErrorError
-
+ Unable to read file.Imposible leer el archivo.
-
-
+
+ Unable to write file.Imposible escribir el archivo.
-
+ Save FileGuardar Archivo
-
+ Confirm ResetConfirmar Reset
-
+ Are you sure you want to reset the configuration?¿Estás seguro de que quieres reiniciar la configuración?
-
+ Show help messageMostrar mensaje de ayuda
-
+ Show the help message at the beginning in the capture mode.Muestra el mensaje de ayuda al iniciar el modo de captura.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsMostrar notificaciones del escritorio
-
+ Show tray iconMostrar icono en la barra de tareas
-
+ Show the systemtray iconMostrar el icono en la barra de tareas
-
+ Configuration FileArchivo de Configuración
-
+ ExportExportar
-
+ ResetReset
-
+ Launch at startupLanzar en el arranque
-
-
+
+ Launch FlameshotLanzar Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -498,27 +498,27 @@ Presiona Espacio para abrir el panel lateral.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLCopiar URL
-
+ URL copied to clipboard.URL copiada al portapapeles.
-
+ Open in browser
@@ -531,9 +531,14 @@ Presiona Espacio para abrir el panel lateral.
- Uploading Image
- Subiendo Imagen
+ Subiendo Imagen
+
+
+
+
+ Uploading Image...
+
@@ -546,40 +551,56 @@ Presiona Espacio para abrir el panel lateral.
-
+ URL copied to clipboard.URL copiada al portapapeles.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Error
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -597,15 +618,8 @@ Presiona Espacio para abrir el panel lateral.
-
- Uploading Image
- Subiendo Imagen
-
-
-
- Upload image
-
+ Subiendo Imagen
@@ -623,10 +637,16 @@ Presiona Espacio para abrir el panel lateral.
Captura copiada al portapapeles.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -638,6 +658,7 @@ Presiona Espacio para abrir el panel lateral.
Abrir URL
+ Delete imageBorrar imagen
@@ -659,7 +680,7 @@ Presiona Espacio para abrir el panel lateral.
ImgurUploader
-
+ Upload to ImgurSubir a Imgur
@@ -684,7 +705,7 @@ Presiona Espacio para abrir el panel lateral.
Imagen al Portapapeles.
-
+ Unable to open the URL.No puede abrir la URL.
@@ -1056,7 +1077,7 @@ You may need to escape the '#' sign as in '\#FFF'
Imposible escribir en
-
+ URL copied to clipboard.URL copiada al portapapeles.
@@ -1097,77 +1118,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureSalir de la captura
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerMostrar el selector de color
-
+ Change the tool's thicknessCambiar el grosor de la herramienta
@@ -1253,22 +1274,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Atajos disponibles en el modo captura de pantalla.
-
+ DescriptionDescripción
-
+ KeyTecla
@@ -1327,92 +1348,92 @@ You can find me in the system tray.
Año (2000)
-
+ Month Name (jan)Nombre del Mes (jul)
-
+ Month Name (january)Nombre del Mes (julio)
-
+ Month (01-12)Mes (01-12)
-
+ Week Day (1-7)Día de la Semana (1-7)
-
+ Week (01-53)Semana (01-53)
-
+ Day Name (mon)Nombre del Día (dom)
-
+ Day Name (monday)Nombre del Día (domingo)
-
+ Day (01-31)Día (01-31)
-
+ Day of Month (1-31)Día del Mes (1-31)
-
+ Day (001-366)Día (001-366)
-
+ Time (%H-%M-%S)Tiempo (%H-%M-%S)
-
+ Time (%H-%M)Tiempo (%H-%M)
-
+ Hour (00-23)Hora (00-23)
-
+ Hour (01-12)Hora (01-12)
-
+ Minute (00-59)Minuto (00-59)
-
+ Second (00-59)Segundo (00-59)
-
+ Full Date (%m/%d/%y)Fecha (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Fecha (%Y-%m-%d)
diff --git a/data/translations/Internationalization_eu.ts b/data/translations/Internationalization_eu.ts
index 71bd4c2c..c914e982 100644
--- a/data/translations/Internationalization_eu.ts
+++ b/data/translations/Internationalization_eu.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Argazki-modua</b>
-
+ Rectangular RegionEremu laukizuzena
-
+ Full Screen (All Monitors)Pantaila osoa (pantaila guztiak)
-
+ No DelayAtzerapenik ez
-
+ second segundo
-
+ seconds segundo
-
+ Take new screenshotEgin pantaila-argazki berria
-
+ Area:Eremua:
-
+ Delay:Atzerapena:
@@ -208,27 +208,27 @@ Sakatu Zuriunea alboko panela irekitzeko.
Controller
-
+ &Take Screenshot&Pantaila-argazkia egin
-
+ &Open Launcher&Abiarazlea ireki
-
+ &Configuration&Ezarpenak
-
+ &About&Honi buruz
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Sakatu Zuriunea alboko panela irekitzeko.
&Informazioa
-
+ &Quit&Irten
@@ -327,114 +327,114 @@ Sakatu Zuriunea alboko panela irekitzeko.
GeneneralConf
-
-
+
+ ImportInportatu
-
-
-
-
+
+
+
+ ErrorErrorea
-
+ Unable to read file.Ezin da fitxategia irakurri.
-
-
+
+ Unable to write file.Ezin da fitxategian idatzi.
-
+ Save FileGorde fitxategia
-
+ Confirm ResetBaieztatu berrezartzea
-
+ Are you sure you want to reset the configuration?Ziur ezarpenak berrezarri nahi dituzula?
-
+ Show help messageErakutsi laguntza-mezua
-
+ Show the help message at the beginning in the capture mode.Erakutsi laguntza-mezua argazki-hartze modua irekitzean.
-
+ Show the side panel buttonErakutsi aldeko paneleko botoia
-
+ Show the side panel toggle button in the capture mode.Erakutsi aldeko panela erakusteko botoia argazki-hartze moduan.
-
-
+
+ Show desktop notificationsErakutsi mahaigaineko jakinarazpenak
-
+ Show tray iconErakutsi ikonoa erretiluan
-
+ Show the systemtray iconErakutsi ikonoa sistemako erretiluan
-
+ Configuration FileKonfigurazio-fitxategia
-
+ ExportEsportatu
-
+ ResetBerrezarri
-
+ Launch at startupAbiarazi saio-hasieran
-
-
+
+ Launch FlameshotAbiarazi Flamsehot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -443,58 +443,58 @@ Sakatu Zuriunea alboko panela irekitzeko.
Itxi argazkia egin ostean
-
+ Close after taking a screenshotItxi pantaila-argazkia egin ostean
-
+ Copy URL after uploadKopiatu URLa igo ostean
-
+ Copy URL and close window after uploadKopiatu URLa eta itxi leihoa igo ostean
-
+ Save image after copyGorde irudia kopiatu ostean
-
+ Save image file after copying itGorde irudia fitxategian kopiatu ostean
-
+ Save PathGordetzeko bidea
-
+ Change...Aldatu...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a FolderAukeratu karpeta
-
+ Unable to write to directory.Ezin da direktorioan idatzi.
@@ -502,27 +502,27 @@ Sakatu Zuriunea alboko panela irekitzeko.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLKopiatu URLa
-
+ URL copied to clipboard.Arbelean kopiatu da URLa.
-
+ Open in browser
@@ -535,9 +535,14 @@ Sakatu Zuriunea alboko panela irekitzeko.
- Uploading Image
- Irudia igotzen
+ Irudia igotzen
+
+
+
+
+ Uploading Image...
+
@@ -550,40 +555,56 @@ Sakatu Zuriunea alboko panela irekitzeko.
-
+ URL copied to clipboard.Arbelean kopiatu da URLa.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Errorea
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -601,15 +622,8 @@ Sakatu Zuriunea alboko panela irekitzeko.
-
- Uploading Image
- Irudia igotzen
-
-
-
- Upload image
-
+ Irudia igotzen
@@ -627,10 +641,16 @@ Sakatu Zuriunea alboko panela irekitzeko.
Arbelean kopiatu da pantaila-argazkia.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -642,6 +662,7 @@ Sakatu Zuriunea alboko panela irekitzeko.
Ireki URLa
+ Delete imageEzabatu irudia
@@ -663,7 +684,7 @@ Sakatu Zuriunea alboko panela irekitzeko.
ImgurUploader
-
+ Upload to ImgurIgo Imgur-era
@@ -688,7 +709,7 @@ Sakatu Zuriunea alboko panela irekitzeko.
Irudia arbelera.
-
+ Unable to open the URL.Ezin da ireki URLa.
@@ -1070,7 +1091,7 @@ Baliteke '#' karakterea ihes egin behar izatea, '\#FFF'n bez
Ezin da hemen idatzi:
-
+ URL copied to clipboard.Arbelean kopiatu da URLa.
@@ -1115,77 +1136,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureIrten argazki-hartzetik
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerErakutsi kolore hautagailua
-
+ Change the tool's thicknessAldatu tresnaren lodiera
@@ -1271,22 +1292,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Argazki-hartze moduan erabili daitezken laster-teklak.
-
+ DescriptionDeskribapena
-
+ KeyTekla
@@ -1345,92 +1366,92 @@ You can find me in the system tray.
Urtea (2000)
-
+ Month Name (jan)Hilabetearen izena (ira)
-
+ Month Name (january)Hilabetearen izena (iraila)
-
+ Month (01-12)Hilabetea (01-12)
-
+ Week Day (1-7)Asteko eguna (1-7)
-
+ Week (01-53)Astea (01-53)
-
+ Day Name (mon)Egunaren izena (ar.)
-
+ Day Name (monday)Egunaren izena (asteartea)
-
+ Day (01-31)Eguna (01-31)
-
+ Day of Month (1-31)Hilabeteko eguna (1-31)
-
+ Day (001-366)Urteko eguna (001-366)
-
+ Time (%H-%M-%S)Ordua (%H-%M-%S)
-
+ Time (%H-%M)Ordua (%H-%M)
-
+ Hour (00-23)Eguneko ordua (00-23)
-
+ Hour (01-12)Eguneko ordua (01-12)
-
+ Minute (00-59)Minutua (00-59)
-
+ Second (00-59)Segundoa (00-59)
-
+ Full Date (%m/%d/%y)Data (%h/%e/%u)
-
+ Full Date (%Y-%m-%d)Data (%U-%h-%e)
diff --git a/data/translations/Internationalization_fr.ts b/data/translations/Internationalization_fr.ts
index 9a91935d..830234a8 100644
--- a/data/translations/Internationalization_fr.ts
+++ b/data/translations/Internationalization_fr.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
Controller
-
+ &Take Screenshot&Capturer l'écran
-
+ &Open Launcher
-
+ &Configuration&Configuration
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
&Informations
-
+ &Quit&Quitter
@@ -327,114 +327,114 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
GeneneralConf
-
-
+
+ ImportImporter
-
-
-
-
+
+
+
+ ErrorErreur
-
+ Unable to read file.Impossible de lire le fichier.
-
-
+
+ Unable to write file.Impossible d'écrire le fichier.
-
+ Save FileSauvegarder le fichier
-
+ Confirm ResetConfirmer la Réinitialisation
-
+ Are you sure you want to reset the configuration?Êtes-vous sûr de vouloir réinitialiser la configuration ?
-
+ Show help messageMontrer le message d'aide
-
+ Show the help message at the beginning in the capture mode.Afficher ce message au lancement du mode capture.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsAfficher les notifications du bureau
-
+ Show tray iconAfficher les icones de la barre d'état
-
+ Show the systemtray iconAfficher l'icône dans la barre de tâches
-
+ Configuration FileFichier de Configuration
-
+ ExportExporter
-
+ ResetRéinitialiser
-
+ Launch at startupLancer au démarrage
-
-
+
+ Launch FlameshotDémarrer Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -443,58 +443,58 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
Fermer après une capture
-
+ Close after taking a screenshotFermer l'application après une capture d'écran
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -502,27 +502,27 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLCopier l'URL
-
+ URL copied to clipboard.URL copiée dans le Presse-papier.
-
+ Open in browser
@@ -535,9 +535,14 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
- Uploading Image
- Mise en ligne de l'image
+ Mise en ligne de l'image
+
+
+
+
+ Uploading Image...
+
@@ -550,40 +555,56 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
-
+ URL copied to clipboard.URL copiée dans le Presse-papier.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Erreur
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -601,15 +622,8 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
-
- Uploading Image
- Mise en ligne de l'image
-
-
-
- Upload image
-
+ Mise en ligne de l'image
@@ -627,10 +641,16 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
Capture d'écran copiée dans le Presse-papier.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -642,6 +662,7 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
Ouvrir l'URL
+ Delete image
@@ -663,7 +684,7 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
ImgurUploader
-
+ Upload to ImgurMettre en ligne vers Imgur
@@ -684,7 +705,7 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
Image dans le Presse-papier.
-
+ Unable to open the URL.Impossible d'ouvrir l'URL.
@@ -1052,7 +1073,7 @@ You may need to escape the '#' sign as in '\#FFF'
Impossible d'écrire par dessus
-
+ URL copied to clipboard.URL copiée dans le Presse-papier.
@@ -1093,77 +1114,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureQuitter la capture d'écran
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerAfficher la palette de couleurs
-
+ Change the tool's thicknessChanger l'épaisseur des outils
@@ -1249,22 +1270,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Raccourcis disponibles en mode capture d'écran.
-
+ DescriptionDescription
-
+ KeyClé
@@ -1323,92 +1344,92 @@ You can find me in the system tray.
Année (2000)
-
+ Month Name (jan)Nom des Mois (jan)
-
+ Month Name (january)nom des Mois (janvier)
-
+ Month (01-12)Mois (01-12)
-
+ Week Day (1-7)Jour de la Semaine (1-7)
-
+ Week (01-53)Semaine (01-53)
-
+ Day Name (mon)Nom du Jour (lun)
-
+ Day Name (monday)Nom du Jour (lundi)
-
+ Day (01-31)Jour (01-31)
-
+ Day of Month (1-31)Jour du Mois (1-31)
-
+ Day (001-366)Jour de l'année (001-366)
-
+ Time (%H-%M-%S)Heure (%H-%M-%S)
-
+ Time (%H-%M)Heure (%H-%M)
-
+ Hour (00-23)Heure (00-23)
-
+ Hour (01-12)Heure (01-12)
-
+ Minute (00-59)Minute (00-59)
-
+ Second (00-59)Seconde (00-59)
-
+ Full Date (%m/%d/%y)Date (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Date Complête (%Y-%m-%d)
diff --git a/data/translations/Internationalization_hu.ts b/data/translations/Internationalization_hu.ts
index 2d08036b..143b4710 100644
--- a/data/translations/Internationalization_hu.ts
+++ b/data/translations/Internationalization_hu.ts
@@ -457,7 +457,7 @@ Press Space to open the side panel.
Uploading Image
- Kép felötlése
+ Kép felötléseDelete image from S3
@@ -495,6 +495,22 @@ Press Space to open the side panel.
S3 Creds URL is not found in your configuration file
+
+ Uploading Image...
+
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ Error
+ Hiba
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -511,11 +527,7 @@ Press Space to open the side panel.
Uploading Image
- Kép felötlése
-
-
- Upload image
-
+ Kép felötléseUnable to open the URL.
@@ -549,6 +561,10 @@ Press Space to open the side panel.
Image to Clipboard.Kép a vágolapra.
+
+ Uploading Image...
+
+ ImgUploaderTool
diff --git a/data/translations/Internationalization_it_IT.ts b/data/translations/Internationalization_it_IT.ts
index 31409aa7..05b667e6 100644
--- a/data/translations/Internationalization_it_IT.ts
+++ b/data/translations/Internationalization_it_IT.ts
@@ -64,47 +64,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -193,32 +193,32 @@ Press Space to open the side panel.
Controller
-
+ &Take Screenshot
-
+ &Open Launcher
-
+ &Configuration
-
+ &About
-
+ &Quit
-
+ &Latest Uploads
@@ -308,170 +308,170 @@ Press Space to open the side panel.
GeneneralConf
-
-
+
+ Import
-
-
-
-
+
+
+
+ Error
-
+ Unable to read file.
-
-
+
+ Unable to write file.
-
+ Save File
-
+ Confirm Reset
-
+ Are you sure you want to reset the configuration?
-
+ Show help message
-
+ Show the help message at the beginning in the capture mode.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notifications
-
+ Show tray icon
-
+ Show the systemtray icon
-
+ Configuration File
-
+ Export
-
+ Reset
-
+ Launch at startup
-
-
+
+ Launch Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -479,27 +479,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URL
-
+ URL copied to clipboard.
-
+ Open in browser
@@ -513,7 +513,8 @@ Press Space to open the side panel.
- Uploading Image
+
+ Uploading Image...
@@ -527,40 +528,56 @@ Press Space to open the side panel.
-
+ URL copied to clipboard.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -577,17 +594,6 @@ Press Space to open the side panel.
Upload image to S3
-
-
-
- Uploading Image
-
-
-
-
- Upload image
-
- Unable to open the URL.
@@ -604,10 +610,16 @@ Press Space to open the side panel.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -619,6 +631,7 @@ Press Space to open the side panel.
+ Delete image
@@ -640,12 +653,12 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to Imgur
-
+ Unable to open the URL.
@@ -932,7 +945,7 @@ You may need to escape the '#' sign as in '\#FFF'
-
+ URL copied to clipboard.
@@ -990,77 +1003,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit capture
-
+ Screenshot history
-
+ Capture screen
-
+ Show color picker
-
+ Change the tool's thickness
@@ -1146,22 +1159,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.
-
+ Description
-
+ Key
@@ -1220,92 +1233,92 @@ You can find me in the system tray.
-
+ Month Name (jan)
-
+ Month Name (january)
-
+ Month (01-12)
-
+ Week Day (1-7)
-
+ Week (01-53)
-
+ Day Name (mon)
-
+ Day Name (monday)
-
+ Day (01-31)
-
+ Day of Month (1-31)
-
+ Day (001-366)
-
+ Time (%H-%M-%S)
-
+ Time (%H-%M)
-
+ Hour (00-23)
-
+ Hour (01-12)
-
+ Minute (00-59)
-
+ Second (00-59)
-
+ Full Date (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)
diff --git a/data/translations/Internationalization_ja.ts b/data/translations/Internationalization_ja.ts
index 373c1fb0..d931281b 100644
--- a/data/translations/Internationalization_ja.ts
+++ b/data/translations/Internationalization_ja.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Enter を押すと画面をキャプチャー。
Controller
-
+ &Take Screenshotスクリーンショットを撮る(&T)
-
+ &Open Launcher
-
+ &Configuration設定(&C)
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Enter を押すと画面をキャプチャー。
情報(&I)
-
+ &Quit終了(&Q)
@@ -327,170 +327,170 @@ Enter を押すと画面をキャプチャー。
GeneneralConf
-
+ Show help messageヘルプメッセージを表示する
-
+ Show the help message at the beginning in the capture mode.キャプチャーモード開始時にヘルプメッセージを表示する。
-
-
+
+ Show desktop notificationsデスクトップの通知を表示する
-
+ Show tray iconトレイアイコンを表示する
-
+ Show the systemtray iconシステムトレイアイコンを表示する
-
-
+
+ Importインポート
-
-
-
-
+
+
+
+ Errorエラー
-
+ Unable to read file.ファイルを読み込めません。
-
-
+
+ Unable to write file.ファイルに書き込めません。
-
+ Save Fileファイルを保存
-
+ Confirm Resetリセットの確認
-
+ Are you sure you want to reset the configuration?設定をリセットしてもよろしいですか?
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
+ Configuration File設定ファイル
-
+ Exportエクスポート
-
+ Resetリセット
-
+ Launch at startupスタートアップ時に起動する
-
-
+
+ Launch FlameshotFlameshot を起動する
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -498,27 +498,27 @@ Enter を押すと画面をキャプチャー。
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLURL をコピー
-
+ URL copied to clipboard.URL をクリップボードにコピーしました。
-
+ Open in browser
@@ -531,9 +531,14 @@ Enter を押すと画面をキャプチャー。
- Uploading Image
- 画像をアップロード中
+ 画像をアップロード中
+
+
+
+
+ Uploading Image...
+
@@ -546,40 +551,56 @@ Enter を押すと画面をキャプチャー。
-
+ URL copied to clipboard.URL をクリップボードにコピーしました。
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ エラー
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -597,15 +618,8 @@ Enter を押すと画面をキャプチャー。
-
- Uploading Image
- 画像をアップロード中
-
-
-
- Upload image
-
+ 画像をアップロード中
@@ -623,10 +637,16 @@ Enter を押すと画面をキャプチャー。
スクリーンショットをクリップボードにコピーしました。
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -638,6 +658,7 @@ Enter を押すと画面をキャプチャー。
URL を開く
+ Delete image画像を削除
@@ -659,7 +680,7 @@ Enter を押すと画面をキャプチャー。
ImgurUploader
-
+ Upload to ImgurImgur にアップロード
@@ -684,7 +705,7 @@ Enter を押すと画面をキャプチャー。
画像をクリップボードへ。
-
+ Unable to open the URL.URL を開けません。
@@ -1052,7 +1073,7 @@ You may need to escape the '#' sign as in '\#FFF'
書き込めません:
-
+ URL copied to clipboard.URL をクリップボードにコピーしました。
@@ -1093,77 +1114,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureキャプチャーを終了する
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerカラーピッカーを表示する
-
+ Change the tool's thicknessツールの値 (太さや濃さ) を変更する
@@ -1249,22 +1270,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.スクリーンキャプチャーモードで利用可能なショートカット。
-
+ Description説明
-
+ Keyキー
@@ -1323,92 +1344,92 @@ You can find me in the system tray.
年 (2000)
-
+ Month Name (jan)月 (jan)
-
+ Month Name (january)月 (january)
-
+ Month (01-12)月 (01-12)
-
+ Week Day (1-7)週日 (1-7)
-
+ Week (01-53)週 (01-53)
-
+ Day Name (mon)曜日 (月)
-
+ Day Name (monday)曜日 (月曜日)
-
+ Day (01-31)日 (01-31)
-
+ Day of Month (1-31)日 (1-31)
-
+ Day (001-366)日 (001-366)
-
+ Time (%H-%M-%S)時刻 (%H-%M-%S)
-
+ Time (%H-%M)時刻 (%H-%M)
-
+ Hour (00-23)時 (00-23)
-
+ Hour (01-12)時 (01-12)
-
+ Minute (00-59)分 (00-59)
-
+ Second (00-59)秒 (00-59)
-
+ Full Date (%m/%d/%y)年月日 (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)年月日 (%Y-%m-%d)
diff --git a/data/translations/Internationalization_ka.ts b/data/translations/Internationalization_ka.ts
index e3931166..6ecbf249 100644
--- a/data/translations/Internationalization_ka.ts
+++ b/data/translations/Internationalization_ka.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -204,27 +204,27 @@ Press Space to open the side panel.
Controller
-
+ &Take Screenshot
-
+ &Open Launcher
-
+ &Configuration&პარამეტრები
-
+ &About
-
+ &Latest Uploads
@@ -233,7 +233,7 @@ Press Space to open the side panel.
&ინფორმაცია
-
+ &Quit&გამოსვლა
@@ -323,170 +323,170 @@ Press Space to open the side panel.
GeneneralConf
-
-
+
+ Importიმპორტირება
-
-
-
-
+
+
+
+ Errorშეცდომა
-
+ Unable to read file.ფაილის წაკითხვა ვერ მოხერხდა.
-
-
+
+ Unable to write file.ფაილის ჩაწერა ვერ მოხერხდა.
-
+ Save Fileფაილის შენახვა
-
+ Confirm Resetგანულების დადასტურება
-
+ Are you sure you want to reset the configuration?დარწმუნებული ხართ, რომ გსურთ პარამეტრების განულება?
-
+ Show help messageდახმარების შეტყობინების ნახვა
-
+ Show the help message at the beginning in the capture mode.დახმარების შეტყობინების ნახვა გადაღების რეჟიმის დაწყებისას.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsცნობების ჩვენება სამუშაო მაგიდაზე
-
+ Show tray iconხატულის ჩვენება სისტემურ პანელზე
-
+ Show the systemtray iconხატულის ჩვენება სისტემურ პანელზე
-
+ Configuration Fileპარამეტრების ფაილი
-
+ Exportექსპორტირება
-
+ Resetგანულება
-
+ Launch at startupგაშვება სისტემის ჩატვირთვისას
-
-
+
+ Launch Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -494,27 +494,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLURL-ის კოპირება
-
+ URL copied to clipboard.URL დაკოპირდა გაცვლის ბუფერში.
-
+ Open in browser
@@ -527,9 +527,14 @@ Press Space to open the side panel.
- Uploading Image
- სურათის ატვირთვა
+ სურათის ატვირთვა
+
+
+
+
+ Uploading Image...
+
@@ -542,40 +547,56 @@ Press Space to open the side panel.
-
+ URL copied to clipboard.URL დაკოპირდა გაცვლის ბუფერში.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ შეცდომა
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -593,15 +614,8 @@ Press Space to open the side panel.
-
- Uploading Image
- სურათის ატვირთვა
-
-
-
- Upload image
-
+ სურათის ატვირთვა
@@ -619,10 +633,16 @@ Press Space to open the side panel.
სურათი დაკოპირდა გაცვლის ბუფერში.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -634,6 +654,7 @@ Press Space to open the side panel.
URL-ის გახსნა
+ Delete image
@@ -655,7 +676,7 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to ImgurImgur-ზე ატვირთვა
@@ -676,7 +697,7 @@ Press Space to open the side panel.
სურათის გაცვლის ბუფერში გაგზავნა
-
+ Unable to open the URL.URL-ის გახსნა ვერ მოხერხდა.
@@ -1044,7 +1065,7 @@ You may need to escape the '#' sign as in '\#FFF'
შემდეგ მისამართზე ჩაწერა ვერ მოხერხდა:
-
+ URL copied to clipboard.URL დაკოპირდა გაცვლის ბუფერში.
@@ -1085,77 +1106,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureგადაღებიდან გამოსვლა
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerფერის შესარჩევის ჩვენება
-
+ Change the tool's thicknessხელსაწყოს სისქის შეცვლა
@@ -1241,22 +1262,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.გადაღების რეჟიმში ხელმისაწვდომი მალსახმობები.
-
+ Descriptionაღწერა
-
+ Keyკლავიში
@@ -1315,92 +1336,92 @@ You can find me in the system tray.
წელი (2000)
-
+ Month Name (jan)თვის სახელი (იან)
-
+ Month Name (january)თვის სახელი (იანვარი)
-
+ Month (01-12)თვე (01-12)
-
+ Week Day (1-7)კვირის დღე (1-7)
-
+ Week (01-53)კვირა (01-53)
-
+ Day Name (mon)დღის სახელი (ორშ)
-
+ Day Name (monday)დღის სახელი (ორშაბათი)
-
+ Day (01-31)დღე (01-31)
-
+ Day of Month (1-31)თვის დღე (1-31)
-
+ Day (001-366)დღე (001-366)
-
+ Time (%H-%M-%S)
-
+ Time (%H-%M)
-
+ Hour (00-23)საათი (00-23)
-
+ Hour (01-12)საათი (01-12)
-
+ Minute (00-59)წუთი (00-59)
-
+ Second (00-59)წამი (00-59)
-
+ Full Date (%m/%d/%y)სრული თარიღი (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)სრული თარიღი (%Y-%m-%d)
diff --git a/data/translations/Internationalization_nl.ts b/data/translations/Internationalization_nl.ts
index a6ddaf86..ce7dd668 100644
--- a/data/translations/Internationalization_nl.ts
+++ b/data/translations/Internationalization_nl.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Druk op spatie om het zijpaneel te openen.
Controller
-
+ &Take ScreenshotSchermafdruk &maken
-
+ &Open Launcher
-
+ &Configuration&Configuratie
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Druk op spatie om het zijpaneel te openen.
&Informatie
-
+ &Quit&Afsluiten
@@ -327,170 +327,170 @@ Druk op spatie om het zijpaneel te openen.
GeneneralConf
-
-
+
+ ImportImporteren
-
-
-
-
+
+
+
+ ErrorFout
-
+ Unable to read file.Kan bestand niet uitlezen.
-
-
+
+ Unable to write file.Kan bestand niet wegschrijven.
-
+ Save FileBestand opslaan
-
+ Confirm ResetHerstellen bevestigen
-
+ Are you sure you want to reset the configuration?Weet je zeker dat je de standwaardwaarden van de configuratie wilt herstellen?
-
+ Show help messageUitleg tonen
-
+ Show the help message at the beginning in the capture mode.Toont een bericht met uitleg bij het openen van de vastlegmodus.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsBureaubladmeldingen tonen
-
+ Show tray iconSysteemvakpictogram tonen
-
+ Show the systemtray iconToont het systeemvakpictogram
-
+ Configuration FileConfiguratiebestand
-
+ ExportExporteren
-
+ ResetStandaardwaarden
-
+ Launch at startupAutomatisch opstarten
-
-
+
+ Launch FlameshotFlameshot openen
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -498,27 +498,27 @@ Druk op spatie om het zijpaneel te openen.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLURL kopiëren
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
-
+ Open in browser
@@ -531,9 +531,14 @@ Druk op spatie om het zijpaneel te openen.
- Uploading Image
- Bezig met uploaden van afbeelding...
+ Bezig met uploaden van afbeelding...
+
+
+
+
+ Uploading Image...
+
@@ -546,40 +551,56 @@ Druk op spatie om het zijpaneel te openen.
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Fout
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -597,15 +618,8 @@ Druk op spatie om het zijpaneel te openen.
-
- Uploading Image
- Bezig met uploaden van afbeelding...
-
-
-
- Upload image
-
+ Bezig met uploaden van afbeelding...
@@ -623,10 +637,16 @@ Druk op spatie om het zijpaneel te openen.
Schermafdruk gekopieerd naar klembord.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -638,6 +658,7 @@ Druk op spatie om het zijpaneel te openen.
URL openen
+ Delete imageAfbeelding verwijderen
@@ -659,7 +680,7 @@ Druk op spatie om het zijpaneel te openen.
ImgurUploader
-
+ Upload to ImgurUploaden naar Imgur
@@ -684,7 +705,7 @@ Druk op spatie om het zijpaneel te openen.
Afbeelding naar klembord.
-
+ Unable to open the URL.Kan URL niet openen.
@@ -1056,7 +1077,7 @@ You may need to escape the '#' sign as in '\#FFF'
Kan niet wegschrijven naar
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
@@ -1097,77 +1118,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureVastleggen afsluiten
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerKleurkiezer tonen
-
+ Change the tool's thicknessWijzig de gereedschapsdikte
@@ -1254,22 +1275,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Beschikbare sneltoetsen in de vastlegmodus.
-
+ DescriptionOmschrijving
-
+ KeyToets
@@ -1328,92 +1349,92 @@ You can find me in the system tray.
Jaar (2000)
-
+ Month Name (jan)Naam van de maand (јаn)
-
+ Month Name (january)Naam van de maand (јаnuari)
-
+ Month (01-12)Maand (01-12)
-
+ Week Day (1-7)Weekdag (1-7)
-
+ Week (01-53)Week (01-53)
-
+ Day Name (mon)Naam van de dag (ma)
-
+ Day Name (monday)Naam van de dag (maandag)
-
+ Day (01-31)Dag (01-31)
-
+ Day of Month (1-31)Dag van de maand (1-31)
-
+ Day (001-366)Dag (001-366)
-
+ Time (%H-%M-%S)Tijd (%H-%M-%S)
-
+ Time (%H-%M)Tijd (%H-%M)
-
+ Hour (00-23)Uur (00-23)
-
+ Hour (01-12)Uur (01-12)
-
+ Minute (00-59)Minuten (00-59)
-
+ Second (00-59)Seconden (00-59)
-
+ Full Date (%m/%d/%y)Volledige datum (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Volledige datum (%Y-%m-%d)
diff --git a/data/translations/Internationalization_nl_NL.ts b/data/translations/Internationalization_nl_NL.ts
index 337d1e65..61fb0bfd 100644
--- a/data/translations/Internationalization_nl_NL.ts
+++ b/data/translations/Internationalization_nl_NL.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Opnamemodus</b>
-
+ Rectangular RegionRechthoekige regio
-
+ Full Screen (All Monitors)Volledig scherm (alle monitoren)
-
+ No DelayGeen vertraging
-
+ second seconde
-
+ seconds seconden
-
+ Take new screenshotMaak een nieuwe schermafbeelding
-
+ Area:Gebied:
-
+ Delay:Vertraging:
@@ -208,27 +208,27 @@ Druk op de spatiebalk om het zijpaneel te openen.
Controller
-
+ &Take Screenshot&Maak een Schermopname
-
+ &Open Launcher&Open Starter
-
+ &Configuration&Configuratie
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Druk op de spatiebalk om het zijpaneel te openen.
&Informatie
-
+ &Quit&Sluiten
@@ -327,114 +327,114 @@ Druk op de spatiebalk om het zijpaneel te openen.
GeneneralConf
-
-
+
+ ImportImporteren
-
-
-
-
+
+
+
+ ErrorFout
-
+ Unable to read file.Bestand kan niet gelezen worden.
-
-
+
+ Unable to write file.Kan bestand niet wegschrijven.
-
+ Save FileBestand opslaan
-
+ Confirm ResetHerstellen bevestigen
-
+ Are you sure you want to reset the configuration?Weet u zeker dat u de configuratie opnieuw wilt instellen?
-
+ Show help messageToon helpbericht
-
+ Show the help message at the beginning in the capture mode.Toon het helpbericht aan het begin in de vastlegmodus.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsBureaubladmeldingen weergeven
-
+ Show tray iconPictogram in het systeemvak weergeven
-
+ Show the systemtray iconToon het systeemvakpictogram
-
+ Configuration FileConfiguratie bestand
-
+ ExportExporteren
-
+ ResetStandaardwaarden
-
+ Launch at startupAutomatisch opstarten
-
-
+
+ Launch FlameshotStart Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -443,58 +443,58 @@ Druk op de spatiebalk om het zijpaneel te openen.
Sluit na schermopname
-
+ Close after taking a screenshotSluit na het maken van een schermopname
-
+ Copy URL after uploadKopieer URL na upload
-
+ Copy URL and close window after uploadKopieer URL en sluit venster na upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -502,27 +502,27 @@ Druk op de spatiebalk om het zijpaneel te openen.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLURL kopiëren
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
-
+ Open in browser
@@ -535,9 +535,14 @@ Druk op de spatiebalk om het zijpaneel te openen.
- Uploading Image
- Afbeelding uploaden
+ Afbeelding uploaden
+
+
+
+
+ Uploading Image...
+
@@ -550,40 +555,56 @@ Druk op de spatiebalk om het zijpaneel te openen.
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Fout
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -601,15 +622,8 @@ Druk op de spatiebalk om het zijpaneel te openen.
-
- Uploading Image
- Afbeelding uploaden
-
-
-
- Upload image
-
+ Afbeelding uploaden
@@ -627,10 +641,16 @@ Druk op de spatiebalk om het zijpaneel te openen.
Schermafdruk gekopieerd naar klembord.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -642,6 +662,7 @@ Druk op de spatiebalk om het zijpaneel te openen.
URL Openen
+ Delete imageAfbeelding verwijderen
@@ -663,7 +684,7 @@ Druk op de spatiebalk om het zijpaneel te openen.
ImgurUploader
-
+ Upload to ImgurUploaden naar Imgur
@@ -688,7 +709,7 @@ Druk op de spatiebalk om het zijpaneel te openen.
Afbeelding naar klembord.
-
+ Unable to open the URL.Kan URL niet openen.
@@ -1064,7 +1085,7 @@ You may need to escape the '#' sign as in '\#FFF'
Geen schrijftoegang tot
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
@@ -1105,77 +1126,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureStop met vastleggen
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerToon kleurkiezer
-
+ Change the tool's thicknessWijzig de gereedschapsdikte
@@ -1261,22 +1282,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Beschikbare snelkoppelingen in de schermopnamemodus.
-
+ DescriptionOmschrijving
-
+ KeyToets
@@ -1335,92 +1356,92 @@ You can find me in the system tray.
Jaar (2000)
-
+ Month Name (jan)Naam van de maand (јаn)
-
+ Month Name (january)Naam van de maand (јаnuari)
-
+ Month (01-12)Maand (01-12)
-
+ Week Day (1-7)Dag van de week (1-7)
-
+ Week (01-53)Week (01-53)
-
+ Day Name (mon)Naam van de dag (ma)
-
+ Day Name (monday)Naam van de dag (maandag)
-
+ Day (01-31)Dag (01-31)
-
+ Day of Month (1-31)Dag van de maand (1-31)
-
+ Day (001-366)Dag (001-366)
-
+ Time (%H-%M-%S)Tijd (%U-%M-%S)
-
+ Time (%H-%M)Tijd (%U-%M)
-
+ Hour (00-23)Uur (00-23)
-
+ Hour (01-12)Uur (01-12)
-
+ Minute (00-59)Minuten (00-59)
-
+ Second (00-59)Seconde (00-59)
-
+ Full Date (%m/%d/%y)Volledige datum (%m/%d/%j)
-
+ Full Date (%Y-%m-%d)Volledige datum (%J-%m-%d)
diff --git a/data/translations/Internationalization_pl.ts b/data/translations/Internationalization_pl.ts
index 3751eb9b..b472bc9b 100644
--- a/data/translations/Internationalization_pl.ts
+++ b/data/translations/Internationalization_pl.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Tryb przechwytywania</b>
-
+ Rectangular RegionZaznaczony obszar
-
+ Full Screen (All Monitors)Pełny ekran (Wszystkie monitory)
-
+ No DelayBez opóźnienia
-
+ second sekunda
-
+ seconds sekundy
-
+ Take new screenshotWykonaj nowy zrzut ekranu
-
+ Area:Obszar:
-
+ Delay:Opóźnienie:
@@ -207,27 +207,27 @@ Spacja, aby pokazać panel boczny.
Controller
-
+ &Take Screenshot&Zrzut ekranu
-
+ &Open LauncherPokaż &okno
-
+ &Configuration&Konfiguracja
-
+ &AboutO progr&amie
-
+ &Latest Uploads
@@ -236,7 +236,7 @@ Spacja, aby pokazać panel boczny.
&Informacje
-
+ &Quit&Wyjdź
@@ -326,114 +326,114 @@ Spacja, aby pokazać panel boczny.
GeneneralConf
-
-
+
+ ImportImport
-
-
-
-
+
+
+
+ ErrorBłąd
-
+ Unable to read file.Nie można odczytać pliku.
-
-
+
+ Unable to write file.Nie można zapisać pliku.
-
+ Save FileZapisz plik
-
+ Confirm ResetPotwierdź Reset
-
+ Are you sure you want to reset the configuration?Czy na pewno chcesz zresetować konfigurację?
-
+ Show help messagePokaż podpowiedzi
-
+ Show the help message at the beginning in the capture mode.Pokaż podpowiedzi na początku trybu przechwytywania.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsPokaż powiadomienia ekranowe
-
+ Show tray iconPokaż ikonę w trayu
-
+ Show the systemtray iconPokaż ikonę w zasobniku systemowym
-
+ Configuration FilePlik konfiguracyjny
-
+ ExportExport
-
+ ResetReset
-
+ Launch at startupUruchom podczas startu
-
-
+
+ Launch FlameshotUruchom Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -442,58 +442,58 @@ Spacja, aby pokazać panel boczny.
Zamknij po wykonaniu zrzutu
-
+ Close after taking a screenshotZamknij po wykonaniu zrzutu ekranu
-
+ Copy URL after uploadKopiuj adres URL po wysłaniu
-
+ Copy URL and close window after uploadKopiuj adres URL po wysłaniu i zamknij okno
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -501,27 +501,27 @@ Spacja, aby pokazać panel boczny.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLKopiuj URL
-
+ URL copied to clipboard.URL skopiowany do schowka.
-
+ Open in browser
@@ -534,9 +534,14 @@ Spacja, aby pokazać panel boczny.
- Uploading Image
- Wysyłanie obrazka
+ Wysyłanie obrazka
+
+
+
+
+ Uploading Image...
+
@@ -549,40 +554,56 @@ Spacja, aby pokazać panel boczny.
-
+ URL copied to clipboard.URL skopiowany do schowka.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Błąd
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -600,15 +621,8 @@ Spacja, aby pokazać panel boczny.
-
- Uploading Image
- Wysyłanie obrazka
-
-
-
- Upload image
-
+ Wysyłanie obrazka
@@ -626,10 +640,16 @@ Spacja, aby pokazać panel boczny.
Zrzut ekranu skopiowany do schowka.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -641,6 +661,7 @@ Spacja, aby pokazać panel boczny.
Otwórz URL
+ Delete imageUsuń obrazek
@@ -662,7 +683,7 @@ Spacja, aby pokazać panel boczny.
ImgurUploader
-
+ Upload to ImgurWyślij do Imgur
@@ -687,7 +708,7 @@ Spacja, aby pokazać panel boczny.
Obrazek do schowka.
-
+ Unable to open the URL.Nie można otworzyć adresu URL.
@@ -1063,7 +1084,7 @@ You may need to escape the '#' sign as in '\#FFF'
Nie można zapisać w
-
+ URL copied to clipboard.URL skopiowany do schowka.
@@ -1108,77 +1129,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureZakończ przechwytywanie
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerPokaż próbnik kolorów
-
+ Change the tool's thicknessZmień grubość narzędzia
@@ -1264,22 +1285,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Dostępne skróty w trybie przechwytywania obrazu.
-
+ DescriptionDziałanie
-
+ KeyKlawisz
@@ -1338,92 +1359,92 @@ You can find me in the system tray.
Rok (2000)
-
+ Month Name (jan)Nazwa miesiąca (cze)
-
+ Month Name (january)Nazwa miesiąca (czerwiec)
-
+ Month (01-12)Miesiąc (01-12)
-
+ Week Day (1-7)Dzień tygodnia (1-7)
-
+ Week (01-53)Tydzień (01-53)
-
+ Day Name (mon)Nazwa dniaa (pią)
-
+ Day Name (monday)Nazwa dnia (piątek)
-
+ Day (01-31)Dzień (01-31)
-
+ Day of Month (1-31)Dzień miesiąca (1-31)
-
+ Day (001-366)Dzień (001-366)
-
+ Time (%H-%M-%S)Czas (%H-%M-%S)
-
+ Time (%H-%M)Czas (%H-%M)
-
+ Hour (00-23)Godzina (00-23)
-
+ Hour (01-12)Godzina (01-12)
-
+ Minute (00-59)Minuta (00-59)
-
+ Second (00-59)Sekunda (00-59)
-
+ Full Date (%m/%d/%y)Data (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Data (%Y-%m-%d)
diff --git a/data/translations/Internationalization_pt_BR.ts b/data/translations/Internationalization_pt_BR.ts
index 6120968e..ff29c0aa 100644
--- a/data/translations/Internationalization_pt_BR.ts
+++ b/data/translations/Internationalization_pt_BR.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Modo Captura</b>
-
+ Rectangular RegionRegião Retangular
-
+ Full Screen (All Monitors)Tela Inteira (Todos os Monitores)
-
+ No DelaySem atraso
-
+ second segundo
-
+ seconds segundos
-
+ Take new screenshotTirar uma nova screenshot
-
+ Area:Area:
-
+ Delay:Atraso:
@@ -208,27 +208,27 @@ Pressione espaço abrir o painel lateral.
Controller
-
+ &Take Screenshot&Tirar Screenshot
-
+ &Open Launcher&Abrir carregador
-
+ &Configuration&Configuração
-
+ &About&Sobre
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Pressione espaço abrir o painel lateral.
&Informações
-
+ &Quit&Sair
@@ -327,114 +327,114 @@ Pressione espaço abrir o painel lateral.
GeneneralConf
-
-
+
+ ImportImportar
-
-
-
-
+
+
+
+ ErrorErro
-
+ Unable to read file.Não foi possível ler o arquivo.
-
-
+
+ Unable to write file.Não foi possível escrever no arquivo.
-
+ Save FileSalvar Arquivo
-
+ Confirm ResetConfirmar Reset
-
+ Are you sure you want to reset the configuration?Tem certeza que deseja resetar a configuração?
-
+ Show help messageMostrar mensagem de ajuda
-
+ Show the help message at the beginning in the capture mode.Mostrar mensagem de ajuda no início do modo de captura.
-
+ Show the side panel buttonMostrar botão no painel lateral
-
+ Show the side panel toggle button in the capture mode.Mostrar altenador do painel lateral.
-
-
+
+ Show desktop notificationsMostrar notificações de Desktop
-
+ Show tray iconMostrar ícone de tray
-
+ Show the systemtray iconMosrar ícone na barra de aplicações
-
+ Configuration FileArquivo de Configurações
-
+ ExportExportar
-
+ ResetReset
-
+ Launch at startupIniciar junto com o sistema
-
-
+
+ Launch FlameshotIniciar Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -443,58 +443,58 @@ Pressione espaço abrir o painel lateral.
Fechar após captura
-
+ Close after taking a screenshotFechar após tirar uma screenshot
-
+ Copy URL after uploadCopiar URL após upload
-
+ Copy URL and close window after uploadCopiar URL e fechar janela após upload
-
+ Save image after copySalvar imagem após copiar
-
+ Save image file after copying itSalvar imagem após copiar
-
+ Save PathSalvar Caminho
-
+ Change...Alterar...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a FolderSelecione uma pasta
-
+ Unable to write to directory.Não foi possível escrever no diretório.
@@ -502,27 +502,27 @@ Pressione espaço abrir o painel lateral.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLCopiar URL
-
+ URL copied to clipboard.URL copiada para a área de transferência.
-
+ Open in browser
@@ -535,9 +535,14 @@ Pressione espaço abrir o painel lateral.
- Uploading Image
- Upando Imagem
+ Upando Imagem
+
+
+
+
+ Uploading Image...
+
@@ -550,40 +555,56 @@ Pressione espaço abrir o painel lateral.
-
+ URL copied to clipboard.URL copiada para a área de transferência.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Erro
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -601,15 +622,8 @@ Pressione espaço abrir o painel lateral.
-
- Uploading Image
- Upando Imagem
-
-
-
- Upload image
-
+ Upando Imagem
@@ -627,10 +641,16 @@ Pressione espaço abrir o painel lateral.
Screenshot copiada para a área de transferência.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -642,6 +662,7 @@ Pressione espaço abrir o painel lateral.
Abrir URL
+ Delete imageDeletar imagem
@@ -663,7 +684,7 @@ Pressione espaço abrir o painel lateral.
ImgurUploader
-
+ Upload to ImgurUpload no Imgur
@@ -688,7 +709,7 @@ Pressione espaço abrir o painel lateral.
Imagem na área de transferência.
-
+ Unable to open the URL.Não foi possível abrir a URL.
@@ -1104,7 +1125,7 @@ Você pode ter que invalidar o sinal '#', por exemplo '\#FFF&apos
Por padrão roda Flameshot no background e adiciona um ícone na bandeija para configuração.
-
+ URL copied to clipboard.URL copiada para a área de transferência.
@@ -1115,77 +1136,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureSair da captura
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerMostrar seletor de cores
-
+ Change the tool's thicknessMudar a grossura do pincel
@@ -1271,22 +1292,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Atalhos disponívels na tela de captura.
-
+ DescriptionDescrição
-
+ KeyTecla
@@ -1345,92 +1366,92 @@ You can find me in the system tray.
Ano (2000)
-
+ Month Name (jan)Nome do mês (jan)
-
+ Month Name (january)Nome do mês (janeiro)
-
+ Month (01-12)Mês (01-12)
-
+ Week Day (1-7)Dia da semana (1-7)
-
+ Week (01-53)Semana (01-53)
-
+ Day Name (mon)Nome do dia (seg)
-
+ Day Name (monday)Nome do dia (segunda)
-
+ Day (01-31)Dia (01-31)
-
+ Day of Month (1-31)Dia do Mês (1-31)
-
+ Day (001-366)Dia (001-366)
-
+ Time (%H-%M-%S)Tempo (%H-%M-%S)
-
+ Time (%H-%M)Tempo (%H-%M)
-
+ Hour (00-23)Hora (00-23)
-
+ Hour (01-12)Hora (01-12)
-
+ Minute (00-59)Minuto (00-59)
-
+ Second (00-59)Segundo (00-59)
-
+ Full Date (%m/%d/%y)Data Completa (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Data Completa (%Y-%m-%d)
diff --git a/data/translations/Internationalization_ru.ts b/data/translations/Internationalization_ru.ts
index 77b0a5c0..6743d7c2 100644
--- a/data/translations/Internationalization_ru.ts
+++ b/data/translations/Internationalization_ru.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Режим захвата</b>
-
+ Rectangular RegionПрямоугольная область
-
+ Full Screen (All Monitors)Весь экран (все мониторы)
-
+ No DelayБез задержки
-
+ second сек
-
+ seconds сек
-
+ Take new screenshotСделать новый снимок
-
+ Area:Область:
-
+ Delay:Задержка:
@@ -208,27 +208,27 @@ Press Space to open the side panel.
Controller
-
+ &Take Screenshot&Сделать снимок
-
+ &Open Launcher&Открыть лаунчер
-
+ &Configuration&Настройка
-
+ &About&Информация
-
+ &Latest UploadsПоследние загрузки
@@ -237,7 +237,7 @@ Press Space to open the side panel.
&Информация
-
+ &Quit&Выход
@@ -327,114 +327,114 @@ Press Space to open the side panel.
GeneneralConf
-
-
+
+ ImportИмпорт
-
-
-
-
+
+
+
+ ErrorОшибка
-
+ Unable to read file.Не удалось прочитать файл.
-
-
+
+ Unable to write file.Не удалось записать файл.
-
+ Save FileСохранить файл
-
+ Confirm ResetПодтвердить сброс
-
+ Are you sure you want to reset the configuration?Вы действительно хотите сбросить настройки?
-
+ Show help messageПоказывать справочное сообщение
-
+ Show the help message at the beginning in the capture mode.Показывать справочное сообщение перед началом захвата экрана.
-
+ Show the side panel buttonПоказывать кнопку боковой панели
-
+ Show the side panel toggle button in the capture mode.Показывать кнопку открытия боковой панели в режиме захвата.
-
-
+
+ Show desktop notificationsПоказывать уведомления
-
+ Show tray iconПоказывать значок в трее
-
+ Show the systemtray iconПоказать значок в системном трее
-
+ Configuration FileФайл конфигурации
-
+ ExportЭкспорт
-
+ ResetСброс
-
+ Launch at startupЗапускать при старте системы
-
-
+
+ Launch FlameshotЗапустить Flameshot
-
+ Show welcome message on launchПоказывать приветствие при запуске
-
+ Close application after captureЗакрывать приложение после захвата экрана
@@ -443,43 +443,43 @@ Press Space to open the side panel.
Закрыть после снимка
-
+ Close after taking a screenshotЗакрыть после снимка
-
+ Copy URL after uploadКопировать URL после загрузки
-
+ Copy URL and close window after uploadКопировать URL и закрыть окно после загрузки
-
+ Save image after copyСохранять изображение после копирования
-
+ Save image file after copying itСохранять файл изображения после копирования
-
+ Save PathПуть сохранения
-
+ Change...Сменить...
-
-
+
+ Copy file path after saveСкопировать путь к файлу после сохранения
@@ -488,17 +488,17 @@ Press Space to open the side panel.
Выберите путь по умолчанию для снимков экрана
-
+ Use fixed path for screenshots to saveИспользовать фиксированный путь для сохранения снимков экрана
-
+ Choose a FolderВыберите папку
-
+ Unable to write to directory.Не удалось записать в папку.
@@ -506,27 +506,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest UploadsПоследние загрузки
-
+ Screenshots history is emptyИстория скриншотов пуста
-
+ Copy URLСкопировать URL
-
+ URL copied to clipboard.URL скопирован в буфер обмена.
-
+ Open in browserОткрыть в браузере
@@ -539,9 +539,14 @@ Press Space to open the side panel.
Загрузка изображения на S3
- Uploading Image
- Загрузка изображения
+ Загрузка изображения
+
+
+
+
+ Uploading Image...
+ Выгрузка изображения...
@@ -554,40 +559,56 @@ Press Space to open the side panel.
Удаление изображения...
-
+ URL copied to clipboard.URL скопирован в буфер обмена.
-
+ Unable to remove screenshot from the remote storage.Невозможно удалить снимок экрана из удаленного хранилища.
-
+ Network errorОшибка сети
-
+ Possibly it doesn't exist anymoreВозможно, его больше не существует
-
+ Do you want to remove screenshot from local history anyway?Вы все равно хотите удалить скриншот из локальной истории?
-
+ Remove screenshot from history?Удалить скриншот из истории?
-
+
+
+ Retrieving configuration file with s3 creds...
+ Получение конфигурационного файла с параметрами доступа к s3...
+
+
+ S3 Creds URL is not found in your configuration fileS3 Creds URL не найден в вашем файле конфигурации
+
+
+ Error
+ Ошибка
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+ Не удалось получить конфигурацию для s3, проверьте свое VPN-соединение и повторите попытку
+ ImgS3UploaderTool
@@ -605,15 +626,12 @@ Press Space to open the side panel.
Загрузить изображение в S3
-
- Uploading Image
- Загрузка изображения
+ Загрузка изображения
- Upload image
- Загрузить изображение
+ Загрузить изображение
@@ -631,10 +649,16 @@ Press Space to open the side panel.
Снимок скопирован в буфер обмена.
+ Deleting image...Удаление изображения...
+
+
+ Uploading Image...
+ Выгрузка изображения...
+ Copy URL
@@ -646,6 +670,7 @@ Press Space to open the side panel.
Открыть URL
+ Delete imageУдалить изображение
@@ -671,7 +696,7 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to ImgurЗагрузить в Imgur
@@ -696,7 +721,7 @@ Press Space to open the side panel.
Изображение в буфер обмена.
-
+ Unable to open the URL.Не удалось открыть URL.
@@ -1078,7 +1103,7 @@ You may need to escape the '#' sign as in '\#FFF'
Не удалось сохранить
-
+ URL copied to clipboard.URL скопирован в буфер обмена.
@@ -1120,77 +1145,77 @@ You can find me in the system tray.
Вы можете найти меня в системном трее.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.Привет я тут! Щелкните значок на панели задач, чтобы сделать снимок экрана, или щелкните правой кнопкой, чтобы увидеть дополнительные параметры.
-
+ Toggle side panelВызвать/спрятать боковую панель
-
+ Resize selection left 1pxИзменить размер выделения влево на 1 пиксель
-
+ Resize selection right 1pxИзменить размер выделения вправо на 1 пиксель
-
+ Resize selection up 1pxИзменить размер выделения вверх на 1 пиксель
-
+ Resize selection down 1pxИзменить размер выделения вниз на 1 пиксель
-
+ Move selection left 1pxПереместить выделение влево на 1 пиксель
-
+ Move selection right 1pxПереместить выделение вправо на 1 пиксель
-
+ Move selection up 1pxПереместить выделение вверх на 1 пиксель
-
+ Move selection down 1pxПереместить выделение вниз на 1 пиксель
-
+ Quit captureВыйти из захвата экрана
-
+ Screenshot historyИстория скриншотов
-
+ Capture screenЗахватить экран
-
+ Show color pickerПоказать выбор цвета
-
+ Change the tool's thicknessИзменить толщину инструмента
@@ -1276,22 +1301,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot KeysГорячие клавиши
-
+ Available shortcuts in the screen capture mode.Доступные горячие клавиши в режиме захвата экрана.
-
+ DescriptionОписание
-
+ KeyКлавиша
@@ -1350,92 +1375,92 @@ You can find me in the system tray.
Год (2000)
-
+ Month Name (jan)Название месяца (янв)
-
+ Month Name (january)Название месяца (январь)
-
+ Month (01-12)Месяц (01-12)
-
+ Week Day (1-7)День недели (1-7)
-
+ Week (01-53)Неделя (01-53)
-
+ Day Name (mon)День недели (пн)
-
+ Day Name (monday)День недели (понедельник)
-
+ Day (01-31)День (01-31)
-
+ Day of Month (1-31)День месяца (1-31)
-
+ Day (001-366)День (001-366)
-
+ Time (%H-%M-%S)Время (%H-%M-%S)
-
+ Time (%H-%M)Время (%H-%M)
-
+ Hour (00-23)Час (00-23)
-
+ Hour (01-12)Час (01-12)
-
+ Minute (00-59)Минута (00-59)
-
+ Second (00-59)Секунда (00-59)
-
+ Full Date (%m/%d/%y)Полная дата (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Полная дата (%Y-%m-%d)
diff --git a/data/translations/Internationalization_sk.ts b/data/translations/Internationalization_sk.ts
index c5917398..7333366e 100644
--- a/data/translations/Internationalization_sk.ts
+++ b/data/translations/Internationalization_sk.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Režim zachytávania</b>
-
+ Rectangular RegionPravouhlá oblasť
-
+ Full Screen (All Monitors)Celá obrazovka (všetky monitory)
-
+ No DelayBez oneskorenia
-
+ second sekunda
-
+ seconds sekundy
-
+ Take new screenshotZachytiť novú snímku
-
+ Area:Oblasť:
-
+ Delay:Oneskorenie:
@@ -208,27 +208,27 @@ Stlačte medzerník pre otvorenie postranného panelu.
Controller
-
+ &Take Screenshot&Vytvoriť snímku
-
+ &Open Launcher
-
+ &Configuration&Konfigurácia
-
+ &AboutO &programe
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Stlačte medzerník pre otvorenie postranného panelu.
&Informácie
-
+ &Quit&Ukončiť
@@ -327,114 +327,114 @@ Stlačte medzerník pre otvorenie postranného panelu.
GeneneralConf
-
-
+
+ ImportImportovať
-
-
-
-
+
+
+
+ ErrorChyba
-
+ Unable to read file.Zlyhalo čítanie súboru.
-
-
+
+ Unable to write file.Zlyhal zápis do súboru.
-
+ Save FileUložiť súbor
-
+ Confirm ResetPotvrdiť Reset
-
+ Are you sure you want to reset the configuration?Naozaj si želáte resetovať aktuálnu konfiguráciu?
-
+ Show help messageZobraziť nápovedu
-
+ Show the help message at the beginning in the capture mode.Zobraziť nápovedu na začiatku počas režimu zachytávania obrazovky.
-
+ Show the side panel buttonZobraziť tlačidlo na postrannom paneli
-
+ Show the side panel toggle button in the capture mode.V režime zachytávania zobrazovať tlačidlo na postrannom paneli.
-
-
+
+ Show desktop notificationsZobraziť systémové upozornenia
-
+ Show tray iconZobraziť stavovú ikonu
-
+ Show the systemtray iconZobraziť ikonu v stavovej oblasti
-
+ Configuration FileSúbor s konfiguráciou
-
+ ExportExportovať
-
+ ResetResetovať
-
+ Launch at startupSpúšťať pri štarte
-
-
+
+ Launch FlameshotSpustiť Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -443,58 +443,58 @@ Stlačte medzerník pre otvorenie postranného panelu.
Zavrieť po vytvorení snímky
-
+ Close after taking a screenshotZatvoriť po vytvorení snímky obrazovky
-
+ Copy URL after uploadKopírovať URL po uploade
-
+ Copy URL and close window after uploadPo nahratí skopírovať URL a zavrieť okno
-
+ Save image after copyUložiť obrázok po kopírovaní
-
+ Save image file after copying itUložiť obrázok so súborom po jeho skopírovaní
-
+ Save PathCesta pre ukladanie
-
+ Change...Zmeniť...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a FolderVyberte priečinok
-
+ Unable to write to directory.Zápis do adresára nie je možný.
@@ -502,27 +502,27 @@ Stlačte medzerník pre otvorenie postranného panelu.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLKopírovať URL
-
+ URL copied to clipboard.URL skopírovaná do schránky.
-
+ Open in browser
@@ -535,9 +535,14 @@ Stlačte medzerník pre otvorenie postranného panelu.
- Uploading Image
- Nahrávam obrázok
+ Nahrávam obrázok
+
+
+
+
+ Uploading Image...
+
@@ -550,40 +555,56 @@ Stlačte medzerník pre otvorenie postranného panelu.
-
+ URL copied to clipboard.URL skopírovaná do schránky.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Chyba
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -601,15 +622,8 @@ Stlačte medzerník pre otvorenie postranného panelu.
-
- Uploading Image
- Nahrávam obrázok
-
-
-
- Upload image
-
+ Nahrávam obrázok
@@ -627,10 +641,16 @@ Stlačte medzerník pre otvorenie postranného panelu.
Snímka obrazovky bola skopírovaná do schránky.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -642,6 +662,7 @@ Stlačte medzerník pre otvorenie postranného panelu.
Otvoriť URL
+ Delete imageVymazať obrázok
@@ -663,7 +684,7 @@ Stlačte medzerník pre otvorenie postranného panelu.
ImgurUploader
-
+ Upload to ImgurNahrať na Imgur
@@ -688,7 +709,7 @@ Stlačte medzerník pre otvorenie postranného panelu.
Obrázok do schránky.
-
+ Unable to open the URL.Nepodarilo sa otvoriť URL.
@@ -1070,7 +1091,7 @@ Možno budete musieť napísať pred '#' opačnú lomku, teda '\#
Chyba pri ukladaní
-
+ URL copied to clipboard.URL skopírovaná do schránky.
@@ -1115,77 +1136,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureUkončiť zachytávanie obrazovky
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerZobraziť dialóg na výber farby
-
+ Change the tool's thicknessZmena hrúbky nástroja
@@ -1271,22 +1292,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Dostupné klávesové skratky v režime zachytávania obrazovky.
-
+ DescriptionPopis
-
+ KeyKláves
@@ -1345,92 +1366,92 @@ You can find me in the system tray.
Rok (2000)
-
+ Month Name (jan)Meno mesiaca (jan)
-
+ Month Name (january)Meno mesiaca (január)
-
+ Month (01-12)Mesiac (01-12)
-
+ Week Day (1-7)Deň v týždni (1-7)
-
+ Week (01-53)Týždeň (01-53)
-
+ Day Name (mon)Meno dňa (pon)
-
+ Day Name (monday)Meno dňa (pondelok)
-
+ Day (01-31)Deň (01-31)
-
+ Day of Month (1-31)Deň v mesiaci (1-31)
-
+ Day (001-366)Deň (001-366)
-
+ Time (%H-%M-%S)Čas (%H-%M-%S)
-
+ Time (%H-%M)Čas (%H-%M)
-
+ Hour (00-23)Hodina (00-23)
-
+ Hour (01-12)Hodina (01-12)
-
+ Minute (00-59)Minúta (00-59)
-
+ Second (00-59)Sekunda (00-59)
-
+ Full Date (%m/%d/%y)Celý dátum (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Celý dátum (%Y-%m-%d)
diff --git a/data/translations/Internationalization_sr_SP.ts b/data/translations/Internationalization_sr_SP.ts
index 707a544e..202f3957 100644
--- a/data/translations/Internationalization_sr_SP.ts
+++ b/data/translations/Internationalization_sr_SP.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Press Space to open the side panel.
Controller
-
+ &Take Screenshot&Направи снимак екрана
-
+ &Open Launcher
-
+ &Configuration&Подешавања
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Press Space to open the side panel.
Ин&формације
-
+ &Quit&Излаз
@@ -327,170 +327,170 @@ Press Space to open the side panel.
GeneneralConf
-
-
+
+ ImportУвоз
-
-
-
-
+
+
+
+ ErrorГрешка
-
+ Unable to read file.Нисам успео да прочитам датотеку.
-
-
+
+ Unable to write file.Нисам успео да сачувам датотеку.
-
+ Save FileСачувај датотеку
-
+ Confirm ResetПотврда поништавања
-
+ Are you sure you want to reset the configuration?Да ли сте сигурни да желите да поништите сва прилагођена подешавања?
-
+ Show help messageПриказуј поруку са упутством
-
+ Show the help message at the beginning in the capture mode.Приказуј поруку са кратким упутством на почетку снимања екрана.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsКористи системска обавештења
-
+ Show tray iconИконица на системској полици
-
+ Show the systemtray iconПриказуј иконицу на системској полици
-
+ Configuration FileДатотека са подешавањима
-
+ ExportИзвоз
-
+ ResetПоништи
-
+ Launch at startupПокрени на почетку
-
-
+
+ Launch FlameshotПокрени Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -498,27 +498,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLЗапамти интернет адресу
-
+ URL copied to clipboard.Интернет адреса је сачувана у привременој меморији.
-
+ Open in browser
@@ -531,9 +531,14 @@ Press Space to open the side panel.
- Uploading Image
- Објављујем слику
+ Објављујем слику
+
+
+
+
+ Uploading Image...
+
@@ -546,40 +551,56 @@ Press Space to open the side panel.
-
+ URL copied to clipboard.Интернет адреса је сачувана у привременој меморији.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Грешка
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -597,15 +618,8 @@ Press Space to open the side panel.
-
- Uploading Image
- Објављујем слику
-
-
-
- Upload image
-
+ Објављујем слику
@@ -623,10 +637,16 @@ Press Space to open the side panel.
Слика је сачувана у привременој меморији.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -638,6 +658,7 @@ Press Space to open the side panel.
Посети интернет адресу
+ Delete imageИзбриши слику
@@ -659,7 +680,7 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to ImgurОбјави на Imgur
@@ -684,7 +705,7 @@ Press Space to open the side panel.
Сачувај у привремену меморију.
-
+ Unable to open the URL.Нисам успео да посетим интернет адресу.
@@ -1052,7 +1073,7 @@ You may need to escape the '#' sign as in '\#FFF'
Нисам успео са сачувам
-
+ URL copied to clipboard.Интернет адреса је сачувана у привременој меморији.
@@ -1093,77 +1114,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureИзлаз из снимача екрана
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerПрикажи избор боје
-
+ Change the tool's thicknessИзмени дебљину линије алата
@@ -1250,22 +1271,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Доступне пречице у моду снимка екрана.
-
+ DescriptionОпис
-
+ KeyТастер
@@ -1324,92 +1345,92 @@ You can find me in the system tray.
Година (2000)
-
+ Month Name (jan)Име месеца (јан)
-
+ Month Name (january)Име месеца (јануар)
-
+ Month (01-12)Месец (01-12)
-
+ Week Day (1-7)Дани у недељи (1-7)
-
+ Week (01-53)Недеља (01-53)
-
+ Day Name (mon)Дан у недељи (пон)
-
+ Day Name (monday)Дан у недељи (понедељак)
-
+ Day (01-31)Дан (01-31)
-
+ Day of Month (1-31)Дан месеца (1-31)
-
+ Day (001-366)Дан (001-366)
-
+ Time (%H-%M-%S)Време (%H-%M-%S)
-
+ Time (%H-%M)Време (%H-%M)
-
+ Hour (00-23)Сат (00-23)
-
+ Hour (01-12)Сат (01-12)
-
+ Minute (00-59)Минута (00-59)
-
+ Second (00-59)Секунда (00-59)
-
+ Full Date (%m/%d/%y)Комплетан датум (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Комплетан датум (%Y-%m-%d)
diff --git a/data/translations/Internationalization_sv_SE.ts b/data/translations/Internationalization_sv_SE.ts
index 8d0eff1e..4c06d048 100644
--- a/data/translations/Internationalization_sv_SE.ts
+++ b/data/translations/Internationalization_sv_SE.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Tryck Space för att öppna sidopanelen.
Controller
-
+ &Take Screenshot&Ta skärmdump
-
+ &Open Launcher
-
+ &Configuration&Konfiguration
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Tryck Space för att öppna sidopanelen.
&Information
-
+ &Quit&Avsluta
@@ -327,170 +327,170 @@ Tryck Space för att öppna sidopanelen.
GeneneralConf
-
-
+
+ ImportImportera
-
-
-
-
+
+
+
+ ErrorFel
-
+ Unable to read file.Kunde inte läsa filen.
-
-
+
+ Unable to write file.Kunde inte skriva till filen.
-
+ Save FileSpara fil
-
+ Confirm ResetBekräfta återställning
-
+ Are you sure you want to reset the configuration?Är du säker på att du vill återställa konfigurationen?
-
+ Show help messageVisa hjälpmeddelande
-
+ Show the help message at the beginning in the capture mode.Visa hjälpmeddelande vid början av skärmklippsläge.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsVisa skrivbordsnotifieringar
-
+ Show tray iconVisa ikon i systemfältet
-
+ Show the systemtray iconVisa ikon i systemfältet
-
+ Configuration FileKonfigurationsfil
-
+ ExportExportera
-
+ ResetÅterställ
-
+ Launch at startupStarta vid uppstart
-
-
+
+ Launch FlameshotStarta Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -498,27 +498,27 @@ Tryck Space för att öppna sidopanelen.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLKopiera URL
-
+ URL copied to clipboard.URL kopierad till klippbord.
-
+ Open in browser
@@ -531,9 +531,14 @@ Tryck Space för att öppna sidopanelen.
- Uploading Image
- Laddar upp bild
+ Laddar upp bild
+
+
+
+
+ Uploading Image...
+
@@ -546,40 +551,56 @@ Tryck Space för att öppna sidopanelen.
-
+ URL copied to clipboard.URL kopierad till klippbord.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Fel
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -597,15 +618,8 @@ Tryck Space för att öppna sidopanelen.
-
- Uploading Image
- Laddar upp bild
-
-
-
- Upload image
-
+ Laddar upp bild
@@ -623,10 +637,16 @@ Tryck Space för att öppna sidopanelen.
Skärmklipp kopierat till klippbord.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -638,6 +658,7 @@ Tryck Space för att öppna sidopanelen.
Öppna URL
+ Delete imageRadera bild
@@ -659,7 +680,7 @@ Tryck Space för att öppna sidopanelen.
ImgurUploader
-
+ Upload to ImgurLadda upp till Imgur
@@ -684,7 +705,7 @@ Tryck Space för att öppna sidopanelen.
Bild till klippbord.
-
+ Unable to open the URL.Kunde inte öppna URL.
@@ -1086,7 +1107,7 @@ You may need to escape the '#' sign as in '\#FFF'
-
+ URL copied to clipboard.URL kopierad till klippbord.
@@ -1097,77 +1118,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureStäng skärmavbildning
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerVisa färgväljare
-
+ Change the tool's thicknessÄndra verktygets tjocklek
@@ -1253,22 +1274,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Tillgängliga kortkommandon i skärmklippsläge.
-
+ DescriptionBeskrivning
-
+ KeyTangent
@@ -1327,92 +1348,92 @@ You can find me in the system tray.
År (2000)
-
+ Month Name (jan)Månad namn (jan)
-
+ Month Name (january)Månad namn (januari)
-
+ Month (01-12)Månad (01-12)
-
+ Week Day (1-7)Veckodag (1-7)
-
+ Week (01-53)Vecka (1-53)
-
+ Day Name (mon)Dag namn (mån)
-
+ Day Name (monday)Dag namn (måndag)
-
+ Day (01-31)Dag (01-31)
-
+ Day of Month (1-31)Dag i månad (1-31)
-
+ Day (001-366)Dag (001-366)
-
+ Time (%H-%M-%S)Tid (%H-%M-%S)
-
+ Time (%H-%M)Tid (%H-%M)
-
+ Hour (00-23)Timme (00-23)
-
+ Hour (01-12)Timme (01-12)
-
+ Minute (00-59)Minut (00-59)
-
+ Second (00-59)Sekund (00-59)
-
+ Full Date (%m/%d/%y)Fullständingt datum (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Fullständigt datum (%Y-%m-%d)
diff --git a/data/translations/Internationalization_tr.ts b/data/translations/Internationalization_tr.ts
index 3ca1ca6c..a6170d74 100644
--- a/data/translations/Internationalization_tr.ts
+++ b/data/translations/Internationalization_tr.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -208,27 +208,27 @@ Yan paneli açmak için Boşluk tuşuna basın.
Controller
-
+ &Take Screenshot&Ekran Resmi Al
-
+ &Open Launcher
-
+ &Configuration&Ayarlar
-
+ &About
-
+ &Latest Uploads
@@ -237,7 +237,7 @@ Yan paneli açmak için Boşluk tuşuna basın.
&Bilgi
-
+ &Quit&Çıkış
@@ -327,170 +327,170 @@ Yan paneli açmak için Boşluk tuşuna basın.
GeneneralConf
-
-
+
+ ImportDışa aktar
-
-
-
-
+
+
+
+ ErrorHata
-
+ Unable to read file.Dosya okunamıyor.
-
-
+
+ Unable to write file.Dosya yazılamıyor.
-
+ Save FileDosyayı Kaydet
-
+ Confirm ResetSıfırlamayı Onayla
-
+ Are you sure you want to reset the configuration?Ayarları sıfırlamak istediğinizden emin misiniz?
-
+ Show help messageYardım mesajını göster
-
+ Show the help message at the beginning in the capture mode.Yakalama modunda başında yardım mesajını gösterin.
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
-
+
+ Show desktop notificationsMasaüstü bildirimlerini göster
-
+ Show tray iconTepsi simgesini göster
-
+ Show the systemtray iconSistem tepsisi simgesini göster
-
+ Configuration FileYapılandırma Dosyası
-
+ ExportDışa aktar
-
+ ResetSıfırla
-
+ Launch at startupBaşlangıçta başlatın
-
-
+
+ Launch FlameshotFlameshot'ı başlat
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -498,27 +498,27 @@ Yan paneli açmak için Boşluk tuşuna basın.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URLURL Kopyala
-
+ URL copied to clipboard.URL panoya kopyalandı.
-
+ Open in browser
@@ -531,9 +531,14 @@ Yan paneli açmak için Boşluk tuşuna basın.
- Uploading Image
- Resim Yükleniyor
+ Resim Yükleniyor
+
+
+
+
+ Uploading Image...
+
@@ -546,40 +551,56 @@ Yan paneli açmak için Boşluk tuşuna basın.
-
+ URL copied to clipboard.URL panoya kopyalandı.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ Hata
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -597,15 +618,8 @@ Yan paneli açmak için Boşluk tuşuna basın.
-
- Uploading Image
- Resim Yükleniyor
-
-
-
- Upload image
-
+ Resim Yükleniyor
@@ -623,10 +637,16 @@ Yan paneli açmak için Boşluk tuşuna basın.
Ekran görüntüsü panoya kopyalandı.
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -638,6 +658,7 @@ Yan paneli açmak için Boşluk tuşuna basın.
URL Aç
+ Delete imageResmi sil
@@ -659,7 +680,7 @@ Yan paneli açmak için Boşluk tuşuna basın.
ImgurUploader
-
+ Upload to ImgurImgur'a yükle
@@ -684,7 +705,7 @@ Yan paneli açmak için Boşluk tuşuna basın.
Resim Pano'ya.
-
+ Unable to open the URL.URL açılamıyor.
@@ -1052,7 +1073,7 @@ You may need to escape the '#' sign as in '\#FFF'
Yazma mümkün değil
-
+ URL copied to clipboard.URL panoya kopyalandı.
@@ -1093,77 +1114,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit captureÇıkış
-
+ Screenshot history
-
+ Capture screen
-
+ Show color pickerRenk seçici göster
-
+ Change the tool's thicknessAraç kalınlığını değiştirin
@@ -1249,22 +1270,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.Ekran yakalama modunda kullanılabilir kısayollar.
-
+ DescriptionTanım
-
+ KeyAnahtar
@@ -1323,92 +1344,92 @@ You can find me in the system tray.
Yıl (2000)
-
+ Month Name (jan)Ay Adı (Oca)
-
+ Month Name (january)Ay Adı (Ocak)
-
+ Month (01-12)Ay (01-12)
-
+ Week Day (1-7)Haftanın Günü (1-7)
-
+ Week (01-53)Hafta (01-53)
-
+ Day Name (mon)Gün Adı (pzt)
-
+ Day Name (monday)Gün Adı (pazartesi)
-
+ Day (01-31)Gün (01-31)
-
+ Day of Month (1-31)Ayın Günü (1-31)
-
+ Day (001-366)Gün (001-366)
-
+ Time (%H-%M-%S)
-
+ Time (%H-%M)
-
+ Hour (00-23)Saat (00-23)
-
+ Hour (01-12)Saat (01-12)
-
+ Minute (00-59)Dakika (00-59)
-
+ Second (00-59)Saniye (00-59)
-
+ Full Date (%m/%d/%y)Tam Tarih (%d/%m/%y)
-
+ Full Date (%Y-%m-%d)Tam Tarih (%d-%m-%Y)
diff --git a/data/translations/Internationalization_uk.ts b/data/translations/Internationalization_uk.ts
index 992235ca..b23fc6a1 100644
--- a/data/translations/Internationalization_uk.ts
+++ b/data/translations/Internationalization_uk.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>Режим захвату</b>
-
+ Rectangular RegionПрямокутна область
-
+ Full Screen (All Monitors)Весь екран (всі монітори)
-
+ No DelayБез затримки
-
+ second сек
-
+ seconds сек
-
+ Take new screenshotЗробити новий знімок
-
+ Area:Область:
-
+ Delay:Затримка:
@@ -208,27 +208,27 @@ Press Space to open the side panel.
Controller
-
+ &Take Screenshot&Зробити знімок
-
+ &Open Launcher& Відкрити лаунчер
-
+ &Configuration&Налаштування
-
+ &AboutПро
-
+ &Latest UploadsОстанні завантаження
@@ -237,7 +237,7 @@ Press Space to open the side panel.
&Інформація
-
+ &QuitВи&йти
@@ -327,114 +327,114 @@ Press Space to open the side panel.
GeneneralConf
-
-
+
+ ImportІмпорт
-
-
-
-
+
+
+
+ ErrorПомилка
-
+ Unable to read file.Не вдалось прочитати файл.
-
-
+
+ Unable to write file.Не вдалось записати файл.
-
+ Save FileЗберегти файл
-
+ Confirm ResetПідтвердити скидання
-
+ Are you sure you want to reset the configuration?Ви дійсно хочете скинути налаштування?
-
+ Show help messageПоказувати повідомлення довідки
-
+ Show the help message at the beginning in the capture mode.Показувати повідомлення довідки на початку режиму захоплення.
-
+ Show the side panel buttonПоказувати кнопку бічній панелі
-
+ Show the side panel toggle button in the capture mode.Показувати кнопку відкриття бічної панелі в режимі захоплення.
-
-
+
+ Show desktop notificationsПоказувати повідомлення
-
+ Show tray iconПоказувати значок на панелі
-
+ Show the systemtray iconПоказувати значок на панелі повідомленнь
-
+ Configuration FileФайл налаштувань
-
+ ExportЕкспорт
-
+ ResetСкинути
-
+ Launch at startupЗапускати при старті системи
-
-
+
+ Launch FlameshotЗапускати Flameshot
-
+ Show welcome message on launchПоказувати вітання під час запуску
-
+ Close application after captureЗакривати програму після захоплення екрану
@@ -443,43 +443,43 @@ Press Space to open the side panel.
Закрити після знімка
-
+ Close after taking a screenshotЗакрити після знімка
-
+ Copy URL after uploadКопіювати URL після завантаження
-
+ Copy URL and close window after uploadКопіювати URL і закрити вікно після завантаження
-
+ Save image after copyЗберігати зображення після копіювання
-
+ Save image file after copying itЗберігати файл зображення після копіювання
-
+ Save PathШлях збереження
-
+ Change...Змінити...
-
-
+
+ Copy file path after saveСкопіювати шлях до файлу після збереження
@@ -488,17 +488,17 @@ Press Space to open the side panel.
Виберіть шлях за замовчуванням для скріншотів
-
+ Use fixed path for screenshots to saveВикористовувати фіксований шлях для знімків екрана для збереження
-
+ Choose a FolderОбрати папку
-
+ Unable to write to directory.Не вдалося записати в папку.
@@ -506,27 +506,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest UploadsОстанні завантаження
-
+ Screenshots history is emptyІсторія знімків екрана порожня
-
+ Copy URLСкопіювати URL
-
+ URL copied to clipboard.URL скопійовано до буферу обміну.
-
+ Open in browserВідкрити в браузері
@@ -539,9 +539,14 @@ Press Space to open the side panel.
Вивантаження зображення на S3
- Uploading Image
- Вивантаження зображення
+ Вивантаження зображення
+
+
+
+
+ Uploading Image...
+ Вивантаження зображення...
@@ -554,40 +559,56 @@ Press Space to open the side panel.
Видалення зображення...
-
+ URL copied to clipboard.URL скопійовано до буферу обміну.
-
+ Unable to remove screenshot from the remote storage.Не вдалося видалити знімок екрана з віддаленого сховища.
-
+ Network errorПомилка мережі
-
+ Possibly it doesn't exist anymoreМожливо, його вже не існує
-
+ Do you want to remove screenshot from local history anyway?Ви все одно хочете видалити знімок екрана з місцевої історії?
-
+ Remove screenshot from history?Видалити знімок екрана з історії?
-
+
+
+ Retrieving configuration file with s3 creds...
+ Отримання конфігураційного файлу з параметрами доступу до s3 ...
+
+
+ S3 Creds URL is not found in your configuration fileS3 Creds URL не знайдено у вашому файлі конфігурації
+
+
+ Error
+ Помилка
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+ Не вдалося отримати конфігурацію для s3, перевірити своє з'єднання VPN і повторити спробу
+ ImgS3UploaderTool
@@ -605,15 +626,12 @@ Press Space to open the side panel.
Вивантажити зображення на S3
-
- Uploading Image
- Вивантаження зображення
+ Вивантаження зображення
- Upload image
- Вивантажити зображення
+ Вивантажити зображення
@@ -631,10 +649,16 @@ Press Space to open the side panel.
Знімок скопійовано до буферу обміну.
+ Deleting image...Видалення зображення...
+
+
+ Uploading Image...
+ Вивантаження зображення...
+ Copy URL
@@ -646,6 +670,7 @@ Press Space to open the side panel.
Відкрити URL
+ Delete imageВидалити зображення
@@ -671,7 +696,7 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to ImgurВивантажити до Imgur
@@ -696,7 +721,7 @@ Press Space to open the side panel.
Зображення до буферу обміну.
-
+ Unable to open the URL.Не вдалось відкрити URL.
@@ -1078,7 +1103,7 @@ You may need to escape the '#' sign as in '\#FFF'
Не вдалось зберегти
-
+ URL copied to clipboard.URL скопійовано до буферу обміну.
@@ -1120,77 +1145,77 @@ You can find me in the system tray.
Ви можете знайти мене в системному треї.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.Привіт, я тут! Клацніть піктограму в треї, щоб зробити знімок екрана, або клацніть правою кнопкою, щоб побачити більше опцій.
-
+ Toggle side panelВизвати/сховати бічну панель
-
+ Resize selection left 1pxЗмінити розмір виділення ліворуч на 1 пікс
-
+ Resize selection right 1pxЗмінити розмір виділення праворуч на 1 пікс
-
+ Resize selection up 1pxЗмінити розмір виділення вгору на 1 пікс
-
+ Resize selection down 1pxЗмінити розмір виділення вниз на 1 пікс
-
+ Move selection left 1pxПеремістити виділення вліво на 1 пікс
-
+ Move selection right 1pxПеремістити виділення вправо на 1 пікс
-
+ Move selection up 1pxПеремістити виділення вгору на 1 пікс
-
+ Move selection down 1pxПеремістити виділення вниз на 1 пікс
-
+ Quit captureВийти із захоплення екрану
-
+ Screenshot historyІсторія знімків екрану
-
+ Capture screenЗахоплення екрану
-
+ Show color pickerПоказати вибір кольору
-
+ Change the tool's thicknessЗмінити товщину інструменту
@@ -1276,22 +1301,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot KeysГарячі клавиші
-
+ Available shortcuts in the screen capture mode.Доступні комбінації клавіш у режимі захоплення екрану.
-
+ DescriptionОпис
-
+ KeyКлавіша
@@ -1350,92 +1375,92 @@ You can find me in the system tray.
Рік (2000)
-
+ Month Name (jan)Назва місяця (січ)
-
+ Month Name (january)Назва місяця (січень)
-
+ Month (01-12)Місяць (01-12)
-
+ Week Day (1-7)День тижня (1-7)
-
+ Week (01-53)Тиждень (01-53)
-
+ Day Name (mon)Назва дня тижня (пн)
-
+ Day Name (monday)Назва дня тижня (понеділок)
-
+ Day (01-31)День (01-31)
-
+ Day of Month (1-31)День місяця (1-31)
-
+ Day (001-366)День (001-366)
-
+ Time (%H-%M-%S)Час (%H-%M-%S)
-
+ Time (%H-%M)Час (%H-%M)
-
+ Hour (00-23)Година (00-23)
-
+ Hour (01-12)Година (01-12)
-
+ Minute (00-59)Хвилина (00-59)
-
+ Second (00-59)Секунда (00-59)
-
+ Full Date (%m/%d/%y)Повна дата (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)Повна дата (%Y-%m-%d)
diff --git a/data/translations/Internationalization_zh_CN.ts b/data/translations/Internationalization_zh_CN.ts
index c67a276f..8988be30 100644
--- a/data/translations/Internationalization_zh_CN.ts
+++ b/data/translations/Internationalization_zh_CN.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b><b>捕获模式</b>
-
+ Rectangular Region方形区域
-
+ Full Screen (All Monitors)全屏(所有显示器)
-
+ No Delay无延迟
-
+ second 秒
-
+ seconds 秒
-
+ Take new screenshot获取新屏幕截图
-
+ Area:区域:
-
+ Delay:延迟:
@@ -209,27 +209,27 @@ Press Space to open the side panel.
Controller
-
+ &Take Screenshot进行截图(&T)
-
+ &Open Launcher打开启动器(&O)
-
+ &Configuration配置(&C)
-
+ &About关于(&A)
-
+ &Latest Uploads
@@ -238,7 +238,7 @@ Press Space to open the side panel.
信息(&I)
-
+ &Quit退出(&Q)
@@ -328,114 +328,114 @@ Press Space to open the side panel.
GeneneralConf
-
+ Show help message显示帮助文档
-
+ Show the help message at the beginning in the capture mode.在捕获之前显示帮助信息。
-
-
+
+ Show desktop notifications显示桌面通知
-
+ Show tray icon显示托盘图标
-
+ Show the systemtray icon显示任务栏图标
-
-
+
+ Import导入
-
-
-
-
+
+
+
+ Error错误
-
+ Unable to read file.无法读取文件。
-
-
+
+ Unable to write file.无法写入文件。
-
+ Save File保存到文件
-
+ Confirm Reset确定重置
-
+ Are you sure you want to reset the configuration?你确定你想要重置配置?
-
+ Show the side panel button显示侧边栏按钮
-
+ Show the side panel toggle button in the capture mode.在捕获模式下显示侧边栏切换按钮。
-
+ Configuration File配置文件
-
+ Export导出
-
+ Reset重置
-
+ Launch at startup开机时启动
-
-
+
+ Launch Flameshot启动 Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
@@ -444,58 +444,58 @@ Press Space to open the side panel.
捕获后关闭
-
+ Close after taking a screenshot获取屏幕截图后关闭
-
+ Copy URL after upload上传后复制 URL
-
+ Copy URL and close window after upload上传后复制 URL 并关闭窗口
-
+ Save image after copy复制后保存图像
-
+ Save image file after copying it复制到剪贴板后保存图像文件
-
+ Save Path保存路径
-
+ Change...变更…
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder选择文件夹
-
+ Unable to write to directory.无法写入目录。
@@ -503,27 +503,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URL复制链接
-
+ URL copied to clipboard.
-
+ Open in browser
@@ -536,9 +536,14 @@ Press Space to open the side panel.
- Uploading Image
- 正在上传
+ 正在上传
+
+
+
+
+ Uploading Image...
+
@@ -551,40 +556,56 @@ Press Space to open the side panel.
-
+ URL copied to clipboard.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ 错误
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -602,15 +623,8 @@ Press Space to open the side panel.
-
- Uploading Image
- 正在上传
-
-
-
- Upload image
-
+ 正在上传
@@ -628,10 +642,16 @@ Press Space to open the side panel.
截图复制到剪贴板。
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -643,6 +663,7 @@ Press Space to open the side panel.
打开链接
+ Delete image删除图像
@@ -664,7 +685,7 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to Imgur上传到Imgur
@@ -689,7 +710,7 @@ Press Space to open the side panel.
保存文件到剪贴板。
-
+ Unable to open the URL.无法打开此链接。
@@ -1071,7 +1092,7 @@ You may need to escape the '#' sign as in '\#FFF'
无法写入
-
+ URL copied to clipboard.URL 已复制到剪贴板。
@@ -1116,77 +1137,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit capture退出捕获
-
+ Screenshot history
-
+ Capture screen
-
+ Show color picker显示颜色选择器
-
+ Change the tool's thickness改变工具的厚度
@@ -1272,22 +1293,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.屏幕捕捉模式中的可用快捷键。
-
+ Description描述
-
+ Key键
@@ -1346,92 +1367,92 @@ You can find me in the system tray.
年(2000)
-
+ Month Name (jan)月(1月 - 12月)
-
+ Month Name (january)月(一月 - 十二月)
-
+ Month (01-12)月 (01-12)
-
+ Week Day (1-7)周内的日(1-7)
-
+ Week (01-53)周(01-53)
-
+ Day Name (mon)星期(一 - 七)
-
+ Day Name (monday)星期(星期一 - 星期日)
-
+ Day (01-31)天(01-31)
-
+ Day of Month (1-31)一月中的某天(1-31)
-
+ Day (001-366)天(001-366)
-
+ Time (%H-%M-%S)时间(%H-%M-%S)
-
+ Time (%H-%M)时间(%H-%M)
-
+ Hour (00-23)小时(00-23)
-
+ Hour (01-12)小时(01-12)
-
+ Minute (00-59)分钟(00-59)
-
+ Second (00-59)秒(00-59)
-
+ Full Date (%m/%d/%y)完整日期(%m/%d/%y)
-
+ Full Date (%Y-%m-%d)完整日期(%Y-%m-%d)
diff --git a/data/translations/Internationalization_zh_HK.ts b/data/translations/Internationalization_zh_HK.ts
index a1d38922..113dfd42 100644
--- a/data/translations/Internationalization_zh_HK.ts
+++ b/data/translations/Internationalization_zh_HK.ts
@@ -4,12 +4,12 @@
AppLauncher
-
+ App Launcher應用程式啟動器
-
+ Choose an app to open the capture選擇一個程式打開此截圖
@@ -32,18 +32,18 @@
選擇後保持開啟
-
-
+
+ Error錯誤
-
+ Unable to launch in terminal.無法從終端啟動。
-
+ Unable to write in無法寫入
@@ -51,12 +51,12 @@
ArrowTool
-
+ Arrow指針
-
+ Set the Arrow as the paint tool選取指針作為繪製工具
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region矩形區域
-
+ Full Screen (All Monitors)满屏(所有顯示器)
-
+ No Delay無時延
-
+ second
-
+ seconds
-
+ Take new screenshot捕獲新截圖
-
+ Area:
-
+ Delay:
@@ -123,12 +123,12 @@
CaptureWidget
-
+ Unable to capture screen無法捕獲屏幕
-
+ Select an area with the mouse, or press Esc to exit.
Press Enter to capture the screen.
Press Right Click to show the color picker.
@@ -141,7 +141,7 @@ Press Space to open the side panel.
按Space以打開側方面板。
-
+ Tool Settings工具選項
@@ -149,12 +149,12 @@ Press Space to open the side panel.
CircleCountTool
-
+ Circle Counter環狀計數器
-
+ Add an autoincrementing counter bubble添加自增計數器
@@ -162,12 +162,12 @@ Press Space to open the side panel.
CircleTool
-
+ Circle環形
-
+ Set the Circle as the paint tool選取環形作為繪畫工具
@@ -180,49 +180,64 @@ Press Space to open the side panel.
設定
-
+ Interface接口
-
+ Filename Editor文檔名稱編輯器
-
+ General一般
+
+
+ Shortcuts
+
+
+
+
+ Storage
+
+ Controller
-
+ &Take Screenshot&捕獲截圖
-
+ &Open Launcher&開啓啓動器
-
+ &Configuration&設定
-
+ &About&關於
+
+
+ &Latest Uploads
+
+ &Information&資訊
-
+ &Quit&結束
@@ -230,12 +245,12 @@ Press Space to open the side panel.
CopyTool
-
+ Copy複製
-
+ Copy the selection into the clipboard複製選項到剪貼板
@@ -243,7 +258,7 @@ Press Space to open the side panel.
DBusUtils
-
+ Unable to connect via DBus無法通過 DBus 連接
@@ -251,12 +266,12 @@ Press Space to open the side panel.
ExitTool
-
+ Exit離開
-
+ Leave the capture screen離開螢幕擷取
@@ -264,47 +279,47 @@ Press Space to open the side panel.
FileNameEditor
-
+ Edit the name of your captures:編輯您的截圖名稱:
-
+ Edit:編輯器:
-
+ Preview:預覽:
-
+ Save存檔
-
+ Saves the pattern儲存樣式
-
+ Reset重設
-
+ Restores the saved pattern恢復儲存的樣式
-
+ Clear清除
-
+ Deletes the name刪除這個名稱
@@ -312,215 +327,402 @@ Press Space to open the side panel.
GeneneralConf
-
+ Show help message顯示説明資訊
-
+ Show the help message at the beginning in the capture mode.在擷取之前顯示説明資訊。
-
-
+
+ Show desktop notifications顯示桌面通知
-
+ Show tray icon顯示託盤圖標
-
+ Show the systemtray icon顯示工作列圖標
-
-
+
+ Import導入
-
-
-
-
+
+
+
+ Error錯誤
-
+ Unable to read file.無法讀取檔案。
-
-
+
+ Unable to write file.無法寫入檔案。
-
+ Save File存檔
-
+ Confirm Reset確認重設
-
+ Are you sure you want to reset the configuration?你確定想要重設?
-
+ Show the side panel button顯示側邊欄按鈕
-
+ Show the side panel toggle button in the capture mode.在截圖模式下顯示側邊欄切換按鈕。
-
+ Configuration File設定文檔
-
+ Export導出
-
+ Reset重設
-
+ Launch at startup自動啟動
-
+
+ Launch Flameshot啓動Flameshot
-
- Close after capture
- 捕獲截圖后關閉
+
+ Show welcome message on launch
+
-
+
+ Close application after capture
+
+
+
+ Close after capture
+ 捕獲截圖后關閉
+
+
+ Close after taking a screenshot進行截屏后關閉
-
+ Copy URL after upload上載后複製URL
-
+ Copy URL and close window after upload上載后複製URL並關閉窗口
-
+ Save image after copy複製後保存圖像
-
+ Save image file after copying it複製圖像檔案后保存
-
+ Save Path保存路徑
-
+ Change...變更...
-
+
+ Use fixed path for screenshots to save
+
+
+
+
+
+ Copy file path after save
+
+
+
+ Choose a Folder選取檔案集
-
+ Unable to write to directory.無法寫入目錄。
+
+ HistoryWidget
+
+
+ Latest Uploads
+
+
+
+
+ Screenshots history is empty
+
+
+
+
+ Copy URL
+ 複製連結
+
+
+
+ URL copied to clipboard.
+
+
+
+
+ Open in browser
+
+
+
+
+ ImgS3Uploader
+
+
+ Upload image to S3
+
+
+
+
+
+ Uploading Image...
+
+
+
+
+ Delete image from S3
+
+
+
+
+ Deleting image...
+
+
+
+
+ URL copied to clipboard.
+
+
+
+
+ Unable to remove screenshot from the remote storage.
+
+
+
+
+ Network error
+
+
+
+
+ Possibly it doesn't exist anymore
+
+
+
+
+ Do you want to remove screenshot from local history anyway?
+
+
+
+
+ Remove screenshot from history?
+
+
+
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+
+
+ Error
+ 錯誤
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+
+
+
+ ImgS3UploaderTool
+
+
+ Upload the selection to S3 bucket
+
+
+
+
+ ImgUploader
+
+
+ Upload image to S3
+
+
+
+
+ Uploading Image...
+
+
+
+
+
+ Delete image
+ 刪除圖像
+
+
+
+
+ Deleting image...
+
+
+
+
+ Unable to open the URL.
+ 無法打開該URL。
+
+
+
+ URL copied to clipboard.
+
+
+
+
+ Screenshot copied to clipboard.
+ 截圖已複製到剪貼板。
+
+
+
+ Copy URL
+ 複製連結
+
+
+
+ Open URL
+ 打開連結
+
+
+
+ Image to Clipboard.
+ 將檔案複製到剪貼簿。
+
+
+
+ ImgUploaderTool
+
+
+ Image uploader tool
+
+
+ImgurUploader
-
+ Upload to Imgur上傳到 Imgur
- Uploading Image
- 正在上傳
+ 正在上傳
- Copy URL
- 複製連結
+ 複製連結
- Open URL
- 打開連結
+ 打開連結
- Delete image
- 刪除圖像
+ 刪除圖像
- Image to Clipboard.
- 將檔案複製到剪貼簿。
+ 將檔案複製到剪貼簿。
-
-
+ Unable to open the URL.無法打開該URL。
- URL copied to clipboard.
- URL已複製到剪貼板。
+ URL已複製到剪貼板。
- Screenshot copied to clipboard.
- 截圖已複製到剪貼板。
+ 截圖已複製到剪貼板。ImgurUploaderTool
-
+ Image Uploader上傳圖片
-
+ Upload the selection to Imgur上載到 Imgur
@@ -528,110 +730,90 @@ Press Space to open the side panel.
InfoWindow
-
+ About關於
-
- SPACEBAR
-
-
-
- Right Click
- 右鍵
+ 右鍵
- Mouse Wheel
- 滑鼠滑輪
+ 滑鼠滑輪
- Move selection 1px
- 移動 1px
+ 移動 1px
- Resize selection 1px
- 調整大小 1px
+ 調整大小 1px
- Quit capture
- 結束擷取
+ 結束擷取
- Copy to clipboard
- 複製到剪貼簿
+ 複製到剪貼簿
- Save selection as a file
- 將選擇範圍另存新檔
+ 將選擇範圍另存新檔
- Undo the last modification
- 復原上次修改
+ 復原上次修改
- Toggle visibility of sidebar with options of the selected tool
- 使用所選工具選項切換側邊欄可見性
+ 使用所選工具選項切換側邊欄可見性
- Show color picker
- 顯示顏色選擇器
+ 顯示顏色選擇器
- Change the tool's thickness
- 改變工具的寬度
+ 改變工具的寬度
- Key
- 鍵
+ 鍵
- Description
- 描述
+ 描述
-
+ <u><b>License</b></u><u><b>授權條款</b></u>
-
+ <u><b>Version</b></u><u><b>版本</b></u>
- <u><b>Shortcuts</b></u>
- <u><b>快速鍵</b></u>
+ <u><b>快速鍵</b></u>
- Available shortcuts in the screen capture mode.
- 螢幕捕獲模式中的可用快捷鍵。
+ 螢幕捕獲模式中的可用快捷鍵。LineTool
-
+ Line直綫
-
+ Set the Line as the paint tool將直綫設定為繪畫工具
@@ -639,12 +821,12 @@ Press Space to open the side panel.
MarkerTool
-
+ Marker標記
-
+ Set the Marker as the paint tool將標記設定為繪畫工具
@@ -652,12 +834,12 @@ Press Space to open the side panel.
MoveTool
-
+ Move移動
-
+ Move the selection area移動選擇區域
@@ -665,12 +847,12 @@ Press Space to open the side panel.
PencilTool
-
+ Pencil鉛筆
-
+ Set the Pencil as the paint tool將鉛筆設定為繪畫工具
@@ -678,12 +860,12 @@ Press Space to open the side panel.
PinTool
-
+ Pin Tool固定工具
-
+ Pin image on the desktop將圖像固定到桌面
@@ -691,12 +873,12 @@ Press Space to open the side panel.
PixelateTool
-
+ Pixelate馬賽克工具
-
+ Set Pixelate as the paint tool將馬賽克工具設定為繪畫工具
@@ -704,18 +886,18 @@ Press Space to open the side panel.
QObject
-
+ Save Error存檔錯誤
-
+ Capture saved as 截圖已另存為
-
+ Capture saved to clipboard.熒幕捕獲已存儲到剪貼板。
@@ -725,122 +907,132 @@ Press Space to open the side panel.
螢幕捕獲已存儲到剪貼板
-
-
+
+ Error trying to save as 嘗試另存新檔時發生錯誤
-
-
-
-
-
+
+ Save screenshot
+
+
+
+
+ Capture is saved and copied to the clipboard as
+
+
+
+
+
+
+
+ Unable to connect via DBus無法透過 DBus 進行連接
-
+ Powerful yet simple to use screenshot software.
-
+ See
-
+ Capture the entire desktop.捕獲整個桌面。
-
+ Open the capture launcher.開啓捕獲啓動器。
-
+ Start a manual capture in GUI mode.在GUi模式下開啓手動捕獲。
-
+ ConfigureConfigure
-
+ Capture a single screen.捕獲單一熒幕。
-
+ Path where the capture will be saved
-
+ Save the capture to the clipboard
-
+ Delay time in milliseconds
-
+ Set the filename pattern
-
+ Enable or disable the trayicon
-
+ Enable or disable run at startup
-
+ Show the help message in the capture mode
-
+ Define the main UI color
-
+ Define the contrast UI color
-
+ Print raw PNG capture
-
+ Define the screen to capture
-
+ default: screen containing the cursor
-
+ Screen number
-
+ Invalid color, this flag supports the following formats:
- #RGB (each of R, G, and B is a single hex digit)
- #RRGGBB
@@ -851,37 +1043,37 @@ You may need to escape the '#' sign as in '\#FFF'
-
+ Invalid delay, it must be higher than 0
-
+ Invalid screen number, it must be non negative
-
+ Invalid path, it must be a real path in the system
-
+ Invalid value, it must be defined as 'true' or 'false'
-
+ Error錯誤
-
+ Unable to write in無法寫入
-
+ URL copied to clipboard.連結已複製到剪貼板。
@@ -891,40 +1083,121 @@ You may need to escape the '#' sign as in '\#FFF'
選項
-
+ Arguments
-
+ arguments
-
+ Usage使用
-
+ options選項
-
- Per default runs Flameshot in the background and adds a tray icon for configuration.
+
+ Per default runs Flameshot in the background and adds a tray icon for configuration.
+
+
+ Hi, I'm already running!
+You can find me in the system tray.
+
+
+
+
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
+
+
+
+
+ Toggle side panel
+
+
+
+
+ Resize selection left 1px
+
+
+
+
+ Resize selection right 1px
+
+
+
+
+ Resize selection up 1px
+
+
+
+
+ Resize selection down 1px
+
+
+
+
+ Move selection left 1px
+
+
+
+
+ Move selection right 1px
+
+
+
+
+ Move selection up 1px
+
+
+
+
+ Move selection down 1px
+
+
+
+
+ Quit capture
+ 結束擷取
+
+
+
+ Screenshot history
+
+
+
+
+ Capture screen
+
+
+
+
+ Show color picker
+ 顯示顏色選擇器
+
+
+
+ Change the tool's thickness
+ 改變工具的寬度
+ RectangleTool
-
+ Rectangle矩形
-
+ Set the Rectangle as the paint tool將矩形設定為繪畫工具
@@ -932,12 +1205,12 @@ You may need to escape the '#' sign as in '\#FFF'
RedoTool
-
+ Redo重做
-
+ Redo the next modification重做下一次修改
@@ -945,12 +1218,12 @@ You may need to escape the '#' sign as in '\#FFF'
SaveTool
-
+ Save儲存
-
+ Save the capture儲存螢幕捕獲
@@ -958,7 +1231,7 @@ You may need to escape the '#' sign as in '\#FFF'
ScreenGrabber
-
+ Unable to capture screen無法捕獲螢幕
@@ -966,35 +1239,76 @@ You may need to escape the '#' sign as in '\#FFF'
SelectionTool
-
+ Rectangular Selection矩形選擇
-
+ Set Selection as the paint tool將矩形選擇設定為繪畫工具
+
+ SetShortcutDialog
+
+
+ Set Shortcut
+
+
+
+
+ Enter new shortcut to change
+
+
+
+
+ Press Esc to cancel or Backspace to disable the keyboard shortcut.
+
+
+
+
+ ShortcutsWidget
+
+
+ Hot Keys
+
+
+
+
+ Available shortcuts in the screen capture mode.
+ 螢幕捕獲模式中的可用快捷鍵。
+
+
+
+ Description
+ 描述
+
+
+
+ Key
+ 鍵
+
+SidePanelWidget
-
+ Active thickness:動態寬度:
-
+ Active color:動態顔色:
-
+ Press ESC to cancel按ESC以取消
-
+ Grab Color選取顔色
@@ -1002,12 +1316,12 @@ You may need to escape the '#' sign as in '\#FFF'
SizeIndicatorTool
-
+ Selection Size Indicator選擇尺寸指示
-
+ Show the dimensions of the selection (X Y)顯示選擇的尺寸 (X Y)
@@ -1015,107 +1329,107 @@ You may need to escape the '#' sign as in '\#FFF'
StrftimeChooserWidget
-
+ Century (00-99)世紀(00-99)
-
+ Year (00-99)年(00-99)
-
+ Year (2000)年(2000)
-
+ Month Name (jan)月(jan)
-
+ Month Name (january)月(january)
-
+ Month (01-12)月(01-12)
-
+ Week Day (1-7)工作日(1-7)
-
+ Week (01-53)周(01-53)
-
+ Day Name (mon)星期(mon)
-
+ Day Name (monday)星期(diumenge)
-
+ Day (01-31)日(01-31)
-
+ Day of Month (1-31)一月中的某日(1-31)
-
+ Day (001-366)日(001-366)
-
+ Time (%H-%M-%S)時間(%H-%M-%S)
-
+ Time (%H-%M)時間(%H-%M)
-
+ Hour (00-23)小時(00-23)
-
+ Hour (01-12)小時(01-12)
-
+ Minute (00-59)分(00-59)
-
+ Second (00-59)秒(00-59)
-
+ Full Date (%m/%d/%y)日期(%m/%d/%y)
-
+ Full Date (%Y-%m-%d)日期(%Y-%m-%d)
@@ -1154,12 +1468,12 @@ You may need to escape the '#' sign as in '\#FFF'
TextTool
-
+ Text文本工具
-
+ Add text to your capture往您捕獲的截圖中添加文本
@@ -1172,32 +1486,32 @@ You may need to escape the '#' sign as in '\#FFF'
UI 顏色編輯器
-
+ Change the color moving the selectors and see the changes in the preview buttons.移動顏色選擇並在預覽按鈕檢視。
-
+ Select a Button to modify it選擇一個按鈕以修改
-
+ Main Color主色
-
+ Click on this button to set the edition mode of the main color.點選按鈕設定主色。
-
+ Contrast Color對比色
-
+ Click on this button to set the edition mode of the contrast color.點選按鈕設定對比色。
@@ -1205,38 +1519,61 @@ You may need to escape the '#' sign as in '\#FFF'
UndoTool
-
+ Undo撤銷
-
+ Undo the last modification撤銷上次修改
+
+ UploadStorageConfig
+
+
+ Upload storage
+
+
+
+
+ Imgur storage
+
+
+
+
+ S3 storage (require config.ini file with s3 credentials)
+
+
+UtilityPanel
-
+ Close關閉
+
+
+ Hide
+
+ VisualsEditor
-
+ Opacity of area outside selection:選取區域以外的不透明度:
-
+ Button Selection按鈕選取
-
+ Select All全選
diff --git a/data/translations/Internationalization_zh_TW.ts b/data/translations/Internationalization_zh_TW.ts
index dcdca448..8cead83d 100644
--- a/data/translations/Internationalization_zh_TW.ts
+++ b/data/translations/Internationalization_zh_TW.ts
@@ -75,47 +75,47 @@
CaptureLauncher
-
+ <b>Capture Mode</b>
-
+ Rectangular Region
-
+ Full Screen (All Monitors)
-
+ No Delay
-
+ second
-
+ seconds
-
+ Take new screenshot
-
+ Area:
-
+ Delay:
@@ -204,27 +204,27 @@ Press Space to open the side panel.
Controller
-
+ &Take Screenshot
-
+ &Open Launcher
-
+ &Configuration&設定
-
+ &About
-
+ &Latest Uploads
@@ -233,7 +233,7 @@ Press Space to open the side panel.
&資訊
-
+ &Quit&結束
@@ -323,170 +323,170 @@ Press Space to open the side panel.
GeneneralConf
-
+ Show help message顯示説明資訊
-
+ Show the help message at the beginning in the capture mode.在擷取之前顯示説明資訊
-
-
+
+ Show desktop notifications顯示桌面通知
-
+ Show tray icon顯示託盤圖示
-
+ Show the systemtray icon顯示工作列圖示
-
-
+
+ Import匯入
-
-
-
-
+
+
+
+ Error錯誤
-
+ Unable to read file.無法讀取檔案
-
-
+
+ Unable to write file.無法寫入檔案
-
+ Save File存檔
-
+ Confirm Reset確認重設
-
+ Are you sure you want to reset the configuration?你確定你想要重設?
-
+ Show the side panel button
-
+ Show the side panel toggle button in the capture mode.
-
+ Configuration File設定檔
-
+ Export匯出
-
+ Reset重設
-
+ Launch at startup自動啟動
-
-
+
+ Launch Flameshot
-
+ Show welcome message on launch
-
+ Close application after capture
-
+ Close after taking a screenshot
-
+ Copy URL after upload
-
+ Copy URL and close window after upload
-
+ Save image after copy
-
+ Save image file after copying it
-
+ Save Path
-
+ Change...
-
-
+
+ Copy file path after save
-
+ Use fixed path for screenshots to save
-
+ Choose a Folder
-
+ Unable to write to directory.
@@ -494,27 +494,27 @@ Press Space to open the side panel.
HistoryWidget
-
+ Latest Uploads
-
+ Screenshots history is empty
-
+ Copy URL複製連結
-
+ URL copied to clipboard.連結已複製到剪貼簿
-
+ Open in browser
@@ -527,9 +527,14 @@ Press Space to open the side panel.
- Uploading Image
- 正在上傳
+ 正在上傳
+
+
+
+
+ Uploading Image...
+
@@ -542,40 +547,56 @@ Press Space to open the side panel.
-
+ URL copied to clipboard.連結已複製到剪貼簿
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
+
+
+ Retrieving configuration file with s3 creds...
+
+
+
+ S3 Creds URL is not found in your configuration file
+
+
+ Error
+ 錯誤
+
+
+
+ Unable to get s3 credentials, please check your VPN connection and try again
+
+ ImgS3UploaderTool
@@ -593,15 +614,8 @@ Press Space to open the side panel.
-
- Uploading Image
- 正在上傳
-
-
-
- Upload image
-
+ 正在上傳
@@ -619,10 +633,16 @@ Press Space to open the side panel.
截圖已複製到剪貼簿
+ Deleting image...
+
+
+ Uploading Image...
+
+ Copy URL
@@ -634,6 +654,7 @@ Press Space to open the side panel.
打開連結
+ Delete image
@@ -655,7 +676,7 @@ Press Space to open the side panel.
ImgurUploader
-
+ Upload to Imgur上傳到 Imgur
@@ -676,7 +697,7 @@ Press Space to open the side panel.
將檔案複製到剪貼簿
-
+ Unable to open the URL.無法打開此連結
@@ -1044,7 +1065,7 @@ You may need to escape the '#' sign as in '\#FFF'
無法寫入
-
+ URL copied to clipboard.連結已複製到剪貼簿
@@ -1085,77 +1106,77 @@ You can find me in the system tray.
-
+ Hello, I'm here! Click icon in the tray to take a screenshot or click with a right button to see more options.
-
+ Toggle side panel
-
+ Resize selection left 1px
-
+ Resize selection right 1px
-
+ Resize selection up 1px
-
+ Resize selection down 1px
-
+ Move selection left 1px
-
+ Move selection right 1px
-
+ Move selection up 1px
-
+ Move selection down 1px
-
+ Quit capture結束擷取
-
+ Screenshot history
-
+ Capture screen
-
+ Show color picker顯示顏色選擇器
-
+ Change the tool's thickness改變工具的寬度
@@ -1241,22 +1262,22 @@ You can find me in the system tray.
ShortcutsWidget
-
+ Hot Keys
-
+ Available shortcuts in the screen capture mode.螢幕擷取模式中的可用快速鍵
-
+ Description描述
-
+ Key鍵
@@ -1315,92 +1336,92 @@ You can find me in the system tray.
年 (2000)
-
+ Month Name (jan)月 (jul)
-
+ Month Name (january)月 (juliol)
-
+ Month (01-12)月 (01-12)
-
+ Week Day (1-7)平常日 (1-7)
-
+ Week (01-53)周 (01-53)
-
+ Day Name (mon)星期 (dg)
-
+ Day Name (monday)星期 (diumenge)
-
+ Day (01-31)天 (01-31)
-
+ Day of Month (1-31)一月中的某天 (1-31)
-
+ Day (001-366)天 (001-366)
-
+ Time (%H-%M-%S)
-
+ Time (%H-%M)
-
+ Hour (00-23)小時 (00-23)
-
+ Hour (01-12)小時 (01-12)
-
+ Minute (00-59)分鐘 (00-59)
-
+ Second (00-59)秒 (00-59)
-
+ Full Date (%m/%d/%y)日期 (%m/%d/%y)
-
+ Full Date (%Y-%m-%d)日期 (%Y-%m-%d)
diff --git a/src/config/uploadstorageconfig.cpp b/src/config/uploadstorageconfig.cpp
index bd3d3c6b..d256564e 100644
--- a/src/config/uploadstorageconfig.cpp
+++ b/src/config/uploadstorageconfig.cpp
@@ -48,8 +48,8 @@ UploadStorageConfig::UploadStorageConfig(QWidget* parent)
});
StorageManager storageManager;
- if (storageManager.storageLocked()) {
- ConfigHandler().setUploadStorage(storageManager.storageDefault());
+ if (!storageManager.storageLocked().isEmpty()) {
+ ConfigHandler().setUploadStorage(storageManager.storageLocked());
storageImgUr->setDisabled(true);
storageImgS3->setDisabled(true);
}
diff --git a/src/tools/storage/imguploader.cpp b/src/tools/storage/imguploader.cpp
index 92597dbd..ef76244d 100644
--- a/src/tools/storage/imguploader.cpp
+++ b/src/tools/storage/imguploader.cpp
@@ -43,13 +43,13 @@ ImgUploader::ImgUploader(const QPixmap& capture, QWidget* parent)
: QWidget(parent)
, m_pixmap(capture)
{
- init(tr("Upload image to S3"), tr("Uploading Image"));
+ init(tr("Upload image to S3"), tr("Uploading Image..."));
}
ImgUploader::ImgUploader(QWidget* parent)
: QWidget(parent)
{
- init(tr("Upload image"), tr("Uploading Image"));
+ init(tr("Delete image"), tr("Deleting image..."));
}
void ImgUploader::init(const QString& title, const QString& label)
diff --git a/src/tools/storage/s3/amazon-server-side/doc/README.md b/src/tools/storage/s3/amazon-server-side/doc/README.md
index 8e7107f0..146e0d8f 100644
--- a/src/tools/storage/s3/amazon-server-side/doc/README.md
+++ b/src/tools/storage/s3/amazon-server-side/doc/README.md
@@ -22,7 +22,7 @@ if (m_s3Settings.xApiKey().length() > 0) {
QByteArray("X-API-Key"),
QByteArray(m_s3Settings.xApiKey().toLocal8Bit()));
}
-m_NetworkAMGetCreds->get(requestCreds);
+m_networkAMGetCreds->get(requestCreds);
```
Shell example:
@@ -108,7 +108,7 @@ void ImgS3Uploader::uploadToS3(QJsonDocument& response)
QNetworkRequest request(qUrl);
// upload
- m_NetworkAMUpload->post(request, multiPart);
+ m_networkAMUpload->post(request, multiPart);
}
```
@@ -131,5 +131,5 @@ m_deleteToken = deleteToken;
request.setUrl(m_s3Settings.credsUrl().toUtf8() + fileName);
request.setRawHeader("X-API-Key", m_s3Settings.xApiKey().toLatin1());
request.setRawHeader("Authorization", "Bearer " + deleteToken.toLatin1());
-m_NetworkAMRemove->deleteResource(request);
+m_networkAMRemove->deleteResource(request);
```
diff --git a/src/tools/storage/s3/config-examples/config.ini b/src/tools/storage/s3/config-examples/config.ini
new file mode 100644
index 00000000..db7d3df4
--- /dev/null
+++ b/src/tools/storage/s3/config-examples/config.ini
@@ -0,0 +1,11 @@
+[General]
+; Lock storage selection for the enterprise users
+; (it will lock to the default storage)
+STORAGE_LOCKED=s3
+STORAGE_CONFIG_URL="https://git.example.com/repos/flameshot_config/raw/config.ini"
+
+
+[S3]
+S3_URL=https://img.example.com/
+S3_CREDS_URL=https://api.img.example.com/
+S3_X_API_KEY=
diff --git a/src/tools/storage/s3/config-examples/config_proxy.ini b/src/tools/storage/s3/config-examples/config_proxy.ini
new file mode 100644
index 00000000..979fe04c
--- /dev/null
+++ b/src/tools/storage/s3/config-examples/config_proxy.ini
@@ -0,0 +1,16 @@
+[General]
+; PROXY SETTINGS
+HTTP_PROXY_HOST=0.0.0.0
+HTTP_PROXY_PORT=3128
+
+; No authentification USER and PASSWORD should be empty
+;HTTP_PROXY_USER=
+;HTTP_PROXY_PASSWORD=
+
+HTTP_PROXY_TYPE=3
+; Proxy Types (3 is default):
+; 0 Proxy is determined based on the application proxy set using setApplicationProxy()
+; 1 Socks5 proxying is used
+; 3 HTTP transparent proxying is used
+; 4 Proxying for HTTP requests only
+; 5 Proxying for FTP requests only
diff --git a/src/tools/storage/s3/imgs3settings.cpp b/src/tools/storage/s3/imgs3settings.cpp
index 351ac9a1..dad9e750 100644
--- a/src/tools/storage/s3/imgs3settings.cpp
+++ b/src/tools/storage/s3/imgs3settings.cpp
@@ -1,45 +1,187 @@
#include "imgs3settings.h"
+#include "src/tools/storage/imgstorages.h"
+#include "src/utils/confighandler.h"
+#include
+#include
#include
+#include
#include
+#include
+#include
+#include
+#include
+#include
#include
+#include
+#include
-ImgS3Settings::ImgS3Settings()
+ImgS3Settings::ImgS3Settings(QObject* parent)
+ : QObject(parent)
{
+ m_proxy = nullptr;
+ m_networkConfig = nullptr;
initSettings();
- // get s3 credentials
- m_settings->beginGroup("S3");
- m_credsUrl = m_settings->value("S3_CREDS_URL").toString();
- m_credsUrl =
- m_credsUrl +
- ((m_credsUrl.length() > 0 && m_credsUrl[m_credsUrl.length() - 1] == '/')
- ? ""
- : "/") +
- S3_API_IMG_PATH;
+ // get remote config url
+ if (m_localSettings->contains("STORAGE_CONFIG_URL")) {
+ m_s3ConfigUrl =
+ QUrl(m_localSettings->value("STORAGE_CONFIG_URL").toString());
+ } else {
+ // set default value if STORAGE_CONFIG_URL not found in the config.ini
+ m_s3ConfigUrl = QUrl("https://git.namecheap.net/projects/RND/repos/"
+ "flameshot_config/raw/config.ini");
+ }
- m_xApiKey = m_settings->value("S3_X_API_KEY").toString();
-
- m_url = m_settings->value("S3_URL").toString();
- m_url =
- m_url +
- ((m_url.length() > 0 && m_url[m_url.length() - 1] == '/') ? "" : "/");
-
- m_settings->endGroup();
+ // proxy settings
+ m_proxyType = -1;
+ m_proxyHost = QString();
+ m_proxyPort = -1;
+ m_proxyUser = QString();
+ m_proxyPassword = QString();
}
-QSettings* ImgS3Settings::settings()
+void ImgS3Settings::initS3Creds()
{
- return m_settings;
+ ConfigHandler configHandler;
+ m_credsUrl = configHandler.value("S3", "S3_CREDS_URL").toString();
+ m_xApiKey = configHandler.value("S3", "S3_X_API_KEY").toString();
+ m_url = configHandler.value("S3", "S3_URL").toString();
+ normalizeS3Creds();
+ updateConfigFromRemote();
}
-void ImgS3Settings::initSettings()
+bool ImgS3Settings::getConfigRemote(int timeout)
+{
+ if (!m_url.isEmpty() && !m_credsUrl.isEmpty()) {
+ updateConfigFromRemote();
+ return true;
+ }
+ QNetworkAccessManager* networkConfig = new QNetworkAccessManager(this);
+ if (proxy() != nullptr) {
+ networkConfig->setProxy(*m_proxy);
+ }
+ QNetworkReply* reply = networkConfig->get(QNetworkRequest(m_s3ConfigUrl));
+
+ QEventLoop loop;
+ QTimer timer;
+ timer.setSingleShot(true);
+ connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ connect(reply, SIGNAL(readyRead()), &loop, SLOT(quit()));
+ timer.start(timeout * 1000); // 30 secs. timeout
+ loop.exec();
+ QString data = QString(reply->readAll());
+ parseConfigurationData(data);
+
+ delete reply;
+ delete networkConfig;
+
+ return !data.isEmpty();
+}
+
+void ImgS3Settings::parseConfigurationData(const QString& data)
+{
+ // read remote and save to the temporary file
+ QTemporaryFile file;
+ file.open();
+ QTextStream stream(&file);
+ stream << data;
+ stream.flush();
+
+ // parse and get configuration data
+ QSettings remoteConfig(file.fileName(), QSettings::IniFormat, this);
+ remoteConfig.beginGroup("S3");
+ m_url = remoteConfig.value("S3_URL").toString();
+ m_credsUrl = remoteConfig.value("S3_CREDS_URL").toString();
+ m_xApiKey = remoteConfig.value("S3_X_API_KEY").toString();
+ normalizeS3Creds();
+ remoteConfig.endGroup();
+
+ // close and remove temporary file
+ file.close();
+
+ // cache configuration at the local storage
+ ConfigHandler configHandler;
+ configHandler.setValue("S3", "S3_URL", m_url);
+ configHandler.setValue("S3", "S3_CREDS_URL", m_credsUrl);
+ configHandler.setValue("S3", "S3_X_API_KEY", m_xApiKey);
+
+ // set last update date
+ QString currentDateTime =
+ QDateTime::currentDateTime().toString(Qt::ISODate);
+ configHandler.setValue("S3", "S3_CREDS_UPDATED", QVariant(currentDateTime));
+}
+
+void ImgS3Settings::normalizeS3Creds()
+{
+ if (!m_url.isEmpty() && m_url.right(1) != "/") {
+ m_url += "/";
+ }
+ if (!m_credsUrl.isEmpty() && m_credsUrl.right(1) != "/") {
+ m_credsUrl += "/";
+ }
+}
+
+void ImgS3Settings::updateConfigFromRemote()
+{
+ // check for outdated s3 creds
+ ConfigHandler configHandler;
+ QString credsUpdated =
+ configHandler.value("S3", "S3_CREDS_UPDATED").toString();
+ QDateTime dtCredsUpdated =
+ QDateTime::currentDateTime().fromString(credsUpdated, Qt::ISODate);
+ QDateTime now = QDateTime::currentDateTime();
+ dtCredsUpdated = dtCredsUpdated.addDays(1);
+ if (dtCredsUpdated <= now) {
+ // Do update config from remote
+ if (nullptr == m_networkConfig) {
+ m_networkConfig = new QNetworkAccessManager(this);
+ if (proxy() != nullptr) {
+ m_networkConfig->setProxy(*m_proxy);
+ }
+ connect(m_networkConfig,
+ &QNetworkAccessManager::finished,
+ this,
+ &ImgS3Settings::handleReplyUpdateConfigFromRemote);
+ }
+ m_networkConfig->get(QNetworkRequest(m_s3ConfigUrl));
+ }
+}
+
+void ImgS3Settings::handleReplyUpdateConfigFromRemote(QNetworkReply* reply)
+{
+ if (reply->error() == QNetworkReply::NoError) {
+ QString configData = QString(reply->readAll());
+ parseConfigurationData(configData);
+ } else {
+ QString reason =
+ reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute)
+ .toString();
+ QString error = reply->errorString();
+ qWarning() << "Update config from remote status:" << error;
+ qWarning() << reason;
+ }
+}
+
+const QString& ImgS3Settings::storageLocked()
+{
+ if (m_localSettings->contains("STORAGE_LOCKED")) {
+ m_storageLocked =
+ m_localSettings->value(QStringLiteral("STORAGE_LOCKED")).toString();
+ } else {
+ // FIXME - remove hardcode and add configuration file to the
+ // installation
+ m_storageLocked = SCREENSHOT_STORAGE_TYPE_S3;
+ }
+ return m_storageLocked;
+}
+
+const QString& ImgS3Settings::localConfigFilePath(const QString& fileName)
{
// get s3 settings
- QString configIniPath = QDir(QDir::currentPath()).filePath("config.ini");
- if (!(QFileInfo::exists(configIniPath) &&
- QFileInfo(configIniPath).isFile())) {
+ m_qstr = QDir(QDir::currentPath()).filePath(fileName);
+ if (!(QFileInfo::exists(m_qstr) && QFileInfo(m_qstr).isFile())) {
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
- configIniPath = "/etc/flameshot/config.ini";
+ m_qstr = "/etc/flameshot/" + fileName;
#elif defined(Q_OS_WIN)
// calculate workdir for flameshot on startup if is not set yet
QSettings bootUpSettings(
@@ -47,23 +189,165 @@ void ImgS3Settings::initSettings()
"USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
QFileInfo fi(bootUpSettings.value("Flameshot").toString());
- configIniPath = QDir(fi.absolutePath()).filePath("config.ini");
+ m_qstr = QDir(fi.absolutePath()).filePath(fileName);
#endif
}
- m_settings = new QSettings(configIniPath, QSettings::IniFormat);
+ return m_qstr;
+}
+
+void ImgS3Settings::initSettings()
+{
+ m_localSettings =
+ new QSettings(localConfigFilePath(S3_CONFIG_LOCAL), QSettings::IniFormat);
+ m_proxySettings =
+ new QSettings(localConfigFilePath(S3_CONFIG_PROXY), QSettings::IniFormat);
}
const QString& ImgS3Settings::credsUrl()
{
+ if (m_credsUrl.isEmpty()) {
+ initS3Creds();
+ if (!m_credsUrl.isEmpty()) {
+ m_credsUrl += S3_API_IMG_PATH;
+ }
+ }
return m_credsUrl;
}
const QString& ImgS3Settings::xApiKey()
{
+ if (m_xApiKey.isEmpty()) {
+ initS3Creds();
+ }
return m_xApiKey;
}
const QString& ImgS3Settings::url()
{
+ if (m_url.isEmpty()) {
+ initS3Creds();
+ }
return m_url;
}
+
+QNetworkProxy* ImgS3Settings::proxy()
+{
+ if (proxyHost().length() > 0) {
+ m_proxy = new QNetworkProxy();
+ switch (proxyType()) {
+ case 0:
+ m_proxy->setType(QNetworkProxy::DefaultProxy);
+ break;
+ case 1:
+ m_proxy->setType(QNetworkProxy::Socks5Proxy);
+ break;
+ case 2:
+ m_proxy->setType(QNetworkProxy::NoProxy);
+ break;
+ case 4:
+ m_proxy->setType(QNetworkProxy::HttpCachingProxy);
+ break;
+ case 5:
+ m_proxy->setType(QNetworkProxy::FtpCachingProxy);
+ break;
+ case 3:
+ default:
+ m_proxy->setType(QNetworkProxy::HttpProxy);
+ break;
+ }
+ m_proxy->setHostName(proxyHost());
+ m_proxy->setPort(proxyPort());
+ if (proxyUser().length() > 0) {
+ m_proxy->setUser(proxyUser());
+ m_proxy->setPassword(proxyPassword());
+ }
+
+ } else {
+ // Get proxy settings from OS settings
+ QNetworkProxyQuery q(QUrl(credsUrl().toUtf8()));
+ q.setQueryType(QNetworkProxyQuery::UrlRequest);
+ q.setProtocolTag("http");
+
+ QList proxies =
+ QNetworkProxyFactory::systemProxyForQuery(q);
+ if (proxies.size() > 0 && proxies[0].type() != QNetworkProxy::NoProxy) {
+ m_proxy = new QNetworkProxy();
+ m_proxy->setHostName(proxies[0].hostName());
+ m_proxy->setPort(proxies[0].port());
+ m_proxy->setType(proxies[0].type());
+ m_proxy->setUser(proxies[0].user());
+ m_proxy->setPassword(proxies[0].password());
+ }
+ }
+ return m_proxy;
+}
+
+void ImgS3Settings::clearProxy()
+{
+ if (m_proxy != nullptr) {
+ delete m_proxy;
+ m_proxy = nullptr;
+ }
+}
+
+int ImgS3Settings::proxyType()
+{
+ if (-1 == m_proxyType) {
+ m_proxyType = 3; // default - HTTP transparent proxying is used
+ if (m_proxySettings->contains("HTTP_PROXY_TYPE")) {
+ m_proxyType = m_proxySettings->value("HTTP_PROXY_TYPE").toInt();
+ if (m_proxyType < 0 || m_proxyType > 5) {
+ m_proxyType = 3; // default - HTTP transparent proxying is used
+ }
+ }
+ }
+ return m_proxyType;
+}
+
+const QString& ImgS3Settings::proxyHost()
+{
+ if (m_proxyHost.isNull()) {
+ if (m_proxySettings->contains("HTTP_PROXY_HOST")) {
+ m_proxyHost = m_proxySettings->value("HTTP_PROXY_HOST").toString();
+ } else {
+ m_proxyHost = "";
+ }
+ }
+ return m_proxyHost;
+}
+
+int ImgS3Settings::proxyPort()
+{
+ if (-1 == m_proxyPort) {
+ m_proxyPort = 3128;
+ if (m_proxySettings->contains("HTTP_PROXY_PORT")) {
+ m_proxyPort = m_proxySettings->value("HTTP_PROXY_PORT").toInt();
+ }
+ }
+ return m_proxyPort;
+}
+
+const QString& ImgS3Settings::proxyUser()
+{
+ if (m_proxyUser.isNull()) {
+ if (m_proxySettings->contains("HTTP_PROXY_USER")) {
+ m_proxyUser = m_proxySettings->value("HTTP_PROXY_USER").toString();
+ } else {
+ m_proxyUser = "";
+ }
+ }
+ return m_proxyUser;
+}
+
+const QString& ImgS3Settings::proxyPassword()
+{
+ if (m_proxyPassword.isNull()) {
+ if (m_proxySettings->contains("HTTP_PROXY_PASSWORD")) {
+ m_proxyPassword =
+ m_proxySettings->value("HTTP_PROXY_PASSWORD").toString();
+ } else {
+ m_proxyPassword = "";
+ }
+ }
+ return m_proxyPassword;
+}
diff --git a/src/tools/storage/s3/imgs3settings.h b/src/tools/storage/s3/imgs3settings.h
index 3fce40e4..ac1d0556 100644
--- a/src/tools/storage/s3/imgs3settings.h
+++ b/src/tools/storage/s3/imgs3settings.h
@@ -1,30 +1,79 @@
-#ifndef IMGS3SETTINGS_H
-#define IMGS3SETTINGS_H
+#ifndef IMG_S3_SETTINGS_H
+#define IMG_S3_SETTINGS_H
#define S3_API_IMG_PATH "v2/image/"
+#define S3_GET_REMOTE_SETTINGS_TIMEOUT 10
+#define S3_CONFIG_LOCAL "config.ini"
+#define S3_CONFIG_PROXY "config_proxy.ini"
+
+#include
#include
+#include
class QSettings;
+class QNetworkProxy;
+class QNetworkAccessManager;
+class QNetworkRequest;
+class QNetworkReply;
-class ImgS3Settings
+class ImgS3Settings : public QObject
{
+ Q_OBJECT
+
+private slots:
+ void handleReplyUpdateConfigFromRemote(QNetworkReply* reply);
+
public:
- ImgS3Settings();
+ ImgS3Settings(QObject* parent = nullptr);
+
+ bool getConfigRemote(int timeout = S3_GET_REMOTE_SETTINGS_TIMEOUT);
+ void updateConfigFromRemote();
+
+ const QString& storageLocked();
const QString& credsUrl();
const QString& xApiKey();
const QString& url();
- QSettings* settings();
+
+ QNetworkProxy* proxy();
+ void clearProxy();
private:
+ int proxyType();
+ const QString& proxyHost();
+ int proxyPort();
+ const QString& proxyUser();
+ const QString& proxyPassword();
+
void initSettings();
+ const QString& localConfigFilePath(const QString& fileName);
+ void parseConfigurationData(const QString& data);
+ void initS3Creds();
+ void normalizeS3Creds();
// class members
- QSettings* m_settings;
+ QSettings* m_localSettings;
+ QString m_storageLocked;
+ QString m_qstr;
+
+ // s3
+ QUrl m_s3ConfigUrl;
QString m_credsUrl;
QString m_xApiKey;
QString m_url;
+
+ // proxy
+ QNetworkProxy* m_proxy;
+ QSettings* m_proxySettings;
+ int m_proxyType;
+ QString m_proxyHost;
+ int m_proxyPort;
+ QString m_proxyUser;
+ QString m_proxyPassword;
+
+ //
+ QNetworkAccessManager* m_networkConfig;
};
-#endif // IMGS3SETTINGS_H
+#endif // IMG_S3_SETTINGS_H
diff --git a/src/tools/storage/s3/imgs3uploader.cpp b/src/tools/storage/s3/imgs3uploader.cpp
index 6012121a..5795f3b8 100644
--- a/src/tools/storage/s3/imgs3uploader.cpp
+++ b/src/tools/storage/s3/imgs3uploader.cpp
@@ -17,7 +17,6 @@
// along with Flameshot. If not, see .
#include "imgs3uploader.h"
-#include "imgs3settings.h"
#include "src/core/controller.h"
#include "src/utils/confighandler.h"
#include "src/utils/history.h"
@@ -41,13 +40,14 @@
#include
#include
#include
+#include
#include
#include
ImgS3Uploader::ImgS3Uploader(const QPixmap& capture, QWidget* parent)
: ImgUploader(capture, parent)
{
- init(tr("Upload image to S3"), tr("Uploading Image"));
+ init(tr("Upload image to S3"), tr("Uploading Image..."));
}
ImgS3Uploader::ImgS3Uploader(QWidget* parent)
@@ -63,10 +63,10 @@ ImgS3Uploader::~ImgS3Uploader()
void ImgS3Uploader::init(const QString& title, const QString& label)
{
- m_proxy = nullptr;
- m_NetworkAMUpload = nullptr;
- m_NetworkAMGetCreds = nullptr;
- m_NetworkAMRemove = nullptr;
+ m_multiPart = nullptr;
+ m_networkAMUpload = nullptr;
+ m_networkAMGetCreds = nullptr;
+ m_networkAMRemove = nullptr;
resultStatus = false;
setWindowTitle(title);
@@ -75,108 +75,15 @@ void ImgS3Uploader::init(const QString& title, const QString& label)
QNetworkProxy* ImgS3Uploader::proxy()
{
- if (m_proxy == nullptr) {
- initProxy();
- }
- return m_proxy;
-}
-
-QNetworkProxy* ImgS3Uploader::initProxy()
-{
- // get s3 settings
- ImgS3Settings imgS3Settings;
-
- // get proxy settings from "config.ini" file
- QSettings* settings = imgS3Settings.settings();
- QString httpProxyHost = settings->value("HTTP_PROXY_HOST").toString();
-
- if (httpProxyHost.length() > 0) {
- m_proxy = new QNetworkProxy();
- if (settings->contains("HTTP_PROXY_TYPE")) {
- switch (settings->value("HTTP_PROXY_TYPE").toInt()) {
- case 0:
- m_proxy->setType(QNetworkProxy::DefaultProxy);
- break;
- case 1:
- m_proxy->setType(QNetworkProxy::Socks5Proxy);
- break;
- case 2:
- m_proxy->setType(QNetworkProxy::NoProxy);
- break;
- case 4:
- m_proxy->setType(QNetworkProxy::HttpCachingProxy);
- break;
- case 5:
- m_proxy->setType(QNetworkProxy::FtpCachingProxy);
- break;
- case 3:
- default:
- m_proxy->setType(QNetworkProxy::HttpProxy);
- break;
- }
- }
-
- m_proxy->setHostName(httpProxyHost);
- int nProxyPort = 3128;
- if (settings->contains("HTTP_PROXY_PORT")) {
- nProxyPort = settings->value("HTTP_PROXY_PORT").toInt();
- }
- m_proxy->setPort(nProxyPort);
-
- if (settings->contains("HTTP_PROXY_USER")) {
- qDebug() << "Proxy user"
- << settings->value("HTTP_PROXY_PASSWORD").toString();
- m_proxy->setUser(settings->value("HTTP_PROXY_USER").toString());
- }
- if (settings->contains("HTTP_PROXY_PASSWORD")) {
- qDebug() << "Proxy password is not empty";
- m_proxy->setPassword(
- settings->value("HTTP_PROXY_PASSWORD").toString());
- }
- } else {
- // Get proxy settings from OS settings
- QNetworkProxyQuery q(QUrl(m_s3Settings.credsUrl().toUtf8()));
- q.setQueryType(QNetworkProxyQuery::UrlRequest);
- q.setProtocolTag("http");
-
- QList proxies =
- QNetworkProxyFactory::systemProxyForQuery(q);
- if (proxies.size() > 0 && proxies[0].type() != QNetworkProxy::NoProxy) {
- m_proxy = new QNetworkProxy();
- m_proxy->setHostName(proxies[0].hostName());
- m_proxy->setPort(proxies[0].port());
- m_proxy->setType(proxies[0].type());
- m_proxy->setUser(proxies[0].user());
- m_proxy->setPassword(proxies[0].password());
- }
- }
-#ifdef QT_DEBUG
- if (m_proxy != nullptr) {
- qDebug() << "Using proxy server";
- qDebug() << "proxy host:" << m_proxy->hostName();
- qDebug() << "proxy port:" << m_proxy->port();
- qDebug() << "proxy type:" << m_proxy->type();
- qDebug() << "proxy user:"
- << (m_proxy->user().length() > 0 ? m_proxy->user()
- : "no user");
- qDebug() << "proxy password:"
- << (m_proxy->password().length() > 0 ? "***" : "no password");
- } else {
- qDebug() << "No proxy";
- }
-#endif
- return m_proxy;
+ return m_s3Settings.proxy();
}
void ImgS3Uploader::clearProxy()
{
- if (m_proxy != nullptr) {
- delete m_proxy;
- m_proxy = nullptr;
- }
+ m_s3Settings.clearProxy();
}
-void ImgS3Uploader::handleReplyUpload(QNetworkReply* reply)
+void ImgS3Uploader::handleReplyPostUpload(QNetworkReply* reply)
{
hideSpinner();
m_storageImageName.clear();
@@ -254,19 +161,52 @@ void ImgS3Uploader::handleReplyGetCreds(QNetworkReply* reply)
} else {
if (m_s3Settings.credsUrl().length() == 0) {
setInfoLabelText(
- tr("S3 Creds URL is not found in your configuration file"));
+ tr("Retrieving configuration file with s3 creds..."));
+ if (!m_s3Settings.getConfigRemote()) {
+ retry();
+ }
+ hide();
+
+ if (!m_s3Settings.credsUrl().isEmpty()) {
+ setInfoLabelText(tr("Uploading Image..."));
+ upload();
+ return;
+ }
} else {
setInfoLabelText(reply->errorString());
}
+ // FIXME - remove not uploaded preview
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
+void ImgS3Uploader::retry()
+{
+ setInfoLabelText(
+ tr("S3 Creds URL is not found in your configuration file"));
+ if (QMessageBox::Retry ==
+ QMessageBox::question(nullptr,
+ tr("Error"),
+ tr("Unable to get s3 credentials, please check "
+ "your VPN connection and try again"),
+ QMessageBox::Retry | QMessageBox::Cancel)) {
+ setInfoLabelText(tr("Retrieving configuration file with s3 creds..."));
+ if (!m_s3Settings.getConfigRemote()) {
+ retry();
+ }
+ } else {
+ hide();
+ }
+}
+
void ImgS3Uploader::uploadToS3(QJsonDocument& response)
{
- // set paramets from "fields"
- QHttpMultiPart* multiPart =
- new QHttpMultiPart(QHttpMultiPart::FormDataType);
+ // set parameters from "fields"
+ if (nullptr != m_multiPart) {
+ delete m_multiPart;
+ m_multiPart = nullptr;
+ }
+ m_multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
// read JSON response
QJsonObject json = response.object();
@@ -282,7 +222,7 @@ void ImgS3Uploader::uploadToS3(QJsonDocument& response)
part.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"" + key + "\""));
part.setBody(field.toLatin1());
- multiPart->append(part);
+ m_multiPart->append(part);
}
QHttpPart imagePart;
@@ -297,7 +237,7 @@ void ImgS3Uploader::uploadToS3(QJsonDocument& response)
pixmap().save(&buffer, "PNG");
imagePart.setBody(byteArray);
- multiPart->append(imagePart);
+ m_multiPart->append(imagePart);
setImageUrl(QUrl(resultUrl));
@@ -305,7 +245,7 @@ void ImgS3Uploader::uploadToS3(QJsonDocument& response)
QNetworkRequest request(qUrl);
// upload
- m_NetworkAMUpload->post(request, multiPart);
+ m_networkAMUpload->post(request, m_multiPart);
}
void ImgS3Uploader::deleteResource(const QString& fileName,
@@ -314,69 +254,64 @@ void ImgS3Uploader::deleteResource(const QString& fileName,
// read network settings on each call to simplify configuration management
// without restarting
clearProxy();
- if (m_NetworkAMRemove != nullptr) {
- delete m_NetworkAMRemove;
- m_NetworkAMRemove = nullptr;
+ if (m_networkAMRemove != nullptr) {
+ delete m_networkAMRemove;
+ m_networkAMRemove = nullptr;
}
- m_NetworkAMRemove = new QNetworkAccessManager(this);
- connect(m_NetworkAMRemove,
+ m_networkAMRemove = new QNetworkAccessManager(this);
+ connect(m_networkAMRemove,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyDeleteResource);
if (proxy() != nullptr) {
- m_NetworkAMRemove->setProxy(*proxy());
+ m_networkAMRemove->setProxy(*proxy());
}
QNetworkRequest request;
m_storageImageName = fileName;
m_deleteToken = deleteToken;
+
request.setUrl(m_s3Settings.credsUrl().toUtf8() + fileName);
request.setRawHeader("X-API-Key", m_s3Settings.xApiKey().toLatin1());
request.setRawHeader("Authorization", "Bearer " + deleteToken.toLatin1());
- m_NetworkAMRemove->deleteResource(request);
+ m_networkAMRemove->deleteResource(request);
}
void ImgS3Uploader::upload()
{
m_deleteToken.clear();
m_storageImageName.clear();
+ show();
// read network settings on each call to simplify configuration management
// without restarting init creds and upload network access managers
clearProxy();
- if (m_NetworkAMGetCreds != nullptr) {
- delete m_NetworkAMGetCreds;
- m_NetworkAMGetCreds = nullptr;
- }
- m_NetworkAMGetCreds = new QNetworkAccessManager(this);
- connect(m_NetworkAMGetCreds,
+ cleanNetworkAccessManagers();
+
+ m_networkAMGetCreds = new QNetworkAccessManager(this);
+ connect(m_networkAMGetCreds,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyGetCreds);
- if (m_NetworkAMUpload != nullptr) {
- delete m_NetworkAMUpload;
- m_NetworkAMUpload = nullptr;
- }
- m_NetworkAMUpload = new QNetworkAccessManager(this);
- connect(m_NetworkAMUpload,
+ m_networkAMUpload = new QNetworkAccessManager(this);
+ connect(m_networkAMUpload,
&QNetworkAccessManager::finished,
this,
- &ImgS3Uploader::handleReplyUpload);
+ &ImgS3Uploader::handleReplyPostUpload);
if (proxy() != nullptr) {
- m_NetworkAMGetCreds->setProxy(*proxy());
- m_NetworkAMUpload->setProxy(*proxy());
+ m_networkAMGetCreds->setProxy(*proxy());
+ m_networkAMUpload->setProxy(*proxy());
}
// get creads
- QUrl creds(m_s3Settings.credsUrl());
- QNetworkRequest requestCreds(creds);
+ QNetworkRequest requestCreds(QUrl(m_s3Settings.credsUrl()));
if (m_s3Settings.xApiKey().length() > 0) {
requestCreds.setRawHeader(
QByteArray("X-API-Key"),
QByteArray(m_s3Settings.xApiKey().toLocal8Bit()));
}
- m_NetworkAMGetCreds->get(requestCreds);
+ m_networkAMGetCreds->get(requestCreds);
}
void ImgS3Uploader::removeImagePreview()
@@ -395,3 +330,19 @@ void ImgS3Uploader::removeImagePreview()
m_storageImageName.clear();
resultStatus = true;
}
+
+void ImgS3Uploader::cleanNetworkAccessManagers()
+{
+ if (nullptr != m_networkAMUpload) {
+ delete m_networkAMUpload;
+ m_networkAMUpload = nullptr;
+ }
+ if (nullptr != m_networkAMGetCreds) {
+ delete m_networkAMGetCreds;
+ m_networkAMGetCreds = nullptr;
+ }
+ if (nullptr != m_networkAMRemove) {
+ delete m_networkAMRemove;
+ m_networkAMRemove = nullptr;
+ }
+}
\ No newline at end of file
diff --git a/src/tools/storage/s3/imgs3uploader.h b/src/tools/storage/s3/imgs3uploader.h
index 8a9ec7aa..60581ce0 100644
--- a/src/tools/storage/s3/imgs3uploader.h
+++ b/src/tools/storage/s3/imgs3uploader.h
@@ -17,8 +17,6 @@
#pragma once
-#define S3_API_IMG_PATH "v2/image/"
-
#include "../imguploader.h"
#include "imgs3settings.h"
#include
@@ -34,6 +32,7 @@ class QPushButton;
class QUrl;
class NotificationWidget;
class ImageLabel;
+class QHttpMultiPart;
class ImgS3Uploader : public ImgUploader
{
@@ -46,7 +45,7 @@ public:
void deleteResource(const QString&, const QString&);
private slots:
- void handleReplyUpload(QNetworkReply* reply);
+ void handleReplyPostUpload(QNetworkReply* reply);
void handleReplyGetCreds(QNetworkReply* reply);
void handleReplyDeleteResource(QNetworkReply* reply);
@@ -54,17 +53,18 @@ private:
void init(const QString& title, const QString& label);
void uploadToS3(QJsonDocument& response);
void removeImagePreview();
+ void retry();
- QNetworkProxy* initProxy();
void clearProxy();
QNetworkProxy* proxy();
+ void cleanNetworkAccessManagers();
// class members
private:
ImgS3Settings m_s3Settings;
- QNetworkProxy* m_proxy;
- QNetworkAccessManager* m_NetworkAMUpload;
- QNetworkAccessManager* m_NetworkAMGetCreds;
- QNetworkAccessManager* m_NetworkAMRemove;
+ QNetworkAccessManager* m_networkAMUpload;
+ QNetworkAccessManager* m_networkAMGetCreds;
+ QNetworkAccessManager* m_networkAMRemove;
+ QHttpMultiPart* m_multiPart;
};
diff --git a/src/tools/storage/storagemanager.cpp b/src/tools/storage/storagemanager.cpp
index 1d4c22dd..42d02ab8 100644
--- a/src/tools/storage/storagemanager.cpp
+++ b/src/tools/storage/storagemanager.cpp
@@ -1,7 +1,6 @@
#include "storagemanager.h"
#include "imguploader.h"
#include "imgur/imguruploadertool.h"
-#include "s3/imgs3settings.h"
#include "s3/imgs3uploadertool.h"
#include "src/tools/capturetool.h"
#include
@@ -22,8 +21,7 @@ CaptureTool* StorageManager::imgUploaderTool(const QString& imgUploaderType,
const QString& StorageManager::storageUrl(const QString& imgUploaderType)
{
if (imgUploaderType == SCREENSHOT_STORAGE_TYPE_S3) {
- ImgS3Settings s3Settings;
- m_qstr = s3Settings.url();
+ m_qstr = m_imgS3Settings.url();
} else if (imgUploaderType == SCREENSHOT_STORAGE_TYPE_IMGUR) {
m_qstr = "https://i.imgur.com/";
}
@@ -32,25 +30,15 @@ const QString& StorageManager::storageUrl(const QString& imgUploaderType)
const QString& StorageManager::storageDefault()
{
- ImgS3Settings imgS3Settings;
- if (!imgS3Settings.xApiKey().isEmpty()) {
- m_qstr = SCREENSHOT_STORAGE_TYPE_S3;
+ if (!m_imgS3Settings.storageLocked().isEmpty()) {
+ m_qstr = m_imgS3Settings.storageLocked();
} else {
m_qstr = SCREENSHOT_STORAGE_TYPE_IMGUR;
}
return m_qstr;
}
-bool StorageManager::storageLocked()
+const QString& StorageManager::storageLocked()
{
- // TODO - move this to some common config file, not a storage specific
- // configuration file
- bool res = false;
- ImgS3Settings imgS3Settings;
- if (imgS3Settings.settings()->contains("STORAGE_LOCK")) {
- res = imgS3Settings.settings()
- ->value(QStringLiteral("STORAGE_LOCK"))
- .toBool();
- }
- return res;
+ return m_imgS3Settings.storageLocked();
}
\ No newline at end of file
diff --git a/src/tools/storage/storagemanager.h b/src/tools/storage/storagemanager.h
index 70a482c0..9e42319c 100644
--- a/src/tools/storage/storagemanager.h
+++ b/src/tools/storage/storagemanager.h
@@ -1,6 +1,7 @@
#ifndef STORAGEMANAGER_H
#define STORAGEMANAGER_H
+#include "s3/imgs3settings.h"
#include
#include
@@ -17,11 +18,12 @@ public:
QObject* parent = nullptr);
const QString& storageUrl(const QString& imgUploaderType);
const QString& storageDefault();
- bool storageLocked();
+ const QString& storageLocked();
private:
// class members
QString m_qstr;
+ ImgS3Settings m_imgS3Settings;
};
#endif // STORAGEMANAGER_H
diff --git a/src/utils/confighandler.cpp b/src/utils/confighandler.cpp
index 3a48f069..843f0cbc 100644
--- a/src/utils/confighandler.cpp
+++ b/src/utils/confighandler.cpp
@@ -459,11 +459,11 @@ void ConfigHandler::setCopyPathAfterSaveEnabled(const bool value)
void ConfigHandler::setUploadStorage(const QString& uploadStorage)
{
StorageManager storageManager;
- if (storageManager.storageLocked()) {
- m_settings.setValue(QStringLiteral("uploadStorage"),
- storageManager.storageDefault());
- } else {
+ if (storageManager.storageLocked().isEmpty()) {
m_settings.setValue(QStringLiteral("uploadStorage"), uploadStorage);
+ } else {
+ m_settings.setValue(QStringLiteral("uploadStorage"),
+ storageManager.storageLocked());
}
}
@@ -471,8 +471,8 @@ const QString& ConfigHandler::uploadStorage()
{
StorageManager storageManager;
// check for storage lock
- if (storageManager.storageLocked()) {
- setUploadStorage(storageManager.storageDefault());
+ if (!storageManager.storageLocked().isEmpty()) {
+ setUploadStorage(storageManager.storageLocked());
}
// get storage
@@ -616,3 +616,28 @@ const QString& ConfigHandler::shortcut(const QString& shortcutName)
m_settings.endGroup();
return m_strRes;
}
+
+void ConfigHandler::setValue(const QString& group,
+ const QString& key,
+ const QVariant& value)
+{
+ if (!group.isEmpty()) {
+ m_settings.beginGroup(group);
+ }
+ m_settings.setValue(key, value);
+ if (!group.isEmpty()) {
+ m_settings.endGroup();
+ }
+}
+
+QVariant& ConfigHandler::value(const QString& group, const QString& key)
+{
+ if (!group.isEmpty()) {
+ m_settings.beginGroup(group);
+ }
+ m_varRes = m_settings.value(key);
+ if (!group.isEmpty()) {
+ m_settings.endGroup();
+ }
+ return m_varRes;
+}
diff --git a/src/utils/confighandler.h b/src/utils/confighandler.h
index b493427d..8670a893 100644
--- a/src/utils/confighandler.h
+++ b/src/utils/confighandler.h
@@ -20,6 +20,7 @@
#include "src/widgets/capture/capturetoolbutton.h"
#include
#include
+#include
#include
class ConfigHandler
@@ -103,8 +104,14 @@ public:
QString configFilePath() const;
+ void setValue(const QString& group,
+ const QString& key,
+ const QVariant& value);
+ QVariant& value(const QString& group, const QString& key);
+
private:
QString m_strRes;
+ QVariant m_varRes;
QSettings m_settings;
QVector m_shortcuts;
From deee448de402f6357da18db7ae0dd929c137bd2e Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Wed, 18 Nov 2020 18:54:36 +0200
Subject: [PATCH 11/54] Read s3 creds for upload from URL in private network
(VPN) - fix
---
data/translations/Internationalization_ca.ts | 30 +++--
data/translations/Internationalization_cs.ts | 30 +++--
.../Internationalization_de_DE.ts | 30 +++--
data/translations/Internationalization_es.ts | 30 +++--
data/translations/Internationalization_eu.ts | 30 +++--
data/translations/Internationalization_fr.ts | 30 +++--
.../Internationalization_it_IT.ts | 30 +++--
data/translations/Internationalization_ja.ts | 30 +++--
data/translations/Internationalization_ka.ts | 30 +++--
data/translations/Internationalization_nl.ts | 30 +++--
.../Internationalization_nl_NL.ts | 30 +++--
data/translations/Internationalization_pl.ts | 30 +++--
.../Internationalization_pt_BR.ts | 30 +++--
data/translations/Internationalization_ru.ts | 30 +++--
data/translations/Internationalization_sk.ts | 30 +++--
.../Internationalization_sr_SP.ts | 30 +++--
.../Internationalization_sv_SE.ts | 30 +++--
data/translations/Internationalization_tr.ts | 30 +++--
data/translations/Internationalization_uk.ts | 30 +++--
.../Internationalization_zh_CN.ts | 30 +++--
.../Internationalization_zh_HK.ts | 30 +++--
.../Internationalization_zh_TW.ts | 30 +++--
src/tools/storage/s3/imgs3settings.cpp | 96 ++--------------
src/tools/storage/s3/imgs3settings.h | 21 +---
src/tools/storage/s3/imgs3uploader.cpp | 106 ++++++++++++------
src/tools/storage/s3/imgs3uploader.h | 10 +-
26 files changed, 401 insertions(+), 492 deletions(-)
diff --git a/data/translations/Internationalization_ca.ts b/data/translations/Internationalization_ca.ts
index fa37337d..c80f74a4 100644
--- a/data/translations/Internationalization_ca.ts
+++ b/data/translations/Internationalization_ca.ts
@@ -523,7 +523,7 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3
@@ -532,69 +532,67 @@ Press Space to open the side panel.
S'està pujant la imatge
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.L'URL s'ha copiat al porta-retalls.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorError
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_cs.ts b/data/translations/Internationalization_cs.ts
index 36cd2633..8beb94f2 100644
--- a/data/translations/Internationalization_cs.ts
+++ b/data/translations/Internationalization_cs.ts
@@ -530,7 +530,7 @@ Stiskněte mezerník pro otevření postranního panelu.
ImgS3Uploader
-
+ Upload image to S3
@@ -539,69 +539,67 @@ Stiskněte mezerník pro otevření postranního panelu.
Nahrává se obrázek
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.Adresa (URL) zkopírována do schránky.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorChyba
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_de_DE.ts b/data/translations/Internationalization_de_DE.ts
index 71a8a2e2..90fa5432 100644
--- a/data/translations/Internationalization_de_DE.ts
+++ b/data/translations/Internationalization_de_DE.ts
@@ -526,7 +526,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
ImgS3Uploader
-
+ Upload image to S3
@@ -535,69 +535,67 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.
Bild hochladen
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL kopiert.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorFehler
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_es.ts b/data/translations/Internationalization_es.ts
index 906038b1..0c8707bf 100644
--- a/data/translations/Internationalization_es.ts
+++ b/data/translations/Internationalization_es.ts
@@ -526,7 +526,7 @@ Presiona Espacio para abrir el panel lateral.
ImgS3Uploader
-
+ Upload image to S3
@@ -535,69 +535,67 @@ Presiona Espacio para abrir el panel lateral.
Subiendo Imagen
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL copiada al portapapeles.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorError
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_eu.ts b/data/translations/Internationalization_eu.ts
index c914e982..3b31c526 100644
--- a/data/translations/Internationalization_eu.ts
+++ b/data/translations/Internationalization_eu.ts
@@ -530,7 +530,7 @@ Sakatu Zuriunea alboko panela irekitzeko.
ImgS3Uploader
-
+ Upload image to S3
@@ -539,69 +539,67 @@ Sakatu Zuriunea alboko panela irekitzeko.
Irudia igotzen
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.Arbelean kopiatu da URLa.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorErrorea
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_fr.ts b/data/translations/Internationalization_fr.ts
index 830234a8..1c7b28ae 100644
--- a/data/translations/Internationalization_fr.ts
+++ b/data/translations/Internationalization_fr.ts
@@ -530,7 +530,7 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
ImgS3Uploader
-
+ Upload image to S3
@@ -539,69 +539,67 @@ Appuyer sur Espace pour ouvrir le panneau latéral.
Mise en ligne de l'image
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL copiée dans le Presse-papier.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorErreur
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_it_IT.ts b/data/translations/Internationalization_it_IT.ts
index 05b667e6..aed180a0 100644
--- a/data/translations/Internationalization_it_IT.ts
+++ b/data/translations/Internationalization_it_IT.ts
@@ -507,74 +507,72 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ Error
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_ja.ts b/data/translations/Internationalization_ja.ts
index d931281b..2b00b719 100644
--- a/data/translations/Internationalization_ja.ts
+++ b/data/translations/Internationalization_ja.ts
@@ -526,7 +526,7 @@ Enter を押すと画面をキャプチャー。
ImgS3Uploader
-
+ Upload image to S3
@@ -535,69 +535,67 @@ Enter を押すと画面をキャプチャー。
画像をアップロード中
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL をクリップボードにコピーしました。
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ Errorエラー
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_ka.ts b/data/translations/Internationalization_ka.ts
index 6ecbf249..860849c1 100644
--- a/data/translations/Internationalization_ka.ts
+++ b/data/translations/Internationalization_ka.ts
@@ -522,7 +522,7 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3
@@ -531,69 +531,67 @@ Press Space to open the side panel.
სურათის ატვირთვა
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL დაკოპირდა გაცვლის ბუფერში.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ Errorშეცდომა
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_nl.ts b/data/translations/Internationalization_nl.ts
index ce7dd668..0f768148 100644
--- a/data/translations/Internationalization_nl.ts
+++ b/data/translations/Internationalization_nl.ts
@@ -526,7 +526,7 @@ Druk op spatie om het zijpaneel te openen.
ImgS3Uploader
-
+ Upload image to S3
@@ -535,69 +535,67 @@ Druk op spatie om het zijpaneel te openen.
Bezig met uploaden van afbeelding...
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorFout
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_nl_NL.ts b/data/translations/Internationalization_nl_NL.ts
index 61fb0bfd..9cd42570 100644
--- a/data/translations/Internationalization_nl_NL.ts
+++ b/data/translations/Internationalization_nl_NL.ts
@@ -530,7 +530,7 @@ Druk op de spatiebalk om het zijpaneel te openen.
ImgS3Uploader
-
+ Upload image to S3
@@ -539,69 +539,67 @@ Druk op de spatiebalk om het zijpaneel te openen.
Afbeelding uploaden
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL gekopieerd naar klembord.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorFout
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_pl.ts b/data/translations/Internationalization_pl.ts
index b472bc9b..16acdea3 100644
--- a/data/translations/Internationalization_pl.ts
+++ b/data/translations/Internationalization_pl.ts
@@ -529,7 +529,7 @@ Spacja, aby pokazać panel boczny.
ImgS3Uploader
-
+ Upload image to S3
@@ -538,69 +538,67 @@ Spacja, aby pokazać panel boczny.
Wysyłanie obrazka
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL skopiowany do schowka.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorBłąd
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_pt_BR.ts b/data/translations/Internationalization_pt_BR.ts
index ff29c0aa..cc8eadee 100644
--- a/data/translations/Internationalization_pt_BR.ts
+++ b/data/translations/Internationalization_pt_BR.ts
@@ -530,7 +530,7 @@ Pressione espaço abrir o painel lateral.
ImgS3Uploader
-
+ Upload image to S3
@@ -539,69 +539,67 @@ Pressione espaço abrir o painel lateral.
Upando Imagem
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL copiada para a área de transferência.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorErro
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_ru.ts b/data/translations/Internationalization_ru.ts
index 6743d7c2..6d5c4705 100644
--- a/data/translations/Internationalization_ru.ts
+++ b/data/translations/Internationalization_ru.ts
@@ -534,7 +534,7 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3Загрузка изображения на S3
@@ -543,69 +543,67 @@ Press Space to open the side panel.
Загрузка изображения
-
-
+ Uploading Image...Выгрузка изображения...
-
+ Delete image from S3Удалить изображение из S3
-
+ Deleting image...Удаление изображения...
-
+ URL copied to clipboard.URL скопирован в буфер обмена.
-
+ Unable to remove screenshot from the remote storage.Невозможно удалить снимок экрана из удаленного хранилища.
-
+ Network errorОшибка сети
-
+ Possibly it doesn't exist anymoreВозможно, его больше не существует
-
+ Do you want to remove screenshot from local history anyway?Вы все равно хотите удалить скриншот из локальной истории?
-
+ Remove screenshot from history?Удалить скриншот из истории?
-
-
+ Retrieving configuration file with s3 creds...Получение конфигурационного файла с параметрами доступа к s3...
-
+ S3 Creds URL is not found in your configuration fileS3 Creds URL не найден в вашем файле конфигурации
-
+ ErrorОшибка
-
+ Unable to get s3 credentials, please check your VPN connection and try againНе удалось получить конфигурацию для s3, проверьте свое VPN-соединение и повторите попытку
diff --git a/data/translations/Internationalization_sk.ts b/data/translations/Internationalization_sk.ts
index 7333366e..ba5bde02 100644
--- a/data/translations/Internationalization_sk.ts
+++ b/data/translations/Internationalization_sk.ts
@@ -530,7 +530,7 @@ Stlačte medzerník pre otvorenie postranného panelu.
ImgS3Uploader
-
+ Upload image to S3
@@ -539,69 +539,67 @@ Stlačte medzerník pre otvorenie postranného panelu.
Nahrávam obrázok
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL skopírovaná do schránky.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorChyba
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_sr_SP.ts b/data/translations/Internationalization_sr_SP.ts
index 202f3957..7ffa1ae5 100644
--- a/data/translations/Internationalization_sr_SP.ts
+++ b/data/translations/Internationalization_sr_SP.ts
@@ -526,7 +526,7 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3
@@ -535,69 +535,67 @@ Press Space to open the side panel.
Објављујем слику
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.Интернет адреса је сачувана у привременој меморији.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorГрешка
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_sv_SE.ts b/data/translations/Internationalization_sv_SE.ts
index 4c06d048..8bb08d18 100644
--- a/data/translations/Internationalization_sv_SE.ts
+++ b/data/translations/Internationalization_sv_SE.ts
@@ -526,7 +526,7 @@ Tryck Space för att öppna sidopanelen.
ImgS3Uploader
-
+ Upload image to S3
@@ -535,69 +535,67 @@ Tryck Space för att öppna sidopanelen.
Laddar upp bild
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL kopierad till klippbord.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorFel
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_tr.ts b/data/translations/Internationalization_tr.ts
index a6170d74..5895bcfd 100644
--- a/data/translations/Internationalization_tr.ts
+++ b/data/translations/Internationalization_tr.ts
@@ -526,7 +526,7 @@ Yan paneli açmak için Boşluk tuşuna basın.
ImgS3Uploader
-
+ Upload image to S3
@@ -535,69 +535,67 @@ Yan paneli açmak için Boşluk tuşuna basın.
Resim Yükleniyor
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.URL panoya kopyalandı.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ ErrorHata
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_uk.ts b/data/translations/Internationalization_uk.ts
index b23fc6a1..ed867216 100644
--- a/data/translations/Internationalization_uk.ts
+++ b/data/translations/Internationalization_uk.ts
@@ -534,7 +534,7 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3Вивантаження зображення на S3
@@ -543,69 +543,67 @@ Press Space to open the side panel.
Вивантаження зображення
-
-
+ Uploading Image...Вивантаження зображення...
-
+ Delete image from S3Видаліть зображення з S3
-
+ Deleting image...Видалення зображення...
-
+ URL copied to clipboard.URL скопійовано до буферу обміну.
-
+ Unable to remove screenshot from the remote storage.Не вдалося видалити знімок екрана з віддаленого сховища.
-
+ Network errorПомилка мережі
-
+ Possibly it doesn't exist anymoreМожливо, його вже не існує
-
+ Do you want to remove screenshot from local history anyway?Ви все одно хочете видалити знімок екрана з місцевої історії?
-
+ Remove screenshot from history?Видалити знімок екрана з історії?
-
-
+ Retrieving configuration file with s3 creds...Отримання конфігураційного файлу з параметрами доступу до s3 ...
-
+ S3 Creds URL is not found in your configuration fileS3 Creds URL не знайдено у вашому файлі конфігурації
-
+ ErrorПомилка
-
+ Unable to get s3 credentials, please check your VPN connection and try againНе вдалося отримати конфігурацію для s3, перевірити своє з'єднання VPN і повторити спробу
diff --git a/data/translations/Internationalization_zh_CN.ts b/data/translations/Internationalization_zh_CN.ts
index 8988be30..7ec424c1 100644
--- a/data/translations/Internationalization_zh_CN.ts
+++ b/data/translations/Internationalization_zh_CN.ts
@@ -531,7 +531,7 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3
@@ -540,69 +540,67 @@ Press Space to open the side panel.
正在上传
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ Error错误
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_zh_HK.ts b/data/translations/Internationalization_zh_HK.ts
index 113dfd42..e1db3e84 100644
--- a/data/translations/Internationalization_zh_HK.ts
+++ b/data/translations/Internationalization_zh_HK.ts
@@ -530,74 +530,72 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ Error錯誤
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/data/translations/Internationalization_zh_TW.ts b/data/translations/Internationalization_zh_TW.ts
index 8cead83d..67169b50 100644
--- a/data/translations/Internationalization_zh_TW.ts
+++ b/data/translations/Internationalization_zh_TW.ts
@@ -522,7 +522,7 @@ Press Space to open the side panel.
ImgS3Uploader
-
+ Upload image to S3
@@ -531,69 +531,67 @@ Press Space to open the side panel.
正在上傳
-
-
+ Uploading Image...
-
+ Delete image from S3
-
+ Deleting image...
-
+ URL copied to clipboard.連結已複製到剪貼簿
-
+ Unable to remove screenshot from the remote storage.
-
+ Network error
-
+ Possibly it doesn't exist anymore
-
+ Do you want to remove screenshot from local history anyway?
-
+ Remove screenshot from history?
-
-
+ Retrieving configuration file with s3 creds...
-
+ S3 Creds URL is not found in your configuration file
-
+ Error錯誤
-
+ Unable to get s3 credentials, please check your VPN connection and try again
diff --git a/src/tools/storage/s3/imgs3settings.cpp b/src/tools/storage/s3/imgs3settings.cpp
index dad9e750..5ce12c3c 100644
--- a/src/tools/storage/s3/imgs3settings.cpp
+++ b/src/tools/storage/s3/imgs3settings.cpp
@@ -4,22 +4,14 @@
#include
#include
#include
-#include
#include
-#include
#include
-#include
-#include
-#include
#include
#include
-#include
-ImgS3Settings::ImgS3Settings(QObject* parent)
- : QObject(parent)
+ImgS3Settings::ImgS3Settings()
{
m_proxy = nullptr;
- m_networkConfig = nullptr;
initSettings();
// get remote config url
@@ -47,38 +39,9 @@ void ImgS3Settings::initS3Creds()
m_xApiKey = configHandler.value("S3", "S3_X_API_KEY").toString();
m_url = configHandler.value("S3", "S3_URL").toString();
normalizeS3Creds();
- updateConfigFromRemote();
}
-bool ImgS3Settings::getConfigRemote(int timeout)
-{
- if (!m_url.isEmpty() && !m_credsUrl.isEmpty()) {
- updateConfigFromRemote();
- return true;
- }
- QNetworkAccessManager* networkConfig = new QNetworkAccessManager(this);
- if (proxy() != nullptr) {
- networkConfig->setProxy(*m_proxy);
- }
- QNetworkReply* reply = networkConfig->get(QNetworkRequest(m_s3ConfigUrl));
-
- QEventLoop loop;
- QTimer timer;
- timer.setSingleShot(true);
- connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
- connect(reply, SIGNAL(readyRead()), &loop, SLOT(quit()));
- timer.start(timeout * 1000); // 30 secs. timeout
- loop.exec();
- QString data = QString(reply->readAll());
- parseConfigurationData(data);
-
- delete reply;
- delete networkConfig;
-
- return !data.isEmpty();
-}
-
-void ImgS3Settings::parseConfigurationData(const QString& data)
+void ImgS3Settings::updateConfigurationData(const QString& data)
{
// read remote and save to the temporary file
QTemporaryFile file;
@@ -88,11 +51,11 @@ void ImgS3Settings::parseConfigurationData(const QString& data)
stream.flush();
// parse and get configuration data
- QSettings remoteConfig(file.fileName(), QSettings::IniFormat, this);
+ QSettings remoteConfig(file.fileName(), QSettings::IniFormat);
remoteConfig.beginGroup("S3");
- m_url = remoteConfig.value("S3_URL").toString();
- m_credsUrl = remoteConfig.value("S3_CREDS_URL").toString();
- m_xApiKey = remoteConfig.value("S3_X_API_KEY").toString();
+ QString url = remoteConfig.value("S3_URL").toString();
+ QString credsUrl = remoteConfig.value("S3_CREDS_URL").toString();
+ QString xApiKey = remoteConfig.value("S3_X_API_KEY").toString();
normalizeS3Creds();
remoteConfig.endGroup();
@@ -101,9 +64,9 @@ void ImgS3Settings::parseConfigurationData(const QString& data)
// cache configuration at the local storage
ConfigHandler configHandler;
- configHandler.setValue("S3", "S3_URL", m_url);
- configHandler.setValue("S3", "S3_CREDS_URL", m_credsUrl);
- configHandler.setValue("S3", "S3_X_API_KEY", m_xApiKey);
+ configHandler.setValue("S3", "S3_URL", url);
+ configHandler.setValue("S3", "S3_CREDS_URL", credsUrl);
+ configHandler.setValue("S3", "S3_X_API_KEY", xApiKey);
// set last update date
QString currentDateTime =
@@ -121,47 +84,6 @@ void ImgS3Settings::normalizeS3Creds()
}
}
-void ImgS3Settings::updateConfigFromRemote()
-{
- // check for outdated s3 creds
- ConfigHandler configHandler;
- QString credsUpdated =
- configHandler.value("S3", "S3_CREDS_UPDATED").toString();
- QDateTime dtCredsUpdated =
- QDateTime::currentDateTime().fromString(credsUpdated, Qt::ISODate);
- QDateTime now = QDateTime::currentDateTime();
- dtCredsUpdated = dtCredsUpdated.addDays(1);
- if (dtCredsUpdated <= now) {
- // Do update config from remote
- if (nullptr == m_networkConfig) {
- m_networkConfig = new QNetworkAccessManager(this);
- if (proxy() != nullptr) {
- m_networkConfig->setProxy(*m_proxy);
- }
- connect(m_networkConfig,
- &QNetworkAccessManager::finished,
- this,
- &ImgS3Settings::handleReplyUpdateConfigFromRemote);
- }
- m_networkConfig->get(QNetworkRequest(m_s3ConfigUrl));
- }
-}
-
-void ImgS3Settings::handleReplyUpdateConfigFromRemote(QNetworkReply* reply)
-{
- if (reply->error() == QNetworkReply::NoError) {
- QString configData = QString(reply->readAll());
- parseConfigurationData(configData);
- } else {
- QString reason =
- reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute)
- .toString();
- QString error = reply->errorString();
- qWarning() << "Update config from remote status:" << error;
- qWarning() << reason;
- }
-}
-
const QString& ImgS3Settings::storageLocked()
{
if (m_localSettings->contains("STORAGE_LOCKED")) {
diff --git a/src/tools/storage/s3/imgs3settings.h b/src/tools/storage/s3/imgs3settings.h
index ac1d0556..5971c064 100644
--- a/src/tools/storage/s3/imgs3settings.h
+++ b/src/tools/storage/s3/imgs3settings.h
@@ -2,7 +2,6 @@
#define IMG_S3_SETTINGS_H
#define S3_API_IMG_PATH "v2/image/"
-#define S3_GET_REMOTE_SETTINGS_TIMEOUT 10
#define S3_CONFIG_LOCAL "config.ini"
#define S3_CONFIG_PROXY "config_proxy.ini"
@@ -13,22 +12,12 @@
class QSettings;
class QNetworkProxy;
-class QNetworkAccessManager;
-class QNetworkRequest;
-class QNetworkReply;
-class ImgS3Settings : public QObject
+class ImgS3Settings
{
- Q_OBJECT
-
-private slots:
- void handleReplyUpdateConfigFromRemote(QNetworkReply* reply);
public:
- ImgS3Settings(QObject* parent = nullptr);
-
- bool getConfigRemote(int timeout = S3_GET_REMOTE_SETTINGS_TIMEOUT);
- void updateConfigFromRemote();
+ ImgS3Settings();
const QString& storageLocked();
@@ -39,6 +28,8 @@ public:
QNetworkProxy* proxy();
void clearProxy();
+ void updateConfigurationData(const QString& data);
+
private:
int proxyType();
const QString& proxyHost();
@@ -48,7 +39,6 @@ private:
void initSettings();
const QString& localConfigFilePath(const QString& fileName);
- void parseConfigurationData(const QString& data);
void initS3Creds();
void normalizeS3Creds();
@@ -71,9 +61,6 @@ private:
int m_proxyPort;
QString m_proxyUser;
QString m_proxyPassword;
-
- //
- QNetworkAccessManager* m_networkConfig;
};
#endif // IMG_S3_SETTINGS_H
diff --git a/src/tools/storage/s3/imgs3uploader.cpp b/src/tools/storage/s3/imgs3uploader.cpp
index 5795f3b8..d5f3de8a 100644
--- a/src/tools/storage/s3/imgs3uploader.cpp
+++ b/src/tools/storage/s3/imgs3uploader.cpp
@@ -1,5 +1,4 @@
-// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
-// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
+// Copyright(c) 2017-2019 Namecheap inc.
//
// This file is part of Flameshot.
//
@@ -59,6 +58,10 @@ ImgS3Uploader::ImgS3Uploader(QWidget* parent)
ImgS3Uploader::~ImgS3Uploader()
{
clearProxy();
+ cleanNetworkAccessManagers();
+ if (nullptr != m_networkAMConfig) {
+ delete m_networkAMConfig;
+ }
}
void ImgS3Uploader::init(const QString& title, const QString& label)
@@ -67,6 +70,7 @@ void ImgS3Uploader::init(const QString& title, const QString& label)
m_networkAMUpload = nullptr;
m_networkAMGetCreds = nullptr;
m_networkAMRemove = nullptr;
+ m_networkAMConfig = nullptr;
resultStatus = false;
setWindowTitle(title);
@@ -161,17 +165,7 @@ void ImgS3Uploader::handleReplyGetCreds(QNetworkReply* reply)
} else {
if (m_s3Settings.credsUrl().length() == 0) {
setInfoLabelText(
- tr("Retrieving configuration file with s3 creds..."));
- if (!m_s3Settings.getConfigRemote()) {
- retry();
- }
- hide();
-
- if (!m_s3Settings.credsUrl().isEmpty()) {
- setInfoLabelText(tr("Uploading Image..."));
- upload();
- return;
- }
+ tr("S3 Creds URL is not found in your configuration file"));
} else {
setInfoLabelText(reply->errorString());
}
@@ -180,25 +174,6 @@ void ImgS3Uploader::handleReplyGetCreds(QNetworkReply* reply)
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
-void ImgS3Uploader::retry()
-{
- setInfoLabelText(
- tr("S3 Creds URL is not found in your configuration file"));
- if (QMessageBox::Retry ==
- QMessageBox::question(nullptr,
- tr("Error"),
- tr("Unable to get s3 credentials, please check "
- "your VPN connection and try again"),
- QMessageBox::Retry | QMessageBox::Cancel)) {
- setInfoLabelText(tr("Retrieving configuration file with s3 creds..."));
- if (!m_s3Settings.getConfigRemote()) {
- retry();
- }
- } else {
- hide();
- }
-}
-
void ImgS3Uploader::uploadToS3(QJsonDocument& response)
{
// set parameters from "fields"
@@ -281,11 +256,25 @@ void ImgS3Uploader::upload()
{
m_deleteToken.clear();
m_storageImageName.clear();
- show();
// read network settings on each call to simplify configuration management
// without restarting init creds and upload network access managers
clearProxy();
+
+ // check for outdated s3 creds
+ ConfigHandler configHandler;
+ QString credsUpdated =
+ configHandler.value("S3", "S3_CREDS_UPDATED").toString();
+ QDateTime dtCredsUpdated =
+ QDateTime::currentDateTime().fromString(credsUpdated, Qt::ISODate);
+ QDateTime now = QDateTime::currentDateTime();
+ dtCredsUpdated = dtCredsUpdated.addDays(1);
+ if (m_s3Settings.credsUrl().isEmpty() || dtCredsUpdated <= now) {
+ getConfigRemote();
+ return;
+ }
+
+ // clean old network connections and start uploading
cleanNetworkAccessManagers();
m_networkAMGetCreds = new QNetworkAccessManager(this);
@@ -345,4 +334,53 @@ void ImgS3Uploader::cleanNetworkAccessManagers()
delete m_networkAMRemove;
m_networkAMRemove = nullptr;
}
-}
\ No newline at end of file
+ if (nullptr != m_multiPart) {
+ delete m_multiPart;
+ m_multiPart = nullptr;
+ }
+}
+
+void ImgS3Uploader::getConfigRemote()
+{
+ if (nullptr == m_networkAMConfig) {
+ m_networkAMConfig = new QNetworkAccessManager(this);
+ connect(m_networkAMConfig,
+ &QNetworkAccessManager::finished,
+ this,
+ &ImgS3Uploader::handleReplyGetConfig);
+ if (proxy() != nullptr) {
+ m_networkAMConfig->setProxy(*proxy());
+ }
+ }
+ QNetworkRequest requestConfig(QUrl(S3_REMOTE_CONFIG_URL));
+ m_networkAMConfig->get(requestConfig);
+}
+
+void ImgS3Uploader::handleReplyGetConfig(QNetworkReply* reply)
+{
+ if (reply->error() == QNetworkReply::NoError) {
+ bool doUpload = m_s3Settings.credsUrl().isEmpty();
+ QString data = QString(reply->readAll());
+ m_s3Settings.updateConfigurationData(data);
+ if (doUpload) {
+ upload();
+ } else {
+ hide();
+ }
+ } else {
+ QString message = reply->errorString() + "\n\n" +
+ tr("Unable to get s3 credentials, please check "
+ "your VPN connection and try again");
+ if (QMessageBox::Retry ==
+ QMessageBox::question(nullptr,
+ tr("Error"),
+ message,
+ QMessageBox::Retry | QMessageBox::Cancel)) {
+ setInfoLabelText(
+ tr("Retrieving configuration file with s3 creds..."));
+ getConfigRemote();
+ return;
+ }
+ hide();
+ }
+}
diff --git a/src/tools/storage/s3/imgs3uploader.h b/src/tools/storage/s3/imgs3uploader.h
index 60581ce0..9757d342 100644
--- a/src/tools/storage/s3/imgs3uploader.h
+++ b/src/tools/storage/s3/imgs3uploader.h
@@ -1,4 +1,4 @@
-// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
+// Copyright(c) 2017-2019 Namecheap inc.
//
// This file is part of Flameshot.
//
@@ -22,6 +22,10 @@
#include
#include
+#define S3_REMOTE_CONFIG_URL \
+ "https://git.namecheap.net/projects/RND/repos/flameshot_config/raw/" \
+ "config.ini"
+
class QNetworkReply;
class QNetworkProxy;
class QNetworkAccessManager;
@@ -48,12 +52,13 @@ private slots:
void handleReplyPostUpload(QNetworkReply* reply);
void handleReplyGetCreds(QNetworkReply* reply);
void handleReplyDeleteResource(QNetworkReply* reply);
+ void handleReplyGetConfig(QNetworkReply* reply);
private:
void init(const QString& title, const QString& label);
void uploadToS3(QJsonDocument& response);
void removeImagePreview();
- void retry();
+ void getConfigRemote();
void clearProxy();
QNetworkProxy* proxy();
@@ -67,4 +72,5 @@ private:
QNetworkAccessManager* m_networkAMGetCreds;
QNetworkAccessManager* m_networkAMRemove;
QHttpMultiPart* m_multiPart;
+ QNetworkAccessManager* m_networkAMConfig;
};
From a11a9affa946f2f286bf15e1ffbea9074a48854c Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Wed, 18 Nov 2020 22:15:36 +0200
Subject: [PATCH 12/54] Release 0.8.5.4
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0e603f5a..fd4b1445 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.13)
# This can be read from ${PROJECT_NAME} after project() is called
project(
flameshot
- VERSION 0.8.5.3
+ VERSION 0.8.5.4
LANGUAGES CXX)
set(PROJECT_NAME_CAPITALIZED "Flameshot")
From 293525f5b6a2edfed848d5741e12225b9f427e69 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Fri, 20 Nov 2020 07:35:28 -0800
Subject: [PATCH 13/54] Fix - MacOS capture area, full screen mode, system tray
area, etc
---
.gitignore | 3 +++
src/core/controller.cpp | 8 +++++++-
src/utils/screengrabber.cpp | 16 ++++++++++++++--
src/widgets/capture/capturewidget.cpp | 19 +++++++++++++++----
4 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/.gitignore b/.gitignore
index fb71df32..92414fa7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -63,4 +63,7 @@ data/flatpak/.flatpak-builder
.idea/
.run
+# MacOS
+.DS_Store
+
# End of https://www.gitignore.io/api/snapcraft
diff --git a/src/core/controller.cpp b/src/core/controller.cpp
index 93fb4865..69973cd0 100644
--- a/src/core/controller.cpp
+++ b/src/core/controller.cpp
@@ -150,9 +150,12 @@ void Controller::startVisualCapture(const uint id,
#ifdef Q_OS_WIN
m_captureWindow->show();
+#elif (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
+ defined(Q_OS_MACX))
+ m_captureWindow->show();
+ m_captureWindow->activateWindow();
#else
m_captureWindow->showFullScreen();
- // m_captureWindow->show(); // Debug
#endif
} else {
emit captureFailed(id);
@@ -250,12 +253,15 @@ void Controller::enableTrayIcon()
QIcon::fromTheme("flameshot-tray", QIcon(":img/app/flameshot.png"));
m_trayIcon->setIcon(trayicon);
+#if not(defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(Q_OS_MAC64) || \
+ defined(Q_OS_MACOS) || defined(Q_OS_MACX))
auto trayIconActivated = [this](QSystemTrayIcon::ActivationReason r) {
if (r == QSystemTrayIcon::Trigger) {
startVisualCapture();
}
};
connect(m_trayIcon, &QSystemTrayIcon::activated, this, trayIconActivated);
+#endif
#ifdef Q_OS_WIN
// Ensure proper removal of tray icon when program quits on Windows.
diff --git a/src/utils/screengrabber.cpp b/src/utils/screengrabber.cpp
index 03c76657..4e970ba9 100644
--- a/src/utils/screengrabber.cpp
+++ b/src/utils/screengrabber.cpp
@@ -37,7 +37,18 @@ ScreenGrabber::ScreenGrabber(QObject* parent)
QPixmap ScreenGrabber::grabEntireDesktop(bool& ok)
{
ok = true;
-#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
+#if (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
+ defined(Q_OS_MACX))
+ QScreen* currentScreen = QGuiApplication::screenAt(QCursor::pos());
+ QPixmap screenPixmap(
+ currentScreen->grabWindow(QApplication::desktop()->winId(),
+ currentScreen->geometry().x(),
+ currentScreen->geometry().y(),
+ currentScreen->geometry().width(),
+ currentScreen->geometry().height()));
+ screenPixmap.setDevicePixelRatio(currentScreen->devicePixelRatio());
+ return screenPixmap;
+#elif defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
if (m_info.waylandDectected()) {
QPixmap res;
// handle screenshot based on DE
@@ -87,7 +98,7 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool& ok)
return res;
}
#endif
-
+#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) || defined(Q_OS_WIN)
QRect geometry;
for (QScreen* const screen : QGuiApplication::screens()) {
QRect scrRect = screen->geometry();
@@ -106,6 +117,7 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool& ok)
QScreen* screen = QApplication::screens()[screenNumber];
p.setDevicePixelRatio(screen->devicePixelRatio());
return p;
+#endif
}
QPixmap ScreenGrabber::grabScreen(int screenNumber, bool& ok)
diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp
index 23713c0d..c4b364ca 100644
--- a/src/widgets/capture/capturewidget.cpp
+++ b/src/widgets/capture/capturewidget.cpp
@@ -85,7 +85,8 @@ CaptureWidget::CaptureWidget(const uint id,
initContext(savePath, fullScreen);
initShortcuts();
m_context.circleCount = 1;
-#ifdef Q_OS_WIN
+#if (defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(Q_OS_MAC64) || \
+ defined(Q_OS_MACOS) || defined(Q_OS_MACX))
// Top left of the whole set of screens
QPoint topLeft(0, 0);
#endif
@@ -99,7 +100,7 @@ CaptureWidget::CaptureWidget(const uint id,
}
m_context.origScreenshot = m_context.screenshot;
-#ifdef Q_OS_WIN
+#if defined(Q_OS_WIN)
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint |
Qt::Popup);
@@ -111,11 +112,21 @@ CaptureWidget::CaptureWidget(const uint id,
}
}
move(topLeft);
+ resize(pixmap().size());
+#elif (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
+ defined(Q_OS_MACX))
+ setWindowFlags(Qt::WindowStaysOnTopHint | Qt::BypassWindowManagerHint |
+ Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint |
+ Qt::ToolTip | Qt::Popup);
+
+ QScreen* currentScreen = QGuiApplication::screenAt(QCursor::pos());
+ move(currentScreen->geometry().x(), currentScreen->geometry().y());
+ resize(currentScreen->size());
#else
setWindowFlags(Qt::BypassWindowManagerHint | Qt::WindowStaysOnTopHint |
Qt::FramelessWindowHint | Qt::Tool);
-#endif
resize(pixmap().size());
+#endif
}
// Create buttons
m_buttonHandler = new ButtonHandler(this);
@@ -126,7 +137,7 @@ CaptureWidget::CaptureWidget(const uint id,
QRect r = screen->geometry();
r.moveTo(r.x() / screen->devicePixelRatio(),
r.y() / screen->devicePixelRatio());
-#ifdef Q_OS_WIN
+#if defined(Q_OS_WIN)
r.moveTo(r.topLeft() - topLeft);
#endif
areas.append(r);
From 4c49461a7abc443b882dd55aaaf2a6d068a5063a Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Tue, 24 Nov 2020 08:53:15 -0800
Subject: [PATCH 14/54] Fix - MacOS Tool Setting on non-primary screen
---
src/widgets/panel/utilitypanel.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/widgets/panel/utilitypanel.cpp b/src/widgets/panel/utilitypanel.cpp
index 28f5b80d..ac392d4c 100644
--- a/src/widgets/panel/utilitypanel.cpp
+++ b/src/widgets/panel/utilitypanel.cpp
@@ -42,6 +42,11 @@ UtilityPanel::UtilityPanel(QWidget* parent)
&QPropertyAnimation::finished,
m_internalPanel,
&QWidget::hide);
+
+#if (defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(Q_OS_MAC64) || \
+ defined(Q_OS_MACOS) || defined(Q_OS_MACX))
+ move(0, 0);
+#endif
}
QWidget* UtilityPanel::toolWidget() const
@@ -81,6 +86,10 @@ void UtilityPanel::show()
m_showAnimation->setEndValue(QRect(0, 0, width(), height()));
m_internalPanel->show();
m_showAnimation->start();
+#if (defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(Q_OS_MAC64) || \
+ defined(Q_OS_MACOS) || defined(Q_OS_MACX))
+ move(0, 0);
+#endif
QWidget::show();
}
From 69e698bdb1d9d7bb7c58ce2cb9aaf4e1e9e65b30 Mon Sep 17 00:00:00 2001
From: Yuriy Puchkov
Date: Tue, 24 Nov 2020 10:08:12 -0800
Subject: [PATCH 15/54] Fix - MacOS - activate new widgets, swith to fullscreen
mode+hotkeys
---
src/core/controller.cpp | 16 +++++++++++++++-
src/widgets/capture/capturewidget.cpp | 11 +++++++----
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/src/core/controller.cpp b/src/core/controller.cpp
index 69973cd0..c795bf5f 100644
--- a/src/core/controller.cpp
+++ b/src/core/controller.cpp
@@ -152,7 +152,9 @@ void Controller::startVisualCapture(const uint id,
m_captureWindow->show();
#elif (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
defined(Q_OS_MACX))
- m_captureWindow->show();
+ // In "Emulate fullscreen mode"
+ // m_captureWindow->show();
+ m_captureWindow->showFullScreen();
m_captureWindow->activateWindow();
#else
m_captureWindow->showFullScreen();
@@ -185,6 +187,10 @@ void Controller::openConfigWindow()
if (!m_configWindow) {
m_configWindow = new ConfigWindow();
m_configWindow->show();
+#if (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
+ defined(Q_OS_MACX))
+ m_configWindow->activateWindow();
+#endif
}
}
@@ -202,6 +208,10 @@ void Controller::openLauncherWindow()
m_launcherWindow = new CaptureLauncher();
}
m_launcherWindow->show();
+#if (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
+ defined(Q_OS_MACX))
+ m_launcherWindow->activateWindow();
+#endif
}
void Controller::enableTrayIcon()
@@ -324,6 +334,10 @@ void Controller::showRecentScreenshots()
}
m_history->loadHistory();
m_history->show();
+#if (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
+ defined(Q_OS_MACX))
+ m_history->activateWindow();
+#endif
}
void Controller::startFullscreenCapture(const uint id)
diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp
index c4b364ca..17f403a2 100644
--- a/src/widgets/capture/capturewidget.cpp
+++ b/src/widgets/capture/capturewidget.cpp
@@ -115,10 +115,13 @@ CaptureWidget::CaptureWidget(const uint id,
resize(pixmap().size());
#elif (defined(Q_OS_MAC) || defined(Q_OS_MAC64) || defined(Q_OS_MACOS) || \
defined(Q_OS_MACX))
- setWindowFlags(Qt::WindowStaysOnTopHint | Qt::BypassWindowManagerHint |
- Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint |
- Qt::ToolTip | Qt::Popup);
-
+ // Emulate fullscreen mode
+ // setWindowFlags(Qt::WindowStaysOnTopHint |
+ // Qt::BypassWindowManagerHint |
+ // Qt::FramelessWindowHint |
+ // Qt::NoDropShadowWindowHint | Qt::ToolTip |
+ // Qt::Popup
+ // );
QScreen* currentScreen = QGuiApplication::screenAt(QCursor::pos());
move(currentScreen->geometry().x(), currentScreen->geometry().y());
resize(currentScreen->size());
From bad270cce46f14a2bd122f582f24b35bad549146 Mon Sep 17 00:00:00 2001
From: Yurii Puchkov
Date: Thu, 19 Nov 2020 12:50:02 +0200
Subject: [PATCH 16/54] MacOS dmg package build (cmake only, no CI yet)
---
.github/workflows/MacOS-pack.yml | 61 ++++++++++++++++
CMakeLists.txt | 8 +++
cmake/modules/MacOSXBundleInfo.plist.in | 40 +++++++++++
data/img/app/org.flameshot.Flameshot-1024.png | Bin 0 -> 49759 bytes
src/CMakeLists.txt | 65 ++++++++++++++++--
5 files changed, 169 insertions(+), 5 deletions(-)
create mode 100644 .github/workflows/MacOS-pack.yml
create mode 100644 cmake/modules/MacOSXBundleInfo.plist.in
create mode 100644 data/img/app/org.flameshot.Flameshot-1024.png
diff --git a/.github/workflows/MacOS-pack.yml b/.github/workflows/MacOS-pack.yml
new file mode 100644
index 00000000..7bda0e6b
--- /dev/null
+++ b/.github/workflows/MacOS-pack.yml
@@ -0,0 +1,61 @@
+name: Packaging(MacOS)
+
+on:
+ push:
+ branches:
+ - master
+ - feature/RND-680-macos-.dmg-package-build
+ paths-ignore:
+ - 'README.md'
+ - 'LICENSE'
+
+ pull_request:
+ paths-ignore:
+ - 'README.md'
+ - 'LICENSE'
+
+env:
+ PRODUCT: flameshot
+
+jobs:
+ catalina:
+ name: macOS Catalina 10.15
+ runs-on: macos-10.15
+
+ steps:
+ - name: Checkout Source code
+ uses: actions/checkout@v1
+
+ - name: Install Qt
+ run: brew install qt cmake
+
+ - name: Configure
+ run: |
+ mkdir build
+ cd build
+ rm -rf ./src/flameshot.dmg ./src/flameshot.app/
+ cmake .. -DQt5_DIR=$(brew --prefix qt5)/lib/cmake/Qt5
+
+ - name: Compile
+ run: |
+ cd build
+ make
+
+ - name: Build dmg image
+ run: |
+ cd build
+ /usr/local/opt/qt5/bin/macdeployqt src/flameshot.app -dmg
+
+ - name: Upload dmg image
+ shell: bash
+ run: |
+ python3 -m pip install -U -q requests
+ echo "================MacOS dmg image download link================"
+ echo $(python3 $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/src/flameshot.dmg)
+ echo "=====no operation for you can see link in the log console====="
+
+ - name: Artifact Upload
+ uses: actions/upload-artifact@v2
+ with:
+ name: MacOS-artifact
+ path: ${{ github.workspace }}/build/src/flameshot.dmg
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd4b1445..3f2274c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.13)
# cmake_policy(SET CMP0076 OLD)
# This can be read from ${PROJECT_NAME} after project() is called
+if(APPLE)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
+endif()
+
project(
flameshot
VERSION 0.8.5.4
@@ -18,6 +22,10 @@ if(WIN32)
add_definitions(-DFLAMESHOT_VERSION_BUGFIX=${CMAKE_PROJECT_VERSION_PATCH})
add_definitions(-DFLAMESHOT_VERSION_BUILD=1)
add_definitions(-DFLAMESHOT_VERSION_STRING="${PROJECT_VERSION}")
+elseif(APPLE)
+ set(Qt5_DIR "$(brew --prefix qt5)/lib/cmake/Qt5/" CACHE PATH "directory where Qt5Config.cmake exists.")
+ set(CMAKE_MACOSX_BUNDLE ON)
+ set(CMAKE_MACOSX_RPATH ON)
endif()
set(RUN_IN_PLACE ${DEFAULT_RUN_IN_PLACE} CACHE BOOL
"Run directly in source directory structure")
diff --git a/cmake/modules/MacOSXBundleInfo.plist.in b/cmake/modules/MacOSXBundleInfo.plist.in
new file mode 100644
index 00000000..bf1e2f76
--- /dev/null
+++ b/cmake/modules/MacOSXBundleInfo.plist.in
@@ -0,0 +1,40 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ flameshot
+ CFBundleGetInfoString
+
+ CFBundleIconFile
+ flameshot
+ CFBundleIdentifier
+ https://flameshot.org/
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleLongVersionString
+
+ CFBundleName
+
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 0.8.5
+ CSResourcesFileMapped
+
+ NSHumanReadableCopyright
+
+ LSMinimumSystemVersion
+ 10.15
+ NSPrincipalClass
+ NSApplication
+ NSHighResolutionCapable
+ True
+
+
diff --git a/data/img/app/org.flameshot.Flameshot-1024.png b/data/img/app/org.flameshot.Flameshot-1024.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6f5d3c7b91b2184c25a3c3d7a8effd25086b724
GIT binary patch
literal 49759
zcmXt91yq#F+kcmC0Rbt=1tkyIkQnZTKCCG7)c-qB1fnyAt4A4{4X9vL;(H@yv`Q_L9j3f
zMMWKiq9U8CyNj)ZqYVVzjP;L|Qf-xEZg0$eRq`t2y3%zay&I$rI`=;-Q1OO7{Gd-5
zr*1KT=0do+(U_7_$k2VFxZPJHSw-@47PqbIC*r5F+L;B?o@$}lO}3$SYhhDLE}t&R
zwjvrQ#hGEpUP&X@;CqFk=OgGkeQSA7&tMw-`>aI6=G?-%S(2T1=BbD0CxQD=f4`XTcB5OLB>#3#R%~SdRl=z6j#v3Kd)&iS
zq!G+W(e&Lg^bg*ZTYV2d^sF5&3Xq}q6Kslyn3ZT=8@f{*T6pL_%obvR26iEMtbSh!!eIYo)#t^5
ze<5~NHTD1|{Eht&rf@UW3;ZLYCqh%1aFLXWScqwiyu1K{*dT-7|Q!SqIBAcQ2*OjdG-xEdNP^Rd}&I7
z&Y+=bHkX82lZwD*)%j)HEZ(qPR6_6o4I44pD;?U%XR$g=kt0-$!6aEc3N}F}zo-15
z6tTUh>%rZ>{XbtdDofrn!*4STWN%6NvU+L=GlQAG3VkbQdX4xgt|Oj#4|Q$Owct0D
zzZ9O^yj(2gAJb3p{QR)>kG=!NA9os6RJ=tq5gf6W>TN13($!8C+!pCfPfNtfL3TwD
zj&kzx7Mh_E*X*`9wlGWXs90V?S?UMrQyD1F7s@@>52b~@S3HoI9g{OPN6c53IhfDc
z$HBXBFNu
zWnE|ZzRTe!9A>oM`4O#xvWBrCcuky4rMOX}w_3==G>=~3Rvfy-sSOBIZNBun2HzwN
zJza7Cdmc>r=6|b4x-Oh4pObze6dbhHYd65J5>T(=YciwUOi?)4>J@px^ybn)dNj*r
zo)6z|)^j{6fy#o?gC*l)rw18lr#1QTj}%`nZuKu!MZ8hIyoybyR|SMQ&88
z$-K!mF7~8X9dID_+qEXhc+*u=PcK5&v?1vqfNO
zLKwCgz5R5y_~9DHi!S0B{p(9MhJO%adcTPlP4JPP;x0%Yu!aV0{SyZ4puJ!|WG9%0c_iRx*
z1>*q!PrsH9Li(a#W`4w-zbIWT^+OG3ZbobmL9&jIzhg3*8PZia5Ofdzd}nJUzLspmN&XR~%@lPBtdj?P>UJtM?}$P}g3p6VbYn%DN}Hx)
zy+}h-`xlO62^B=>E>Z3jhHw2uGSY+1&HCk02GN41GBVirc1u6oM(RMF*LJx&$X|{VAan{LfSd(2xnm?+Ir_Ia(gQg{dt6Zl3?zXDe||kDD0Bym$B?|
ze(_#VsP1IF1?ptv1gcb;KNP17NXhli{*U7&{S;4*@6ltax5ut&Ln=wH;7h~ZM3r)N
zYtku!R75{jFY)7^`)0k}X4S`nEsa9s4i$otQk$Sf)R=lkGSiAxnBwxVfY{}3J<)xj
zq17h&hUaR?=1#ybU2&mhtLTbr_e0K0)Qms5W&M1@(>zd`f&MWEN^ijYm1|rc(WUnG
zJHMNXOCnx)gkHfP?NWjl+`LC0^%{4scID@p_QIvqIAR;~n7ccjsz*ewH)BL-5xm4^
zQ~}hHGbsv34}^QCR5-BlxqHA*D7z+#HOSRAD2kf{!L_j}cN73OpDTp0P}3vexKoaj
zxG8`4UQ2DTnrDNalHTv@B1&<24t&rwxiI$tEq9l6bW913
zFqz9B!WiE_|7PcA6yc_d#TAa{o!2VdssYYKzPtU$q${E)5Oc
z;-32(+pO0ht#r}HUvL<
zJ;*#@!;BS&C+{le6O*o9I*A`+k~Iek4cqpD-!9_zJ9SJkq`y37?fz$LZpaRom0(R%
z38e=a;LcFM1w1k@H8y;I&sg$v>QR)OG;Y2a74ZGF=r4B_*6~GVTrLlA;44RsNwrKu
z5vLEi5WLiPTCU)JSdxB=dGnu`x9XpAgo_E?$7`7+^3VYE+gwTmuSYp~I5cokevHDZ
z0&dAp%4aCFs1&(^BaCH10Yu=z=AxNlWx>Yh-5qKb4DEY{)uy8H}c7aR(6bLG`YYI0v(5yPc#@S0jxmMi+^y=S>vJ!1$
zg6;ry@ml@ha0^xr!YZ4KtGD+Xz2^wDmR%6k41Pc6~VDR&VV3f7CyE5*v;@i#s6_
zyhiWDfr2~z+*Lh$_1{)yF3sGAl%pNFBYwe2VC=Q8D;#qul3#&)%v#1zFSSIw)`m&w
zJ#Qe27NSC+d^V0%>&io(VUm}J$uBL54AwXsih5$p!W8+ri3XsdVCGD?<-6{j6gIV8
za*vxE#zm-jq!yH}p@>4Kd9zVp%y=_bico&MRCN6Bs6e)Is5Uhmj_}@#P(3?4t~)fy
z#^RMHZ~3cd3Er4@Q*bUjVlb#a3iFIDE%0^+rdtFXS=S6d^QSX(^^v;9JE)@cC^=lM
z*iMhD)3$>yDG%RBEVVbfkzhg8_6|l1)P`*CQmNu5Udd43E4$==(7;$OH#fw~fXx&V
zNr{9b@LinX<_|UPr9kb`&c3>jQej&i;kbhyojc;6q$lctjpPC{5AsPu&uiy!3Ej@d
z{gb>8Hzqe}apC8wd=UKHgh`zuGE_a-7;udIS<45@yqCBv6|I1cwb1fcuL*e6YYt`?
zMie|D&4hhtb?@$`Om++ad_sXH(-~JIJyG5QK_K{A+NXL{@?`#6f3A0!n<|I_-AdTF
z*AvGcfKP7=ESc~oq3K#))9+M=O)(1KR7m2doMm>QB{1In?`-Y*Lmmpbw
zT+Ec7ReP(cOXiRZK~0Ivzkxn2yXHRM7_A79thY#4`o*0qM3%sh*j@x!`k&-e&YeL?
z#)p0LUnmx^{Ly|88^7|Z?ME;JkPJ25(n=}wjHLrJdP!e-o}>7BCfwUC=n!kiaYicV
zf}pa#565mpmwWRKZyh$$=L-YM!|LmtZVh?(SdmC{_>${`U4Zi_qTu^+5gcjWGQEu=
zBtV)$s5Y7@MQmXIyWAOGj39Pn|Kre4e5;bD*xKe&BLs4!8y$r6zk{i;EV=)cAX@2L
zs@ehx^->=!J$5_8{84;CiU4@TkW#Pe->|W4$PxcW)q2
zB-&)#8~fX1BE3&9wK+^G5V(f9ZkYm5iN-nfVoMWCTnKzbgY|Y6HIHXjq9Yaug8?Xb
zL1$eZqve8xgH}M-U96p4K8E#tfYISx#d1trkcXQlk+{rC9|oLZ_1VKNG7>@A76%z|
zE(9`4Lu|aZ;O-u_ViLh_ZIXV^{GN>;uRR$UfcH+n%F*bt$c!cSP`!$WRkp5KyX#E|
ztfJKX*4&cXPONPU7IUhF^cDRj
zsr#F+Ux1U3qhJl`maSvh42eYs8a3Q9e-9_>Q_u#M>x61ToG9I8_sPs?1%NCym6QqI
zLgRxmxg%;F8vt7bWM7l_pT2>!7{izebL
z3}Nw78G-yus_<|+p*+Hxt!KLe0Gqi78ZlLQ2|alnKdil}3%S#bEpi?Jm?7nTk9PwMVcA%e6&SvkKbi%$w8GjF{c>+tCGZ+S%eC!)j0hCE
z;Z^MRH;Q=)hZJ$f2%vP@P`cvuc(&@BEfbfUEzWsbqE?2^A|I&wFXY7|GjCu30#Prd
zjuYXC?x-o;$q|*)(`bb?CPPTIez;wee89~ibO^hb=a9p%5m)AYuJ;=UEK}wHokjdn
z-7_fNRA6g9DIf!k0)^vb1x}FY;8tU!^
z^V{0rH__rN`VhKuK<$(#wkN`Gd2A#@
z=^crgab+!MJG?cuV+4>H=DcNHLHvbgbW8+}K)vdoA};O7{6YMVG3?*N3>>z4EvDpb
zoU@-@08hvVtVTIGx@nunHfPk+#fBgZRr*>s-4zNCVn
z0xuxkT>W^OPb#rvamkr#d8yZm-25_V8h}DU)wW7>KV5szOyvV|fjfv-!l|4UH)`fC
z7NtmmXkypPQT<)vayGH!G@(bLFhL;ay>d0k$p_VYXB7Waio2|lB@Hg8;cLruH^*OnAw4nz>30C0%FnDTX+C588-C7
zm%3u`=6;C@bueJhtkbv<&WsFQ4`RgX2$_+?!SBrFk&D$(cdRPeEq=uPqZBJcpaR^R
z#HK$LP6Jgwo)#9^-!;;w8MH1ejG7@2J;Vk`6v_R%CxV}3+zISFFQsYFzF2>nb+6?E
z7VT)9f3L|MrMY{%1TK#?uSr^0xv_e|{^ir9_Jhv9kxoCuHa%FTK8w8TiN-slPqM^D
zFJ7E?gkHZ*Q&>evXgS1@y7Et~RyT>OS}#R?)wxL2nA|Z~AFTkCf2Dk&ArO8_YMFFN
zwUZ1HQ~wPVOH5d*;s8vXxH}zk*_R(xM+jSP0W(_BfS@WSdo0V)vM&e9AmEydg`9VW
zR89-9>RbI5hk2)X#G>=)k{7Bj)iW(pb(zauL3HnX!nU7vWP?p=Iz*xPPUV%1VFV8c
zi9~cb?hJoveF<4$VGmEJs=qRS^ypM@FR#+WSA>E*)Dn-8h(V~UBXTBuR^kCx$~>OY
z5hnWQPf~DedVnmv-k@dX>4ffMLlNj^o-xg$MS7XuC>$?J{O&$oY-Aiy$Htk0=<6o9
z;^^wZPZm5Sz#r>C0cOiNNyPjZ%dfjoyEgA!5|~@LFm@9fLN^5lCrxXq0%jL2z}Inj
z%ZKaR3nIxrLpm~5IC2s%E=$`QhPzEzJ)p&DV2x@z{zs;7&7By#xxn^3kTSbbC)FSn
zASLoYdHz)^6qd&koOOJ=Q@0;PX6$m_^Agb(JIQf9pJ8hV^bvPlf3+@5XAW~v=
zt?+SsxdlTgx?xmQ{`Y54h$dk{ioYS`Y_HbzE;t>yl%BJs*sm|G&
zH7u)TM9o%*FkP1LIlw9WV{-J
zlD_t)hqD*R{w<{n_%ni~^wJIJCnvv#VRQ)aZDR&G`sF}JqLk!H$UrZXSB0#VZn_~@
zu5ful3o(Uuh8=*Qh^+q64u{_C|6mYb+alm7XzY3Gd3IAX7aMxBU|)kYG+*tD