Merge pull request #42 from namecheap/feature/RND-543-screenshot-code-refactoring-for-s3-and-imgur-storages

Feature/rnd 543 screenshot code refactoring for s3 and imgur storages
This commit is contained in:
Yurii Puchkov
2020-09-22 07:12:35 -07:00
committed by GitHub
49 changed files with 4617 additions and 3182 deletions

6
.clang-format Normal file
View File

@@ -0,0 +1,6 @@
Language: Cpp
BasedOnStyle: Mozilla
IndentWidth: 4
AccessModifierOffset: -4
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None

View File

@@ -87,7 +87,7 @@ SOURCES += src/main.cpp \
src/config/filepathconfiguration.cpp \
src/config/setshortcutwidget.cpp \
src/config/shortcutswidget.cpp \
src/tools/imgs3/imgs3settings.cpp \
src/tools/storage/storagemanager.cpp \
src/utils/configshortcuts.cpp \
src/widgets/historywidget.cpp \
src/utils/configenterprise.cpp \
@@ -112,8 +112,6 @@ SOURCES += src/main.cpp \
src/tools/circle/circletool.cpp \
src/tools/copy/copytool.cpp \
src/tools/exit/exittool.cpp \
src/tools/imgur/imguruploadertool.cpp \
src/tools/imgs3/imgs3uploadertool.cpp \
src/tools/line/linetool.cpp \
src/tools/marker/markertool.cpp \
src/tools/move/movetool.cpp \
@@ -130,8 +128,12 @@ SOURCES += src/main.cpp \
src/cli/commandoption.cpp \
src/cli/commandargument.cpp \
src/utils/screenshotsaver.cpp \
src/tools/imgur/imguruploader.cpp \
src/tools/imgs3/imgs3uploader.cpp \
src/tools/storage/imguploader.cpp \
src/tools/storage/imgur/imguruploadertool.cpp \
src/tools/storage/imgur/imguruploader.cpp \
src/tools/storage/s3/imgs3uploadertool.cpp \
src/tools/storage/s3/imgs3uploader.cpp \
src/tools/storage/s3/imgs3settings.cpp \
src/widgets/loadspinner.cpp \
src/widgets/imagelabel.cpp \
src/widgets/notificationwidget.cpp \
@@ -170,7 +172,8 @@ HEADERS += src/widgets/capture/buttonhandler.h \
src/config/filepathconfiguration.h \
src/config/setshortcutwidget.h \
src/config/shortcutswidget.h \
src/tools/imgs3/imgs3settings.h \
src/tools/storage/imgstorages.h \
src/tools/storage/storagemanager.h \
src/utils/configshortcuts.h \
src/widgets/historywidget.h \
src/utils/configenterprise.h \
@@ -196,8 +199,6 @@ HEADERS += src/widgets/capture/buttonhandler.h \
src/tools/circle/circletool.h \
src/tools/copy/copytool.h \
src/tools/exit/exittool.h \
src/tools/imgur/imguruploadertool.h \
src/tools/imgs3/imgs3uploadertool.h \
src/tools/line/linetool.h \
src/tools/marker/markertool.h \
src/tools/move/movetool.h \
@@ -213,8 +214,12 @@ HEADERS += src/widgets/capture/buttonhandler.h \
src/cli/commandoption.h \
src/cli/commandargument.h \
src/utils/screenshotsaver.h \
src/tools/imgur/imguruploader.h \
src/tools/imgs3/imgs3uploader.h \
src/tools/storage/imguploader.h \
src/tools/storage/imgur/imguruploadertool.h \
src/tools/storage/imgur/imguruploader.h \
src/tools/storage/s3/imgs3uploader.h \
src/tools/storage/s3/imgs3uploadertool.h \
src/tools/storage/s3/imgs3settings.h \
src/widgets/loadspinner.h \
src/widgets/imagelabel.h \
src/widgets/notificationwidget.h \

View File

@@ -16,32 +16,35 @@
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "configwindow.h"
#include "src/utils/colorutils.h"
#include "src/utils/confighandler.h"
#include "src/utils/pathinfo.h"
#include "src/widgets/capture/capturebutton.h"
#include "src/config/geneneralconf.h"
#include "src/config/filenameeditor.h"
#include "src/config/filepathconfiguration.h"
#include "src/config/geneneralconf.h"
#include "src/config/shortcutswidget.h"
#include "src/config/strftimechooserwidget.h"
#include "src/config/visualseditor.h"
#include "src/utils/colorutils.h"
#include "src/utils/confighandler.h"
#include "src/utils/globalvalues.h"
#include <QIcon>
#include <QVBoxLayout>
#include <QLabel>
#include <QKeyEvent>
#include "src/utils/pathinfo.h"
#include "src/widgets/capture/capturebutton.h"
#include <QFileSystemWatcher>
#include <QIcon>
#include <QKeyEvent>
#include <QLabel>
#include <QVBoxLayout>
// ConfigWindow contains the menus where you can configure the application
ConfigWindow::ConfigWindow(QWidget *parent) : QTabWidget(parent) {
ConfigWindow::ConfigWindow(QWidget* parent)
: QTabWidget(parent)
{
setAttribute(Qt::WA_DeleteOnClose);
setMinimumSize(GlobalValues::buttonBaseSize() * 14, GlobalValues::buttonBaseSize() * 12);
setMinimumSize(GlobalValues::buttonBaseSize() * 14,
GlobalValues::buttonBaseSize() * 12);
setWindowIcon(QIcon(":img/app/flameshot.svg"));
setWindowTitle(tr("Configuration"));
auto changedSlot = [this](QString s){
auto changedSlot = [this](QString s) {
QStringList files = m_configWatcher->files();
if (!files.contains(s)) {
this->m_configWatcher->addPath(s);
@@ -50,50 +53,50 @@ ConfigWindow::ConfigWindow(QWidget *parent) : QTabWidget(parent) {
};
m_configWatcher = new QFileSystemWatcher(this);
m_configWatcher->addPath(ConfigHandler().configFilePath());
connect(m_configWatcher, &QFileSystemWatcher::fileChanged,
this, changedSlot);
connect(
m_configWatcher, &QFileSystemWatcher::fileChanged, this, changedSlot);
QColor background = this->palette().background().color();
bool isDark = ColorUtils::colorIsDark(background);
QString modifier = isDark ? PathInfo::whiteIconPath() :
PathInfo::blackIconPath();
QString modifier =
isDark ? PathInfo::whiteIconPath() : PathInfo::blackIconPath();
// visuals
m_visuals = new VisualsEditor();
addTab(m_visuals, QIcon(modifier + "graphics.svg"),
tr("Interface"));
addTab(m_visuals, QIcon(modifier + "graphics.svg"), tr("Interface"));
// filename
m_filenameEditor = new FileNameEditor();
addTab(m_filenameEditor, QIcon(modifier + "name_edition.svg"),
addTab(m_filenameEditor,
QIcon(modifier + "name_edition.svg"),
tr("Filename Editor"));
// general
m_generalConfig = new GeneneralConf();
addTab(m_generalConfig, QIcon(modifier + "config.svg"),
tr("General"));
addTab(m_generalConfig, QIcon(modifier + "config.svg"), tr("General"));
// shortcuts
m_shortcuts = new ShortcutsWidget();
addTab(m_shortcuts, QIcon(modifier + "shortcut.svg"),
tr("Shortcuts"));
// filepath
m_filePathConfiguration = new FilePathConfiguration();
addTab(m_filePathConfiguration, QIcon(modifier + "filepath.svg"),
tr("Path Default"));
addTab(m_shortcuts, QIcon(modifier + "shortcut.svg"), tr("Shortcuts"));
// connect update sigslots
connect(this, &ConfigWindow::updateChildren,
m_filenameEditor, &FileNameEditor::updateComponents);
connect(this, &ConfigWindow::updateChildren,
m_visuals, &VisualsEditor::updateComponents);
connect(this, &ConfigWindow::updateChildren,
m_generalConfig, &GeneneralConf::updateComponents);
connect(this,
&ConfigWindow::updateChildren,
m_filenameEditor,
&FileNameEditor::updateComponents);
connect(this,
&ConfigWindow::updateChildren,
m_visuals,
&VisualsEditor::updateComponents);
connect(this,
&ConfigWindow::updateChildren,
m_generalConfig,
&GeneneralConf::updateComponents);
}
void ConfigWindow::keyPressEvent(QKeyEvent *e) {
void ConfigWindow::keyPressEvent(QKeyEvent* e)
{
if (e->key() == Qt::Key_Escape) {
close();
close();
}
}

View File

@@ -26,22 +26,22 @@ class GeneneralConf;
class QFileSystemWatcher;
class VisualsEditor;
class ConfigWindow : public QTabWidget {
class ConfigWindow : public QTabWidget
{
Q_OBJECT
public:
explicit ConfigWindow(QWidget *parent = nullptr);
explicit ConfigWindow(QWidget* parent = nullptr);
signals:
void updateChildren();
protected:
void keyPressEvent(QKeyEvent *);
void keyPressEvent(QKeyEvent*);
private:
FileNameEditor *m_filenameEditor;
FilePathConfiguration *m_filePathConfiguration;
ShortcutsWidget *m_shortcuts;
GeneneralConf *m_generalConfig;
VisualsEditor *m_visuals;
QFileSystemWatcher *m_configWatcher;
FileNameEditor* m_filenameEditor;
ShortcutsWidget* m_shortcuts;
GeneneralConf* m_generalConfig;
VisualsEditor* m_visuals;
QFileSystemWatcher* m_configWatcher;
};

View File

@@ -16,20 +16,24 @@
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "geneneralconf.h"
#include "src/utils/confighandler.h"
#include "src/utils/confighandler.h"
#include "filepathconfiguration.h"
#include "src/core/controller.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include "src/tools/storage/imgstorages.h"
#include "src/utils/confighandler.h"
#include <QCheckBox>
#include <QPushButton>
#include <QMessageBox>
#include <QFileDialog>
#include <QFile>
#include <QTextCodec>
#include <QFileDialog>
#include <QGroupBox>
#include <QHBoxLayout>
#include <QMessageBox>
#include <QPushButton>
#include <QRadioButton>
#include <QTextCodec>
#include <QVBoxLayout>
GeneneralConf::GeneneralConf(QWidget *parent) : QWidget(parent) {
GeneneralConf::GeneneralConf(QWidget* parent)
: QWidget(parent)
{
m_layout = new QVBoxLayout(this);
m_layout->setAlignment(Qt::AlignTop);
initShowHelp();
@@ -40,19 +44,23 @@ GeneneralConf::GeneneralConf(QWidget *parent) : QWidget(parent) {
initCloseAfterCapture();
initCopyAndCloseAfterUpload();
initCopyPathAfterSave();
initUploadStorage();
initFilePathConfiguration();
// this has to be at the end
initConfingButtons();
updateComponents();
}
void GeneneralConf::updateComponents() {
void GeneneralConf::updateComponents()
{
ConfigHandler config;
m_helpMessage->setChecked(config.showHelpValue());
m_sysNotifications->setChecked(config.desktopNotificationValue());
m_autostart->setChecked(config.startupLaunchValue());
m_closeAfterCapture->setChecked(config.closeAfterScreenshotValue());
m_copyAndCloseAfterUpload->setChecked(config.copyAndCloseAfterUploadEnabled());
m_copyAndCloseAfterUpload->setChecked(
config.copyAndCloseAfterUploadEnabled());
m_copyPathAfterSave->setChecked(config.copyPathAfterSaveEnabled());
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
@@ -60,15 +68,18 @@ void GeneneralConf::updateComponents() {
#endif
}
void GeneneralConf::showHelpChanged(bool checked) {
void GeneneralConf::showHelpChanged(bool checked)
{
ConfigHandler().setShowHelp(checked);
}
void GeneneralConf::showDesktopNotificationChanged(bool checked) {
void GeneneralConf::showDesktopNotificationChanged(bool checked)
{
ConfigHandler().setDesktopNotification(checked);
}
void GeneneralConf::showTrayIconChanged(bool checked) {
void GeneneralConf::showTrayIconChanged(bool checked)
{
auto controller = Controller::getInstance();
if (checked) {
controller->enableTrayIcon();
@@ -77,25 +88,29 @@ void GeneneralConf::showTrayIconChanged(bool checked) {
}
}
void GeneneralConf::autostartChanged(bool checked) {
void GeneneralConf::autostartChanged(bool checked)
{
ConfigHandler().setStartupLaunch(checked);
}
void GeneneralConf::showStartupLaunchMessageChanged(bool checked) {
void GeneneralConf::showStartupLaunchMessageChanged(bool checked)
{
ConfigHandler().setShowStartupLaunchMessage(checked);
}
void GeneneralConf::closeAfterCaptureChanged(bool checked) {
void GeneneralConf::closeAfterCaptureChanged(bool checked)
{
ConfigHandler().setCloseAfterScreenshot(checked);
}
void GeneneralConf::importConfiguration() {
void GeneneralConf::importConfiguration()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Import"));
if (fileName.isEmpty()) {
return;
}
QFile file(fileName);
QTextCodec *codec = QTextCodec::codecForLocale();
QTextCodec* codec = QTextCodec::codecForLocale();
if (!file.open(QFile::ReadOnly)) {
QMessageBox::about(this, tr("Error"), tr("Unable to read file."));
return;
@@ -105,16 +120,17 @@ void GeneneralConf::importConfiguration() {
QFile config(ConfigHandler().configFilePath());
if (!config.open(QFile::WriteOnly)) {
QMessageBox::about(this, tr("Error"), tr("Unable to write file."));
return;
QMessageBox::about(this, tr("Error"), tr("Unable to write file."));
return;
}
config.write(codec->fromUnicode(text));
config.close();
}
void GeneneralConf::exportFileConfiguration() {
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
QStringLiteral("flameshot.conf"));
void GeneneralConf::exportFileConfiguration()
{
QString fileName = QFileDialog::getSaveFileName(
this, tr("Save File"), QStringLiteral("flameshot.conf"));
// Cancel button
if (fileName.isNull()) {
@@ -131,45 +147,52 @@ void GeneneralConf::exportFileConfiguration() {
}
}
void GeneneralConf::resetConfiguration() {
void GeneneralConf::resetConfiguration()
{
QMessageBox::StandardButton reply;
reply = QMessageBox::question(
this, tr("Confirm Reset"),
tr("Are you sure you want to reset the configuration?"),
QMessageBox::Yes | QMessageBox::No);
this,
tr("Confirm Reset"),
tr("Are you sure you want to reset the configuration?"),
QMessageBox::Yes | QMessageBox::No);
if (reply == QMessageBox::Yes) {
ConfigHandler().setDefaults();
}
}
void GeneneralConf::initShowHelp() {
void GeneneralConf::initShowHelp()
{
m_helpMessage = new QCheckBox(tr("Show help message"), this);
ConfigHandler config;
bool checked = config.showHelpValue();
m_helpMessage->setChecked(checked);
m_helpMessage->setToolTip(tr("Show the help message at the beginning "
"in the capture mode."));
"in the capture mode."));
m_layout->addWidget(m_helpMessage);
connect(m_helpMessage, &QCheckBox::clicked, this,
connect(m_helpMessage,
&QCheckBox::clicked,
this,
&GeneneralConf::showHelpChanged);
}
void GeneneralConf::initShowDesktopNotification() {
m_sysNotifications =
new QCheckBox(tr("Show desktop notifications"), this);
void GeneneralConf::initShowDesktopNotification()
{
m_sysNotifications = new QCheckBox(tr("Show desktop notifications"), this);
ConfigHandler config;
bool checked = config.desktopNotificationValue();
m_sysNotifications->setChecked(checked);
m_sysNotifications->setToolTip(tr("Show desktop notifications"));
m_layout->addWidget(m_sysNotifications);
connect(m_sysNotifications, &QCheckBox::clicked, this,
connect(m_sysNotifications,
&QCheckBox::clicked,
this,
&GeneneralConf::showDesktopNotificationChanged);
}
void GeneneralConf::initShowTrayIcon() {
void GeneneralConf::initShowTrayIcon()
{
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
m_showTray = new QCheckBox(tr("Show tray icon"), this);
ConfigHandler config;
@@ -178,36 +201,46 @@ void GeneneralConf::initShowTrayIcon() {
m_showTray->setToolTip(tr("Show the systemtray icon"));
m_layout->addWidget(m_showTray);
connect(m_showTray, &QCheckBox::stateChanged, this,
connect(m_showTray,
&QCheckBox::stateChanged,
this,
&GeneneralConf::showTrayIconChanged);
#endif
}
void GeneneralConf::initConfingButtons() {
QHBoxLayout *buttonLayout = new QHBoxLayout();
void GeneneralConf::initConfingButtons()
{
QHBoxLayout* buttonLayout = new QHBoxLayout();
m_layout->addStretch();
QGroupBox *box = new QGroupBox(tr("Configuration File"));
QGroupBox* box = new QGroupBox(tr("Configuration File"));
box->setFlat(true);
box->setLayout(buttonLayout);
m_layout->addWidget(box);
m_exportButton = new QPushButton(tr("Export"));
buttonLayout->addWidget(m_exportButton);
connect(m_exportButton, &QPushButton::clicked, this,
connect(m_exportButton,
&QPushButton::clicked,
this,
&GeneneralConf::exportFileConfiguration);
m_importButton = new QPushButton(tr("Import"));
buttonLayout->addWidget(m_importButton);
connect(m_importButton, &QPushButton::clicked, this,
connect(m_importButton,
&QPushButton::clicked,
this,
&GeneneralConf::importConfiguration);
m_resetButton = new QPushButton(tr("Reset"));
buttonLayout->addWidget(m_resetButton);
connect(m_resetButton, &QPushButton::clicked, this,
connect(m_resetButton,
&QPushButton::clicked,
this,
&GeneneralConf::resetConfiguration);
}
void GeneneralConf::initAutostart() {
void GeneneralConf::initAutostart()
{
m_autostart = new QCheckBox(tr("Launch at startup"), this);
ConfigHandler config;
bool checked = config.startupLaunchValue();
@@ -215,12 +248,14 @@ void GeneneralConf::initAutostart() {
m_autostart->setToolTip(tr("Launch Flameshot"));
m_layout->addWidget(m_autostart);
connect(m_autostart, &QCheckBox::clicked, this,
&GeneneralConf::autostartChanged);
connect(
m_autostart, &QCheckBox::clicked, this, &GeneneralConf::autostartChanged);
}
void GeneneralConf::initShowStartupLaunchMessage() {
m_showStartupLaunchMessage = new QCheckBox(tr("Show welcome message on launch"), this);
void GeneneralConf::initShowStartupLaunchMessage()
{
m_showStartupLaunchMessage =
new QCheckBox(tr("Show welcome message on launch"), this);
ConfigHandler config;
bool checked = config.showStartupLaunchMessage();
m_showStartupLaunchMessage->setChecked(checked);
@@ -232,23 +267,31 @@ void GeneneralConf::initShowStartupLaunchMessage() {
});
}
void GeneneralConf::initCloseAfterCapture() {
m_closeAfterCapture = new QCheckBox(tr("Close application after capture"), this);
void GeneneralConf::initCloseAfterCapture()
{
m_closeAfterCapture =
new QCheckBox(tr("Close application after capture"), this);
ConfigHandler config;
bool checked = config.closeAfterScreenshotValue();
m_closeAfterCapture->setChecked(checked);
m_closeAfterCapture->setToolTip(tr("Close after taking a screenshot"));
m_layout->addWidget(m_closeAfterCapture);
connect(m_closeAfterCapture, &QCheckBox::clicked, this,
connect(m_closeAfterCapture,
&QCheckBox::clicked,
this,
&GeneneralConf::closeAfterCaptureChanged);
}
void GeneneralConf::initCopyAndCloseAfterUpload() {
m_copyAndCloseAfterUpload = new QCheckBox(tr("Copy URL after upload"), this);
void GeneneralConf::initCopyAndCloseAfterUpload()
{
m_copyAndCloseAfterUpload =
new QCheckBox(tr("Copy URL after upload"), this);
ConfigHandler config;
m_copyAndCloseAfterUpload->setChecked(config.copyAndCloseAfterUploadEnabled());
m_copyAndCloseAfterUpload->setToolTip(tr("Copy URL and close window after upload"));
m_copyAndCloseAfterUpload->setChecked(
config.copyAndCloseAfterUploadEnabled());
m_copyAndCloseAfterUpload->setToolTip(
tr("Copy URL and close window after upload"));
m_layout->addWidget(m_copyAndCloseAfterUpload);
connect(m_copyAndCloseAfterUpload, &QCheckBox::clicked, [](bool checked) {
@@ -256,7 +299,8 @@ void GeneneralConf::initCopyAndCloseAfterUpload() {
});
}
void GeneneralConf::initCopyPathAfterSave() {
void GeneneralConf::initCopyPathAfterSave()
{
m_copyPathAfterSave = new QCheckBox(tr("Copy file path after save"), this);
ConfigHandler config;
m_copyPathAfterSave->setChecked(config.copyPathAfterSaveEnabled());
@@ -266,3 +310,44 @@ void GeneneralConf::initCopyPathAfterSave() {
ConfigHandler().setCopyPathAfterSaveEnabled(checked);
});
}
void GeneneralConf::initUploadStorage()
{
QGroupBox* groupBox = new QGroupBox(tr("Upload storage"));
// TODO - remove dependency injection (s3 & imgur)
// imgur
QRadioButton* storageImgUr = new QRadioButton(tr("Imgur storage"));
connect(storageImgUr, &QCheckBox::clicked, [](bool checked) {
ConfigHandler().setUploadStorage(SCREENSHOT_STORAGE_TYPE_IMGUR);
});
// s3
QRadioButton* storageImgS3 = new QRadioButton(
tr("S3 storage (require config.ini file with s3 credentials)"));
connect(storageImgS3, &QCheckBox::clicked, [](bool checked) {
ConfigHandler().setUploadStorage(SCREENSHOT_STORAGE_TYPE_S3);
});
// set current storage radiobutton active
if (ConfigHandler().uploadStorage() == SCREENSHOT_STORAGE_TYPE_IMGUR) {
storageImgUr->setChecked(true);
} else {
storageImgS3->setChecked(true);
}
// draw configuration options for uploadStorage
QVBoxLayout* vbox = new QVBoxLayout;
vbox->addWidget(storageImgUr);
vbox->addWidget(storageImgS3);
vbox->addStretch(1);
groupBox->setLayout(vbox);
m_layout->addWidget(groupBox);
}
void GeneneralConf::initFilePathConfiguration()
{
m_filePathConfiguration = new FilePathConfiguration();
m_layout->addWidget(m_filePathConfiguration);
}

View File

@@ -22,39 +22,42 @@
class QVBoxLayout;
class QCheckBox;
class QPushButton;
class FilePathConfiguration;
class GeneneralConf : public QWidget {
class GeneneralConf : public QWidget
{
Q_OBJECT
public:
explicit GeneneralConf(QWidget *parent = nullptr);
explicit GeneneralConf(QWidget* parent = nullptr);
public slots:
void updateComponents();
private slots:
void showHelpChanged(bool checked);
void showDesktopNotificationChanged(bool checked);
void showTrayIconChanged(bool checked);
void autostartChanged(bool checked);
void showStartupLaunchMessageChanged(bool checked);
void closeAfterCaptureChanged(bool checked);
void importConfiguration();
void exportFileConfiguration();
void resetConfiguration();
void showHelpChanged(bool checked);
void showDesktopNotificationChanged(bool checked);
void showTrayIconChanged(bool checked);
void autostartChanged(bool checked);
void showStartupLaunchMessageChanged(bool checked);
void closeAfterCaptureChanged(bool checked);
void importConfiguration();
void exportFileConfiguration();
void resetConfiguration();
private:
QVBoxLayout *m_layout;
QCheckBox *m_sysNotifications;
QCheckBox *m_showTray;
QCheckBox *m_helpMessage;
QCheckBox *m_autostart;
QCheckBox *m_showStartupLaunchMessage;
QCheckBox *m_closeAfterCapture;
QCheckBox *m_copyAndCloseAfterUpload;
QCheckBox *m_copyPathAfterSave;
QPushButton *m_importButton;
QPushButton *m_exportButton;
QPushButton *m_resetButton;
QVBoxLayout* m_layout;
QCheckBox* m_sysNotifications;
QCheckBox* m_showTray;
QCheckBox* m_helpMessage;
QCheckBox* m_autostart;
QCheckBox* m_showStartupLaunchMessage;
QCheckBox* m_closeAfterCapture;
QCheckBox* m_copyAndCloseAfterUpload;
QCheckBox* m_copyPathAfterSave;
QPushButton* m_importButton;
QPushButton* m_exportButton;
QPushButton* m_resetButton;
FilePathConfiguration* m_filePathConfiguration;
void initShowHelp();
void initShowDesktopNotification();
@@ -65,4 +68,6 @@ private:
void initCloseAfterCapture();
void initCopyAndCloseAfterUpload();
void initCopyPathAfterSave();
void initUploadStorage();
void initFilePathConfiguration();
};

View File

@@ -1,467 +0,0 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imgs3uploader.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/notificationwidget.h"
#include "src/utils/confighandler.h"
#include "src/utils/history.h"
#include "src/utils/configenterprise.h"
#include <QApplication>
#include <QClipboard>
#include <QDesktopServices>
#include <QShortcut>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QDrag>
#include <QMimeData>
#include <QBuffer>
#include <QUrlQuery>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QTimer>
#include <QJsonDocument>
#include <QJsonObject>
#include <QHttpMultiPart>
#include <QNetworkProxy>
#include <QDir>
#include <QMessageBox>
#include <QDebug>
ImgS3Uploader::ImgS3Uploader(const QPixmap &capture, QWidget *parent) :
QWidget(parent), m_pixmap(capture)
{
init(tr("Upload image to S3"), tr("Uploading Image"));
}
ImgS3Uploader::ImgS3Uploader(QWidget *parent) :
QWidget(parent)
{
init(tr("Delete image from S3"), tr("Deleting image..."));
}
void ImgS3Uploader::init(const QString &title, const QString &label) {
m_imageLabel = nullptr;
m_spinner = nullptr;
m_proxy = nullptr;
m_NetworkAMUpload = nullptr;
m_NetworkAMGetCreds = nullptr;
m_NetworkAMRemove = nullptr;
m_success = false;
setWindowTitle(title);
setWindowIcon(QIcon(":img/app/flameshot.svg"));
m_spinner = new LoadSpinner(this);
m_spinner->setColor(ConfigHandler().uiMainColorValue());
m_spinner->start();
m_infoLabel = new QLabel(label);
m_infoLabel->setAlignment(Qt::AlignCenter);
m_vLayout = new QVBoxLayout();
setLayout(m_vLayout);
m_vLayout->addWidget(m_spinner, 0, Qt::AlignHCenter);
m_vLayout->addWidget(m_infoLabel);
setAttribute(Qt::WA_DeleteOnClose);
}
QNetworkProxy *ImgS3Uploader::proxy() {
if(m_proxy == nullptr) {
initProxy();
}
return m_proxy;
}
QNetworkProxy *ImgS3Uploader::initProxy() {
// get enterprise settings
ConfigEnterprise *configEnterprise = new ConfigEnterprise();
// get proxy settings from "config.ini" file
QSettings *settings = configEnterprise->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<QNetworkProxy> 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;
}
void ImgS3Uploader::clearProxy() {
if(m_proxy != nullptr) {
delete m_proxy;
m_proxy = nullptr;
}
}
void ImgS3Uploader::handleReplyUpload(QNetworkReply *reply) {
hideSpinner();
m_s3ImageName.clear();
if (reply->error() == QNetworkReply::NoError) {
// save history
QString imageName = m_imageURL.toString();
int lastSlash = imageName.lastIndexOf("/");
if (lastSlash >= 0) {
imageName = imageName.mid(lastSlash + 1);
}
m_s3ImageName = imageName;
History history;
imageName = history.packFileName(SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, imageName);
history.save(m_pixmap, imageName);
m_success = true;
// Copy url to clipboard if required
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
QApplication::clipboard()->setText(m_imageURL.toString());
SystemNotification().sendMessage(tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::removeImagePreview() {
// remove local file
History history;
QString packedFileName = history.packFileName(SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, m_s3ImageName);
QString fullFileName = history.path() + packedFileName;
QFile file(fullFileName);
if (file.exists()) {
file.remove();
}
m_deleteToken.clear();
m_s3ImageName.clear();
m_success = true;
}
void ImgS3Uploader::handleReplyDeleteResource(QNetworkReply *reply) {
auto replyError = reply->error();
if (replyError == QNetworkReply::NoError) {
removeImagePreview();
} else {
hide();
// generate error message
QString message = tr("Unable to remove screenshot from the remote storage.");
if(replyError == QNetworkReply::UnknownNetworkError) {
message += "\n" + tr("Network error");
}
else if(replyError == QNetworkReply::UnknownServerError) {
message += "\n" + tr("Possibly it doesn't exist anymore");
}
message += "\n\n" + reply->errorString();
message += "\n\n" + tr("Do you want to remove screenshot from local history anyway?");
if (QMessageBox::Yes == QMessageBox::question(NULL,
tr("Remove screenshot from history?"),
message,
QMessageBox::Yes|QMessageBox::No)) {
removeImagePreview();
}
}
close();
}
void ImgS3Uploader::startDrag() {
QMimeData *mimeData = new QMimeData;
mimeData->setUrls(QList<QUrl> { m_imageURL });
mimeData->setImageData(m_pixmap);
QDrag *dragHandler = new QDrag(this);
dragHandler->setMimeData(mimeData);
dragHandler->setPixmap(m_pixmap.scaled(256, 256, Qt::KeepAspectRatioByExpanding,
Qt::SmoothTransformation));
dragHandler->exec();
}
void ImgS3Uploader::handleReplyGetCreds(QNetworkReply *reply){
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
uploadToS3(response);
} else {
if(m_s3Settings.credsUrl().length() == 0){
setInfoLabelText(tr("S3 Creds URL is not found in your configuration file"));
}
else {
setInfoLabelText(reply->errorString());
}
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::uploadToS3(QJsonDocument &response) {
// set paramets from "fields"
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
// read JSON response
QJsonObject json = response.object();
QString resultURL = json["resultURL"].toString();
QJsonObject formData = json["formData"].toObject();
QString url = formData["url"].toString();
m_deleteToken = json["deleteToken"].toString();
QJsonObject fields = formData["fields"].toObject();
foreach (auto key, fields.keys()) {
QString field = fields[key].toString();
QHttpPart part;
part.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"" + key + "\""));
part.setBody(field.toLatin1());
multiPart->append(part);
}
QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"file\""));
QByteArray byteArray;
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
m_pixmap.save(&buffer, "PNG");
imagePart.setBody(byteArray);
multiPart->append(imagePart);
m_imageURL.setUrl(resultURL);
QUrl qUrl(url);
QNetworkRequest request(qUrl);
// upload
m_NetworkAMUpload->post(request, multiPart);
}
void ImgS3Uploader::deleteResource(const QString &fileName, const QString &deleteToken) {
// read network settings on each call to simplify configuration management without restarting
clearProxy();
if(m_NetworkAMRemove != nullptr) {
delete m_NetworkAMRemove;
m_NetworkAMRemove = nullptr;
}
m_NetworkAMRemove = new QNetworkAccessManager(this);
connect(m_NetworkAMRemove, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyDeleteResource);
if(proxy() != nullptr) {
m_NetworkAMRemove->setProxy(*proxy());
}
QNetworkRequest request;
m_s3ImageName = 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);
}
void ImgS3Uploader::upload() {
m_deleteToken.clear();
m_s3ImageName.clear();
// 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, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyGetCreds);
if(m_NetworkAMUpload != nullptr) {
delete m_NetworkAMUpload;
m_NetworkAMUpload = nullptr;
}
m_NetworkAMUpload = new QNetworkAccessManager(this);
connect(m_NetworkAMUpload, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyUpload);
if(proxy() != nullptr) {
m_NetworkAMGetCreds->setProxy(*proxy());
m_NetworkAMUpload->setProxy(*proxy());
}
// get creads
QUrl creds(m_s3Settings.credsUrl());
QNetworkRequest requestCreds(creds);
if(m_s3Settings.xApiKey().length() > 0) {
requestCreds.setRawHeader(QByteArray("X-API-Key"), QByteArray(m_s3Settings.xApiKey().toLocal8Bit()));
}
m_NetworkAMGetCreds->get(requestCreds);
}
void ImgS3Uploader::onUploadOk() {
hideSpinner();
m_notification = new NotificationWidget();
m_vLayout->addWidget(m_notification);
if(nullptr == m_imageLabel) {
m_imageLabel = new ImageLabel();
m_imageLabel->setScreenshot(m_pixmap);
m_imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(m_imageLabel, &ImageLabel::dragInitiated, this, &ImgS3Uploader::startDrag);
m_vLayout->addWidget(m_imageLabel);
}
m_hLayout = new QHBoxLayout();
m_vLayout->addLayout(m_hLayout);
m_copyUrlButton = new QPushButton(tr("Copy URL"));
m_openUrlButton = new QPushButton(tr("Open URL"));
m_deleteImageOnS3 = new QPushButton(tr("Delete image"));
m_toClipboardButton = new QPushButton(tr("Image to Clipboard."));
m_hLayout->addWidget(m_copyUrlButton);
m_hLayout->addWidget(m_openUrlButton);
m_hLayout->addWidget(m_deleteImageOnS3);
m_hLayout->addWidget(m_toClipboardButton);
connect(m_copyUrlButton, &QPushButton::clicked,
this, &ImgS3Uploader::copyURL);
connect(m_openUrlButton, &QPushButton::clicked,
this, &ImgS3Uploader::openURL);
connect(m_deleteImageOnS3, &QPushButton::clicked,
this, &ImgS3Uploader::deleteImageOnS3);
connect(m_toClipboardButton, &QPushButton::clicked,
this, &ImgS3Uploader::copyImage);
}
void ImgS3Uploader::openURL() {
bool successful = QDesktopServices::openUrl(m_imageURL);
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgS3Uploader::copyURL() {
QApplication::clipboard()->setText(m_imageURL.toString());
m_notification->showMessage(tr("URL copied to clipboard."));
}
void ImgS3Uploader::copyImage() {
QApplication::clipboard()->setPixmap(m_pixmap);
m_notification->showMessage(tr("Screenshot copied to clipboard."));
}
void ImgS3Uploader::deleteImageOnS3() {
if(nullptr != m_imageLabel) {
m_imageLabel->hide();
}
m_spinner->show();
setInfoLabelText(tr("Deleting image..."));
deleteResource(m_s3ImageName, m_deleteToken);
}
bool ImgS3Uploader::success() {
return m_success;
}
void ImgS3Uploader::hideSpinner() {
if(nullptr != m_spinner) {
m_spinner->hide();
}
if(nullptr != m_imageLabel) {
m_imageLabel->hide();
}
}
void ImgS3Uploader::setInfoLabelText(const QString &infoText) {
m_infoLabel->setText(infoText);
m_infoLabel->show();
}

View File

@@ -1,103 +0,0 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define S3_API_IMG_PATH "v2/image/"
#include "imgs3settings.h"
#include <QWidget>
#include <QUrl>
class QNetworkReply;
class QNetworkProxy;
class QNetworkAccessManager;
class QHBoxLayout;
class QVBoxLayout;
class QLabel;
class LoadSpinner;
class QPushButton;
class QUrl;
class NotificationWidget;
class ConfigEnterprise;
class ImageLabel;
class ImgS3Uploader : public QWidget {
Q_OBJECT
public:
explicit ImgS3Uploader(const QPixmap &capture, QWidget *parent = nullptr);
explicit ImgS3Uploader(QWidget *parent = nullptr);
void upload();
void deleteResource(const QString &, const QString &);
bool success();
private slots:
void handleReplyUpload(QNetworkReply *reply);
void handleReplyGetCreds(QNetworkReply *reply);
void handleReplyDeleteResource(QNetworkReply *reply);
void startDrag();
void openURL();
void copyURL();
void copyImage();
void deleteImageOnS3();
private:
void init(const QString &title, const QString &label);
void uploadToS3(QJsonDocument &response);
QNetworkProxy *initProxy();
void clearProxy();
void removeImagePreview();
void onUploadOk();
void hideSpinner();
void setInfoLabelText(const QString &);
QNetworkProxy *proxy();
// class members
private:
bool m_success;
ImgS3Settings m_s3Settings;
ImageLabel *m_imageLabel;
QString m_hostName;
QPixmap m_pixmap;
QNetworkProxy *m_proxy;
QNetworkAccessManager *m_NetworkAMUpload;
QNetworkAccessManager *m_NetworkAMGetCreds;
QNetworkAccessManager *m_NetworkAMRemove;
QVBoxLayout *m_vLayout;
QHBoxLayout *m_hLayout;
// loading
QLabel *m_infoLabel;
LoadSpinner *m_spinner;
// uploaded
QPushButton *m_openUrlButton;
QPushButton *m_copyUrlButton;
QPushButton *m_toClipboardButton;
QPushButton *m_deleteImageOnS3;
QUrl m_imageURL;
NotificationWidget *m_notification;
// Temporary variables
QString m_deleteToken;
QString m_s3ImageName;
};

View File

@@ -1,182 +0,0 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imguruploader.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/notificationwidget.h"
#include "src/utils/confighandler.h"
#include <QApplication>
#include <QClipboard>
#include <QDesktopServices>
#include <QShortcut>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QDrag>
#include <QMimeData>
#include <QBuffer>
#include <QUrlQuery>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QTimer>
#include <QJsonDocument>
#include <QJsonObject>
ImgurUploader::ImgurUploader(const QPixmap &capture, QWidget *parent) :
QWidget(parent), m_pixmap(capture)
{
setWindowTitle(tr("Upload to Imgur"));
setWindowIcon(QIcon(":img/app/flameshot.svg"));
m_spinner = new LoadSpinner(this);
m_spinner->setColor(ConfigHandler().uiMainColorValue());
m_spinner->start();
m_infoLabel = new QLabel(tr("Uploading Image"));
m_vLayout = new QVBoxLayout();
setLayout(m_vLayout);
m_vLayout->addWidget(m_spinner, 0, Qt::AlignHCenter);
m_vLayout->addWidget(m_infoLabel);
m_NetworkAM = new QNetworkAccessManager(this);
connect(m_NetworkAM, &QNetworkAccessManager::finished, this,
&ImgurUploader::handleReply);
setAttribute(Qt::WA_DeleteOnClose);
upload();
// QTimer::singleShot(2000, this, &ImgurUploader::onUploadOk); // testing
}
void ImgurUploader::handleReply(QNetworkReply *reply) {
m_spinner->deleteLater();
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
QJsonObject json = response.object();
QJsonObject data = json[QStringLiteral("data")].toObject();
m_imageURL.setUrl(data[QStringLiteral("link")].toString());
m_deleteImageURL.setUrl(QStringLiteral("https://imgur.com/delete/%1").arg(
data[QStringLiteral("deletehash")].toString()));
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
QApplication::clipboard()->setText(m_imageURL.toString());
SystemNotification().sendMessage(QObject::tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
m_infoLabel->setText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgurUploader::startDrag() {
QMimeData *mimeData = new QMimeData;
mimeData->setUrls(QList<QUrl> { m_imageURL });
mimeData->setImageData(m_pixmap);
QDrag *dragHandler = new QDrag(this);
dragHandler->setMimeData(mimeData);
dragHandler->setPixmap(m_pixmap.scaled(256, 256, Qt::KeepAspectRatioByExpanding,
Qt::SmoothTransformation));
dragHandler->exec();
}
void ImgurUploader::upload() {
QByteArray byteArray;
QBuffer buffer(&byteArray);
m_pixmap.save(&buffer, "PNG");
QUrlQuery urlQuery;
urlQuery.addQueryItem(QStringLiteral("title"), QStringLiteral("flameshot_screenshot"));
QString description = FileNameHandler().parsedPattern();
urlQuery.addQueryItem(QStringLiteral("description"), description);
QUrl url(QStringLiteral("https://api.imgur.com/3/image"));
url.setQuery(urlQuery);
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader,
"application/application/x-www-form-urlencoded");
request.setRawHeader("Authorization", QStringLiteral("Client-ID %1").arg(IMGUR_CLIENT_ID).toUtf8());
m_NetworkAM->post(request, byteArray);
}
void ImgurUploader::onUploadOk() {
m_infoLabel->deleteLater();
m_notification = new NotificationWidget();
m_vLayout->addWidget(m_notification);
ImageLabel *imageLabel = new ImageLabel();
imageLabel->setScreenshot(m_pixmap);
imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(imageLabel, &ImageLabel::dragInitiated, this, &ImgurUploader::startDrag);
m_vLayout->addWidget(imageLabel);
m_hLayout = new QHBoxLayout();
m_vLayout->addLayout(m_hLayout);
m_copyUrlButton = new QPushButton(tr("Copy URL"));
m_openUrlButton = new QPushButton(tr("Open URL"));
m_openDeleteUrlButton = new QPushButton(tr("Delete image"));
m_toClipboardButton = new QPushButton(tr("Image to Clipboard."));
m_hLayout->addWidget(m_copyUrlButton);
m_hLayout->addWidget(m_openUrlButton);
m_hLayout->addWidget(m_openDeleteUrlButton);
m_hLayout->addWidget(m_toClipboardButton);
connect(m_copyUrlButton, &QPushButton::clicked,
this, &ImgurUploader::copyURL);
connect(m_openUrlButton, &QPushButton::clicked,
this, &ImgurUploader::openURL);
connect(m_openDeleteUrlButton, &QPushButton::clicked,
this, &ImgurUploader::openDeleteURL);
connect(m_toClipboardButton, &QPushButton::clicked,
this, &ImgurUploader::copyImage);
}
void ImgurUploader::openURL() {
bool successful = QDesktopServices::openUrl(m_imageURL);
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgurUploader::copyURL() {
QApplication::clipboard()->setText(m_imageURL.toString());
m_notification->showMessage(tr("URL copied to clipboard."));
}
void ImgurUploader::openDeleteURL()
{
bool successful = QDesktopServices::openUrl(m_deleteImageURL);
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgurUploader::copyImage() {
QApplication::clipboard()->setPixmap(m_pixmap);
m_notification->showMessage(tr("Screenshot copied to clipboard."));
}

View File

@@ -0,0 +1,8 @@
#ifndef IMGSTORAGES_H
#define IMGSTORAGES_H
#define SCREENSHOT_STORAGE_TYPE_LOCAL ""
#define SCREENSHOT_STORAGE_TYPE_S3 "s3"
#define SCREENSHOT_STORAGE_TYPE_IMGUR "imgur"
#endif // IMGSTORAGES_H

View File

@@ -0,0 +1,209 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imguploader.h"
#include "src/utils/configenterprise.h"
#include "src/utils/confighandler.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/history.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/notificationwidget.h"
#include <QApplication>
#include <QBuffer>
#include <QClipboard>
#include <QDebug>
#include <QDesktopServices>
#include <QDir>
#include <QDrag>
#include <QHBoxLayout>
#include <QHttpMultiPart>
#include <QJsonDocument>
#include <QJsonObject>
#include <QLabel>
#include <QMessageBox>
#include <QMimeData>
#include <QNetworkAccessManager>
#include <QNetworkProxy>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPushButton>
#include <QShortcut>
#include <QTimer>
#include <QUrlQuery>
#include <QVBoxLayout>
ImgUploader::ImgUploader(const QPixmap& capture, QWidget* parent)
: QWidget(parent)
, m_pixmap(capture)
{
init(tr("Upload image to S3"), tr("Uploading Image"));
}
ImgUploader::ImgUploader(QWidget* parent)
: QWidget(parent)
{
init(tr("Upload image"), tr("Uploading Image"));
}
void ImgUploader::init(const QString& title, const QString& label)
{
m_imageLabel = nullptr;
m_spinner = nullptr;
resultStatus = false;
setWindowTitle(title);
setWindowIcon(QIcon(":img/app/flameshot.svg"));
m_spinner = new LoadSpinner(this);
m_spinner->setColor(ConfigHandler().uiMainColorValue());
m_spinner->start();
m_infoLabel = new QLabel(label);
m_infoLabel->setAlignment(Qt::AlignCenter);
m_vLayout = new QVBoxLayout();
setLayout(m_vLayout);
m_vLayout->addWidget(m_spinner, 0, Qt::AlignHCenter);
m_vLayout->addWidget(m_infoLabel);
setAttribute(Qt::WA_DeleteOnClose);
}
void ImgUploader::openURL()
{
bool successful = QDesktopServices::openUrl(imageUrl());
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgUploader::copyURL()
{
QApplication::clipboard()->setText(imageUrl().toString());
m_notification->showMessage(tr("URL copied to clipboard."));
}
void ImgUploader::copyImage()
{
QApplication::clipboard()->setPixmap(m_pixmap);
m_notification->showMessage(tr("Screenshot copied to clipboard."));
}
void ImgUploader::deleteImageOnStorage()
{
if (nullptr != m_imageLabel) {
m_imageLabel->hide();
}
m_spinner->show();
setInfoLabelText(tr("Deleting image..."));
deleteResource(m_storageImageName, m_deleteToken);
}
void ImgUploader::startDrag()
{
QMimeData* mimeData = new QMimeData;
mimeData->setUrls(QList<QUrl>{ imageUrl() });
mimeData->setImageData(m_pixmap);
QDrag* dragHandler = new QDrag(this);
dragHandler->setMimeData(mimeData);
dragHandler->setPixmap(m_pixmap.scaled(
256, 256, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
dragHandler->exec();
}
void ImgUploader::hideSpinner()
{
if (nullptr != m_spinner) {
m_spinner->hide();
}
if (nullptr != m_imageLabel) {
m_imageLabel->hide();
}
}
void ImgUploader::setInfoLabelText(const QString& infoText)
{
m_infoLabel->setText(infoText);
m_infoLabel->show();
}
const QPixmap& ImgUploader::pixmap()
{
return m_pixmap;
}
void ImgUploader::onUploadOk()
{
hideSpinner();
m_notification = new NotificationWidget();
m_vLayout->addWidget(m_notification);
if (nullptr == m_imageLabel) {
m_imageLabel = new ImageLabel();
m_imageLabel->setScreenshot(pixmap());
m_imageLabel->setSizePolicy(QSizePolicy::Expanding,
QSizePolicy::Expanding);
connect(m_imageLabel,
&ImageLabel::dragInitiated,
this,
&ImgUploader::startDrag);
m_vLayout->addWidget(m_imageLabel);
}
m_hLayout = new QHBoxLayout();
m_vLayout->addLayout(m_hLayout);
m_copyUrlButton = new QPushButton(tr("Copy URL"));
m_openUrlButton = new QPushButton(tr("Open URL"));
m_deleteImageOnStorage = new QPushButton(tr("Delete image"));
m_toClipboardButton = new QPushButton(tr("Image to Clipboard."));
m_hLayout->addWidget(m_copyUrlButton);
m_hLayout->addWidget(m_openUrlButton);
m_hLayout->addWidget(m_deleteImageOnStorage);
m_hLayout->addWidget(m_toClipboardButton);
connect(
m_copyUrlButton, &QPushButton::clicked, this, &ImgUploader::copyURL);
connect(
m_openUrlButton, &QPushButton::clicked, this, &ImgUploader::openURL);
connect(m_deleteImageOnStorage,
&QPushButton::clicked,
this,
&ImgUploader::deleteImageOnStorage);
connect(m_toClipboardButton,
&QPushButton::clicked,
this,
&ImgUploader::copyImage);
}
void ImgUploader::setImageUrl(const QUrl& imageURL)
{
m_imageURL = imageURL;
}
const QUrl& ImgUploader::imageUrl()
{
return m_imageURL;
}
void ImgUploader::showNotificationMessage(const QString& notificationMessage) {
m_notification->showMessage(notificationMessage);
}

View File

@@ -0,0 +1,96 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#include "imgstorages.h"
#include "s3/imgs3settings.h"
#include <QUrl>
#include <QWidget>
class QNetworkReply;
class QNetworkProxy;
class QNetworkAccessManager;
class QHBoxLayout;
class QVBoxLayout;
class QLabel;
class LoadSpinner;
class QPushButton;
class QUrl;
class NotificationWidget;
class ConfigEnterprise;
class ImageLabel;
class ImgUploader : public QWidget
{
Q_OBJECT
public:
explicit ImgUploader(const QPixmap& capture, QWidget* parent = nullptr);
explicit ImgUploader(QWidget* parent = nullptr);
virtual void upload(){};
virtual void deleteResource(const QString&, const QString&){};
protected:
const QPixmap& pixmap();
void setImageUrl(const QUrl&);
const QUrl& imageUrl();
void onUploadOk();
void hideSpinner();
void setInfoLabelText(const QString&);
void showNotificationMessage(const QString&);
public slots:
virtual void openURL();
virtual void copyURL();
virtual void copyImage();
virtual void deleteImageOnStorage();
virtual void startDrag();
private:
void init(const QString& title, const QString& label);
// class members
private:
QPixmap m_pixmap;
QUrl m_imageURL;
ImageLabel* m_imageLabel;
NotificationWidget* m_notification;
QVBoxLayout* m_vLayout;
QHBoxLayout* m_hLayout;
// loading
LoadSpinner* m_spinner;
QLabel* m_infoLabel;
// uploaded
QPushButton* m_openUrlButton;
QPushButton* m_copyUrlButton;
QPushButton* m_toClipboardButton;
QPushButton* m_deleteImageOnStorage;
protected:
// bool m_success;
// Temporary variables
QString m_deleteToken;
QString m_storageImageName;
public:
bool resultStatus;
};

View File

@@ -0,0 +1,129 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imguruploader.h"
#include "src/utils/confighandler.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/history.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/notificationwidget.h"
#include <QApplication>
#include <QBuffer>
#include <QClipboard>
#include <QDesktopServices>
#include <QDrag>
#include <QHBoxLayout>
#include <QJsonDocument>
#include <QJsonObject>
#include <QLabel>
#include <QMimeData>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPushButton>
#include <QShortcut>
#include <QTimer>
#include <QUrlQuery>
#include <QVBoxLayout>
ImgurUploader::ImgurUploader(const QPixmap& capture, QWidget* parent)
: ImgUploader(capture, parent)
{
setWindowTitle(tr("Upload to Imgur"));
m_NetworkAM = new QNetworkAccessManager(this);
connect(m_NetworkAM,
&QNetworkAccessManager::finished,
this,
&ImgurUploader::handleReply);
// QTimer::singleShot(2000, this, &ImgurUploader::onUploadOk); // testing
}
void ImgurUploader::handleReply(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
QJsonObject json = response.object();
QJsonObject data = json[QStringLiteral("data")].toObject();
setImageUrl(data[QStringLiteral("link")].toString());
m_deleteToken = data[QStringLiteral("deletehash")].toString();
m_deleteImageURL.setUrl(
QStringLiteral("https://imgur.com/delete/%1").arg(m_deleteToken));
// save history
QString imageName = imageUrl().toString();
int lastSlash = imageName.lastIndexOf("/");
if (lastSlash >= 0) {
imageName = imageName.mid(lastSlash + 1);
}
m_storageImageName = imageName;
// save image to history
History history;
imageName = history.packFileName(
SCREENSHOT_STORAGE_TYPE_IMGUR, m_deleteToken, imageName);
history.save(pixmap(), imageName);
resultStatus = true;
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
QApplication::clipboard()->setText(imageUrl().toString());
SystemNotification().sendMessage(
QObject::tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgurUploader::upload()
{
QByteArray byteArray;
QBuffer buffer(&byteArray);
pixmap().save(&buffer, "PNG");
QUrlQuery urlQuery;
urlQuery.addQueryItem(QStringLiteral("title"),
QStringLiteral("flameshot_screenshot"));
QString description = FileNameHandler().parsedPattern();
urlQuery.addQueryItem(QStringLiteral("description"), description);
QUrl url(QStringLiteral("https://api.imgur.com/3/image"));
url.setQuery(urlQuery);
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader,
"application/application/x-www-form-urlencoded");
request.setRawHeader(
"Authorization",
QStringLiteral("Client-ID %1").arg(IMGUR_CLIENT_ID).toUtf8());
m_NetworkAM->post(request, byteArray);
}
void ImgurUploader::deleteImageOnStorage()
{
bool successful = QDesktopServices::openUrl(m_deleteImageURL);
if (!successful) {
showNotificationMessage(tr("Unable to open the URL."));
}
}

View File

@@ -17,8 +17,9 @@
#pragma once
#include <QWidget>
#include "../imguploader.h"
#include <QUrl>
#include <QWidget>
class QNetworkReply;
class QNetworkAccessManager;
@@ -30,38 +31,21 @@ class QPushButton;
class QUrl;
class NotificationWidget;
class ImgurUploader : public QWidget {
class ImgurUploader : public ImgUploader
{
Q_OBJECT
public:
explicit ImgurUploader(const QPixmap &capture, QWidget *parent = nullptr);
explicit ImgurUploader(const QPixmap& capture, QWidget* parent = nullptr);
void upload();
private slots:
void handleReply(QNetworkReply *reply);
void startDrag();
void handleReply(QNetworkReply* reply);
void openURL();
void copyURL();
void openDeleteURL();
void copyImage();
protected slots:
void deleteImageOnStorage();
// class members
private:
QPixmap m_pixmap;
QNetworkAccessManager *m_NetworkAM;
QVBoxLayout *m_vLayout;
QHBoxLayout *m_hLayout;
// loading
QLabel *m_infoLabel;
LoadSpinner *m_spinner;
// uploaded
QPushButton *m_openUrlButton;
QPushButton *m_openDeleteUrlButton;
QPushButton *m_copyUrlButton;
QPushButton *m_toClipboardButton;
QUrl m_imageURL;
QNetworkAccessManager* m_NetworkAM;
QUrl m_deleteImageURL;
NotificationWidget *m_notification;
void upload();
void onUploadOk();
};

View File

@@ -19,39 +19,55 @@
#include "imguruploader.h"
#include <QPainter>
ImgurUploaderTool::ImgurUploaderTool(QObject *parent) : AbstractActionTool(parent) {
ImgurUploaderTool::ImgurUploaderTool(QObject* parent)
: AbstractActionTool(parent)
{}
}
bool ImgurUploaderTool::closeOnButtonPressed() const {
bool ImgurUploaderTool::closeOnButtonPressed() const
{
return true;
}
QIcon ImgurUploaderTool::icon(const QColor &background, bool inEditor) const {
QIcon ImgurUploaderTool::icon(const QColor& background, bool inEditor) const
{
Q_UNUSED(inEditor);
return QIcon(iconPath(background) + "cloud-upload.svg");
}
QString ImgurUploaderTool::name() const {
QString ImgurUploaderTool::name() const
{
return tr("Image Uploader");
}
QString ImgurUploaderTool::nameID() {
QString ImgurUploaderTool::nameID()
{
return QLatin1String("");
}
QString ImgurUploaderTool::description() const {
QString ImgurUploaderTool::description() const
{
return tr("Upload the selection to Imgur");
}
QWidget* ImgurUploaderTool::widget() {
return new ImgurUploader(capture);
QWidget* ImgurUploaderTool::widget()
{
ImgurUploader* p = new ImgurUploader(capture);
p->upload();
return p;
}
CaptureTool* ImgurUploaderTool::copy(QObject *parent) {
void ImgurUploaderTool::setCapture(const QPixmap& pixmap)
{
capture = pixmap;
}
CaptureTool* ImgurUploaderTool::copy(QObject* parent)
{
return new ImgurUploaderTool(parent);
}
void ImgurUploaderTool::pressed(const CaptureContext &context) {
void ImgurUploaderTool::pressed(const CaptureContext& context)
{
capture = context.selectedScreenshotArea();
emit requestAction(REQ_CAPTURE_DONE_OK);
emit requestAction(REQ_ADD_EXTERNAL_WIDGETS);

View File

@@ -19,24 +19,26 @@
#include "src/tools/abstractactiontool.h"
class ImgurUploaderTool : public AbstractActionTool {
class ImgurUploaderTool : public AbstractActionTool
{
Q_OBJECT
public:
explicit ImgurUploaderTool(QObject *parent = nullptr);
explicit ImgurUploaderTool(QObject* parent = nullptr);
bool closeOnButtonPressed() const;
QIcon icon(const QColor &background, bool inEditor) const override;
QIcon icon(const QColor& background, bool inEditor) const override;
QString name() const override;
static QString nameID();
QString description() const override;
QWidget* widget() override;
CaptureTool* copy(QObject *parent = nullptr) override;
CaptureTool* copy(QObject* parent = nullptr) override;
void setCapture(const QPixmap&);
public slots:
void pressed(const CaptureContext &context) override;
void pressed(const CaptureContext& context) override;
private:
QPixmap capture;

View File

@@ -7,28 +7,38 @@ ImgS3Settings::ImgS3Settings()
m_configEnterprise = new ConfigEnterprise();
// get s3 credentials
QSettings *settings = m_configEnterprise->settings();
QSettings* settings = m_configEnterprise->settings();
settings->beginGroup("S3");
m_credsUrl = settings->value("S3_CREDS_URL").toString();
m_credsUrl = m_credsUrl + ((m_credsUrl.length() > 0 && m_credsUrl[m_credsUrl.length() - 1] == '/') ? "" : "/") + S3_API_IMG_PATH;
m_credsUrl =
m_credsUrl +
((m_credsUrl.length() > 0 && m_credsUrl[m_credsUrl.length() - 1] == '/')
? ""
: "/") +
S3_API_IMG_PATH;
m_xApiKey = settings->value("S3_X_API_KEY").toString();
m_url = settings->value("S3_URL").toString();
m_url = m_url + ((m_url.length() > 0 && m_url[m_url.length() - 1] == '/') ? "" : "/");
m_url =
m_url +
((m_url.length() > 0 && m_url[m_url.length() - 1] == '/') ? "" : "/");
settings->endGroup();
}
const QString &ImgS3Settings::credsUrl() {
const QString& ImgS3Settings::credsUrl()
{
return m_credsUrl;
}
const QString &ImgS3Settings::xApiKey() {
const QString& ImgS3Settings::xApiKey()
{
return m_xApiKey;
}
const QString &ImgS3Settings::url() {
const QString& ImgS3Settings::url()
{
return m_url;
}

View File

@@ -3,7 +3,6 @@
#define S3_API_IMG_PATH "v2/image/"
#include <QString>
class ConfigEnterprise;
@@ -13,12 +12,12 @@ class ImgS3Settings
public:
ImgS3Settings();
const QString &credsUrl();
const QString &xApiKey();
const QString &url();
const QString& credsUrl();
const QString& xApiKey();
const QString& url();
private:
ConfigEnterprise *m_configEnterprise;
ConfigEnterprise* m_configEnterprise;
QString m_credsUrl;
QString m_xApiKey;
QString m_url;

View File

@@ -0,0 +1,396 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imgs3uploader.h"
#include "src/utils/configenterprise.h"
#include "src/utils/confighandler.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/history.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/notificationwidget.h"
#include <QApplication>
#include <QBuffer>
#include <QClipboard>
#include <QDebug>
#include <QDesktopServices>
#include <QDir>
#include <QDrag>
#include <QHBoxLayout>
#include <QHttpMultiPart>
#include <QJsonDocument>
#include <QJsonObject>
#include <QLabel>
#include <QMessageBox>
#include <QMimeData>
#include <QNetworkAccessManager>
#include <QNetworkProxy>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPushButton>
#include <QShortcut>
#include <QTimer>
#include <QUrlQuery>
#include <QVBoxLayout>
ImgS3Uploader::ImgS3Uploader(const QPixmap& capture, QWidget* parent)
: ImgUploader(capture, parent)
{
init(tr("Upload image to S3"), tr("Uploading Image"));
}
ImgS3Uploader::ImgS3Uploader(QWidget* parent)
: ImgUploader(parent)
{
init(tr("Delete image from S3"), tr("Deleting image..."));
}
void ImgS3Uploader::init(const QString& title, const QString& label)
{
m_proxy = nullptr;
m_NetworkAMUpload = nullptr;
m_NetworkAMGetCreds = nullptr;
m_NetworkAMRemove = nullptr;
resultStatus = false;
setWindowTitle(title);
setWindowIcon(QIcon(":img/app/flameshot.svg"));
}
QNetworkProxy* ImgS3Uploader::proxy()
{
if (m_proxy == nullptr) {
initProxy();
}
return m_proxy;
}
QNetworkProxy* ImgS3Uploader::initProxy()
{
// get enterprise settings
ConfigEnterprise* configEnterprise = new ConfigEnterprise();
// get proxy settings from "config.ini" file
QSettings* settings = configEnterprise->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<QNetworkProxy> 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;
}
void ImgS3Uploader::clearProxy()
{
if (m_proxy != nullptr) {
delete m_proxy;
m_proxy = nullptr;
}
}
void ImgS3Uploader::handleReplyUpload(QNetworkReply* reply)
{
hideSpinner();
m_storageImageName.clear();
if (reply->error() == QNetworkReply::NoError) {
// save history
QString imageName = imageUrl().toString();
int lastSlash = imageName.lastIndexOf("/");
if (lastSlash >= 0) {
imageName = imageName.mid(lastSlash + 1);
}
m_storageImageName = imageName;
// save image to history
History history;
imageName = history.packFileName(
SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, imageName);
history.save(pixmap(), imageName);
resultStatus = true;
// Copy url to clipboard if required
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
QApplication::clipboard()->setText(imageUrl().toString());
SystemNotification().sendMessage(tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
QString reason =
reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute)
.toString();
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::handleReplyDeleteResource(QNetworkReply* reply)
{
auto replyError = reply->error();
if (replyError == QNetworkReply::NoError) {
removeImagePreview();
} else {
hide();
// generate error message
QString message =
tr("Unable to remove screenshot from the remote storage.");
if (replyError == QNetworkReply::UnknownNetworkError) {
message += "\n" + tr("Network error");
} else if (replyError == QNetworkReply::UnknownServerError) {
message += "\n" + tr("Possibly it doesn't exist anymore");
}
message += "\n\n" + reply->errorString();
message +=
"\n\n" +
tr("Do you want to remove screenshot from local history anyway?");
if (QMessageBox::Yes ==
QMessageBox::question(NULL,
tr("Remove screenshot from history?"),
message,
QMessageBox::Yes | QMessageBox::No)) {
removeImagePreview();
}
}
close();
}
void ImgS3Uploader::handleReplyGetCreds(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
uploadToS3(response);
} else {
if (m_s3Settings.credsUrl().length() == 0) {
setInfoLabelText(
tr("S3 Creds URL is not found in your configuration file"));
} else {
setInfoLabelText(reply->errorString());
}
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::uploadToS3(QJsonDocument& response)
{
// set paramets from "fields"
QHttpMultiPart* multiPart =
new QHttpMultiPart(QHttpMultiPart::FormDataType);
// read JSON response
QJsonObject json = response.object();
QString resultUrl = json["resultURL"].toString();
QJsonObject formData = json["formData"].toObject();
QString url = formData["url"].toString();
m_deleteToken = json["deleteToken"].toString();
QJsonObject fields = formData["fields"].toObject();
foreach (auto key, fields.keys()) {
QString field = fields[key].toString();
QHttpPart part;
part.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"" + key + "\""));
part.setBody(field.toLatin1());
multiPart->append(part);
}
QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader,
QVariant("image/png"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"file\""));
QByteArray byteArray;
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
pixmap().save(&buffer, "PNG");
imagePart.setBody(byteArray);
multiPart->append(imagePart);
setImageUrl(QUrl(resultUrl));
QUrl qUrl(url);
QNetworkRequest request(qUrl);
// upload
m_NetworkAMUpload->post(request, multiPart);
}
void ImgS3Uploader::deleteResource(const QString& fileName,
const QString& deleteToken)
{
// read network settings on each call to simplify configuration management
// without restarting
clearProxy();
if (m_NetworkAMRemove != nullptr) {
delete m_NetworkAMRemove;
m_NetworkAMRemove = nullptr;
}
m_NetworkAMRemove = new QNetworkAccessManager(this);
connect(m_NetworkAMRemove,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyDeleteResource);
if (proxy() != nullptr) {
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);
}
void ImgS3Uploader::upload()
{
m_deleteToken.clear();
m_storageImageName.clear();
// 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,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyGetCreds);
if (m_NetworkAMUpload != nullptr) {
delete m_NetworkAMUpload;
m_NetworkAMUpload = nullptr;
}
m_NetworkAMUpload = new QNetworkAccessManager(this);
connect(m_NetworkAMUpload,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyUpload);
if (proxy() != nullptr) {
m_NetworkAMGetCreds->setProxy(*proxy());
m_NetworkAMUpload->setProxy(*proxy());
}
// get creads
QUrl creds(m_s3Settings.credsUrl());
QNetworkRequest requestCreds(creds);
if (m_s3Settings.xApiKey().length() > 0) {
requestCreds.setRawHeader(
QByteArray("X-API-Key"),
QByteArray(m_s3Settings.xApiKey().toLocal8Bit()));
}
m_NetworkAMGetCreds->get(requestCreds);
}
void ImgS3Uploader::removeImagePreview()
{
// remove local file
History history;
QString packedFileName = history.packFileName(
SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, m_storageImageName);
QString fullFileName = history.path() + packedFileName;
QFile file(fullFileName);
if (file.exists()) {
file.remove();
}
m_deleteToken.clear();
m_storageImageName.clear();
resultStatus = true;
}

View File

@@ -0,0 +1,70 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define S3_API_IMG_PATH "v2/image/"
#include "../imguploader.h"
#include "imgs3settings.h"
#include <QUrl>
#include <QWidget>
class QNetworkReply;
class QNetworkProxy;
class QNetworkAccessManager;
class QHBoxLayout;
class QVBoxLayout;
class QLabel;
class QPushButton;
class QUrl;
class NotificationWidget;
class ConfigEnterprise;
class ImageLabel;
class ImgS3Uploader : public ImgUploader
{
Q_OBJECT
public:
explicit ImgS3Uploader(const QPixmap& capture, QWidget* parent = nullptr);
explicit ImgS3Uploader(QWidget* parent = nullptr);
void upload();
void deleteResource(const QString&, const QString&);
private slots:
void handleReplyUpload(QNetworkReply* reply);
void handleReplyGetCreds(QNetworkReply* reply);
void handleReplyDeleteResource(QNetworkReply* reply);
private:
void init(const QString& title, const QString& label);
void uploadToS3(QJsonDocument& response);
void removeImagePreview();
QNetworkProxy* initProxy();
void clearProxy();
QNetworkProxy* proxy();
// class members
private:
ImgS3Settings m_s3Settings;
QNetworkProxy* m_proxy;
QNetworkAccessManager* m_NetworkAMUpload;
QNetworkAccessManager* m_NetworkAMGetCreds;
QNetworkAccessManager* m_NetworkAMRemove;
};

View File

@@ -18,49 +18,56 @@
#include "imgs3uploadertool.h"
#include "imgs3uploader.h"
#include <QPainter>
#include <QSettings>
#include <QFileInfo>
ImgS3UploaderTool::ImgS3UploaderTool(QObject* parent)
: AbstractActionTool(parent)
{}
ImgS3UploaderTool::ImgS3UploaderTool(QObject *parent) : AbstractActionTool(parent) {
}
bool ImgS3UploaderTool::closeOnButtonPressed() const {
bool ImgS3UploaderTool::closeOnButtonPressed() const
{
return true;
}
QIcon ImgS3UploaderTool::icon(const QColor &background, bool inEditor) const {
QIcon ImgS3UploaderTool::icon(const QColor& background, bool inEditor) const
{
Q_UNUSED(inEditor);
return QIcon(iconPath(background) + "cloud-upload.svg");
}
QString ImgS3UploaderTool::name() const {
QString ImgS3UploaderTool::name() const
{
return tr("Image Uploader");
}
QString ImgS3UploaderTool::nameID() {
QString ImgS3UploaderTool::nameID()
{
return QLatin1String("");
}
QString ImgS3UploaderTool::description() const {
QString ImgS3UploaderTool::description() const
{
return tr("Upload the selection to S3 bucket");
}
QWidget *ImgS3UploaderTool::widget() {
ImgS3Uploader *p = new ImgS3Uploader(capture);
QWidget* ImgS3UploaderTool::widget()
{
ImgS3Uploader* p = new ImgS3Uploader(capture);
p->upload();
return p;
}
void ImgS3UploaderTool::setCapture(const QPixmap &pixmap) {
void ImgS3UploaderTool::setCapture(const QPixmap& pixmap)
{
capture = pixmap;
}
CaptureTool *ImgS3UploaderTool::copy(QObject *parent) {
CaptureTool* ImgS3UploaderTool::copy(QObject* parent)
{
return new ImgS3UploaderTool(parent);
}
void ImgS3UploaderTool::pressed(const CaptureContext &context) {
void ImgS3UploaderTool::pressed(const CaptureContext& context)
{
capture = context.selectedScreenshotArea();
emit requestAction(REQ_CAPTURE_DONE_OK);
emit requestAction(REQ_ADD_EXTERNAL_WIDGETS);

View File

@@ -19,25 +19,26 @@
#include "src/tools/abstractactiontool.h"
class ImgS3UploaderTool : public AbstractActionTool {
class ImgS3UploaderTool : public AbstractActionTool
{
Q_OBJECT
public:
explicit ImgS3UploaderTool(QObject *parent = nullptr);
explicit ImgS3UploaderTool(QObject* parent = nullptr);
bool closeOnButtonPressed() const;
QIcon icon(const QColor &background, bool inEditor) const override;
QIcon icon(const QColor& background, bool inEditor) const override;
QString name() const override;
static QString nameID();
QString description() const override;
QWidget* widget() override;
CaptureTool* copy(QObject *parent = nullptr) override;
void setCapture(const QPixmap &pixmap);
CaptureTool* copy(QObject* parent = nullptr) override;
void setCapture(const QPixmap& pixmap);
public slots:
void pressed(const CaptureContext &context) override;
void pressed(const CaptureContext& context) override;
private:
QPixmap capture;

View File

@@ -0,0 +1,33 @@
#include "storagemanager.h"
#include "imguploader.h"
#include "imgur/imguruploader.h"
#include "imgur/imguruploadertool.h"
#include "s3/imgs3uploader.h"
#include "s3/imgs3uploadertool.h"
#include "src/tools/storage/s3/imgs3settings.h"
#include "src/tools/capturetool.h"
#include <QWidget>
StorageManager::StorageManager() {}
CaptureTool* StorageManager::imgUploaderTool(const QString& imgUploaderType,
QObject* parent)
{
if (imgUploaderType == SCREENSHOT_STORAGE_TYPE_S3) {
return new ImgS3UploaderTool(parent);
} else if (imgUploaderType == SCREENSHOT_STORAGE_TYPE_IMGUR) {
return new ImgurUploaderTool(parent);
}
return nullptr;
}
const QString& StorageManager::storageUrl(const QString& imgUploaderType) {
if (imgUploaderType == SCREENSHOT_STORAGE_TYPE_S3) {
ImgS3Settings s3Settings;
m_qstr = s3Settings.url();
} else if (imgUploaderType == SCREENSHOT_STORAGE_TYPE_IMGUR) {
m_qstr = "https://i.imgur.com/";
}
return m_qstr;
}

View File

@@ -0,0 +1,25 @@
#ifndef STORAGEMANAGER_H
#define STORAGEMANAGER_H
#include <QPixmap>
#include <QString>
class QObject;
class ImgUploader;
class CaptureTool;
class StorageManager
{
public:
explicit StorageManager();
CaptureTool* imgUploaderTool(const QString& imgUploaderType,
QObject* parent = nullptr);
const QString& storageUrl(const QString& imgUploaderType);
// class members
private:
QString m_qstr;
};
#endif // STORAGEMANAGER_H

View File

@@ -17,97 +17,98 @@
#include "toolfactory.h"
#include "arrow/arrowtool.h"
#include "blur/blurtool.h"
#include "circle/circletool.h"
#include "copy/copytool.h"
#include "exit/exittool.h"
#include "imgur/imguruploadertool.h"
#include "imgs3/imgs3uploadertool.h"
#include "launcher/applaunchertool.h"
#include "line/linetool.h"
#include "marker/markertool.h"
#include "move/movetool.h"
#include "pencil/penciltool.h"
#include "pin/pintool.h"
#include "rectangle/rectangletool.h"
#include "redo/redotool.h"
#include "save/savetool.h"
#include "selection/selectiontool.h"
#include "sizeindicator/sizeindicatortool.h"
#include "undo/undotool.h"
#include "launcher/applaunchertool.h"
#include "blur/blurtool.h"
#include "redo/redotool.h"
#include "pin/pintool.h"
#include "src/utils/confighandler.h"
#include "storage/storagemanager.h"
#include "text/texttool.h"
#include "undo/undotool.h"
ToolFactory::ToolFactory(QObject *parent) : QObject(parent) {
ToolFactory::ToolFactory(QObject* parent)
: QObject(parent)
{}
}
CaptureTool* ToolFactory::CreateTool(
CaptureButton::ButtonType t,
QObject *parent)
CaptureTool* ToolFactory::CreateTool(CaptureButton::ButtonType t,
QObject* parent)
{
CaptureTool *tool;
StorageManager storageManager;
CaptureTool* tool;
switch (t) {
case CaptureButton::TYPE_ARROW:
tool = new ArrowTool(parent);
break;
case CaptureButton::TYPE_CIRCLE:
tool = new CircleTool(parent);
break;
case CaptureButton::TYPE_COPY:
tool = new CopyTool(parent);
break;
case CaptureButton::TYPE_EXIT:
tool = new ExitTool(parent);
break;
case CaptureButton::TYPE_IMAGEUPLOADER:
// tool = new ImgurUploaderTool(parent);
tool = new ImgS3UploaderTool(parent);
break;
case CaptureButton::TYPE_DRAWER:
tool = new LineTool(parent);
break;
case CaptureButton::TYPE_MARKER:
tool = new MarkerTool(parent);
break;
case CaptureButton::TYPE_MOVESELECTION:
tool = new MoveTool(parent);
break;
case CaptureButton::TYPE_PENCIL:
tool = new PencilTool(parent);
break;
case CaptureButton::TYPE_RECTANGLE:
tool = new RectangleTool(parent);
break;
case CaptureButton::TYPE_SAVE:
tool = new SaveTool(parent);
break;
case CaptureButton::TYPE_SELECTION:
tool = new SelectionTool(parent);
break;
case CaptureButton::TYPE_SELECTIONINDICATOR:
tool = new SizeIndicatorTool(parent);
break;
case CaptureButton::TYPE_UNDO:
tool = new UndoTool(parent);
break;
case CaptureButton::TYPE_REDO:
tool = new RedoTool(parent);
break;
case CaptureButton::TYPE_OPEN_APP:
tool = new AppLauncher(parent);
break;
case CaptureButton::TYPE_BLUR:
tool = new BlurTool(parent);
break;
case CaptureButton::TYPE_PIN:
tool = new PinTool(parent);
break;
case CaptureButton::TYPE_TEXT:
tool = new TextTool(parent);
break;
default:
tool = nullptr;
break;
case CaptureButton::TYPE_ARROW:
tool = new ArrowTool(parent);
break;
case CaptureButton::TYPE_CIRCLE:
tool = new CircleTool(parent);
break;
case CaptureButton::TYPE_COPY:
tool = new CopyTool(parent);
break;
case CaptureButton::TYPE_EXIT:
tool = new ExitTool(parent);
break;
case CaptureButton::TYPE_IMAGEUPLOADER:
tool = storageManager.imgUploaderTool(
ConfigHandler().uploadStorage(), parent);
break;
case CaptureButton::TYPE_DRAWER:
tool = new LineTool(parent);
break;
case CaptureButton::TYPE_MARKER:
tool = new MarkerTool(parent);
break;
case CaptureButton::TYPE_MOVESELECTION:
tool = new MoveTool(parent);
break;
case CaptureButton::TYPE_PENCIL:
tool = new PencilTool(parent);
break;
case CaptureButton::TYPE_RECTANGLE:
tool = new RectangleTool(parent);
break;
case CaptureButton::TYPE_SAVE:
tool = new SaveTool(parent);
break;
case CaptureButton::TYPE_SELECTION:
tool = new SelectionTool(parent);
break;
case CaptureButton::TYPE_SELECTIONINDICATOR:
tool = new SizeIndicatorTool(parent);
break;
case CaptureButton::TYPE_UNDO:
tool = new UndoTool(parent);
break;
case CaptureButton::TYPE_REDO:
tool = new RedoTool(parent);
break;
case CaptureButton::TYPE_OPEN_APP:
tool = new AppLauncher(parent);
break;
case CaptureButton::TYPE_BLUR:
tool = new BlurTool(parent);
break;
case CaptureButton::TYPE_PIN:
tool = new PinTool(parent);
break;
case CaptureButton::TYPE_TEXT:
tool = new TextTool(parent);
break;
default:
tool = nullptr;
break;
}
return tool;
}

View File

@@ -17,92 +17,82 @@
#include "confighandler.h"
#include "src/tools/capturetool.h"
#include "src/tools/storage/imgstorages.h"
#include "src/utils/configshortcuts.h"
#include <algorithm>
#include <QFile>
#include <QDir>
#include <QCoreApplication>
#include <QDir>
#include <QFile>
#include <QKeySequence>
#include <algorithm>
ConfigHandler::ConfigHandler(){
ConfigHandler::ConfigHandler()
{
m_settings.setDefaultFormat(QSettings::IniFormat);
}
QVector<CaptureButton::ButtonType> ConfigHandler::getButtons() {
QVector<CaptureButton::ButtonType> ConfigHandler::getButtons()
{
QVector<CaptureButton::ButtonType> buttons;
if (m_settings.contains(QStringLiteral("buttons"))) {
// TODO: remove toList in v1.0
QVector<int> buttonsInt =
m_settings.value(QStringLiteral("buttons")).value<QList<int> >().toVector();
QVector<int> buttonsInt = m_settings.value(QStringLiteral("buttons"))
.value<QList<int>>()
.toVector();
bool modified = normalizeButtons(buttonsInt);
if (modified) {
m_settings.setValue(QStringLiteral("buttons"), QVariant::fromValue(buttonsInt.toList()));
m_settings.setValue(QStringLiteral("buttons"),
QVariant::fromValue(buttonsInt.toList()));
}
buttons = fromIntToButton(buttonsInt);
} else {
// Default tools
buttons << CaptureButton::TYPE_PENCIL
<< CaptureButton::TYPE_DRAWER
<< CaptureButton::TYPE_ARROW
<< CaptureButton::TYPE_SELECTION
<< CaptureButton::TYPE_RECTANGLE
<< CaptureButton::TYPE_CIRCLE
<< CaptureButton::TYPE_MARKER
<< CaptureButton::TYPE_BLUR
buttons << CaptureButton::TYPE_PENCIL << CaptureButton::TYPE_DRAWER
<< CaptureButton::TYPE_ARROW << CaptureButton::TYPE_SELECTION
<< CaptureButton::TYPE_RECTANGLE << CaptureButton::TYPE_CIRCLE
<< CaptureButton::TYPE_MARKER << CaptureButton::TYPE_BLUR
<< CaptureButton::TYPE_SELECTIONINDICATOR
<< CaptureButton::TYPE_MOVESELECTION
<< CaptureButton::TYPE_UNDO
<< CaptureButton::TYPE_REDO
<< CaptureButton::TYPE_COPY
<< CaptureButton::TYPE_SAVE
<< CaptureButton::TYPE_EXIT
<< CaptureButton::TYPE_MOVESELECTION << CaptureButton::TYPE_UNDO
<< CaptureButton::TYPE_REDO << CaptureButton::TYPE_COPY
<< CaptureButton::TYPE_SAVE << CaptureButton::TYPE_EXIT
<< CaptureButton::TYPE_IMAGEUPLOADER
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
<< CaptureButton::TYPE_OPEN_APP
#endif
<< CaptureButton::TYPE_PIN
<< CaptureButton::TYPE_TEXT;
<< CaptureButton::TYPE_PIN << CaptureButton::TYPE_TEXT;
}
using bt = CaptureButton::ButtonType;
std::sort(buttons.begin(), buttons.end(), [](bt a, bt b){
std::sort(buttons.begin(), buttons.end(), [](bt a, bt b) {
return CaptureButton::getPriorityByButton(a) <
CaptureButton::getPriorityByButton(b);
CaptureButton::getPriorityByButton(b);
});
return buttons;
}
void ConfigHandler::setButtons(const QVector<CaptureButton::ButtonType> &buttons) {
void ConfigHandler::setButtons(
const QVector<CaptureButton::ButtonType>& buttons)
{
QVector<int> l = fromButtonToInt(buttons);
normalizeButtons(l);
// TODO: remove toList in v1.0
m_settings.setValue(QStringLiteral("buttons"), QVariant::fromValue(l.toList()));
m_settings.setValue(QStringLiteral("buttons"),
QVariant::fromValue(l.toList()));
}
QVector<QColor> ConfigHandler::getUserColors() {
QVector<QColor> ConfigHandler::getUserColors()
{
QVector<QColor> colors;
const QVector<QColor> &defaultColors = {
Qt::white,
Qt::red,
Qt::green,
Qt::blue,
Qt::black,
Qt::darkRed,
Qt::darkGreen,
Qt::darkBlue,
Qt::darkGray,
Qt::cyan,
Qt::magenta,
Qt::yellow,
Qt::lightGray,
Qt::darkCyan,
Qt::darkMagenta,
Qt::darkYellow,
const QVector<QColor>& defaultColors = {
Qt::white, Qt::red, Qt::green, Qt::blue,
Qt::black, Qt::darkRed, Qt::darkGreen, Qt::darkBlue,
Qt::darkGray, Qt::cyan, Qt::magenta, Qt::yellow,
Qt::lightGray, Qt::darkCyan, Qt::darkMagenta, Qt::darkYellow,
QColor()
};
if (m_settings.contains(QStringLiteral("userColors"))) {
for (const QString &hex : m_settings.value(QStringLiteral("userColors")).toStringList()) {
for (const QString& hex :
m_settings.value(QStringLiteral("userColors")).toStringList()) {
if (QColor::isValidColor(hex)) {
colors.append(QColor(hex));
}
@@ -118,40 +108,49 @@ QVector<QColor> ConfigHandler::getUserColors() {
return colors;
}
void ConfigHandler::setUserColors(const QVector<QColor> &l) {
void ConfigHandler::setUserColors(const QVector<QColor>& l)
{
QStringList hexColors;
for (const QColor &color : l) {
for (const QColor& color : l) {
hexColors.append(color.name());
}
m_settings.setValue(QStringLiteral("userColors"), QVariant::fromValue(hexColors));
m_settings.setValue(QStringLiteral("userColors"),
QVariant::fromValue(hexColors));
}
QString ConfigHandler::savePathValue() {
QString savePath = m_settings.value(QStringLiteral("savePathFixed")).toString();
if( savePath.isEmpty() ) {
QString ConfigHandler::savePathValue()
{
QString savePath =
m_settings.value(QStringLiteral("savePathFixed")).toString();
if (savePath.isEmpty()) {
savePath = m_settings.value(QStringLiteral("savePath")).toString();
}
return savePath;
}
void ConfigHandler::setSavePath(const QString &savePath) {
QString savePathFixed = m_settings.value(QStringLiteral("savePathFixed")).toString();
if( savePathFixed.isEmpty() ) {
void ConfigHandler::setSavePath(const QString& savePath)
{
QString savePathFixed =
m_settings.value(QStringLiteral("savePathFixed")).toString();
if (savePathFixed.isEmpty()) {
m_settings.setValue(QStringLiteral("savePath"), savePath);
}
}
QString ConfigHandler::savePathFixed() {
QString ConfigHandler::savePathFixed()
{
return m_settings.value(QStringLiteral("savePathFixed")).toString();
}
void ConfigHandler::setSavePathFixed(const QString &savePathFixed) {
void ConfigHandler::setSavePathFixed(const QString& savePathFixed)
{
m_settings.setValue(QStringLiteral("savePathFixed"), savePathFixed);
}
QColor ConfigHandler::uiMainColorValue() {
QColor ConfigHandler::uiMainColorValue()
{
QColor res = QColor(116, 0, 150);
if (m_settings.contains(QStringLiteral("uiColor"))) {
@@ -164,15 +163,18 @@ QColor ConfigHandler::uiMainColorValue() {
return res;
}
void ConfigHandler::setUIMainColor(const QColor &c) {
void ConfigHandler::setUIMainColor(const QColor& c)
{
m_settings.setValue(QStringLiteral("uiColor"), c.name());
}
QColor ConfigHandler::uiContrastColorValue() {
QColor ConfigHandler::uiContrastColorValue()
{
QColor res = QColor(39, 0, 50);
if (m_settings.contains(QStringLiteral("contastUiColor"))) {
QString hex = m_settings.value(QStringLiteral("contastUiColor")).toString();
QString hex =
m_settings.value(QStringLiteral("contastUiColor")).toString();
if (QColor::isValidColor(hex)) {
res = QColor(hex);
@@ -182,11 +184,13 @@ QColor ConfigHandler::uiContrastColorValue() {
return res;
}
void ConfigHandler::setUIContrastColor(const QColor &c) {
void ConfigHandler::setUIContrastColor(const QColor& c)
{
m_settings.setValue(QStringLiteral("contastUiColor"), c.name());
}
QColor ConfigHandler::drawColorValue() {
QColor ConfigHandler::drawColorValue()
{
QColor res(Qt::red);
if (m_settings.contains(QStringLiteral("drawColor"))) {
@@ -200,11 +204,13 @@ QColor ConfigHandler::drawColorValue() {
return res;
}
void ConfigHandler::setDrawColor(const QColor &c) {
void ConfigHandler::setDrawColor(const QColor& c)
{
m_settings.setValue(QStringLiteral("drawColor"), c.name());
}
bool ConfigHandler::showHelpValue() {
bool ConfigHandler::showHelpValue()
{
bool res = true;
if (m_settings.contains(QStringLiteral("showHelp"))) {
res = m_settings.value(QStringLiteral("showHelp")).toBool();
@@ -212,31 +218,39 @@ bool ConfigHandler::showHelpValue() {
return res;
}
void ConfigHandler::setShowHelp(const bool showHelp) {
void ConfigHandler::setShowHelp(const bool showHelp)
{
m_settings.setValue(QStringLiteral("showHelp"), showHelp);
}
bool ConfigHandler::desktopNotificationValue() {
bool ConfigHandler::desktopNotificationValue()
{
bool res = true;
if (m_settings.contains(QStringLiteral("showDesktopNotification"))) {
res = m_settings.value(QStringLiteral("showDesktopNotification")).toBool();
res =
m_settings.value(QStringLiteral("showDesktopNotification")).toBool();
}
return res;
}
void ConfigHandler::setDesktopNotification(const bool showDesktopNotification) {
m_settings.setValue(QStringLiteral("showDesktopNotification"), showDesktopNotification);
void ConfigHandler::setDesktopNotification(const bool showDesktopNotification)
{
m_settings.setValue(QStringLiteral("showDesktopNotification"),
showDesktopNotification);
}
QString ConfigHandler::filenamePatternValue() {
QString ConfigHandler::filenamePatternValue()
{
return m_settings.value(QStringLiteral("filenamePattern")).toString();
}
void ConfigHandler::setFilenamePattern(const QString &pattern) {
void ConfigHandler::setFilenamePattern(const QString& pattern)
{
return m_settings.setValue(QStringLiteral("filenamePattern"), pattern);
}
bool ConfigHandler::disabledTrayIconValue() {
bool ConfigHandler::disabledTrayIconValue()
{
bool res = false;
if (m_settings.contains(QStringLiteral("disabledTrayIcon"))) {
res = m_settings.value(QStringLiteral("disabledTrayIcon")).toBool();
@@ -244,11 +258,13 @@ bool ConfigHandler::disabledTrayIconValue() {
return res;
}
void ConfigHandler::setDisabledTrayIcon(const bool disabledTrayIcon) {
void ConfigHandler::setDisabledTrayIcon(const bool disabledTrayIcon)
{
m_settings.setValue(QStringLiteral("disabledTrayIcon"), disabledTrayIcon);
}
int ConfigHandler::drawThicknessValue() {
int ConfigHandler::drawThicknessValue()
{
int res = 0;
if (m_settings.contains(QStringLiteral("drawThickness"))) {
res = m_settings.value(QStringLiteral("drawThickness")).toInt();
@@ -256,19 +272,23 @@ int ConfigHandler::drawThicknessValue() {
return res;
}
void ConfigHandler::setdrawThickness(const int thickness) {
void ConfigHandler::setdrawThickness(const int thickness)
{
m_settings.setValue(QStringLiteral("drawThickness"), thickness);
}
bool ConfigHandler::keepOpenAppLauncherValue() {
bool ConfigHandler::keepOpenAppLauncherValue()
{
return m_settings.value(QStringLiteral("keepOpenAppLauncher")).toBool();
}
void ConfigHandler::setKeepOpenAppLauncher(const bool keepOpen) {
void ConfigHandler::setKeepOpenAppLauncher(const bool keepOpen)
{
m_settings.setValue(QStringLiteral("keepOpenAppLauncher"), keepOpen);
}
bool ConfigHandler::startupLaunchValue() {
bool ConfigHandler::startupLaunchValue()
{
bool res = false;
if (m_settings.contains(QStringLiteral("startupLaunch"))) {
@@ -282,7 +302,8 @@ bool ConfigHandler::startupLaunchValue() {
return res;
}
bool ConfigHandler::verifyLaunchFile() {
bool ConfigHandler::verifyLaunchFile()
{
bool res = false;
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
@@ -290,15 +311,16 @@ bool ConfigHandler::verifyLaunchFile() {
res = QFile(path).exists();
#elif defined(Q_OS_WIN)
QSettings bootUpSettings(
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
res = bootUpSettings.value("Flameshot").toString() ==
QDir::toNativeSeparators(QCoreApplication::applicationFilePath());
QDir::toNativeSeparators(QCoreApplication::applicationFilePath());
#endif
return res;
}
void ConfigHandler::setStartupLaunch(const bool start) {
void ConfigHandler::setStartupLaunch(const bool start)
{
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
QString path = QDir::homePath() + "/.config/autostart/";
QDir autostartDir(path);
@@ -319,15 +341,16 @@ void ConfigHandler::setStartupLaunch(const bool start) {
}
#elif defined(Q_OS_WIN)
QSettings bootUpSettings(
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
// set workdir for flameshot on startup
QSettings bootUpPath(
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths",
QSettings::NativeFormat);
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App "
"Paths",
QSettings::NativeFormat);
if (start) {
QString app_path =
QDir::toNativeSeparators(QCoreApplication::applicationFilePath());
QDir::toNativeSeparators(QCoreApplication::applicationFilePath());
bootUpSettings.setValue("Flameshot", app_path);
// set application workdir
@@ -347,18 +370,24 @@ void ConfigHandler::setStartupLaunch(const bool start) {
m_settings.setValue(QStringLiteral("startupLaunch"), start);
}
bool ConfigHandler::showStartupLaunchMessage() {
bool ConfigHandler::showStartupLaunchMessage()
{
if (!m_settings.contains(QStringLiteral("showStartupLaunchMessage"))) {
m_settings.setValue(QStringLiteral("showStartupLaunchMessage"), true);
}
return m_settings.value(QStringLiteral("showStartupLaunchMessage")).toBool();
return m_settings.value(QStringLiteral("showStartupLaunchMessage"))
.toBool();
}
void ConfigHandler::setShowStartupLaunchMessage(const bool showStartupLaunchMessage){
m_settings.setValue(QStringLiteral("showStartupLaunchMessage"), showStartupLaunchMessage);
void ConfigHandler::setShowStartupLaunchMessage(
const bool showStartupLaunchMessage)
{
m_settings.setValue(QStringLiteral("showStartupLaunchMessage"),
showStartupLaunchMessage);
}
int ConfigHandler::contrastOpacityValue() {
int ConfigHandler::contrastOpacityValue()
{
int opacity = 190;
if (m_settings.contains(QStringLiteral("contrastOpacity"))) {
opacity = m_settings.value(QStringLiteral("contrastOpacity")).toInt();
@@ -367,31 +396,38 @@ int ConfigHandler::contrastOpacityValue() {
return opacity;
}
void ConfigHandler::setContrastOpacity(const int transparency) {
void ConfigHandler::setContrastOpacity(const int transparency)
{
m_settings.setValue(QStringLiteral("contrastOpacity"), transparency);
}
bool ConfigHandler::closeAfterScreenshotValue() {
bool ConfigHandler::closeAfterScreenshotValue()
{
return m_settings.value(QStringLiteral("closeAfterScreenshot")).toBool();
}
void ConfigHandler::setCloseAfterScreenshot(const bool close) {
void ConfigHandler::setCloseAfterScreenshot(const bool close)
{
m_settings.setValue(QStringLiteral("closeAfterScreenshot"), close);
}
bool ConfigHandler::copyAndCloseAfterUploadEnabled() {
bool ConfigHandler::copyAndCloseAfterUploadEnabled()
{
bool res = true;
if (m_settings.contains(QStringLiteral("copyAndCloseAfterUpload"))) {
res = m_settings.value(QStringLiteral("copyAndCloseAfterUpload")).toBool();
res =
m_settings.value(QStringLiteral("copyAndCloseAfterUpload")).toBool();
}
return res;
}
void ConfigHandler::setCopyAndCloseAfterUploadEnabled(const bool value) {
void ConfigHandler::setCopyAndCloseAfterUploadEnabled(const bool value)
{
m_settings.setValue(QStringLiteral("copyAndCloseAfterUpload"), value);
}
bool ConfigHandler::copyPathAfterSaveEnabled() {
bool ConfigHandler::copyPathAfterSaveEnabled()
{
bool res = false;
if (m_settings.contains(QStringLiteral("copyPathAfterSave"))) {
res = m_settings.value(QStringLiteral("copyPathAfterSave")).toBool();
@@ -399,32 +435,53 @@ bool ConfigHandler::copyPathAfterSaveEnabled() {
return res;
}
void ConfigHandler::setCopyPathAfterSaveEnabled(const bool value) {
void ConfigHandler::setCopyPathAfterSaveEnabled(const bool value)
{
m_settings.setValue(QStringLiteral("copyPathAfterSave"), value);
}
void ConfigHandler::setDefaults() {
void ConfigHandler::setUploadStorage(const QString& uploadStorage)
{
m_settings.setValue(QStringLiteral("uploadStorage"), uploadStorage);
}
const QString& ConfigHandler::uploadStorage()
{
m_strRes = m_settings.value(QStringLiteral("uploadStorage")).toString();
if (m_strRes.isEmpty()) {
m_strRes = SCREENSHOT_STORAGE_TYPE_IMGUR;
setUploadStorage(m_strRes);
}
return m_strRes;
}
void ConfigHandler::setDefaults()
{
m_settings.clear();
}
void ConfigHandler::setAllTheButtons() {
void ConfigHandler::setAllTheButtons()
{
QVector<int> buttons;
auto listTypes = CaptureButton::getIterableButtonTypes();
for (const CaptureButton::ButtonType t: listTypes) {
for (const CaptureButton::ButtonType t : listTypes) {
buttons << static_cast<int>(t);
}
// TODO: remove toList in v1.0
m_settings.setValue(QStringLiteral("buttons"), QVariant::fromValue(buttons.toList()));
m_settings.setValue(QStringLiteral("buttons"),
QVariant::fromValue(buttons.toList()));
}
QString ConfigHandler::configFilePath() const {
QString ConfigHandler::configFilePath() const
{
return m_settings.fileName();
}
bool ConfigHandler::normalizeButtons(QVector<int> &buttons) {
bool ConfigHandler::normalizeButtons(QVector<int>& buttons)
{
auto listTypes = CaptureButton::getIterableButtonTypes();
QVector<int> listTypesInt;
for(auto i: listTypes)
for (auto i : listTypes)
listTypesInt << static_cast<int>(i);
bool hasChanged = false;
@@ -438,32 +495,34 @@ bool ConfigHandler::normalizeButtons(QVector<int> &buttons) {
}
QVector<CaptureButton::ButtonType> ConfigHandler::fromIntToButton(
const QVector<int> &l)
const QVector<int>& l)
{
QVector<CaptureButton::ButtonType> buttons;
for (auto const i: l)
for (auto const i : l)
buttons << static_cast<CaptureButton::ButtonType>(i);
return buttons;
}
QVector<int> ConfigHandler::fromButtonToInt(
const QVector<CaptureButton::ButtonType> &l)
const QVector<CaptureButton::ButtonType>& l)
{
QVector<int> buttons;
for (auto const i: l)
for (auto const i : l)
buttons << static_cast<int>(i);
return buttons;
}
QVector<QStringList> ConfigHandler::shortcuts() {
QVector<QStringList> ConfigHandler::shortcuts()
{
ConfigShortcuts configShortcuts;
m_shortcuts = configShortcuts.captureShortcutsDefault(getButtons());
return m_shortcuts;
}
void ConfigHandler::setShortcutsDefault() {
void ConfigHandler::setShortcutsDefault()
{
ConfigShortcuts configShortcuts;
for (auto shortcutItem: shortcuts()) {
for (auto shortcutItem : shortcuts()) {
QString shortcutName = shortcutItem.at(0);
QString shortcutDescription = shortcutItem.at(1);
QString shortcutValueDefault = shortcutItem.at(2);
@@ -471,49 +530,48 @@ void ConfigHandler::setShortcutsDefault() {
QString shortcutValue = shortcut(shortcutName);
QKeySequence ks = QKeySequence();
if(shortcutValue.isNull()) {
if (shortcutValue.isNull()) {
ks = QKeySequence(shortcutValueDefault);
if (!setShortcut(shortcutName, ks.toString())) {
shortcutValue = shortcutValueDefault;
}
}
m_shortcuts << (QStringList()
<< shortcutName
<< shortcutDescription
<< shortcutValue);
m_shortcuts << (QStringList() << shortcutName << shortcutDescription
<< shortcutValue);
}
}
bool ConfigHandler::setShortcut(const QString& shortcutName, const QString& shortutValue) {
bool ConfigHandler::setShortcut(const QString& shortcutName,
const QString& shortutValue)
{
bool error = false;
m_settings.beginGroup("Shortcuts");
QVector<QKeySequence> reservedShortcuts;
reservedShortcuts << QKeySequence(Qt::Key_Backspace) << QKeySequence(Qt::Key_Escape);
if(shortutValue.isEmpty()){
reservedShortcuts << QKeySequence(Qt::Key_Backspace)
<< QKeySequence(Qt::Key_Escape);
if (shortutValue.isEmpty()) {
m_settings.setValue(shortcutName, "");
}
else if (reservedShortcuts.contains(QKeySequence(shortutValue))) {
} else if (reservedShortcuts.contains(QKeySequence(shortutValue))) {
// do not allow to set reserved shortcuts
error = true;
}
else {
} else {
// Make no difference for Return and Enter keys
QString shortcutItem = shortutValue;
if(shortcutItem == "Enter") {
if (shortcutItem == "Enter") {
shortcutItem = QKeySequence(Qt::Key_Return).toString();
}
// do not allow to set overlapped shortcuts
foreach (auto currentShortcutName, m_settings.allKeys()) {
if(m_settings.value(currentShortcutName) == shortcutItem) {
if (m_settings.value(currentShortcutName) == shortcutItem) {
m_settings.setValue(shortcutName, "");
error = true;
break;
}
}
if(!error) {
if (!error) {
m_settings.setValue(shortcutName, shortcutItem);
}
}
@@ -521,7 +579,8 @@ bool ConfigHandler::setShortcut(const QString& shortcutName, const QString& shor
return !error;
}
const QString& ConfigHandler::shortcut(const QString& shortcutName) {
const QString& ConfigHandler::shortcut(const QString& shortcutName)
{
m_settings.beginGroup("Shortcuts");
m_strRes = m_settings.value(shortcutName).toString();
m_settings.endGroup();

View File

@@ -18,34 +18,35 @@
#pragma once
#include "src/widgets/capture/capturebutton.h"
#include <QVector>
#include <QStringList>
#include <QSettings>
#include <QStringList>
#include <QVector>
class ConfigHandler : public QObject {
class ConfigHandler : public QObject
{
public:
explicit ConfigHandler();
QVector<CaptureButton::ButtonType> getButtons();
void setButtons(const QVector<CaptureButton::ButtonType> &);
void setButtons(const QVector<CaptureButton::ButtonType>&);
QVector<QColor> getUserColors();
void setUserColors(const QVector<QColor> &);
void setUserColors(const QVector<QColor>&);
QString savePathValue();
void setSavePath(const QString &);
void setSavePath(const QString&);
QString savePathFixed();
void setSavePathFixed(const QString &);
void setSavePathFixed(const QString&);
QColor uiMainColorValue();
void setUIMainColor(const QColor &);
void setUIMainColor(const QColor&);
QColor uiContrastColorValue();
void setUIContrastColor(const QColor &);
void setUIContrastColor(const QColor&);
QColor drawColorValue();
void setDrawColor(const QColor &);
void setDrawColor(const QColor&);
bool showHelpValue();
void setShowHelp(const bool);
@@ -54,7 +55,7 @@ public:
void setDesktopNotification(const bool);
QString filenamePatternValue();
void setFilenamePattern(const QString &);
void setFilenamePattern(const QString&);
bool disabledTrayIconValue();
void setDisabledTrayIcon(const bool);
@@ -84,6 +85,9 @@ public:
bool copyPathAfterSaveEnabled();
void setCopyPathAfterSaveEnabled(const bool);
void setUploadStorage(const QString&);
const QString& uploadStorage();
void setDefaults();
void setAllTheButtons();
@@ -99,8 +103,8 @@ private:
QSettings m_settings;
QVector<QStringList> m_shortcuts;
bool normalizeButtons(QVector<int> &);
bool normalizeButtons(QVector<int>&);
QVector<CaptureButton::ButtonType> fromIntToButton(const QVector<int> &l);
QVector<int> fromButtonToInt(const QVector<CaptureButton::ButtonType> &l);
QVector<CaptureButton::ButtonType> fromIntToButton(const QVector<int>& l);
QVector<int> fromButtonToInt(const QVector<CaptureButton::ButtonType>& l);
};

View File

@@ -4,7 +4,6 @@
#include <QFile>
#include <QStringList>
History::History()
{
// Get cache history path
@@ -21,27 +20,32 @@ History::History()
dir.mkpath(".");
}
const QString &History::path() {
const QString& History::path()
{
return m_historyPath;
}
void History::save(const QPixmap &pixmap, const QString &fileName) {
void History::save(const QPixmap& pixmap, const QString& fileName)
{
QFile file(path() + fileName);
file.open(QIODevice::WriteOnly);
pixmap.save(&file, "PNG");
history();
}
const QList<QString> &History::history() {
const QList<QString>& History::history()
{
QDir directory(path());
QStringList images = directory.entryList(QStringList() << "*.png" << "*.PNG", QDir::Files, QDir::Time);
QStringList images = directory.entryList(QStringList() << "*.png"
<< "*.PNG",
QDir::Files,
QDir::Time);
int cnt = 0;
m_thumbs.clear();
foreach(QString fileName, images) {
if(++cnt <= HISTORY_MAX_SIZE) {
foreach (QString fileName, images) {
if (++cnt <= HISTORY_MAX_SIZE) {
m_thumbs.append(fileName);
}
else {
} else {
QFile file(path() + fileName);
file.remove();
}
@@ -49,42 +53,46 @@ const QList<QString> &History::history() {
return m_thumbs;
}
const HISTORY_FILE_NAME &History::unpackFileName(const QString &fileNamePacked) {
const HISTORY_FILE_NAME& History::unpackFileName(const QString& fileNamePacked)
{
int nPathIndex = fileNamePacked.lastIndexOf("/");
QStringList unpackedFileName;
if(nPathIndex == -1) {
if (nPathIndex == -1) {
unpackedFileName = fileNamePacked.split("-");
} else {
unpackedFileName = fileNamePacked.mid(nPathIndex + 1).split("-");
}
switch (unpackedFileName.length()) {
case 3:
m_unpackedFileName.file = unpackedFileName[2];
m_unpackedFileName.token = unpackedFileName[1];
m_unpackedFileName.type = unpackedFileName[0];
break;
case 2:
m_unpackedFileName.file = unpackedFileName[1];
m_unpackedFileName.token = "";
m_unpackedFileName.type = unpackedFileName[0];
break;
default:
m_unpackedFileName.file = unpackedFileName[0];
m_unpackedFileName.token = "";
m_unpackedFileName.type = SCREENSHOT_STORAGE_TYPE_LOCAL;
break;
case 3:
m_unpackedFileName.file = unpackedFileName[2];
m_unpackedFileName.token = unpackedFileName[1];
m_unpackedFileName.type = unpackedFileName[0];
break;
case 2:
m_unpackedFileName.file = unpackedFileName[1];
m_unpackedFileName.token = "";
m_unpackedFileName.type = unpackedFileName[0];
break;
default:
m_unpackedFileName.file = unpackedFileName[0];
m_unpackedFileName.token = "";
m_unpackedFileName.type = "";
break;
}
return m_unpackedFileName;
}
const QString &History::packFileName(const QString &storageType, const QString &deleteToken, const QString &fileName) {
const QString& History::packFileName(const QString& storageType,
const QString& deleteToken,
const QString& fileName)
{
m_packedFileName = fileName;
if(storageType.length() > 0) {
if(deleteToken.length() > 0) {
m_packedFileName = storageType + "-" + deleteToken + "-" + m_packedFileName;
}
else {
if (storageType.length() > 0) {
if (deleteToken.length() > 0) {
m_packedFileName =
storageType + "-" + deleteToken + "-" + m_packedFileName;
} else {
m_packedFileName = storageType + "-" + m_packedFileName;
}
}

View File

@@ -4,15 +4,11 @@
#define HISTORY_MAX_SIZE 25
#include <QList>
#include <QString>
#include <QPixmap>
#include <QString>
#define SCREENSHOT_STORAGE_TYPE_LOCAL ""
#define SCREENSHOT_STORAGE_TYPE_S3 "s3"
#define SCREENSHOT_STORAGE_TYPE_IMGUR "imgur"
struct HISTORY_FILE_NAME {
struct HISTORY_FILE_NAME
{
QString file;
QString token;
QString type;
@@ -23,12 +19,12 @@ class History
public:
History();
void save(const QPixmap &, const QString &);
const QList<QString> &history();
const QString &path();
void save(const QPixmap&, const QString&);
const QList<QString>& history();
const QString& path();
const HISTORY_FILE_NAME &unpackFileName(const QString &);
const QString &packFileName(const QString &, const QString &, const QString &);
const HISTORY_FILE_NAME& unpackFileName(const QString&);
const QString& packFileName(const QString&, const QString&, const QString&);
private:
QString m_historyPath;

File diff suppressed because it is too large Load Diff

View File

@@ -1,26 +1,30 @@
#include "historywidget.h"
#include "src/tools/storage/storagemanager.h"
#include "src/tools/storage/imguploader.h"
#include "src/tools/storage/s3/imgs3uploader.h"
#include "src/utils/history.h"
#include "src/widgets/notificationwidget.h"
#include "src/tools/imgs3/imgs3uploader.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPixmap>
#include <QLabel>
#include <QScrollArea>
#include <QFileInfo>
#include <QDateTime>
#include <QPushButton>
#include <QIcon>
#include <QSettings>
#include <QApplication>
#include <QDesktopWidget>
#include <QDesktopServices>
#include <QClipboard>
#include <QUrl>
#include <QDateTime>
#include <QDesktopServices>
#include <QDesktopWidget>
#include <QFileInfo>
#include <QHBoxLayout>
#include <QIcon>
#include <QLabel>
#include <QLayoutItem>
#include <QPixmap>
#include <QPushButton>
#include <QScrollArea>
#include <QSettings>
#include <QUrl>
#include <QVBoxLayout>
#include <QDebug>
HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent)
HistoryWidget::HistoryWidget(QWidget* parent)
: QDialog(parent)
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setWindowTitle(tr("Latest Uploads"));
@@ -30,114 +34,128 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent)
m_pVBox = new QVBoxLayout(this);
m_pVBox->setAlignment(Qt::AlignTop);
QScrollArea *scrollArea = new QScrollArea( this );
scrollArea->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
scrollArea->setWidgetResizable( true );
scrollArea->setGeometry( this->frameGeometry() );
QScrollArea* scrollArea = new QScrollArea(this);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea->setWidgetResizable(true);
scrollArea->setGeometry(this->frameGeometry());
QWidget *widget = new QWidget();
scrollArea->setWidget( widget );
widget->setLayout( m_pVBox );
QWidget* widget = new QWidget();
scrollArea->setWidget(widget);
widget->setLayout(m_pVBox);
loadHistory();
}
void HistoryWidget::loadHistory() {
void HistoryWidget::loadHistory()
{
// read history files
History history = History();
QList<QString> historyFiles = history.history();
if(historyFiles.isEmpty()) {
if (historyFiles.isEmpty()) {
setEmptyMessage();
}
else {
} else {
// generate history list
foreach(QString fileName, historyFiles) {
foreach (QString fileName, historyFiles) {
addLine(history.path(), fileName);
}
}
}
void HistoryWidget::setEmptyMessage() {
QPushButton *buttonEmpty = new QPushButton;
void HistoryWidget::setEmptyMessage()
{
QPushButton* buttonEmpty = new QPushButton;
buttonEmpty->setText(tr("Screenshots history is empty"));
buttonEmpty->setMinimumSize(1, HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonEmpty, &QPushButton::clicked, this, [=](){
this->close();
});
connect(buttonEmpty, &QPushButton::clicked, this, [=]() { this->close(); });
m_pVBox->addWidget(buttonEmpty);
}
void HistoryWidget::addLine(const QString &path, const QString& fileName) {
QHBoxLayout *phbl = new QHBoxLayout();
void HistoryWidget::addLine(const QString& path, const QString& fileName)
{
QHBoxLayout* phbl = new QHBoxLayout();
QString fullFileName = path + fileName;
History history;
HISTORY_FILE_NAME unpackFileName = history.unpackFileName(fileName);
QString url = m_s3Settings.url() + unpackFileName.file;
QString url;
StorageManager storageManager;
url = storageManager.storageUrl(unpackFileName.type) + unpackFileName.file;
// load pixmap
QPixmap pixmap;
pixmap.load( fullFileName, "png" );
pixmap.load(fullFileName, "png");
if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >= pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >=
pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
pixmap = pixmap.scaledToHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
} else {
pixmap = pixmap.scaledToWidth(HISTORYPIXMAP_MAX_PREVIEW_WIDTH);
}
// get file info
QFileInfo *pFileInfo = new QFileInfo(fullFileName);
QString lastModified = pFileInfo->lastModified().toString(" yyyy-MM-dd\nhh:mm:ss");
QFileInfo* pFileInfo = new QFileInfo(fullFileName);
QString lastModified =
pFileInfo->lastModified().toString(" yyyy-MM-dd\nhh:mm:ss");
// screenshot preview
QLabel *pScreenshot = new QLabel();
QLabel* pScreenshot = new QLabel();
pScreenshot->setStyleSheet("padding: 5px;");
pScreenshot->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
pScreenshot->setPixmap(pixmap);
// screenshot datetime
QLabel *pScreenshotText = new QLabel();
QLabel* pScreenshotText = new QLabel();
pScreenshotText->setStyleSheet("padding: 5px;");
pScreenshotText->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
pScreenshotText->setAlignment(Qt::AlignCenter);
pScreenshotText->setText(lastModified);
// copy url
QPushButton *buttonCopyUrl = new QPushButton;
QPushButton* buttonCopyUrl = new QPushButton;
buttonCopyUrl->setText(tr("Copy URL"));
buttonCopyUrl->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonCopyUrl, &QPushButton::clicked, this, [=](){
connect(buttonCopyUrl, &QPushButton::clicked, this, [=]() {
QApplication::clipboard()->setText(url);
m_notification->showMessage(tr("URL copied to clipboard."));
this->close();
});
// open in browser
QPushButton *buttonOpen = new QPushButton;
QPushButton* buttonOpen = new QPushButton;
buttonOpen->setText(tr("Open in browser"));
buttonOpen->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonOpen, &QPushButton::clicked, this, [=](){
connect(buttonOpen, &QPushButton::clicked, this, [=]() {
QDesktopServices::openUrl(QUrl(url));
this->close();
});
// delete
QPushButton *buttonDelete = new QPushButton;
QPushButton* buttonDelete = new QPushButton;
buttonDelete->setIcon(QIcon(":/img/material/black/delete.svg"));
buttonDelete->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonDelete, &QPushButton::clicked, this, [=](){
if (unpackFileName.token.length() > 0) {
removeItem(phbl, unpackFileName.file, unpackFileName.token);
}
else {
// for compatibility with previous versions and to be able to remove previous screenshots
QFile file(fullFileName);
if (file.exists()) {
file.remove();
connect(buttonDelete, &QPushButton::clicked, this, [=]() {
// TODO - remove dependency injection (s3 & imgur)
if (unpackFileName.type.compare(SCREENSHOT_STORAGE_TYPE_S3) == 0) {
if (unpackFileName.token.length() > 0) {
ImgS3Uploader* uploader = new ImgS3Uploader();
removeItem(
uploader, phbl, unpackFileName.file, unpackFileName.token);
} else {
// for compatibility with previous versions and to be able to
// remove previous screenshots
removeCacheFile(fullFileName);
removeLayoutItem(phbl);
}
removeLocalItem(phbl);
} else if (unpackFileName.type.compare(SCREENSHOT_STORAGE_TYPE_IMGUR) ==
0) {
QDesktopServices::openUrl(
QUrl(QStringLiteral("https://imgur.com/delete/%1")
.arg(unpackFileName.token)));
removeCacheFile(fullFileName);
removeLayoutItem(phbl);
}
});
@@ -158,23 +176,27 @@ void HistoryWidget::addLine(const QString &path, const QString& fileName) {
m_pVBox->addLayout(phbl);
}
void HistoryWidget::removeItem(QLayout *pl, const QString& s3FileName, const QString& deleteToken) {
ImgS3Uploader *uploader = new ImgS3Uploader();
void HistoryWidget::removeItem(ImgUploader* imgUploader,
QLayout* pl,
const QString& fileName,
const QString& deleteToken)
{
hide();
uploader->show();
uploader->deleteResource(s3FileName, deleteToken);
connect(uploader, &QWidget::destroyed, this, [=](){
if(uploader->success()) {
removeLocalItem(pl);
imgUploader->show();
imgUploader->deleteResource(fileName, deleteToken);
connect(imgUploader, &QWidget::destroyed, this, [=]() {
if (imgUploader->resultStatus) {
removeLayoutItem(pl);
}
show();
});
}
void HistoryWidget::removeLocalItem(QLayout *pl) {
void HistoryWidget::removeLayoutItem(QLayout* pl)
{
// remove current row or refresh list
while(pl->count() > 0) {
QLayoutItem *item = pl->takeAt(0);
while (pl->count() > 0) {
QLayoutItem* item = pl->takeAt(0);
delete item->widget();
delete item;
}
@@ -182,7 +204,16 @@ void HistoryWidget::removeLocalItem(QLayout *pl) {
delete pl;
// set "empty" message if no items left
if(m_pVBox->count() == 0) {
if (m_pVBox->count() == 0) {
setEmptyMessage();
}
}
void HistoryWidget::removeCacheFile(const QString& fullFileName)
{
// premove history preview
QFile file(fullFileName);
if (file.exists()) {
file.remove();
}
}

View File

@@ -4,35 +4,38 @@
#define HISTORYPIXMAP_MAX_PREVIEW_WIDTH 160
#define HISTORYPIXMAP_MAX_PREVIEW_HEIGHT 90
#include <QObject>
#include <QWidget>
#include <QDialog>
#include <QObject>
#include <QString>
#include "src/tools/imgs3/imgs3settings.h"
#include <QWidget>
class QLayout;
class QVBoxLayout;
class NotificationWidget;
class ImgUploader;
class HistoryWidget : public QDialog
{
Q_OBJECT
public:
explicit HistoryWidget(QWidget *parent = nullptr);
explicit HistoryWidget(QWidget* parent = nullptr);
signals:
private:
void loadHistory();
void addLine(const QString &, const QString &);
void removeItem(QLayout *pl, const QString& s3FileName, const QString& deleteToken);
void removeLocalItem(QLayout *pl);
void addLine(const QString&, const QString&);
void setEmptyMessage();
void removeItem(ImgUploader* imgUploader,
QLayout* pl,
const QString& s3FileName,
const QString& deleteToken);
void removeLayoutItem(QLayout* pl);
void removeCacheFile(const QString& fullFileName);
private:
ImgS3Settings m_s3Settings;
QVBoxLayout *m_pVBox;
NotificationWidget *m_notification;
QVBoxLayout* m_pVBox;
NotificationWidget* m_notification;
};
#endif // HISTORYWIDGET_H

View File

@@ -125,13 +125,13 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translatorcomment>Impossible capturar la pantalla</translatorcomment>
<translation>Imposible capturar la pantalla</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -156,32 +156,27 @@ Press Space to open the side panel.</source>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Configuració</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Interfície</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Editor de noms</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>General</translation>
</message>
@@ -332,152 +327,167 @@ Press Space to open the side panel.</source>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Mostra el missatge d&apos;ajuda</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Mostra el missatge d&apos;ajuda en iniciar el mode de captura.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Mostra les notificacions d&apos;escriptori</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Mostra la icona en la barra de tasques</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Mostra la icona en la barra de tasques</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Importar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Impossible llegir el fitxer.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Impossible escriure al fitxer.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Guardar Arxiu</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Confirmar Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Esteu segur que voleu reiniciar la configuració?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Fitxer de Configuració</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Exportar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Llançament a l&apos;inici</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -485,164 +495,199 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">S&apos;està pujant la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
<translation type="obsolete">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Obri l&apos;URL</translation>
<translation type="obsolete">Obri l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imatge al porta-retalls.</translation>
<translation type="obsolete">Imatge al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No es pot obrir l&apos;URL.</translation>
<translation type="obsolete">No es pot obrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">La captura s&apos;ha copiat al porta-retalls.</translation>
<translation type="obsolete">La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Puja la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">S&apos;està pujant la imatge</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No es pot obrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">Obri l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imatge al porta-retalls.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Puja a Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>S&apos;està pujant la imatge</translation>
<translation type="vanished">S&apos;està pujant la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Copia l&apos;URL</translation>
<translation type="vanished">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Obri l&apos;URL</translation>
<translation type="vanished">Obri l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Imatge al porta-retalls.</translation>
<translation type="vanished">Imatge al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>No es pot obrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
<translation type="vanished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
<translation type="vanished">La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Puja la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Puja la selecció a Imgur</translation>
</message>
@@ -840,7 +885,7 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Bereich kann nicht erfasst werden</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Benutzeroberfläche</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Dateinamen Editor</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
@@ -335,152 +330,167 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Importieren</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Datei kann nicht gelesen werden.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Datei kann nicht geschrieben werden.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Datei speichern</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Zurücksetzen bestätigen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Sind Sie sicher, dass sie die Konfiguration zurücksetzen wollen?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Hilfetext anzeigen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Hilfetext am Start der Auswahl anzeigen.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Zeige Desktopbenachrichtigungen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Zeige Taskleistensymbol</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Zeigt das Taskleistensymbol</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Konfigurationsdatei</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Exportieren</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Automatisch starten</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Starte Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
<translation type="obsolete">URL kopieren</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL öffnen</translation>
<translation type="obsolete">URL öffnen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Bild löschen</translation>
<translation type="obsolete">Bild löschen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Bild in Zwischenablage.</translation>
<translation type="obsolete">Bild in Zwischenablage.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kann URL nicht öffnen.</translation>
<translation type="obsolete">Kann URL nicht öffnen.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
<translation type="obsolete">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kann URL nicht öffnen.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">URL öffnen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Bild löschen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Bild in Zwischenablage.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Zu Imgur hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Bild hochladen</translation>
<translation type="vanished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL kopieren</translation>
<translation type="vanished">URL kopieren</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL öffnen</translation>
<translation type="vanished">URL öffnen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Bild löschen</translation>
<translation type="vanished">Bild löschen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Bild in Zwischenablage.</translation>
<translation type="vanished">Bild in Zwischenablage.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Kann URL nicht öffnen.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL kopiert.</translation>
<translation type="vanished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Bildschirmaufnahme in Zwischenablage kopiert.</translation>
<translation type="vanished">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Auswahl zu Imgur hochladen</translation>
</message>
@@ -851,7 +904,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<translation>Kein Schreibzugriff auf</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Imposible capturar la pantalla</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Presiona Espacio para abrir el panel lateral.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Configuración</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Interfaz</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Editor de Nombre</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>General</translation>
</message>
@@ -335,152 +330,167 @@ Presiona Espacio para abrir el panel lateral.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Importar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Imposible leer el archivo.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Imposible escribir el archivo.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Guardar Archivo</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Confirmar Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>¿Estás seguro de que quieres reiniciar la configuración?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Mostrar mensaje de ayuda</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Muestra el mensaje de ayuda al iniciar el modo de captura.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Mostrar notificaciones del escritorio</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Mostrar icono en la barra de tareas</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Mostrar el icono en la barra de tareas</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Archivo de Configuración</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Exportar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Lanzar en el arranque</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Lanzar Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Presiona Espacio para abrir el panel lateral.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Subiendo Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
<translation type="obsolete">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
<translation type="obsolete">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Borrar imagen</translation>
<translation type="obsolete">Borrar imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagen al Portapapeles.</translation>
<translation type="obsolete">Imagen al Portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No puede abrir la URL.</translation>
<translation type="obsolete">No puede abrir la URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Captura copiada al portapapeles.</translation>
<translation type="obsolete">Captura copiada al portapapeles.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Subir Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Subiendo Imagen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No puede abrir la URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Captura copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Borrar imagen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagen al Portapapeles.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Subir a Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Subiendo Imagen</translation>
<translation type="vanished">Subiendo Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Copiar URL</translation>
<translation type="vanished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Abrir URL</translation>
<translation type="vanished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Borrar imagen</translation>
<translation type="vanished">Borrar imagen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Imagen al Portapapeles.</translation>
<translation type="vanished">Imagen al Portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>No puede abrir la URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL copiada al portapapeles.</translation>
<translation type="vanished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Captura copiada al portapapeles.</translation>
<translation type="vanished">Captura copiada al portapapeles.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Subir Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Sube la selección a Imgur</translation>
</message>
@@ -847,7 +900,7 @@ Presiona Espacio para abrir el panel lateral.</translation>
<translation>Imposible escribir en</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Imposible de capturer l&apos;écran</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Interface</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Editeur de Noms</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Général</translation>
</message>
@@ -335,152 +330,167 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Importer</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Impossible de lire le fichier.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Impossible d&apos;écrire le fichier.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Sauvegarder le fichier</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Confirmer la Réinitialisation</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Êtes-vous sûr de vouloir réinitialiser la configuration ?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Montrer le message d&apos;aide</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Afficher ce message au lancement du mode capture.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Afficher les notifications du bureau</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Afficher les icones de la barre d&apos;état</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Afficher l&apos;icône dans la barre de tâches</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Fichier de Configuration</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Exporter</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Réinitialiser</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Lancer au démarrage</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Démarrer Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation>Fermer après une capture</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation>Fermer l&apos;application après une capture d&apos;écran</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,199 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Mise en ligne de l&apos;image</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copier l&apos;URL</translation>
<translation type="obsolete">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Ouvrir l&apos;URL</translation>
<translation type="obsolete">Ouvrir l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Image dans le Presse-papier.</translation>
<translation type="obsolete">Image dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Impossible d&apos;ouvrir l&apos;URL.</translation>
<translation type="obsolete">Impossible d&apos;ouvrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Capture d&apos;écran copiée dans le Presse-papier.</translation>
<translation type="obsolete">Capture d&apos;écran copiée dans le Presse-papier.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Mise en ligne d&apos;images</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Mettre en ligne vers Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation>Mise en ligne de l&apos;image</translation>
<translation type="unfinished">Mise en ligne de l&apos;image</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Impossible d&apos;ouvrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Capture d&apos;écran copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation>Copier l&apos;URL</translation>
<translation type="unfinished">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation>Ouvrir l&apos;URL</translation>
<translation type="unfinished">Ouvrir l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation>Image dans le Presse-papier.</translation>
<translation type="unfinished">Image dans le Presse-papier.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Mettre en ligne vers Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<source>Uploading Image</source>
<translation type="vanished">Mise en ligne de l&apos;image</translation>
</message>
<message>
<source>Copy URL</source>
<translation type="vanished">Copier l&apos;URL</translation>
</message>
<message>
<source>Open URL</source>
<translation type="vanished">Ouvrir l&apos;URL</translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="vanished">Image dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Impossible d&apos;ouvrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL copiée dans le Presse-papier.</translation>
<translation type="vanished">URL copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Capture d&apos;écran copiée dans le Presse-papier.</translation>
<translation type="vanished">Capture d&apos;écran copiée dans le Presse-papier.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Mise en ligne d&apos;images</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Mettre en ligne la sélection vers Imgur</translation>
</message>
@@ -843,7 +888,7 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<translation>Imposible d&apos;écrire par dessus</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
</message>

View File

@@ -154,10 +154,6 @@ Press Space to open the side panel.</source>
<source>General</source>
<translation>Általános</translation>
</message>
<message>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
@@ -393,6 +389,18 @@ Press Space to open the side panel.</source>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
@@ -425,19 +433,19 @@ Press Space to open the side panel.</source>
</message>
<message>
<source>Copy URL</source>
<translation type="unfinished">URL másolása</translation>
<translation type="obsolete">URL másolása</translation>
</message>
<message>
<source>Open URL</source>
<translation type="unfinished">URL megnyitása</translation>
<translation type="obsolete">URL megnyitása</translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="unfinished">Kép a vágolapra.</translation>
<translation type="obsolete">Kép a vágolapra.</translation>
</message>
<message>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nem lehet az URL-t megnyitni.</translation>
<translation type="obsolete">Nem lehet az URL-t megnyitni.</translation>
</message>
<message>
<source>URL copied to clipboard.</source>
@@ -445,7 +453,7 @@ Press Space to open the side panel.</source>
</message>
<message>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Képernyőmentés másolva a vágólapra.</translation>
<translation type="obsolete">Képernyőmentés másolva a vágólapra.</translation>
</message>
<message>
<source>Upload image to S3</source>
@@ -455,10 +463,6 @@ Press Space to open the side panel.</source>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
@@ -499,6 +503,53 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uploading Image</source>
<translation type="unfinished">Kép felötlése</translation>
</message>
<message>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nem lehet az URL-t megnyitni.</translation>
</message>
<message>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL másolva a vágólapra.</translation>
</message>
<message>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Képernyőmentés másolva a vágólapra.</translation>
</message>
<message>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy URL</source>
<translation type="unfinished">URL másolása</translation>
</message>
<message>
<source>Open URL</source>
<translation type="unfinished">URL megnyitása</translation>
</message>
<message>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="unfinished">Kép a vágolapra.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
@@ -507,19 +558,19 @@ Press Space to open the side panel.</source>
</message>
<message>
<source>Uploading Image</source>
<translation>Kép felötlése</translation>
<translation type="vanished">Kép felötlése</translation>
</message>
<message>
<source>Copy URL</source>
<translation>URL másolása</translation>
<translation type="vanished">URL másolása</translation>
</message>
<message>
<source>Open URL</source>
<translation>URL megnyitása</translation>
<translation type="vanished">URL megnyitása</translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation>Kép a vágolapra.</translation>
<translation type="vanished">Kép a vágolapra.</translation>
</message>
<message>
<source>Unable to open the URL.</source>
@@ -527,15 +578,11 @@ Press Space to open the side panel.</source>
</message>
<message>
<source>URL copied to clipboard.</source>
<translation>URL másolva a vágólapra.</translation>
<translation type="vanished">URL másolva a vágólapra.</translation>
</message>
<message>
<source>Screenshot copied to clipboard.</source>
<translation>Képernyőmentés másolva a vágólapra.</translation>
</message>
<message>
<source>Delete image</source>
<translation type="unfinished"></translation>
<translation type="vanished">Képernyőmentés másolva a vágólapra.</translation>
</message>
</context>
<context>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Enter を押すと画面をキャプチャー。
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation></translation>
</message>
@@ -335,152 +330,167 @@ Enter を押すと画面をキャプチャー。
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Flameshot </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Enter を押すと画面をキャプチャー。
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Imgur </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL </translation>
<translation type="vanished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL </translation>
<translation type="vanished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL </translation>
<translation type="vanished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Imgur </translation>
</message>
@@ -843,7 +896,7 @@ Enter を押すと画面をキャプチャー。
<translation>:</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -155,32 +155,27 @@ Press Space to open the side panel.</source>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation></translation>
</message>
@@ -331,152 +326,167 @@ Press Space to open the side panel.</source>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation> .</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation> .</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation> , ?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation> .</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation> </translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -484,164 +494,199 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL- </translation>
<translation type="obsolete">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL- </translation>
<translation type="obsolete">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"> </translation>
<translation type="obsolete"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL- .</translation>
<translation type="obsolete">URL- .</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"> .</translation>
<translation type="obsolete"> .</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Imgur- </translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL- .</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"> .</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation>URL- </translation>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation>URL- </translation>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Imgur- </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<source>Uploading Image</source>
<translation type="vanished"> </translation>
</message>
<message>
<source>Copy URL</source>
<translation type="vanished">URL- </translation>
</message>
<message>
<source>Open URL</source>
<translation type="vanished">URL- </translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>URL- .</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL .</translation>
<translation type="vanished">URL .</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation> .</translation>
<translation type="vanished"> .</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation> </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation> Imgur- </translation>
</message>
@@ -839,7 +884,7 @@ Press Space to open the side panel.</source>
<translation type="unfinished"> :</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Kan scherm niet vastleggen</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Druk op spatie om het zijpaneel te openen.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Configuratie</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Uiterlijk</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Bestandsnaambewerker</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Algemeen</translation>
</message>
@@ -335,152 +330,167 @@ Druk op spatie om het zijpaneel te openen.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Importeren</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Fout</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Kan bestand niet uitlezen.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Kan bestand niet wegschrijven.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Bestand opslaan</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Herstellen bevestigen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Weet je zeker dat je de standwaardwaarden van de configuratie wilt herstellen?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Uitleg tonen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Toont een bericht met uitleg bij het openen van de vastlegmodus.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Bureaubladmeldingen tonen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Systeemvakpictogram tonen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Toont het systeemvakpictogram</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Configuratiebestand</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Exporteren</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Standaardwaarden</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Automatisch opstarten</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Flameshot openen</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Druk op spatie om het zijpaneel te openen.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Bezig met uploaden van afbeelding...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
<translation type="obsolete">URL kopiëren</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL openen</translation>
<translation type="obsolete">URL openen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Afbeelding verwijderen</translation>
<translation type="obsolete">Afbeelding verwijderen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Afbeelding naar klembord.</translation>
<translation type="obsolete">Afbeelding naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kan URL niet openen.</translation>
<translation type="obsolete">Kan URL niet openen.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Schermafdruk gekopieerd naar klembord.</translation>
<translation type="obsolete">Schermafdruk gekopieerd naar klembord.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Afbeeldingsuploader</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Bezig met uploaden van afbeelding...</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kan URL niet openen.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Schermafdruk gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">URL openen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Afbeelding verwijderen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Afbeelding naar klembord.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Uploaden naar Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Bezig met uploaden van afbeelding...</translation>
<translation type="vanished">Bezig met uploaden van afbeelding...</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL kopiëren</translation>
<translation type="vanished">URL kopiëren</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL openen</translation>
<translation type="vanished">URL openen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Afbeelding verwijderen</translation>
<translation type="vanished">Afbeelding verwijderen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Afbeelding naar klembord.</translation>
<translation type="vanished">Afbeelding naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Kan URL niet openen.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL gekopieerd naar klembord.</translation>
<translation type="vanished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Schermafdruk gekopieerd naar klembord.</translation>
<translation type="vanished">Schermafdruk gekopieerd naar klembord.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Afbeeldingsuploader</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Upload de selectie naar Imgur</translation>
</message>
@@ -847,7 +900,7 @@ Druk op spatie om het zijpaneel te openen.</translation>
<translation>Kan niet wegschrijven naar</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Nie można przechwycić ekranu</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -158,32 +158,27 @@ Spacja, aby pokazać panel boczny.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Konfiguracja</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Interfejs</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Edytor nazw plików</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
@@ -334,152 +329,167 @@ Spacja, aby pokazać panel boczny.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Import</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Błąd</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Nie można odczytać pliku.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Nie można zapisać pliku.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Zapisz plik</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Potwierdź Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Czy na pewno chcesz zresetować konfigurację?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Pokaż podpowiedzi</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Pokaż podpowiedzi na początku trybu przechwytywania.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Pokaż powiadomienia ekranowe</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Pokaż ikonę w trayu</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Pokaż ikonę w zasobniku systemowym</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Plik konfiguracyjny</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Export</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Uruchom podczas startu</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Uruchom Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -487,164 +497,207 @@ Spacja, aby pokazać panel boczny.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Wysyłanie obrazka</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
<translation type="obsolete">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Otwórz URL</translation>
<translation type="obsolete">Otwórz URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Usuń obrazek</translation>
<translation type="obsolete">Usuń obrazek</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrazek do schowka.</translation>
<translation type="obsolete">Obrazek do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nie można otworzyć adresu URL.</translation>
<translation type="obsolete">Nie można otworzyć adresu URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Zrzut ekranu skopiowany do schowka.</translation>
<translation type="obsolete">Zrzut ekranu skopiowany do schowka.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Uploader obrazów</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Wysyłanie obrazka</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nie można otworzyć adresu URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Zrzut ekranu skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">Otwórz URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Usuń obrazek</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrazek do schowka.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Wyślij do Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Wysyłanie obrazka</translation>
<translation type="vanished">Wysyłanie obrazka</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Kopiuj URL</translation>
<translation type="vanished">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Otwórz URL</translation>
<translation type="vanished">Otwórz URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Usuń obrazek</translation>
<translation type="vanished">Usuń obrazek</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Obrazek do schowka.</translation>
<translation type="vanished">Obrazek do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Nie można otworzyć adresu URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL skopiowany do schowka.</translation>
<translation type="vanished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Zrzut ekranu skopiowany do schowka.</translation>
<translation type="vanished">Zrzut ekranu skopiowany do schowka.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Uploader obrazów</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Wyślij zaznaczenie do Imgur</translation>
</message>
@@ -842,7 +895,7 @@ Spacja, aby pokazać panel boczny.</translation>
<translation>Nie można zapisać w</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Não foi possível capturar a tela</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Pressione espaço abrir o painel lateral.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Configuração</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Interface</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Editor de nome de arquivo</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Geral</translation>
</message>
@@ -335,152 +330,167 @@ Pressione espaço abrir o painel lateral.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Importar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Não foi possível ler o arquivo.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Não foi possível escrever no arquivo.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Salvar Arquivo</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Confirmar Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Tem certeza que deseja resetar a configuração?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Mostrar mensagem de ajuda</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Mostrar mensagem de ajuda no início do modo de captura.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Mostrar notificações de Desktop</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Mostrar ícone de tray</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Mosrar ícone na barra de aplicações</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Arquivo de Configurações</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Exportar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Iniciar junto com o sistema</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Iniciar Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Pressione espaço abrir o painel lateral.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Upando Imagem</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
<translation type="obsolete">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
<translation type="obsolete">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Deletar imagem</translation>
<translation type="obsolete">Deletar imagem</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagem no Clipboard.</translation>
<translation type="obsolete">Imagem no Clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Não foi possível abrir a URL.</translation>
<translation type="obsolete">Não foi possível abrir a URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Screenshot copiada para o clipboard.</translation>
<translation type="obsolete">Screenshot copiada para o clipboard.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Uploader de imagens</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Upando Imagem</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Não foi possível abrir a URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Screenshot copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Deletar imagem</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagem no Clipboard.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Upload no Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Upando Imagem</translation>
<translation type="vanished">Upando Imagem</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Copiar URL</translation>
<translation type="vanished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Abrir URL</translation>
<translation type="vanished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Deletar imagem</translation>
<translation type="vanished">Deletar imagem</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Imagem no Clipboard.</translation>
<translation type="vanished">Imagem no Clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Não foi possível abrir a URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL copiada para o clipboard.</translation>
<translation type="vanished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Screenshot copiada para o clipboard.</translation>
<translation type="vanished">Screenshot copiada para o clipboard.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Uploader de imagens</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Upa a seleção no Imgur</translation>
</message>
@@ -843,7 +896,7 @@ Pressione espaço abrir o painel lateral.</translation>
<translation>Não foi possível escrever em</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Не удалось захватить экран</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,31 @@ Press Space to open the side panel.</source>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Настройка</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Интерфейс</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Редактор имен файлов</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation>Горячие клавиши</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation>Путь</translation>
<translation type="vanished">Путь</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Общие</translation>
</message>
@@ -343,127 +342,142 @@ Press Space to open the side panel.</source>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Импорт</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Ошибка</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Не удалось прочитать файл.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Не удалось записать файл.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Сохранить файл</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Подтвердить сброс</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Вы действительно хотите сбросить настройки?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Показывать справочное сообщение</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Показывать справочное сообщение перед началом захвата экрана.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Показывать уведомления</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Показывать значок в трее</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Показать значок в системном трее</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Файл конфигурации</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Экспорт</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Сброс</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Запускать при старте системы</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Запустить Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation>Показывать приветствие при запуске</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation>Закрыть приложение после захвата</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation>Закрыть после получения скриншота</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation>Скопировать URL после загрузки</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation>Скопировать URL после загрузки и закрыть окно</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation>Копировать путь к сохраненному файлу</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation>Хранилище скриншотов</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation>Хранилище Imgur</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation>Хранилище S3 (необходим файл config.ini с параметрами доступа)</translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
@@ -476,27 +490,27 @@ Press Space to open the side panel.</source>
<translation type="vanished">История скриншотов пустая</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation>Последние загрузки</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation>История скриншотов пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation>Открыть в браузере</translation>
</message>
@@ -508,17 +522,17 @@ Press Space to open the side panel.</source>
<translation type="vanished">Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Загрузка изображения</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation>Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation>Удалить скриншот с S3</translation>
</message>
@@ -527,87 +541,79 @@ Press Space to open the side panel.</source>
<translation type="vanished">Удалить скриншот</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation>Удалить скриншот из истории?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation>Параметры доступов к S3 не найдены в конфигурационном файле</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
<translation type="vanished">Скопировать URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
<translation type="vanished">Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation>Удалить изображение</translation>
<translation type="vanished">Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
<translation type="vanished">Изображение в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation>Не удалось открыть URL.</translation>
<translation type="vanished">Не удалось открыть URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation>Удаление скриншота...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation>Невозможно удалить снимок экрана из удаленного хранилища.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation>Ошибка сети</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation>Возможно, его больше не существует</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation>Вы все равно хотите удалить скриншот из локальной истории?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation>Снимок скопирован в буфер обмена.</translation>
<translation type="vanished">Снимок скопирован в буфер обмена.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Отправка изображений</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation>Загрузить выделение на S3</translation>
</message>
@@ -617,63 +623,114 @@ Press Space to open the side panel.</source>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Загрузить в Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation>Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation>Загрузка изображения</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation>Загрузить изображение</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation>Не удалось открыть URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation>Снимок скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation>Удаление скриншота...</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation>Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Загрузить в Imgur</translation>
</message>
<message>
<source>Uploading Image</source>
<translation type="vanished">Загрузка изображения</translation>
</message>
<message>
<source>Copy URL</source>
<translation type="vanished">Скопировать URL</translation>
</message>
<message>
<source>Open URL</source>
<translation type="vanished">Открыть URL</translation>
</message>
<message>
<source>Delete image</source>
<translation type="vanished">Удалить изображение</translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="vanished">Изображение в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Не удалось открыть URL.</translation>
</message>
<message>
<source>URL copied to clipboard.</source>
<translation type="vanished">URL скопирован в буфер обмена.</translation>
</message>
<message>
<source>Screenshot copied to clipboard.</source>
<translation type="vanished">Снимок скопирован в буфер обмена.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Отправка изображений</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Загрузить выделение на Imgur</translation>
</message>
@@ -887,7 +944,7 @@ Press Space to open the side panel.</source>
<translation>Не удалось сохранить</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Nepodarilo sa zachytiť obrazovku</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Konfigurácia</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Interfejs</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Editor názvov súborov</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Všeobecné</translation>
</message>
@@ -335,152 +330,167 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Importovať</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Chyba</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Zlyhalo čítanie súboru.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Zlyhal zápis do súboru.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Uložiť súbor</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Potvrdiť Reset</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Naozaj si želáte resetovať aktuálnu konfiguráciu?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Zobraziť nápovedu</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Zobraziť nápovedu na začiatku počas režimu zachytávania obrazovky.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Zobraziť systémové upozornenia</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Zobraziť stavovú ikonu</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Zobraziť ikonu v stavovej oblasti</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Súbor s konfiguráciou</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Exportovať</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Resetovať</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Spúšťať pri štarte</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Spustiť Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation>Zavrieť po vytvorení snímky</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation>Zatvoriť po vytvorení snímky obrazovky</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Nahrávam obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
<translation type="obsolete">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Otvoriť URL</translation>
<translation type="obsolete">Otvoriť URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Vymazať obrázok</translation>
<translation type="obsolete">Vymazať obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrázok do schránky.</translation>
<translation type="obsolete">Obrázok do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nepodarilo sa otvoriť URL.</translation>
<translation type="obsolete">Nepodarilo sa otvoriť URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Snímka obrazovky bola skopírovaná do schránky.</translation>
<translation type="obsolete">Snímka obrazovky bola skopírovaná do schránky.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Uploader obrázkov</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Nahrávam obrázok</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nepodarilo sa otvoriť URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Snímka obrazovky bola skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">Otvoriť URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Vymazať obrázok</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrázok do schránky.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Nahrať na Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Nahrávam obrázok</translation>
<translation type="vanished">Nahrávam obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Kopírovať URL</translation>
<translation type="vanished">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Otvoriť URL</translation>
<translation type="vanished">Otvoriť URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Vymazať obrázok</translation>
<translation type="vanished">Vymazať obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Obrázok do schránky.</translation>
<translation type="vanished">Obrázok do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Nepodarilo sa otvoriť URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL skopírovaná do schránky.</translation>
<translation type="vanished">URL skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Snímka obrazovky bola skopírovaná do schránky.</translation>
<translation type="vanished">Snímka obrazovky bola skopírovaná do schránky.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Uploader obrázkov</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Nahrať výber na Imgur</translation>
</message>
@@ -851,7 +904,7 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<translation>Chyba pri ukladaní</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Нисам успео да снимим екран</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Press Space to open the side panel.</source>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Подешавања</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Изглед</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Избор имена датотеке</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Опште</translation>
</message>
@@ -335,152 +330,167 @@ Press Space to open the side panel.</source>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Увоз</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Грешка</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Нисам успео да прочитам датотеку.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Нисам успео да сачувам датотеку.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Сачувај датотеку</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Потврда поништавања</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Да ли сте сигурни да желите да поништите сва прилагођена подешавања?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Приказуј поруку са упутством</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Приказуј поруку са кратким упутством на почетку снимања екрана.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Користи системска обавештења</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Иконица на системској полици</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Приказуј иконицу на системској полици</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Датотека са подешавањима</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Извоз</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Поништи</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Покрени на почетку</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Покрени Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Објављујем слику</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
<translation type="obsolete">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Посети интернет адресу</translation>
<translation type="obsolete">Посети интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Избриши слику</translation>
<translation type="obsolete">Избриши слику</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Сачувај у привремену меморију.</translation>
<translation type="obsolete">Сачувај у привремену меморију.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Нисам успео да посетим интернет адресу.</translation>
<translation type="obsolete">Нисам успео да посетим интернет адресу.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Слика је сачувана у привременој меморији.</translation>
<translation type="obsolete">Слика је сачувана у привременој меморији.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Објављивање слике</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Објављујем слику</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Нисам успео да посетим интернет адресу.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Слика је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">Посети интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Избриши слику</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Сачувај у привремену меморију.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Објави на Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Објављујем слику</translation>
<translation type="vanished">Објављујем слику</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Запамти интернет адресу</translation>
<translation type="vanished">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Посети интернет адресу</translation>
<translation type="vanished">Посети интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Избриши слику</translation>
<translation type="vanished">Избриши слику</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Сачувај у привремену меморију.</translation>
<translation type="vanished">Сачувај у привремену меморију.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Нисам успео да посетим интернет адресу.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>Интернет адреса је сачувана у привременој меморији.</translation>
<translation type="vanished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Слика је сачувана у привременој меморији.</translation>
<translation type="vanished">Слика је сачувана у привременој меморији.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Објављивање слике</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Објави избор на Imgur сајту</translation>
</message>
@@ -843,7 +896,7 @@ Press Space to open the side panel.</source>
<translation>Нисам успео са сачувам</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Ekran resmi alınamadı</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,27 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Ayarlar</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Arayüz</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Dosya Adı Düzenleyici</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Genel</translation>
</message>
@@ -335,152 +330,167 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Dışa aktar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Hata</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Dosya okunamıyor.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Dosya yazılamıyor.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Dosyayı Kaydet</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Sıfırlamayı Onayla</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Ayarları sıfırlamak istediğinizden emin misiniz?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Yardım mesajını göster</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Yakalama modunda başında yardım mesajını gösterin.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Masaüstü bildirimlerini göster</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Tepsi simgesini göster</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Sistem tepsisi simgesini göster</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Yapılandırma Dosyası</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Dışa aktar</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Sıfırla</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Başlangıçta başlatın</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Flameshot&apos;ı başlat</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,164 +498,207 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Resim Yükleniyor</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
<translation type="obsolete">URL Kopyala</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Resmi sil</translation>
<translation type="obsolete">Resmi sil</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Resim Pano&apos;ya.</translation>
<translation type="obsolete">Resim Pano&apos;ya.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL ılamıyor.</translation>
<translation type="obsolete">URL ılamıyor.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Ekran görüntüsü panoya kopyalandı.</translation>
<translation type="obsolete">Ekran görüntüsü panoya kopyalandı.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished">Resim Yükleme Aracı</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Resim Yükleniyor</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL ılamıyor.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Ekran görüntüsü panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished">Resmi sil</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Resim Pano&apos;ya.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Imgur&apos;a yükle</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Resim Yükleniyor</translation>
<translation type="vanished">Resim Yükleniyor</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL Kopyala</translation>
<translation type="vanished">URL Kopyala</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL </translation>
<translation type="vanished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Resmi sil</translation>
<translation type="vanished">Resmi sil</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Resim Pano&apos;ya.</translation>
<translation type="vanished">Resim Pano&apos;ya.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>URL ılamıyor.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL panoya kopyalandı.</translation>
<translation type="vanished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Ekran görüntüsü panoya kopyalandı.</translation>
<translation type="vanished">Ekran görüntüsü panoya kopyalandı.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Resim Yükleme Aracı</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Seçimi Imgur&apos;a yükler</translation>
</message>
@@ -843,7 +896,7 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<translation>Yazma mümkün değil</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation>Не вдалось захопити екран</translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -159,32 +159,31 @@ Press Space to open the side panel.</source>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation>Налаштування</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation>Інтерфейс</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation>Редактор імені файлів</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation>Гарячі клавіші</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation>Шлях</translation>
<translation type="vanished">Шлях</translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation>Загальне</translation>
</message>
@@ -343,127 +342,142 @@ Press Space to open the side panel.</source>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation>Імпорт</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation>Помилка</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation>Не вдалось прочитати файл.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation>Не вдалось записати файл.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation>Зберегти файл</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation>Підтвердити скидання</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation>Ви дійсно хочете скинути налаштування?</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation>Показувати повідомлення довідки</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation>Показувати повідомлення довідки на початку режиму захоплення.</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation>Показувати повідомлення</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation>Показувати значок на панелі</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation>Показувати значок на панелі повідомленнь</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation>Файл налаштувань</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation>Експорт</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation>Скинути</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation>Запускати при старті системи</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation>Запускати Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation>Показувати привітання при запуску</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation>Закрити прогрму після захвату</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation>Закрити програму після отримання скріншоту</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation>Копіювати URL після завантаження</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation>Копіювати URL та закрити вікно після завантаження</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation>Копіювати шлях до збереженного файлу</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation>Cховище скріншотів</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation>Сховище Imgur</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation>Сховище S3 (потрібен файл config.ini із параметрами доступу)</translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
@@ -476,27 +490,27 @@ Press Space to open the side panel.</source>
<translation type="vanished">Історія скріншотів пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation>Останні завантаження</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation>Історія скріншотів пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation>Відкрити у браузері</translation>
</message>
@@ -508,17 +522,17 @@ Press Space to open the side panel.</source>
<translation type="vanished">Вивантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Вивантаження зображення</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation>Завантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation>Видалити скріншот з S3</translation>
</message>
@@ -527,87 +541,79 @@ Press Space to open the side panel.</source>
<translation type="vanished">Видалити скіншот</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation>Видалити скріншот із історії?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation>Параметри доступів до S3 не знайдені у конфігураціонному файлі</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
<translation type="vanished">Скопіювати URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
<translation type="vanished">Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation>Видалити зображення</translation>
<translation type="vanished">Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
<translation type="vanished">Зображення до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation>Не вдалось відкрити URL.</translation>
<translation type="vanished">Не вдалось відкрити URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation>Видалення скріншоту...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation>Не вдалося видалити скріншот із віддаленого сховища.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation>Помилка мережі</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation>Можливо, його більше не існує</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation>Ви все одно хочете видалити скріншот із локальної історії?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation>Знімок скопійовано до буферу обміну.</translation>
<translation type="vanished">Знімок скопійовано до буферу обміну.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Вивантаження зображень</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation>Вивантажити виділення на S3</translation>
</message>
@@ -617,63 +623,114 @@ Press Space to open the side panel.</source>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Вивантажити до Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation>Завантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation>Вивантаження зображення</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation>Вивантажити зображення</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation>Не вдалось відкрити URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation>Знімок скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation>Видалення скріншоту...</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation>Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Вивантажити до Imgur</translation>
</message>
<message>
<source>Uploading Image</source>
<translation type="vanished">Вивантаження зображення</translation>
</message>
<message>
<source>Copy URL</source>
<translation type="vanished">Скопіювати URL</translation>
</message>
<message>
<source>Open URL</source>
<translation type="vanished">Відкрити URL</translation>
</message>
<message>
<source>Delete image</source>
<translation type="vanished">Видалити зображення</translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="vanished">Зображення до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation>Не вдалось відкрити URL.</translation>
</message>
<message>
<source>URL copied to clipboard.</source>
<translation type="vanished">URL скопійовано до буферу обміну.</translation>
</message>
<message>
<source>Screenshot copied to clipboard.</source>
<translation type="vanished">Знімок скопійовано до буферу обміну.</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation>Вивантаження зображень</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation>Вивантажити вибране до Imgur</translation>
</message>
@@ -887,7 +944,7 @@ Press Space to open the side panel.</source>
<translation>Не вдалось зберегти</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>

View File

@@ -125,13 +125,13 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translatorcomment></translatorcomment>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -160,32 +160,27 @@ Press Space to open the side panel.</source>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation></translation>
</message>
@@ -336,152 +331,167 @@ Press Space to open the side panel.</source>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation> Flameshot</translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -489,164 +499,207 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation>Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation> Imgur</translation>
</message>
@@ -852,7 +905,7 @@ Press Space to open the side panel.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -125,12 +125,12 @@
<context>
<name>CaptureWidget</name>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="83"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="99"/>
<source>Unable to capture screen</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/capture/capturewidget.cpp" line="258"/>
<location filename="../src/widgets/capture/capturewidget.cpp" line="284"/>
<source>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.
@@ -155,32 +155,27 @@ Press Space to open the side panel.</source>
<context>
<name>ConfigWindow</name>
<message>
<location filename="../src/config/configwindow.cpp" line="42"/>
<location filename="../src/config/configwindow.cpp" line="45"/>
<source>Configuration</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="64"/>
<location filename="../src/config/configwindow.cpp" line="66"/>
<source>Interface</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="69"/>
<location filename="../src/config/configwindow.cpp" line="72"/>
<source>Filename Editor</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="79"/>
<location filename="../src/config/configwindow.cpp" line="80"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="84"/>
<source>Path Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/configwindow.cpp" line="74"/>
<location filename="../src/config/configwindow.cpp" line="76"/>
<source>General</source>
<translation></translation>
</message>
@@ -331,152 +326,167 @@ Press Space to open the side panel.</source>
<context>
<name>GeneneralConf</name>
<message>
<location filename="../src/config/geneneralconf.cpp" line="147"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<source>Show help message</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="151"/>
<location filename="../src/config/geneneralconf.cpp" line="169"/>
<source>Show the help message at the beginning in the capture mode.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="161"/>
<location filename="../src/config/geneneralconf.cpp" line="165"/>
<location filename="../src/config/geneneralconf.cpp" line="181"/>
<location filename="../src/config/geneneralconf.cpp" line="185"/>
<source>Show desktop notifications</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="174"/>
<location filename="../src/config/geneneralconf.cpp" line="197"/>
<source>Show tray icon</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="178"/>
<location filename="../src/config/geneneralconf.cpp" line="201"/>
<source>Show the systemtray icon</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="93"/>
<location filename="../src/config/geneneralconf.cpp" line="199"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<source>Import</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="100"/>
<location filename="../src/config/geneneralconf.cpp" line="115"/>
<source>Unable to read file.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="108"/>
<location filename="../src/config/geneneralconf.cpp" line="130"/>
<location filename="../src/config/geneneralconf.cpp" line="123"/>
<location filename="../src/config/geneneralconf.cpp" line="146"/>
<source>Unable to write file.</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="116"/>
<location filename="../src/config/geneneralconf.cpp" line="133"/>
<source>Save File</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="137"/>
<location filename="../src/config/geneneralconf.cpp" line="155"/>
<source>Confirm Reset</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="138"/>
<location filename="../src/config/geneneralconf.cpp" line="156"/>
<source>Are you sure you want to reset the configuration?</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="189"/>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<source>Configuration File</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="194"/>
<location filename="../src/config/geneneralconf.cpp" line="220"/>
<source>Export</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="204"/>
<location filename="../src/config/geneneralconf.cpp" line="234"/>
<source>Reset</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="211"/>
<location filename="../src/config/geneneralconf.cpp" line="244"/>
<source>Launch at startup</source>
<translation></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="215"/>
<location filename="../src/config/geneneralconf.cpp" line="227"/>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="262"/>
<source>Launch Flameshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="223"/>
<location filename="../src/config/geneneralconf.cpp" line="258"/>
<source>Show welcome message on launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="236"/>
<location filename="../src/config/geneneralconf.cpp" line="273"/>
<source>Close application after capture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="240"/>
<location filename="../src/config/geneneralconf.cpp" line="277"/>
<source>Close after taking a screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="248"/>
<location filename="../src/config/geneneralconf.cpp" line="289"/>
<source>Copy URL after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="251"/>
<location filename="../src/config/geneneralconf.cpp" line="294"/>
<source>Copy URL and close window after upload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="260"/>
<location filename="../src/config/geneneralconf.cpp" line="263"/>
<location filename="../src/config/geneneralconf.cpp" line="304"/>
<location filename="../src/config/geneneralconf.cpp" line="307"/>
<source>Copy file path after save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="316"/>
<source>Upload storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="320"/>
<source>Imgur storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/config/geneneralconf.cpp" line="327"/>
<source>S3 storage (require config.ini file with s3 credentials)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="30"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="68"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="118"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="122"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="128"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -484,164 +494,199 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="226"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="228"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="230"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="235"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="256"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="406"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">簿</translation>
<translation type="obsolete">簿</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="202"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/s3/imgs3uploader.cpp" line="239"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">簿</translation>
<translation type="obsolete">簿</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/s3/imgs3uploadertool.cpp" line="49"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation> Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="92"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="99"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="105"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="114"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="174"/>
<source>Copy URL</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguploader.cpp" line="175"/>
<source>Open URL</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguploader.cpp" line="176"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguploader.cpp" line="177"/>
<source>Image to Clipboard.</source>
<translation>簿</translation>
<translation type="unfinished">簿</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="48"/>
<source>Upload to Imgur</source>
<translation> Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<source>Uploading Image</source>
<translation type="vanished"></translation>
</message>
<message>
<source>Copy URL</source>
<translation type="vanished"></translation>
</message>
<message>
<source>Open URL</source>
<translation type="vanished"></translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="vanished">簿</translation>
</message>
<message>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="127"/>
<source>Unable to open the URL.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>簿</translation>
<translation type="vanished">簿</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>簿</translation>
<translation type="vanished">簿</translation>
</message>
</context>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="39"/>
<source>Image Uploader</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imgur/imguruploadertool.cpp" line="49"/>
<source>Upload the selection to Imgur</source>
<translation> Imgur</translation>
</message>
@@ -839,7 +884,7 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imgur/imguruploader.cpp" line="88"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>