Compare commits

..

14 Commits

Author SHA1 Message Date
3a4ea573f6
fix(dist): add last release info to AppStream 2024-09-16 10:56:10 +08:00
d574018a8e
CI: bump dependencies version 2024-08-24 15:33:27 +08:00
Weblate (bot)
ae0f11c153
i18n: Translations update from Hosted Weblate (#124)
* Translated using Weblate (Spanish)

Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/es/

* Translated using Weblate (Turkish)

Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/tr/

* Translated using Weblate (Italian)

Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/it/

* Translated using Weblate (Japanese)

Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/ja/

---------

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: albanobattistella <albano_battistella@hotmail.com>
Co-authored-by: mmahhi <mmahhi@users.noreply.hosted.weblate.org>
2024-08-24 15:29:57 +08:00
2bca7bd691
fix: move to trash not reload current item 2024-07-31 20:21:10 +08:00
c2226ef5c7
chore: update translation strings 2024-07-31 19:41:51 +08:00
3596f9eac4 fix: window title not updated in some cases 2024-07-30 23:25:34 +08:00
a6e31a2c4d
feat: cli argument to list supported image formats 2024-07-28 16:16:20 +08:00
cd01a05f23
chore: sync playlistmanager changes 2024-07-28 16:14:14 +08:00
f32cb998ae
fix: crash caused by urlByIndex() with invalid model index
Also save a QVariant convert for QUrl
2024-07-21 00:52:32 +08:00
eb2e2e93f9
refactor(playlist): playlist itself as model
This could make state management easier, and also make it reusable
just in case we need to attach the playlist to a view.
2024-07-20 23:18:42 +08:00
4a095a0cfd
chore: add jfif to supported formats 2024-07-20 13:53:29 +08:00
zhongyic00
d01297043e fix: playlist filter should consider plugins
setAutoLoadFilterSuffix with formats dynammically got from QImageReader, fix https://github.com/BLumia/pineapple-pictures/issues/120
2024-07-20 13:36:03 +08:00
Weblate (bot)
ae257ea567
i18n: Translations update from Hosted Weblate (#119)
* Translated using Weblate (Japanese)
* Translated using Weblate (Norwegian Bokmål)

Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/ja/
Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/nb_NO/

---------

Co-authored-by: mmahhi <masa10suda@gmail.com>
Co-authored-by: ovl-1 <ovl-002@mailinator.com>
2024-07-20 13:04:55 +08:00
edb1a84601
chore(CI): msvc build also build with exiv2 2024-07-13 15:59:13 +08:00
30 changed files with 1694 additions and 1018 deletions

View File

@ -9,16 +9,18 @@ jobs:
matrix: matrix:
vs: ['2022'] vs: ['2022']
msvc_arch: ['x64'] msvc_arch: ['x64']
qt_ver: ['6.7.2']
runs-on: windows-2022 runs-on: windows-2022
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v3 uses: jurplel/install-qt-action@v4
with: with:
arch: 'win64_msvc2019_64' arch: 'win64_msvc2019_64'
version: '6.7.2' version: ${{ matrix.qt_ver }}
modules: 'qtimageformats'
- name: Build - name: Build
shell: cmd shell: cmd
run: | run: |
@ -29,10 +31,10 @@ jobs:
qmake pineapple-pictures.pro qmake pineapple-pictures.pro
nmake nmake
nmake clean nmake clean
windeployqt --verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --skip-plugin-types tls,networkinformation release\ppic.exe windeployqt --verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --no-system-dxc-compiler --skip-plugin-types tls,networkinformation release\ppic.exe
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: windows-msvc2022-qt6.7.2-qmake-package name: "windows-msvc${{ matrix.vs }}-qt${{ matrix.qt_ver }}-qmake-package"
path: release/* path: release/*
msvc-cmake-build: msvc-cmake-build:
@ -41,29 +43,69 @@ jobs:
matrix: matrix:
vs: ['2022'] vs: ['2022']
msvc_arch: ['x64'] msvc_arch: ['x64']
qt_ver: ['6.7.2']
runs-on: windows-2022 runs-on: windows-2022
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v3 uses: jurplel/install-qt-action@v4
with: with:
arch: 'win64_msvc2019_64' arch: 'win64_msvc2019_64'
version: '6.5.3' version: ${{ matrix.qt_ver }}
modules: 'qtimageformats'
- name: Build - name: Build
shell: cmd shell: cmd
run: | run: |
:: ------ env ------
set PWD=%cd% set PWD=%cd%
set VS=${{ matrix.vs }} set VS=${{ matrix.vs }}
set VCVARS="C:\Program Files (x86)\Microsoft Visual Studio\%VS%\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" set VCVARS="C:\Program Files (x86)\Microsoft Visual Studio\%VS%\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
if not exist %VCVARS% set VCVARS="C:\Program Files\Microsoft Visual Studio\%VS%\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" if not exist %VCVARS% set VCVARS="C:\Program Files\Microsoft Visual Studio\%VS%\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
call %VCVARS% ${{ matrix.msvc_arch }} call %VCVARS% ${{ matrix.msvc_arch }}
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="%PWD%\build\" :: ------ dep ------
set CMAKE_PREFIX_PATH=%PWD%/dependencies_bin
mkdir dependencies_src
:: ===== exiv2 =====
curl -fsSL -o exiv2_bin.zip https://github.com/Exiv2/exiv2/releases/download/v0.28.3/exiv2-0.28.3-2019msvc64.zip
7z x exiv2_bin.zip -y
ren .\exiv2-0.28.3-2019msvc64 dependencies_bin
:: ===== zlib =====
curl -fsSL -o zlib_src.zip https://zlib.net/zlib131.zip
7z x zlib_src.zip -y -o"dependencies_src"
ren .\dependencies_src\zlib-1.3.1 zlib || goto :error
cmake ./dependencies_src/zlib -Bbuild_dependencies/zlib -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error
cmake --build build_dependencies/zlib --config Release --target=install || goto :error
curl -fsSL -o expat_src.zip https://github.com/libexpat/libexpat/archive/R_2_6_2.zip
:: ===== expat =====
7z x expat_src.zip -y -o"dependencies_src"
ren .\dependencies_src\libexpat-R_2_6_2 expat || goto :error
cmake ./dependencies_src/expat/expat -Bbuild_dependencies/expat -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error
cmake --build build_dependencies/expat --config Release --target=install || goto :error
:: ===== ECM =====
git clone -q https://invent.kde.org/frameworks/extra-cmake-modules.git dependencies_src/extra-cmake-modules
cmake .\dependencies_src\extra-cmake-modules -Bbuild_dependencies/extra-cmake-modules -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DBUILD_TESTING=OFF || goto :error
cmake --build build_dependencies/extra-cmake-modules --config Release --target=install || goto :error
:: ===== KArchive =====
git clone -q https://invent.kde.org/frameworks/karchive.git dependencies_src/karchive
cmake .\dependencies_src\karchive -Bbuild_dependencies/karchive -DWITH_LIBZSTD=OFF -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error
cmake --build build_dependencies/karchive --config Release --target=install || goto :error
:: ===== KImageFormats =====
git clone -q https://invent.kde.org/frameworks/kimageformats.git dependencies_src/kimageformats
cmake .\dependencies_src\kimageformats -Bbuild_dependencies/kimageformats -DKDE_INSTALL_QTPLUGINDIR=%QT_ROOT_DIR%\plugins || goto :error
cmake --build build_dependencies/kimageformats --config Release --target=install || goto :error
:: ------ app ------
cmake -Bbuild . -DCMAKE_INSTALL_PREFIX="%PWD%\build\"
cmake --build build --config Release cmake --build build --config Release
cmake --build build --config Release --target=install cmake --build build --config Release --target=install
windeployqt --verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --skip-plugin-types tls,networkinformation build\bin\ppic.exe :: ------ pkg ------
windeployqt --verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --no-system-dxc-compiler --skip-plugin-types tls,networkinformation build\bin\ppic.exe
robocopy ./dependencies_bin/bin build/bin *.dll
if ErrorLevel 8 (exit /B 1)
copy LICENSE build/bin/
exit /B 0
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: windows-msvc2022-qt6.5.3-cmake-package name: "windows-msvc${{ matrix.vs }}-qt${{ matrix.qt_ver }}-cmake-package"
path: build/bin/* path: build/bin/*

10
NEWS
View File

@ -1,3 +1,13 @@
Version 0.8.1
~~~~~~~~~~~~~
Released: 2024-08-25
Features:
* New command line option to list all supported formats
Contributors:
albanobattistella, mmahhi, ovl-1, gallegonovato, Oğuz Ersen
Version 0.8.0 Version 0.8.0
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
Released: 2024-06-29 Released: 2024-06-29

View File

@ -57,6 +57,7 @@ void ActionManager::setupAction(MainWindow *mainWindow)
#define CREATE_NEW_ACTION(w, a) create_action(w, &a, QString(), ACTION_NAME(a)) #define CREATE_NEW_ACTION(w, a) create_action(w, &a, QString(), ACTION_NAME(a))
#define CREATE_NEW_THEMEICON_ACTION(w, a, i) create_action(w, &a, QLatin1String(STRIFY(i)), ACTION_NAME(a), true) #define CREATE_NEW_THEMEICON_ACTION(w, a, i) create_action(w, &a, QLatin1String(STRIFY(i)), ACTION_NAME(a), true)
CREATE_NEW_ACTION(mainWindow, actionRotateCounterClockwise);
CREATE_NEW_ACTION(mainWindow, actionPrevPicture); CREATE_NEW_ACTION(mainWindow, actionPrevPicture);
CREATE_NEW_ACTION(mainWindow, actionNextPicture); CREATE_NEW_ACTION(mainWindow, actionNextPicture);
@ -96,13 +97,14 @@ void ActionManager::retranslateUi(MainWindow *mainWindow)
actionZoomOut->setText(QCoreApplication::translate("MainWindow", "Zoom out", nullptr)); actionZoomOut->setText(QCoreApplication::translate("MainWindow", "Zoom out", nullptr));
actionToggleCheckerboard->setText(QCoreApplication::translate("MainWindow", "Toggle Checkerboard", nullptr)); actionToggleCheckerboard->setText(QCoreApplication::translate("MainWindow", "Toggle Checkerboard", nullptr));
actionRotateClockwise->setText(QCoreApplication::translate("MainWindow", "Rotate right", nullptr)); actionRotateClockwise->setText(QCoreApplication::translate("MainWindow", "Rotate right", nullptr));
actionRotateCounterClockwise->setText(QCoreApplication::translate("MainWindow", "Rotate left", nullptr));
actionPrevPicture->setText(QCoreApplication::translate("MainWindow", "Previous image", nullptr)); actionPrevPicture->setText(QCoreApplication::translate("MainWindow", "Previous image", nullptr));
actionNextPicture->setText(QCoreApplication::translate("MainWindow", "Next image", nullptr)); actionNextPicture->setText(QCoreApplication::translate("MainWindow", "Next image", nullptr));
actionHorizontalFlip->setText(QCoreApplication::translate("MainWindow", "Flip &Horizontally", nullptr)); actionHorizontalFlip->setText(QCoreApplication::translate("MainWindow", "Flip &Horizontally", nullptr));
actionFitInView->setText("Fit in view"); // TODO: what should it called? actionFitInView->setText(QCoreApplication::translate("MainWindow", "Fit to view", nullptr));
actionFitByWidth->setText("Fit by width"); // TODO: what should it called? actionFitByWidth->setText(QCoreApplication::translate("MainWindow", "Fit to width", nullptr));
actionCopyPixmap->setText(QCoreApplication::translate("MainWindow", "Copy P&ixmap", nullptr)); actionCopyPixmap->setText(QCoreApplication::translate("MainWindow", "Copy P&ixmap", nullptr));
actionCopyFilePath->setText(QCoreApplication::translate("MainWindow", "Copy &File Path", nullptr)); actionCopyFilePath->setText(QCoreApplication::translate("MainWindow", "Copy &File Path", nullptr));
actionPaste->setText(QCoreApplication::translate("MainWindow", "&Paste", nullptr)); actionPaste->setText(QCoreApplication::translate("MainWindow", "&Paste", nullptr));

View File

@ -30,6 +30,7 @@ public:
QAction *actionZoomOut; QAction *actionZoomOut;
QAction *actionToggleCheckerboard; QAction *actionToggleCheckerboard;
QAction *actionRotateClockwise; QAction *actionRotateClockwise;
QAction *actionRotateCounterClockwise;
QAction *actionPrevPicture; QAction *actionPrevPicture;
QAction *actionNextPicture; QAction *actionNextPicture;

View File

@ -23,14 +23,14 @@ GraphicsView::GraphicsView(QWidget *parent)
setTransformationAnchor(QGraphicsView::AnchorUnderMouse); setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
setStyleSheet("background-color: rgba(0, 0, 0, 220);" setStyleSheet("background-color: rgba(0, 0, 0, 220);"
"border-radius: 3px;"); "border-radius: 3px;");
setAcceptDrops(true); setAcceptDrops(false);
setCheckerboardEnabled(false); setCheckerboardEnabled(false);
connect(horizontalScrollBar(), &QScrollBar::valueChanged, this, &GraphicsView::viewportRectChanged); connect(horizontalScrollBar(), &QScrollBar::valueChanged, this, &GraphicsView::viewportRectChanged);
connect(verticalScrollBar(), &QScrollBar::valueChanged, this, &GraphicsView::viewportRectChanged); connect(verticalScrollBar(), &QScrollBar::valueChanged, this, &GraphicsView::viewportRectChanged);
} }
void GraphicsView::showFileFromPath(const QString &filePath, bool doRequestGallery) void GraphicsView::showFileFromPath(const QString &filePath)
{ {
emit navigatorViewRequired(false, transform()); emit navigatorViewRequired(false, transform());
@ -48,17 +48,14 @@ void GraphicsView::showFileFromPath(const QString &filePath, bool doRequestGalle
// So we cannot use imageFormat() and check if it returns QImage::Format_Invalid to detect if we support the file. // So we cannot use imageFormat() and check if it returns QImage::Format_Invalid to detect if we support the file.
// QImage::Format imageFormat = imageReader.imageFormat(); // QImage::Format imageFormat = imageReader.imageFormat();
if (imageReader.format().isEmpty()) { if (imageReader.format().isEmpty()) {
doRequestGallery = false;
showText(tr("File is not a valid image")); showText(tr("File is not a valid image"));
} else if (imageReader.supportsAnimation() && imageReader.imageCount() > 1) { } else if (imageReader.supportsAnimation() && imageReader.imageCount() > 1) {
showAnimated(filePath); showAnimated(filePath);
} else if (!imageReader.canRead()) { } else if (!imageReader.canRead()) {
doRequestGallery = false;
showText(tr("Image data is invalid or currently unsupported")); showText(tr("Image data is invalid or currently unsupported"));
} else { } else {
QPixmap && pixmap = QPixmap::fromImageReader(&imageReader); QPixmap && pixmap = QPixmap::fromImageReader(&imageReader);
if (pixmap.isNull()) { if (pixmap.isNull()) {
doRequestGallery = false;
showText(tr("Image data is invalid or currently unsupported")); showText(tr("Image data is invalid or currently unsupported"));
} else { } else {
pixmap.setDevicePixelRatio(devicePixelRatioF()); pixmap.setDevicePixelRatio(devicePixelRatioF());
@ -66,10 +63,6 @@ void GraphicsView::showFileFromPath(const QString &filePath, bool doRequestGalle
} }
} }
} }
if (doRequestGallery) {
emit requestGallery(filePath);
}
} }
void GraphicsView::showImage(const QPixmap &pixmap) void GraphicsView::showImage(const QPixmap &pixmap)
@ -318,55 +311,6 @@ void GraphicsView::resizeEvent(QResizeEvent *event)
return QGraphicsView::resizeEvent(event); return QGraphicsView::resizeEvent(event);
} }
void GraphicsView::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasUrls() || event->mimeData()->hasImage() || event->mimeData()->hasText()) {
event->acceptProposedAction();
} else {
event->ignore();
}
// qDebug() << event->mimeData() << "Drag Enter Event"
// << event->mimeData()->hasUrls() << event->mimeData()->hasImage()
// << event->mimeData()->formats() << event->mimeData()->hasFormat("text/uri-list");
return QGraphicsView::dragEnterEvent(event);
}
void GraphicsView::dragMoveEvent(QDragMoveEvent *event)
{
Q_UNUSED(event)
// by default, QGraphicsView/Scene will ignore the action if there are no QGraphicsItem under cursor.
// We actually doesn't care and would like to keep the drag event as-is, so just do nothing here.
}
void GraphicsView::dropEvent(QDropEvent *event)
{
event->acceptProposedAction();
const QMimeData * mimeData = event->mimeData();
if (mimeData->hasUrls()) {
const QList<QUrl> &urls = mimeData->urls();
if (urls.isEmpty()) {
showText(tr("File url list is empty"));
} else {
showFileFromPath(urls.first().toLocalFile(), true);
}
} else if (mimeData->hasImage()) {
QImage img = qvariant_cast<QImage>(mimeData->imageData());
QPixmap pixmap = QPixmap::fromImage(img);
if (pixmap.isNull()) {
showText(tr("Image data is invalid"));
} else {
showImage(pixmap);
}
} else if (mimeData->hasText()) {
showText(mimeData->text());
} else {
showText(tr("Not supported mimedata: %1").arg(mimeData->formats().first()));
}
}
bool GraphicsView::isThingSmallerThanWindowWith(const QTransform &transform) const bool GraphicsView::isThingSmallerThanWindowWith(const QTransform &transform) const
{ {
return rect().size().expandedTo(transform.mapRect(sceneRect()).size().toSize()) return rect().size().expandedTo(transform.mapRect(sceneRect()).size().toSize())

View File

@ -15,7 +15,7 @@ class GraphicsView : public QGraphicsView
public: public:
GraphicsView(QWidget *parent = nullptr); GraphicsView(QWidget *parent = nullptr);
void showFileFromPath(const QString &filePath, bool requestGallery = false); void showFileFromPath(const QString &filePath);
void showImage(const QPixmap &pixmap); void showImage(const QPixmap &pixmap);
void showImage(const QImage &image); void showImage(const QImage &image);
@ -48,7 +48,6 @@ public:
signals: signals:
void navigatorViewRequired(bool required, QTransform transform); void navigatorViewRequired(bool required, QTransform transform);
void viewportRectChanged(); void viewportRectChanged();
void requestGallery(const QString &filePath);
public slots: public slots:
void toggleCheckerboard(bool invertCheckerboardColor = false); void toggleCheckerboard(bool invertCheckerboardColor = false);
@ -60,10 +59,6 @@ private:
void wheelEvent(QWheelEvent *event) override; void wheelEvent(QWheelEvent *event) override;
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
void dragEnterEvent(QDragEnterEvent *event) override;
void dragMoveEvent(QDragMoveEvent *event) override;
void dropEvent(QDropEvent *event) override;
bool isThingSmallerThanWindowWith(const QTransform &transform) const; bool isThingSmallerThanWindowWith(const QTransform &transform) const;
bool shouldIgnoreMousePressMoveEvent(const QMouseEvent *event) const; bool shouldIgnoreMousePressMoveEvent(const QMouseEvent *event) const;
void setCheckerboardEnabled(bool enabled, bool invertColor = false); void setCheckerboardEnabled(bool enabled, bool invertColor = false);

View File

@ -40,13 +40,20 @@ int main(int argc, char *argv[])
a.setApplicationName("Pineapple Pictures"); a.setApplicationName("Pineapple Pictures");
a.setApplicationDisplayName(QCoreApplication::translate("main", "Pineapple Pictures")); a.setApplicationDisplayName(QCoreApplication::translate("main", "Pineapple Pictures"));
// commandline options
QCommandLineOption supportedImageFormats(QStringLiteral("supported-image-formats"), QCoreApplication::translate("main", "List supported image format suffixes, and quit program."));
// parse commandline arguments // parse commandline arguments
QCommandLineParser parser; QCommandLineParser parser;
parser.addOption(supportedImageFormats);
parser.addPositionalArgument("File list", QCoreApplication::translate("main", "File list.")); parser.addPositionalArgument("File list", QCoreApplication::translate("main", "File list."));
parser.addHelpOption(); parser.addHelpOption();
parser.process(a); parser.process(a);
if (parser.isSet(supportedImageFormats)) {
fputs(qPrintable(MainWindow::supportedImageFormats().join(QChar('\n'))), stdout);
::exit(EXIT_SUCCESS);
}
MainWindow w; MainWindow w;
w.show(); w.show();

View File

@ -33,6 +33,7 @@
#include <QTimer> #include <QTimer>
#include <QFileDialog> #include <QFileDialog>
#include <QStandardPaths> #include <QStandardPaths>
#include <QStringBuilder>
#include <QProcess> #include <QProcess>
#include <QDesktopServices> #include <QDesktopServices>
#include <QMessageBox> #include <QMessageBox>
@ -45,7 +46,7 @@
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: FramelessWindow(parent) : FramelessWindow(parent)
, m_am(new ActionManager) , m_am(new ActionManager)
, m_pm(new PlaylistManager(PlaylistManager::PL_SAMEFOLDER, this)) , m_pm(new PlaylistManager(this))
{ {
if (Settings::instance()->stayOnTop()) { if (Settings::instance()->stayOnTop()) {
this->setWindowFlag(Qt::WindowStaysOnTopHint); this->setWindowFlag(Qt::WindowStaysOnTopHint);
@ -55,12 +56,9 @@ MainWindow::MainWindow(QWidget *parent)
this->setMinimumSize(350, 330); this->setMinimumSize(350, 330);
this->setWindowIcon(QIcon(":/icons/app-icon.svg")); this->setWindowIcon(QIcon(":/icons/app-icon.svg"));
this->setMouseTracking(true); this->setMouseTracking(true);
this->setAcceptDrops(true);
m_pm->setAutoLoadFilterSuffix({ m_pm->setAutoLoadFilterSuffixes(supportedImageFormats());
"*.jpg", "*.jpeg", "*.jfif",
"*.png", "*.gif", "*.svg", "*.bmp", "*.webp",
"*.tif", "*.tiff"
});
m_fadeOutAnimation = new QPropertyAnimation(this, "windowOpacity"); m_fadeOutAnimation = new QPropertyAnimation(this, "windowOpacity");
m_fadeOutAnimation->setDuration(300); m_fadeOutAnimation->setDuration(300);
@ -98,9 +96,6 @@ MainWindow::MainWindow(QWidget *parent)
connect(m_graphicsView, &GraphicsView::viewportRectChanged, connect(m_graphicsView, &GraphicsView::viewportRectChanged,
m_gv, &NavigatorView::updateMainViewportRegion); m_gv, &NavigatorView::updateMainViewportRegion);
connect(m_graphicsView, &GraphicsView::requestGallery,
this, &MainWindow::loadGalleryBySingleLocalFile);
m_closeButton = new ToolButton(true, m_graphicsView); m_closeButton = new ToolButton(true, m_graphicsView);
m_closeButton->setIconSize(QSize(32, 32)); m_closeButton->setIconSize(QSize(32, 32));
m_closeButton->setFixedSize(QSize(50, 50)); m_closeButton->setFixedSize(QSize(50, 50));
@ -140,19 +135,13 @@ MainWindow::MainWindow(QWidget *parent)
m_gv->setOpacity(0, false); m_gv->setOpacity(0, false);
m_closeButton->setOpacity(0, false); m_closeButton->setOpacity(0, false);
connect(m_pm, &PlaylistManager::loaded, this, [this](int galleryFileCount) { connect(m_pm, &PlaylistManager::totalCountChanged, this, [this](int galleryFileCount) {
m_prevButton->setVisible(galleryFileCount > 1); m_prevButton->setVisible(galleryFileCount > 1);
m_nextButton->setVisible(galleryFileCount > 1); m_nextButton->setVisible(galleryFileCount > 1);
}); });
connect(m_pm, &PlaylistManager::currentIndexChanged, this, [this]() { connect(m_pm->model(), &PlaylistModel::modelReset, this, std::bind(&MainWindow::galleryCurrent, this, false, false));
int index; connect(m_pm, &PlaylistManager::currentIndexChanged, this, std::bind(&MainWindow::galleryCurrent, this, true, false));
QUrl url;
std::tie(index, url) = m_pm->currentFileUrl();
if (index != -1) {
this->setWindowTitle(url.fileName());
}
});
QShortcut * fullscreenShorucut = new QShortcut(QKeySequence(QKeySequence::FullScreen), this); QShortcut * fullscreenShorucut = new QShortcut(QKeySequence(QKeySequence::FullScreen), this);
connect(fullscreenShorucut, &QShortcut::activated, connect(fullscreenShorucut, &QShortcut::activated,
@ -180,13 +169,8 @@ MainWindow::~MainWindow()
void MainWindow::showUrls(const QList<QUrl> &urls) void MainWindow::showUrls(const QList<QUrl> &urls)
{ {
if (!urls.isEmpty()) { if (!urls.isEmpty()) {
if (urls.count() == 1) { m_graphicsView->showFileFromPath(urls.first().toLocalFile());
m_graphicsView->showFileFromPath(urls.first().toLocalFile(), true); m_pm->loadPlaylist(urls);
} else {
m_graphicsView->showFileFromPath(urls.first().toLocalFile(), false);
m_pm->setPlaylist(urls);
m_pm->setCurrentIndex(0);
}
} else { } else {
m_graphicsView->showText(tr("File url list is empty")); m_graphicsView->showText(tr("File url list is empty"));
return; return;
@ -212,7 +196,7 @@ void MainWindow::initWindowSize()
void MainWindow::adjustWindowSizeBySceneRect() void MainWindow::adjustWindowSizeBySceneRect()
{ {
if (m_pm->count() < 1) return; if (m_pm->totalCount() < 1) return;
QSize sceneSize = m_graphicsView->sceneRect().toRect().size(); QSize sceneSize = m_graphicsView->sceneRect().toRect().size();
QSize sceneSizeWithMargins = sceneSize + QSize(130, 125); QSize sceneSizeWithMargins = sceneSize + QSize(130, 125);
@ -243,60 +227,57 @@ void MainWindow::adjustWindowSizeBySceneRect()
// can be empty if it is NOT from a local file. // can be empty if it is NOT from a local file.
QUrl MainWindow::currentImageFileUrl() const QUrl MainWindow::currentImageFileUrl() const
{ {
QUrl url; return m_pm->urlByIndex(m_pm->curIndex());
std::tie(std::ignore, url) = m_pm->currentFileUrl();
return url;
} }
void MainWindow::clearGallery() void MainWindow::clearGallery()
{ {
m_pm->clear(); m_pm->setPlaylist({});
}
void MainWindow::loadGalleryBySingleLocalFile(const QString &path)
{
m_pm->setCurrentFile(path);
} }
void MainWindow::galleryPrev() void MainWindow::galleryPrev()
{ {
int index; QModelIndex index = m_pm->previousIndex();
QString filePath; if (index.isValid()) {
std::tie(index, filePath) = m_pm->previousFile();
if (index >= 0) {
m_graphicsView->showFileFromPath(filePath, false);
m_pm->setCurrentIndex(index); m_pm->setCurrentIndex(index);
m_graphicsView->showFileFromPath(m_pm->localFileByIndex(index));
} }
} }
void MainWindow::galleryNext() void MainWindow::galleryNext()
{ {
int index; QModelIndex index = m_pm->nextIndex();
QString filePath; if (index.isValid()) {
std::tie(index, filePath) = m_pm->nextFile();
if (index >= 0) {
m_graphicsView->showFileFromPath(filePath, false);
m_pm->setCurrentIndex(index); m_pm->setCurrentIndex(index);
m_graphicsView->showFileFromPath(m_pm->localFileByIndex(index));
} }
} }
// If playlist (or its index) get changed, use this method to "reload" the current file. // Only use this to update minor information.
void MainWindow::galleryCurrent() void MainWindow::galleryCurrent(bool showLoadImageHintWhenEmpty, bool reloadImage)
{ {
int index; QModelIndex index = m_pm->curIndex();
QString filePath; if (index.isValid()) {
std::tie(index, filePath) = m_pm->currentFile(); if (reloadImage) m_graphicsView->showFileFromPath(m_pm->localFileByIndex(index));
setWindowTitle(m_pm->urlByIndex(index).fileName());
if (index >= 0) { } else if (showLoadImageHintWhenEmpty && m_pm->totalCount() <= 0) {
m_graphicsView->showFileFromPath(filePath, false);
} else {
m_graphicsView->showText(QCoreApplication::translate("GraphicsScene", "Drag image here")); m_graphicsView->showText(QCoreApplication::translate("GraphicsScene", "Drag image here"));
} }
} }
QStringList MainWindow::supportedImageFormats()
{
QStringList formatFilters {
#if QT_VERSION < QT_VERSION_CHECK(6, 8, 0)
QStringLiteral("*.jfif")
#endif // QT_VERSION < QT_VERSION_CHECK(6, 8, 0)
};
for (const QByteArray &item : QImageReader::supportedImageFormats()) {
formatFilters.append(QStringLiteral("*.") % QString::fromLocal8Bit(item));
}
return formatFilters;
}
void MainWindow::showEvent(QShowEvent *event) void MainWindow::showEvent(QShowEvent *event)
{ {
updateWidgetsPosition(); updateWidgetsPosition();
@ -522,6 +503,50 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event)
return FramelessWindow::contextMenuEvent(event); return FramelessWindow::contextMenuEvent(event);
} }
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasUrls() || event->mimeData()->hasImage() || event->mimeData()->hasText()) {
event->acceptProposedAction();
} else {
event->ignore();
}
return FramelessWindow::dragEnterEvent(event);
}
void MainWindow::dragMoveEvent(QDragMoveEvent *event)
{
Q_UNUSED(event)
}
void MainWindow::dropEvent(QDropEvent *event)
{
event->acceptProposedAction();
const QMimeData * mimeData = event->mimeData();
if (mimeData->hasUrls()) {
const QList<QUrl> &urls = mimeData->urls();
if (urls.isEmpty()) {
m_graphicsView->showText(tr("File url list is empty"));
} else {
showUrls(urls);
}
} else if (mimeData->hasImage()) {
QImage img = qvariant_cast<QImage>(mimeData->imageData());
QPixmap pixmap = QPixmap::fromImage(img);
if (pixmap.isNull()) {
m_graphicsView->showText(tr("Image data is invalid"));
} else {
m_graphicsView->showImage(pixmap);
}
} else if (mimeData->hasText()) {
m_graphicsView->showText(mimeData->text());
} else {
m_graphicsView->showText(tr("Not supported mimedata: %1").arg(mimeData->formats().first()));
}
}
void MainWindow::centerWindow() void MainWindow::centerWindow()
{ {
this->setGeometry( this->setGeometry(
@ -714,23 +739,21 @@ void MainWindow::on_actionPaste_triggered()
} }
if (!clipboardImage.isNull()) { if (!clipboardImage.isNull()) {
setWindowTitle(tr("Image From Clipboard"));
m_graphicsView->showImage(clipboardImage); m_graphicsView->showImage(clipboardImage);
clearGallery(); clearGallery();
} else if (clipboardFileUrl.isValid()) { } else if (clipboardFileUrl.isValid()) {
QString localFile(clipboardFileUrl.toLocalFile()); m_graphicsView->showFileFromPath(clipboardFileUrl.toLocalFile());
m_graphicsView->showFileFromPath(localFile, true); m_pm->loadPlaylist(clipboardFileUrl);
m_pm->setCurrentFile(localFile);
} }
} }
void MainWindow::on_actionTrash_triggered() void MainWindow::on_actionTrash_triggered()
{ {
int currentFileIndex; QModelIndex index = m_pm->curIndex();
QUrl currentFileUrl; if (!m_pm->urlByIndex(index).isLocalFile()) return;
std::tie(currentFileIndex, currentFileUrl) = m_pm->currentFileUrl();
if (!currentFileUrl.isLocalFile()) return;
QFile file(currentFileUrl.toLocalFile()); QFile file(m_pm->localFileByIndex(index));
QFileInfo fileInfo(file.fileName()); QFileInfo fileInfo(file.fileName());
QMessageBox::StandardButton result = QMessageBox::question(this, tr("Move to Trash"), QMessageBox::StandardButton result = QMessageBox::question(this, tr("Move to Trash"),
@ -741,8 +764,8 @@ void MainWindow::on_actionTrash_triggered()
QMessageBox::warning(this, "Failed to move file to trash", QMessageBox::warning(this, "Failed to move file to trash",
tr("Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.")); tr("Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation."));
} else { } else {
m_pm->removeFileAt(currentFileIndex); m_pm->removeAt(index);
galleryCurrent(); galleryCurrent(true, true);
} }
} }
} }
@ -760,6 +783,13 @@ void MainWindow::on_actionRotateClockwise_triggered()
m_gv->setVisible(false); m_gv->setVisible(false);
} }
void MainWindow::on_actionRotateCounterClockwise_triggered()
{
m_graphicsView->rotateView(false);
m_graphicsView->displayScene();
m_gv->setVisible(false);
}
void MainWindow::on_actionPrevPicture_triggered() void MainWindow::on_actionPrevPicture_triggered()
{ {
galleryPrev(); galleryPrev();

View File

@ -42,10 +42,11 @@ public:
QUrl currentImageFileUrl() const; QUrl currentImageFileUrl() const;
void clearGallery(); void clearGallery();
void loadGalleryBySingleLocalFile(const QString &path);
void galleryPrev(); void galleryPrev();
void galleryNext(); void galleryNext();
void galleryCurrent(); void galleryCurrent(bool showLoadImageHintWhenEmpty, bool reloadImage);
static QStringList supportedImageFormats();
protected slots: protected slots:
void showEvent(QShowEvent *event) override; void showEvent(QShowEvent *event) override;
@ -58,6 +59,9 @@ protected slots:
void wheelEvent(QWheelEvent *event) override; void wheelEvent(QWheelEvent *event) override;
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
void contextMenuEvent(QContextMenuEvent *event) override; void contextMenuEvent(QContextMenuEvent *event) override;
void dragEnterEvent(QDragEnterEvent *event) override;
void dragMoveEvent(QDragMoveEvent *event) override;
void dropEvent(QDropEvent *event) override;
void centerWindow(); void centerWindow();
void closeWindow(); void closeWindow();
@ -83,6 +87,7 @@ private slots:
void on_actionZoomOut_triggered(); void on_actionZoomOut_triggered();
void on_actionToggleCheckerboard_triggered(); void on_actionToggleCheckerboard_triggered();
void on_actionRotateClockwise_triggered(); void on_actionRotateClockwise_triggered();
void on_actionRotateCounterClockwise_triggered();
void on_actionPrevPicture_triggered(); void on_actionPrevPicture_triggered();
void on_actionNextPicture_triggered(); void on_actionNextPicture_triggered();

View File

@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: 2022 Gary Wang <wzc782970009@gmail.com> // SPDX-FileCopyrightText: 2024 Gary Wang <git@blumia.net>
// //
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
@ -9,166 +9,236 @@
#include <QFileInfo> #include <QFileInfo>
#include <QUrl> #include <QUrl>
PlaylistManager::PlaylistManager(PlaylistType type, QObject *parent) PlaylistModel::PlaylistModel(QObject *parent)
: QObject(parent) : QAbstractListModel(parent)
, m_type(type)
{ {
} }
PlaylistModel::~PlaylistModel()
{
}
void PlaylistModel::setPlaylist(const QList<QUrl> &urls)
{
beginResetModel();
m_playlist = urls;
endResetModel();
}
QModelIndex PlaylistModel::loadPlaylist(const QList<QUrl> & urls)
{
if (urls.isEmpty()) return QModelIndex();
if (urls.count() == 1) {
return loadPlaylist(urls.constFirst());
} else {
setPlaylist(urls);
return index(0);
}
}
QModelIndex PlaylistModel::loadPlaylist(const QUrl &url)
{
QFileInfo info(url.toLocalFile());
QDir dir(info.path());
QString && currentFileName = info.fileName();
if (dir.path() == m_currentDir) {
int idx = indexOf(url);
return idx == -1 ? appendToPlaylist(url) : index(idx);
}
QStringList entryList = dir.entryList(
m_autoLoadSuffixes,
QDir::Files | QDir::NoSymLinks, QDir::NoSort);
QCollator collator;
collator.setNumericMode(true);
std::sort(entryList.begin(), entryList.end(), collator);
QList<QUrl> playlist;
int idx = -1;
for (int i = 0; i < entryList.count(); i++) {
const QString & fileName = entryList.at(i);
const QString & oneEntry = dir.absoluteFilePath(fileName);
const QUrl & url = QUrl::fromLocalFile(oneEntry);
playlist.append(url);
if (fileName == currentFileName) {
idx = i;
}
}
if (idx == -1) {
idx = playlist.count();
playlist.append(url);
}
m_currentDir = dir.path();
setPlaylist(playlist);
return index(idx);
}
QModelIndex PlaylistModel::appendToPlaylist(const QUrl &url)
{
const int lastIndex = rowCount();
beginInsertRows(QModelIndex(), lastIndex, lastIndex);
m_playlist.append(url);
endInsertRows();
return index(lastIndex);
}
bool PlaylistModel::removeAt(int index)
{
if (index < 0 || index >= rowCount()) return false;
beginRemoveRows(QModelIndex(), index, index);
m_playlist.removeAt(index);
endRemoveRows();
return true;
}
int PlaylistModel::indexOf(const QUrl &url) const
{
return m_playlist.indexOf(url);
}
QUrl PlaylistModel::urlByIndex(int index) const
{
return m_playlist.value(index);
}
QStringList PlaylistModel::autoLoadFilterSuffixes() const
{
return m_autoLoadSuffixes;
}
QHash<int, QByteArray> PlaylistModel::roleNames() const
{
QHash<int, QByteArray> result = QAbstractListModel::roleNames();
result.insert(UrlRole, "url");
return result;
}
int PlaylistModel::rowCount(const QModelIndex &parent) const
{
return m_playlist.count();
}
QVariant PlaylistModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid()) return QVariant();
switch (role) {
case Qt::DisplayRole:
return m_playlist.at(index.row()).fileName();
case UrlRole:
return m_playlist.at(index.row());
}
return QVariant();
}
PlaylistManager::PlaylistManager(QObject *parent)
: QObject(parent)
{
connect(&m_model, &PlaylistModel::rowsRemoved, this,
[this](const QModelIndex &, int, int) {
if (m_model.rowCount() <= m_currentIndex) {
setProperty("currentIndex", m_currentIndex - 1);
}
});
auto onRowCountChanged = [this](){
emit totalCountChanged(m_model.rowCount());
};
connect(&m_model, &PlaylistModel::rowsInserted, this, onRowCountChanged);
connect(&m_model, &PlaylistModel::rowsRemoved, this, onRowCountChanged);
connect(&m_model, &PlaylistModel::modelReset, this, onRowCountChanged);
}
PlaylistManager::~PlaylistManager() PlaylistManager::~PlaylistManager()
{ {
} }
void PlaylistManager::setPlaylistType(PlaylistManager::PlaylistType type) PlaylistModel *PlaylistManager::model()
{ {
m_type = type; return &m_model;
}
PlaylistManager::PlaylistType PlaylistManager::playlistType() const
{
return m_type;
}
QStringList PlaylistManager::autoLoadFilterSuffix() const
{
return m_autoLoadSuffix;
}
void PlaylistManager::setAutoLoadFilterSuffix(const QStringList & nameFilters)
{
m_autoLoadSuffix = nameFilters;
}
void PlaylistManager::clear()
{
m_currentIndex = -1;
m_playlist.clear();
} }
void PlaylistManager::setPlaylist(const QList<QUrl> &urls) void PlaylistManager::setPlaylist(const QList<QUrl> &urls)
{ {
m_playlist = urls; m_model.setPlaylist(urls);
} }
void PlaylistManager::setCurrentFile(const QString & filePath) QModelIndex PlaylistManager::loadPlaylist(const QList<QUrl> &urls)
{ {
QFileInfo info(filePath); QModelIndex idx = m_model.loadPlaylist(urls);
QDir dir(info.path()); setProperty("currentIndex", idx.row());
QString && currentFileName = info.fileName(); return idx;
switch (playlistType()) {
case PL_SAMEFOLDER: {
if (dir.path() == m_currentDir) {
int index = indexOf(filePath);
m_currentIndex = index == -1 ? appendFile(filePath) : index;
} else {
QStringList entryList = dir.entryList(
m_autoLoadSuffix,
QDir::Files | QDir::NoSymLinks, QDir::NoSort);
QCollator collator;
collator.setNumericMode(true);
std::sort(entryList.begin(), entryList.end(), collator);
clear();
int index = -1;
for (int i = 0; i < entryList.count(); i++) {
const QString & fileName = entryList.at(i);
const QString & oneEntry = dir.absoluteFilePath(fileName);
const QUrl & url = QUrl::fromLocalFile(oneEntry);
m_playlist.append(url);
if (fileName == currentFileName) {
index = i;
}
}
m_currentIndex = index == -1 ? appendFile(filePath) : index;
m_currentDir = dir.path();
}
break;
}
case PL_USERPLAYLIST:{
int index = indexOf(filePath);
m_currentIndex = index == -1 ? appendFile(filePath) : index;
break;
}
default:
break;
}
emit currentIndexChanged(m_currentIndex);
emit loaded(m_playlist.count());
} }
void PlaylistManager::setCurrentIndex(int index) QModelIndex PlaylistManager::loadPlaylist(const QUrl &url)
{ {
if (index < 0 || index >= m_playlist.count()) return; QModelIndex idx = m_model.loadPlaylist(url);
m_currentIndex = index; setProperty("currentIndex", idx.row());
emit currentIndexChanged(m_currentIndex); return idx;
} }
int PlaylistManager::appendFile(const QString &filePath) int PlaylistManager::totalCount() const
{ {
int index = m_playlist.length(); return m_model.rowCount();
m_playlist.append(QUrl::fromLocalFile(filePath));
return index;
} }
// Note: this will only remove file out of the list, this will NOT delete the file QModelIndex PlaylistManager::previousIndex() const
void PlaylistManager::removeFileAt(int index)
{ {
m_playlist.removeAt(index); int count = totalCount();
if (count == 0) return QModelIndex();
if (m_playlist.count() <= m_currentIndex) { return m_model.index(m_currentIndex - 1 < 0 ? count - 1 : m_currentIndex - 1);
m_currentIndex--; }
QModelIndex PlaylistManager::nextIndex() const
{
int count = totalCount();
if (count == 0) return QModelIndex();
return m_model.index(m_currentIndex + 1 == count ? 0 : m_currentIndex + 1);
}
QModelIndex PlaylistManager::curIndex() const
{
return m_model.index(m_currentIndex);
}
void PlaylistManager::setCurrentIndex(const QModelIndex &index)
{
if (index.isValid() && index.row() >= 0 && index.row() < totalCount()) {
setProperty("currentIndex", index.row());
} }
} }
int PlaylistManager::indexOf(const QString &filePath) QUrl PlaylistManager::urlByIndex(const QModelIndex &index)
{ {
const QUrl & url = QUrl::fromLocalFile(filePath); return m_model.urlByIndex(index.row());
return m_playlist.indexOf(url);
} }
int PlaylistManager::count() const QString PlaylistManager::localFileByIndex(const QModelIndex &index)
{ {
return m_playlist.count(); return urlByIndex(index).toLocalFile();
} }
std::tuple<int, QString> PlaylistManager::previousFile() const bool PlaylistManager::removeAt(const QModelIndex &index)
{ {
int count = m_playlist.count(); return m_model.removeAt(index.row());
if (count == 0) return std::make_tuple(-1, QString());
int index = m_currentIndex - 1 < 0 ? count - 1 : m_currentIndex - 1;
return std::make_tuple(index, m_playlist.at(index).toLocalFile());
} }
std::tuple<int, QString> PlaylistManager::nextFile() const void PlaylistManager::setAutoLoadFilterSuffixes(const QStringList &nameFilters)
{ {
int count = m_playlist.count(); m_model.setProperty("autoLoadFilterSuffixes", nameFilters);
if (count == 0) return std::make_tuple(-1, QString());
int index = m_currentIndex + 1 == count ? 0 : m_currentIndex + 1;
return std::make_tuple(index, m_playlist.at(index).toLocalFile());
}
std::tuple<int, QString> PlaylistManager::currentFile() const
{
if (m_playlist.count() == 0) return std::make_tuple(-1, QString());
return std::make_tuple(m_currentIndex, m_playlist.at(m_currentIndex).toLocalFile());
}
std::tuple<int, QUrl> PlaylistManager::currentFileUrl() const
{
if (m_playlist.count() == 0) return std::make_tuple(-1, QUrl());
return std::make_tuple(m_currentIndex, m_playlist.at(m_currentIndex));
} }
QList<QUrl> PlaylistManager::convertToUrlList(const QStringList &files) QList<QUrl> PlaylistManager::convertToUrlList(const QStringList &files)

View File

@ -1,58 +1,85 @@
// SPDX-FileCopyrightText: 2022 Gary Wang <wzc782970009@gmail.com> // SPDX-FileCopyrightText: 2024 Gary Wang <git@blumia.net>
// //
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
#pragma once #pragma once
#include <QObject> #include <QUrl>
#include <QAbstractListModel>
class PlaylistModel : public QAbstractListModel
{
Q_OBJECT
public:
enum PlaylistRole {
UrlRole = Qt::UserRole
};
Q_ENUM(PlaylistRole)
Q_PROPERTY(QStringList autoLoadFilterSuffixes MEMBER m_autoLoadSuffixes NOTIFY autoLoadFilterSuffixesChanged)
explicit PlaylistModel(QObject *parent = nullptr);
~PlaylistModel();
void setPlaylist(const QList<QUrl> & urls);
QModelIndex loadPlaylist(const QList<QUrl> & urls);
QModelIndex loadPlaylist(const QUrl & url);
QModelIndex appendToPlaylist(const QUrl & url);
bool removeAt(int index);
int indexOf(const QUrl & url) const;
QUrl urlByIndex(int index) const;
QStringList autoLoadFilterSuffixes() const;
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
signals:
void autoLoadFilterSuffixesChanged(QStringList suffixes);
private:
// model data
QList<QUrl> m_playlist;
// properties
QStringList m_autoLoadSuffixes = {};
// internal
QString m_currentDir;
};
class PlaylistManager : public QObject class PlaylistManager : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
Q_PROPERTY(int currentIndex MEMBER m_currentIndex NOTIFY currentIndexChanged) Q_PROPERTY(int currentIndex MEMBER m_currentIndex NOTIFY currentIndexChanged)
Q_PROPERTY(QStringList autoLoadFilterSuffixes WRITE setAutoLoadFilterSuffixes)
Q_PROPERTY(PlaylistModel * model READ model CONSTANT)
enum PlaylistType { explicit PlaylistManager(QObject *parent = nullptr);
PL_USERPLAYLIST, // Regular playlist, managed by user.
PL_SAMEFOLDER // PlaylistManager managed playlist, loaded from files from same folder.
};
explicit PlaylistManager(PlaylistType type = PL_USERPLAYLIST, QObject *parent = nullptr);
~PlaylistManager(); ~PlaylistManager();
void setPlaylistType(PlaylistType type); PlaylistModel * model();
PlaylistType playlistType() const;
QStringList autoLoadFilterSuffix() const; void setPlaylist(const QList<QUrl> & url);
void setAutoLoadFilterSuffix(const QStringList &nameFilters); Q_INVOKABLE QModelIndex loadPlaylist(const QList<QUrl> & urls);
Q_INVOKABLE QModelIndex loadPlaylist(const QUrl & url);
void clear(); int totalCount() const;
QModelIndex previousIndex() const;
QModelIndex nextIndex() const;
QModelIndex curIndex() const;
void setCurrentIndex(const QModelIndex & index);
QUrl urlByIndex(const QModelIndex & index);
QString localFileByIndex(const QModelIndex & index);
bool removeAt(const QModelIndex & index);
void setPlaylist(const QList<QUrl> & urls); void setAutoLoadFilterSuffixes(const QStringList &nameFilters);
void setCurrentFile(const QString & filePath);
void setCurrentIndex(int index);
int appendFile(const QString & filePath);
void removeFileAt(int index);
int indexOf(const QString & filePath);
int count() const;
std::tuple<int, QString> previousFile() const;
std::tuple<int, QString> nextFile() const;
std::tuple<int, QString> currentFile() const;
std::tuple<int, QUrl> currentFileUrl() const;
static QList<QUrl> convertToUrlList(const QStringList & files); static QList<QUrl> convertToUrlList(const QStringList & files);
signals: signals:
void loaded(int length);
void currentIndexChanged(int index); void currentIndexChanged(int index);
void totalCountChanged(int count);
private: private:
QList<QUrl> m_playlist;
PlaylistType m_type;
QString m_currentDir;
int m_currentIndex = -1; int m_currentIndex = -1;
QStringList m_autoLoadSuffix = {}; PlaylistModel m_model;
}; };

View File

@ -174,8 +174,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -183,172 +183,188 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File url list is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="52"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Image data is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -776,7 +792,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="ca"> <TS version="2.1" language="ca_ES">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -174,8 +174,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Arrossegueu una imatge aquí</translation> <translation>Arrossegueu una imatge aquí</translation>
</message> </message>
@ -183,172 +183,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>La llista d&apos;ubicacions de fitxer és buida</translation> <translation type="vanished">La llista d&apos;ubicacions de fitxer és buida</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>El fitxer no és una imatge vàlida</translation> <translation>El fitxer no és una imatge vàlida</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Les dades de la imatge no són vàlides o no són compatibles</translation> <translation>Les dades de la imatge no són vàlides o no són compatibles</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Les dades de la imatge no són vàlides</translation> <translation type="vanished">Les dades de la imatge no són vàlides</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>El tipus MIME no és compatible: %1</translation> <translation type="vanished">El tipus MIME no és compatible: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>La llista d&apos;ubicacions és buida</translation> <translation>La llista d&apos;ubicacions és buida</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Copia</translation> <translation>&amp;Copia</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Les dades de la imatge no són vàlides</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>El tipus MIME no és compatible: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Copia el &amp;mapa de píxels</translation> <translation>Copia el &amp;mapa de píxels</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Copia el camí del &amp;fitxer</translation> <translation>Copia el camí del &amp;fitxer</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Propietats</translation> <translation>Propietats</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Mantén a sobre</translation> <translation>Mantén a sobre</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Mode protegit</translation> <translation>Mode protegit</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Amplia</translation> <translation>Amplia</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Redueix</translation> <translation>Redueix</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Inverteix &amp;horitzontalment</translation> <translation>Inverteix &amp;horitzontalment</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Enganxa</translation> <translation>&amp;Enganxa</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Commuta el tauler d&apos;escacs</translation> <translation>Commuta el tauler d&apos;escacs</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Obre...</translation> <translation>&amp;Obre...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Mida real</translation> <translation>Mida real</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Commuta la maximització</translation> <translation>Commuta la maximització</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Commuta la maximització</translation> <translation>Commuta la maximització</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Imatge anterior</translation> <translation>Imatge anterior</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Imatge següent</translation> <translation>Imatge següent</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Configura...</translation> <translation>Configura...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Ajuda</translation> <translation>Ajuda</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Mostra al navegador de fitxers</translation> <translation>Mostra al navegador de fitxers</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Mostra a la carpeta</translation> <translation>Mostra a la carpeta</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Surt</translation> <translation>Surt</translation>
</message> </message>
@ -776,7 +804,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Llista de fitxers.</translation> <translation>Llista de fitxers.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="de"> <TS version="2.1" language="de_DE">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Ziehen Sie das Bild hierher</translation> <translation>Ziehen Sie das Bild hierher</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Die Datei-URL-Liste ist leer</translation> <translation type="vanished">Die Datei-URL-Liste ist leer</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Datei ist kein gültiges Bild</translation> <translation>Datei ist kein gültiges Bild</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Bilddaten sind ungültig oder werden derzeit nicht unterstützt</translation> <translation>Bilddaten sind ungültig oder werden derzeit nicht unterstützt</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Bilddaten sind ungültig</translation> <translation type="vanished">Bilddaten sind ungültig</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Nicht unterstützte Mimedaten: %1</translation> <translation type="vanished">Nicht unterstützte Mimedaten: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Die Datei-URL-Liste ist leer</translation> <translation>Die Datei-URL-Liste ist leer</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Kopieren</translation> <translation>&amp;Kopieren</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Bilddaten sind ungültig</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Nicht unterstützte Mimedaten: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>P&amp;ixmap kopieren</translation> <translation>P&amp;ixmap kopieren</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>&amp;Dateipfad kopieren</translation> <translation>&amp;Dateipfad kopieren</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Eigenschaften</translation> <translation>Eigenschaften</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Oben bleiben</translation> <translation>Oben bleiben</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Geschützter Modus</translation> <translation>Geschützter Modus</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Hineinzoomen</translation> <translation>Hineinzoomen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Herauszoomen</translation> <translation>Herauszoomen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>&amp;Horizontal spiegeln</translation> <translation>&amp;Horizontal spiegeln</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>%Einfügen</translation> <translation>%Einfügen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Schachbrettmuster umschalten</translation> <translation>Schachbrettmuster umschalten</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Öffnen...</translation> <translation>&amp;Öffnen...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Tatsächliche Größe</translation> <translation>Tatsächliche Größe</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Maximieren umschalten</translation> <translation>Maximieren umschalten</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Nach rechts drehen</translation> <translation>Nach rechts drehen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Vorheriges Bild</translation> <translation>Vorheriges Bild</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Nächstes Bild</translation> <translation>Nächstes Bild</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Konfigurieren&#xa0;</translation> <translation>Konfigurieren&#xa0;</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Hilfe</translation> <translation>Hilfe</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Im Dateiexplorer zeigen</translation> <translation>Im Dateiexplorer zeigen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Im Verzeichnis zeigen</translation> <translation>Im Verzeichnis zeigen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Beenden</translation> <translation>Beenden</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Dateiliste.</translation> <translation>Dateiliste.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="es"> <TS version="2.1" language="es_ES">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Arrastre una imagen aquí</translation> <translation>Arrastre una imagen aquí</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>La lista de ubicaciones está vacía</translation> <translation type="vanished">La lista de ubicaciones está vacía</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>El archivo no es una imagen válida</translation> <translation>El archivo no es una imagen válida</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Los datos de la imagen no son válidos o no son compatibles</translation> <translation>Los datos de la imagen no son válidos o no son compatibles</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Los datos de la imagen no son válidos</translation> <translation type="vanished">Los datos de la imagen no son válidos</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>El tipo MIME no es compatible: %1</translation> <translation type="vanished">El tipo MIME no es compatible: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>La lista de ubicaciones está vacía</translation> <translation>La lista de ubicaciones está vacía</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Copiar</translation> <translation>&amp;Copiar</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Los datos de la imagen no son válidos</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>El tipo MIME no es compatible: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation>Imagen del portapapeles</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation>¿Estás seguro de que quieres mover &quot;%1&quot; a la papelera de reciclaje?</translation> <translation>¿Estás seguro de que quieres mover &quot;%1&quot; a la papelera de reciclaje?</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation>Mover a la papelera ha fallado, puede deberse a un problema con los permisos de los archivos, una limitación del sistema de archivos o una limitación de la plataforma.</translation> <translation>Mover a la papelera ha fallado, puede deberse a un problema con los permisos de los archivos, una limitación del sistema de archivos o una limitación de la plataforma.</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Copiar &amp;mapa de píxeles</translation> <translation>Copiar &amp;mapa de píxeles</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Copiar &amp;ruta de archivo</translation> <translation>Copiar &amp;ruta de archivo</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Propiedades</translation> <translation>Propiedades</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Mantener encima</translation> <translation>Mantener encima</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Modo protegido</translation> <translation>Modo protegido</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Conservar la transformación</translation> <translation>Conservar la transformación</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Ampliar</translation> <translation>Ampliar</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Reducir</translation> <translation>Reducir</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Voltear &amp;horizontalmente</translation> <translation>Voltear &amp;horizontalmente</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation>Para visualizar</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation>Ajustar al ancho</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Pegar</translation> <translation>&amp;Pegar</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Activar/desactivar el tablero de ajedrez</translation> <translation>Activar/desactivar el tablero de ajedrez</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Abrir...</translation> <translation>&amp;Abrir...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Tamaño real</translation> <translation>Tamaño real</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Maximizar/desmaximizar</translation> <translation>Maximizar/desmaximizar</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Girar a la derecha</translation> <translation>Girar a la derecha</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation>Girar a la izquierda</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Imagen anterior</translation> <translation>Imagen anterior</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Imagen siguiente</translation> <translation>Imagen siguiente</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Mover a la papelera</translation> <translation>Mover a la papelera</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Configurar...</translation> <translation>Configurar...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Ayuda</translation> <translation>Ayuda</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Mostrar en el Explorador de archivos</translation> <translation>Mostrar en el Explorador de archivos</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Mostrar en la carpeta</translation> <translation>Mostrar en la carpeta</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Salir</translation> <translation>Salir</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation>Enumere las extensiones de formato de imagen admitidas y sal del programa.</translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Lista de archivos.</translation> <translation>Lista de archivos.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="fr"> <TS version="2.1" language="fr_FR">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Faites glisser l&apos;image ici</translation> <translation>Faites glisser l&apos;image ici</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>La liste des URL du fichier est vide</translation> <translation type="vanished">La liste des URL du fichier est vide</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Le fichier n&apos;est pas une image valide</translation> <translation>Le fichier n&apos;est pas une image valide</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Les données d&apos;image ne sont pas valides ou ne sont actuellement pas prises en charge</translation> <translation>Les données d&apos;image ne sont pas valides ou ne sont actuellement pas prises en charge</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Les données d&apos;image ne sont pas valides</translation> <translation type="vanished">Les données d&apos;image ne sont pas valides</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Mimedata non pris en charge&#xa0;: %1</translation> <translation type="vanished">Mimedata non pris en charge&#xa0;: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>La liste des URL de fichiers est vide</translation> <translation>La liste des URL de fichiers est vide</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Copier</translation> <translation>&amp;Copier</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Les données d&apos;image ne sont pas valides</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Mimedata non pris en charge&#xa0;: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Copier P&amp;ixmap</translation> <translation>Copier P&amp;ixmap</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Copier le &amp;chemin du fichier</translation> <translation>Copier le &amp;chemin du fichier</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Propriétés</translation> <translation>Propriétés</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Rester en-haut</translation> <translation>Rester en-haut</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Mode protégé</translation> <translation>Mode protégé</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Zoom avant</translation> <translation>Zoom avant</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Zoom arrière</translation> <translation>Zoom arrière</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Retourner &amp;horizontalement</translation> <translation>Retourner &amp;horizontalement</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>Co&amp;ller</translation> <translation>Co&amp;ller</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Dés/activer le damier</translation> <translation>Dés/activer le damier</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Ouvrir...</translation> <translation>&amp;Ouvrir...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Taille actuelle</translation> <translation>Taille actuelle</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Dés/activer l&apos;agrandissement</translation> <translation>Dés/activer l&apos;agrandissement</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Pivoter vers la droite</translation> <translation>Pivoter vers la droite</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Image précédente</translation> <translation>Image précédente</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Image suivant</translation> <translation>Image suivant</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Configurer</translation> <translation>Configurer</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Aide</translation> <translation>Aide</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Afficher dans le navigateur de fichiers</translation> <translation>Afficher dans le navigateur de fichiers</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Afficher dans le dossier</translation> <translation>Afficher dans le dossier</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Quitter</translation> <translation>Quitter</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Liste des fichiers.</translation> <translation>Liste des fichiers.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="id"> <TS version="2.1" language="id_ID">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Tarik gambar ke sini</translation> <translation>Tarik gambar ke sini</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Daftar url file kosong</translation> <translation type="vanished">Daftar url file kosong</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>File bukan gambar yang valid</translation> <translation>File bukan gambar yang valid</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Data gambar tidak valid atau belum didukung</translation> <translation>Data gambar tidak valid atau belum didukung</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Data gambar tidak valid</translation> <translation type="vanished">Data gambar tidak valid</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Tidak didukung mimedata: %1</translation> <translation type="vanished">Tidak didukung mimedata: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Daftar url file kosong</translation> <translation>Daftar url file kosong</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Salin</translation> <translation>&amp;Salin</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Data gambar tidak valid</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Tidak didukung mimedata: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Salin P&amp;ixmap</translation> <translation>Salin P&amp;ixmap</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Salin &amp;Path Berkas</translation> <translation>Salin &amp;Path Berkas</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Properti</translation> <translation>Properti</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Tetap di atas</translation> <translation>Tetap di atas</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Mode Terlindungi</translation> <translation>Mode Terlindungi</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Simpan transformasi</translation> <translation>Simpan transformasi</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Perbesar</translation> <translation>Perbesar</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Perkecil</translation> <translation>Perkecil</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Putar Secara &amp;Horizontal</translation> <translation>Putar Secara &amp;Horizontal</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Tempel</translation> <translation>&amp;Tempel</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Ukuran asli</translation> <translation>Ukuran asli</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Putar ke kanan</translation> <translation>Putar ke kanan</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Konfigurasi...</translation> <translation>Konfigurasi...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Dukungan</translation> <translation>Dukungan</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Keluar</translation> <translation>Keluar</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Daftar berkas.</translation> <translation>Daftar berkas.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="it"> <TS version="2.1" language="it_IT">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -174,8 +174,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Trascina qui l&apos;immagine</translation> <translation>Trascina qui l&apos;immagine</translation>
</message> </message>
@ -183,172 +183,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>L&apos;elenco degli URL dei file è vuoto</translation> <translation type="vanished">L&apos;elenco degli URL dei file è vuoto</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Il file non è un&apos;immagine valida</translation> <translation>Il file non è un&apos;immagine valida</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>I dati dell&apos;immagine non sono validi o non sono attualmente supportati</translation> <translation>I dati dell&apos;immagine non sono validi o non sono attualmente supportati</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>I dati dell&apos;immagine non sono validi</translation> <translation type="vanished">I dati dell&apos;immagine non sono validi</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Dati mime non supportati: %1</translation> <translation type="vanished">Dati mime non supportati: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>L&apos;elenco degli URL dei file è vuoto</translation> <translation>L&apos;elenco degli URL dei file è vuoto</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Copia</translation> <translation>&amp;Copia</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>I dati dell&apos;immagine non sono validi</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Dati mime non supportati: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation>Immagine dagli appunti</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation>Sei sicuro di voler spostare &quot;%1&quot; nel cestino?</translation> <translation>Sei sicuro di voler spostare &quot;%1&quot; nel cestino?</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation>Lo spostamento nel cestino non è riuscito, potrebbe essere causato da un problema di autorizzazione del file, da una limitazione del file system o da una limitazione della piattaforma.</translation> <translation>Lo spostamento nel cestino non è riuscito, potrebbe essere causato da un problema di autorizzazione del file, da una limitazione del file system o da una limitazione della piattaforma.</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Copia P&amp;ixmap</translation> <translation>Copia P&amp;ixmap</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Copia &amp;Percorso file</translation> <translation>Copia &amp;Percorso file</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Proprietà</translation> <translation>Proprietà</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Rimani in cima</translation> <translation>Rimani in cima</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Modalità protetta</translation> <translation>Modalità protetta</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Mantieni trasformazione</translation> <translation>Mantieni trasformazione</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Zoom avanti</translation> <translation>Zoom avanti</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Zoom indietro</translation> <translation>Zoom indietro</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Capovolgi &amp;Orizzontalmente</translation> <translation>Capovolgi &amp;Orizzontalmente</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation>Adatto alla visualizzazione</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation>Adatta alla larghezza</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Incolla</translation> <translation>&amp;Incolla</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Attiva/disattiva scacchiera</translation> <translation>Attiva/disattiva scacchiera</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Apri...</translation> <translation>&amp;Apri...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Dimensione reale</translation> <translation>Dimensione reale</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Attiva massimizzazione</translation> <translation>Attiva massimizzazione</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Ruota a destra</translation> <translation>Ruota a destra</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation>Ruota a sinistra</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Immagine precedente</translation> <translation>Immagine precedente</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Immagine successiva</translation> <translation>Immagine successiva</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Sposta nel cestino</translation> <translation>Sposta nel cestino</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Configura...</translation> <translation>Configura...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Aiuto</translation> <translation>Aiuto</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Mostra in Esplora file</translation> <translation>Mostra in Esplora file</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Mostra nella directory</translation> <translation>Mostra nella directory</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Esci</translation> <translation>Esci</translation>
</message> </message>
@ -776,7 +804,12 @@
<translation>Immagini di Pineapple</translation> <translation>Immagini di Pineapple</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation>Elenca i suffissi dei formati immagine supportati e chiudi il programma.</translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Elenco file.</translation> <translation>Elenco file.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="ja"> <TS version="2.1" language="ja_JP">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -174,8 +174,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation></translation> <translation></translation>
</message> </message>
@ -183,172 +183,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>URLリストがエンプティーです</translation> <translation type="vanished">URLリストがエンプティーです</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>mimedata: %1</translation> <translation type="vanished">mimedata: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>urlリストがエンプティーです</translation> <translation>urlリストがエンプティーです</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>(&amp;C)</translation> <translation>(&amp;C)</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Image data is invalid</source>
<translation type="unfinished"></translation> <translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>mimedata: %1</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="742"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Image From Clipboard</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation>%1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>(&amp;I)</translation> <translation>(&amp;I)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>(&amp;F)</translation> <translation>(&amp;F)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>(&amp;H)</translation> <translation>(&amp;H)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>(&amp;P)</translation> <translation>(&amp;P)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>(&amp;O)</translation> <translation>(&amp;O)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation></translation> <translation></translation>
</message> </message>
@ -776,7 +804,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="ko"> <TS version="2.1" language="ko_KR">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -174,8 +174,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation> </translation> <translation> </translation>
</message> </message>
@ -183,172 +183,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation> URL </translation> <translation type="vanished"> URL </translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation> </translation> <translation type="vanished"> </translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation> mimedata: %1</translation> <translation type="vanished"> mimedata: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation> URL </translation> <translation> URL </translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>(&amp;C)</translation> <translation>(&amp;C)</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation> </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation> mimedata: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Pixmap (&amp;I)</translation> <translation>Pixmap (&amp;I)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation> (&amp;F)</translation> <translation> (&amp;F)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation> (&amp;H)</translation> <translation> (&amp;H)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>(&amp;P)</translation> <translation>(&amp;P)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>(&amp;O)...</translation> <translation>(&amp;O)...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation></translation> <translation></translation>
</message> </message>
@ -776,7 +804,12 @@
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation> .</translation> <translation> .</translation>
</message> </message>

View File

@ -111,7 +111,7 @@
<message> <message>
<location filename="../aboutdialog.cpp" line="46"/> <location filename="../aboutdialog.cpp" line="46"/>
<source>Avoid resetting the zoom/rotation/flip state that was applied to the image view when switching between images.</source> <source>Avoid resetting the zoom/rotation/flip state that was applied to the image view when switching between images.</source>
<translation type="unfinished"></translation> <translation>Unngå å tilbakestille tilstanden for zoom/rotasjon/speilvending som ble brukt bildevisningen, når det skiftes mellom bilder.</translation>
</message> </message>
<message> <message>
<location filename="../aboutdialog.cpp" line="57"/> <location filename="../aboutdialog.cpp" line="57"/>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Dra bilde hit</translation> <translation>Dra bilde hit</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Listen over filnettadresser er tom</translation> <translation type="vanished">Listen over filnettadresser er tom</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Filen er ikke et gyldig bilde</translation> <translation>Filen er ikke et gyldig bilde</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Ugyldig bildedata, eller for tiden ustøttet</translation> <translation>Ugyldig bildedata, eller for tiden ustøttet</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Ugyldig bildedata</translation> <translation type="vanished">Ugyldig bildedata</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Ustøttet MIME-data: %1</translation> <translation type="vanished">Ustøttet MIME-data: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Listen over filnettadresser er ugyldig</translation> <translation>Listen over filnettadresser er ugyldig</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Kopier</translation> <translation>&amp;Kopier</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Image data is invalid</source>
<translation type="unfinished"></translation> <translation>Ugyldig bildedata</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Ustøttet MIME-data: %1</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="742"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Image From Clipboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation>Er du sikker at du vil flytte &quot;%1&quot; til papirkurven?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation>Flytt til papirkurven mislyktes, det kan skyldes filtillatelsesproblem, filsystembegrensning eller plattformbegrensning.</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation type="unfinished">Kopier p&amp;ixmap</translation> <translation type="unfinished">Kopier p&amp;ixmap</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Kopier %filsti</translation> <translation>Kopier &amp;filbane</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Egenskaper</translation> <translation>Egenskaper</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Behold øverst</translation> <translation>Behold øverst</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Beskyttet modus</translation> <translation>Beskyttet modus</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation>Behold transformasjon</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Førstørr</translation> <translation>Førstørr</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Forminsk</translation> <translation>Forminsk</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Speilvend &amp;horisontalt</translation> <translation>Speilvend &amp;horisontalt</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Lim inn</translation> <translation>&amp;Lim inn</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation type="unfinished">Skru av/ rutemønster</translation> <translation type="unfinished">Skru av/ rutemønster</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Åpne </translation> <translation>&amp;Åpne </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Faktisk størrelse</translation> <translation>Faktisk størrelse</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation type="unfinished">Veksle maksimering</translation> <translation>Maksimering av/</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Roter til høyre</translation> <translation>Roter til høyre</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Forrige bilde</translation> <translation>Forrige bilde</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Neste bilde</translation> <translation>Neste bilde</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation>Flytt til papirkurven</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Sett opp </translation> <translation>Sett opp </translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Hjelp</translation> <translation>Hjelp</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Vis i filutforsker</translation> <translation>Vis i filutforsker</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation type="unfinished">Vis i mappe</translation> <translation type="unfinished">Vis i mappe</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Avslutt</translation> <translation>Avslutt</translation>
</message> </message>
@ -700,7 +728,7 @@
<message> <message>
<location filename="../settingsdialog.cpp" line="29"/> <location filename="../settingsdialog.cpp" line="29"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Veksle maksimering</translation> <translation>Maksimering av/</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="33"/> <location filename="../settingsdialog.cpp" line="33"/>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Filliste.</translation> <translation>Filliste.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="nl"> <TS version="2.1" language="nl_NL">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Sleep een afbeelding hierheen</translation> <translation>Sleep een afbeelding hierheen</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>De bestandspadlijst is leeg</translation> <translation type="vanished">De bestandspadlijst is leeg</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Het bestand is geen afbeelding</translation> <translation>Het bestand is geen afbeelding</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>De afbeeldingsgegevens zijn beschadigd of worden niet ondersteund</translation> <translation>De afbeeldingsgegevens zijn beschadigd of worden niet ondersteund</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Beschadigde afbeeldingsgegevens</translation> <translation type="vanished">Beschadigde afbeeldingsgegevens</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Niet-ondersteunde mime-gegevens: %1</translation> <translation type="vanished">Niet-ondersteunde mime-gegevens: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>De bestandspadlijst is leeg</translation> <translation>De bestandspadlijst is leeg</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Kopiëren</translation> <translation>&amp;Kopiëren</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Beschadigde afbeeldingsgegevens</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Niet-ondersteunde mime-gegevens: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>P&amp;ixmap kopiëren</translation> <translation>P&amp;ixmap kopiëren</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>&amp;Bestandspad kopiëren</translation> <translation>&amp;Bestandspad kopiëren</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Eigenschappen</translation> <translation>Eigenschappen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Altijd bovenop</translation> <translation>Altijd bovenop</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Beschermde modus</translation> <translation>Beschermde modus</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Bewerkingen onthouden</translation> <translation>Bewerkingen onthouden</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Inzoomen</translation> <translation>Inzoomen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Uitzoomen</translation> <translation>Uitzoomen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>&amp;Horizontaal spiegelen</translation> <translation>&amp;Horizontaal spiegelen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Plakken</translation> <translation>&amp;Plakken</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Schaakbordpatroon aan/uit</translation> <translation>Schaakbordpatroon aan/uit</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Openen</translation> <translation>&amp;Openen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Ware grootte</translation> <translation>Ware grootte</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Maximaliseren aan/uit</translation> <translation>Maximaliseren aan/uit</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Naar rechts draaien</translation> <translation>Naar rechts draaien</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Vorige afbeelding</translation> <translation>Vorige afbeelding</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Volgende afbeelding</translation> <translation>Volgende afbeelding</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Instellen...</translation> <translation>Instellen...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Hulp</translation> <translation>Hulp</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Tonen in bestandsbeheer</translation> <translation>Tonen in bestandsbeheer</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Tonen in map</translation> <translation>Tonen in map</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Afsluiten</translation> <translation>Afsluiten</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation>Pineapple Afbeeldingen</translation> <translation>Pineapple Afbeeldingen</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Bestandslijst.</translation> <translation>Bestandslijst.</translation>
</message> </message>

View File

@ -174,8 +174,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -183,172 +183,188 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File url list is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="52"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>کاپی کرو</translation> <translation>کاپی کرو</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Image data is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>تصویر دا نقشہ کاپی کرو</translation> <translation>تصویر دا نقشہ کاپی کرو</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>وشیشتاواں</translation> <translation>وشیشتاواں</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>سرکھیات سیٹنگ</translation> <translation>سرکھیات سیٹنگ</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>وڈا کرو</translation> <translation>وڈا کرو</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>چھوٹا کرو</translation> <translation>چھوٹا کرو</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>لیٹویں اُلٹاؤ</translation> <translation>لیٹویں اُلٹاؤ</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>پیسٹ کرو</translation> <translation>پیسٹ کرو</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>چیکبورڈ چالو بدلو</translation> <translation>چیکبورڈ چالو بدلو</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>کھُلھو</translation> <translation>کھُلھو</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>اصلی اکار</translation> <translation>اصلی اکار</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>ودھو ودھ بدلو</translation> <translation>ودھو ودھ بدلو</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>سجے گھنماؤ</translation> <translation>سجے گھنماؤ</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>پچھلی تصویر</translation> <translation>پچھلی تصویر</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>اگلی تصویر</translation> <translation>اگلی تصویر</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>مدد</translation> <translation>مدد</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>بند کرو</translation> <translation>بند کرو</translation>
</message> </message>
@ -776,7 +792,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="ru"> <TS version="2.1" language="ru_RU">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Перетащите изображение сюда</translation> <translation>Перетащите изображение сюда</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Список URL-адресов файлов пуст</translation> <translation type="vanished">Список URL-адресов файлов пуст</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Файл не является допустимым изображением</translation> <translation>Файл не является допустимым изображением</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Параметры изображения недействительны или не поддерживаются в настоящее время</translation> <translation>Параметры изображения недействительны или не поддерживаются в настоящее время</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Параметры изображения недействительны</translation> <translation type="vanished">Параметры изображения недействительны</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Неподдерживаемые mimedata: %1</translation> <translation type="vanished">Неподдерживаемые mimedata: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Список URL-адресов файлов пуст</translation> <translation>Список URL-адресов файлов пуст</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Скопировать</translation> <translation>&amp;Скопировать</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Параметры изображения недействительны</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Неподдерживаемые mimedata: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Скопировать P&amp;ixmap</translation> <translation>Скопировать P&amp;ixmap</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Скопировать &amp;путь к файлу</translation> <translation>Скопировать &amp;путь к файлу</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Свойства</translation> <translation>Свойства</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Поверх всех окон</translation> <translation>Поверх всех окон</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Защищенный режим</translation> <translation>Защищенный режим</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Увеличить</translation> <translation>Увеличить</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Уменьшить</translation> <translation>Уменьшить</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Отразить по &amp;горизонтали</translation> <translation>Отразить по &amp;горизонтали</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Вставить</translation> <translation>&amp;Вставить</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Переключить фоновый рисунок</translation> <translation>Переключить фоновый рисунок</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Открыть...</translation> <translation>&amp;Открыть...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Фактический размер</translation> <translation>Фактический размер</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Переключить окно</translation> <translation>Переключить окно</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Повернуть вправо</translation> <translation>Повернуть вправо</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Предыдущее изображение</translation> <translation>Предыдущее изображение</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Следующее изображение</translation> <translation>Следующее изображение</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Параметры...</translation> <translation>Параметры...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Помощь</translation> <translation>Помощь</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Показать в проводнике</translation> <translation>Показать в проводнике</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Показать в папке</translation> <translation>Показать в папке</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Выход</translation> <translation>Выход</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Список файлов.</translation> <translation>Список файлов.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="si"> <TS version="2.1" language="si_LK">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -187,172 +187,196 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation type="unfinished"> ... (url) </translation> <translation type="obsolete"> ... (url) </translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation> </translation> <translation type="vanished"> </translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation> ... (url) </translation> <translation> ... (url) </translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;</translation> <translation>&amp;</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Image data is invalid</source>
<translation> </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Copy P&amp;ixmap</source> <source>Fit to view</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="107"/>
<source>Copy &amp;File Path</source> <source>Fit to width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -780,7 +804,12 @@
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation> .</translation> <translation> .</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="tr"> <TS version="2.1" language="tr_TR">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Resmi buraya sürükleyin</translation> <translation>Resmi buraya sürükleyin</translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Dosya URL listesi boş</translation> <translation type="vanished">Dosya URL listesi boş</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Dosya, geçerli bir resim değil</translation> <translation>Dosya, geçerli bir resim değil</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Resim verisi geçersiz veya şuan desteklenmiyor</translation> <translation>Resim verisi geçersiz veya şuan desteklenmiyor</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Resim verisi geçersiz</translation> <translation type="vanished">Resim verisi geçersiz</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Desteklenmeyen dosya türü verisi: %1</translation> <translation type="vanished">Desteklenmeyen dosya türü verisi: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Dosya URL listesi boş</translation> <translation>Dosya URL listesi boş</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Kopyala</translation> <translation>&amp;Kopyala</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Resim verisi geçersiz</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Desteklenmeyen dosya türü verisi: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation>Panodaki Resim</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation>&quot;%1&quot; ögesini geri dönüşüm kutusuna taşımak istediğinizden emin misiniz?</translation> <translation>&quot;%1&quot; ögesini geri dönüşüm kutusuna taşımak istediğinizden emin misiniz?</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation>Çöp kutusuna taşıma başarısız oldu, dosya izin sorunu, dosya sistemi sınırlaması veya platform sınırlamasından kaynaklanıyor olabilir.</translation> <translation>Çöp kutusuna taşıma başarısız oldu, dosya izin sorunu, dosya sistemi sınırlaması veya platform sınırlamasından kaynaklanıyor olabilir.</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>P&amp;ixmap&apos;i Kopyala</translation> <translation>P&amp;ixmap&apos;i Kopyala</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>&amp;Dosya Yolunu Kopyala</translation> <translation>&amp;Dosya Yolunu Kopyala</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Özellikler</translation> <translation>Özellikler</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Üstte tut</translation> <translation>Üstte tut</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Korumalı kip</translation> <translation>Korumalı kip</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Dönüşümü koru</translation> <translation>Dönüşümü koru</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Yaklaştır</translation> <translation>Yaklaştır</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Uzaklaştır</translation> <translation>Uzaklaştır</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>&amp;Yatay Çevir</translation> <translation>&amp;Yatay Çevir</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation>Görünüme sığdır</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation>Genişliğe sığdır</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>Ya&amp;pıştır</translation> <translation>Ya&amp;pıştır</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Damalı Ekrana Geç</translation> <translation>Damalı Ekrana Geç</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;...</translation> <translation>&amp;...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Gerçek boyut</translation> <translation>Gerçek boyut</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Tam boyuta geç</translation> <translation>Tam boyuta geç</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Sağa döndür</translation> <translation>Sağa döndür</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation>Sola döndür</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Önceki resim</translation> <translation>Önceki resim</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Sonraki resim</translation> <translation>Sonraki resim</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Çöp Kutusuna Taşı</translation> <translation>Çöp Kutusuna Taşı</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Yapılandır...</translation> <translation>Yapılandır...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Yardım</translation> <translation>Yardım</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Dosya Gezgini&apos;nde Göster</translation> <translation>Dosya Gezgini&apos;nde Göster</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Dizinde göster</translation> <translation>Dizinde göster</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Çıkış</translation> <translation>Çıkış</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation>Ananas Resimler</translation> <translation>Ananas Resimler</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation>Desteklenen resim biçimi son eklerini listele ve programdan çık.</translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Dosya list.</translation> <translation>Dosya list.</translation>
</message> </message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="uk"> <TS version="2.1" language="uk_UA">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>
@ -174,8 +174,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation>Перетягніть зображення сюди</translation> <translation>Перетягніть зображення сюди</translation>
</message> </message>
@ -183,172 +183,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Список URL-адрес файлів порожній</translation> <translation type="vanished">Список URL-адрес файлів порожній</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation>Файл не є дійсним зображенням</translation> <translation>Файл не є дійсним зображенням</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation>Дані зображення недійсні або наразі не підтримуються</translation> <translation>Дані зображення недійсні або наразі не підтримуються</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation>Дані зображення недійсні</translation> <translation type="vanished">Дані зображення недійсні</translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation>Не підтримується mimedata: %1</translation> <translation type="vanished">Не підтримується mimedata: %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation>Список URL-адрес файлів порожній</translation> <translation>Список URL-адрес файлів порожній</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>&amp;Скопіювати</translation> <translation>&amp;Скопіювати</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation>Дані зображення недійсні</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation>Не підтримується mimedata: %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>Скопіювати P&amp;ixmap</translation> <translation>Скопіювати P&amp;ixmap</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>Скопіювати &amp;шлях до файлу</translation> <translation>Скопіювати &amp;шлях до файлу</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation>Властивості</translation> <translation>Властивості</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation>Поверх всіх вікон</translation> <translation>Поверх всіх вікон</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation>Захищений режим</translation> <translation>Захищений режим</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Зберігати трансформацію</translation> <translation>Зберігати трансформацію</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation>Збільшити</translation> <translation>Збільшити</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation>Зменшити</translation> <translation>Зменшити</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Перевернути по &amp;горизонталі</translation> <translation>Перевернути по &amp;горизонталі</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>&amp;Вставити</translation> <translation>&amp;Вставити</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation>Перемкнути шахову дошку</translation> <translation>Перемкнути шахову дошку</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>&amp;Відкрити...</translation> <translation>&amp;Відкрити...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation>Фактичний розмір</translation> <translation>Фактичний розмір</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation>Перемкнути на максимум</translation> <translation>Перемкнути на максимум</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation>Перегорнути праворуч</translation> <translation>Перегорнути праворуч</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation>Попереднє зображення</translation> <translation>Попереднє зображення</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation>Наступне зображення</translation> <translation>Наступне зображення</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>Налаштувати...</translation> <translation>Налаштувати...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation>Допомога</translation> <translation>Допомога</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Показати у файловому провіднику</translation> <translation>Показати у файловому провіднику</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation>Показати у теці</translation> <translation>Показати у теці</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>Вийти</translation> <translation>Вийти</translation>
</message> </message>
@ -776,7 +804,12 @@
<translation>Pineapple Pictures</translation> <translation>Pineapple Pictures</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation>Список файлів.</translation> <translation>Список файлів.</translation>
</message> </message>

View File

@ -178,8 +178,8 @@
<context> <context>
<name>GraphicsScene</name> <name>GraphicsScene</name>
<message> <message>
<location filename="../graphicsscene.cpp" line="89"/> <location filename="../mainwindow.cpp" line="264"/>
<location filename="../mainwindow.cpp" line="296"/> <location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source> <source>Drag image here</source>
<translation></translation> <translation></translation>
</message> </message>
@ -187,172 +187,200 @@
<context> <context>
<name>GraphicsView</name> <name>GraphicsView</name>
<message> <message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation> URL </translation> <translation type="vanished"> URL </translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="52"/> <location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source> <source>File is not a valid image</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="57"/> <location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="62"/> <location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source> <source>Image data is invalid or currently unsupported</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source> <source>Image data is invalid</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source> <source>Not supported mimedata: %1</source>
<translation> MimeData %1</translation> <translation type="vanished"> MimeData %1</translation>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../mainwindow.cpp" line="191"/> <location filename="../mainwindow.cpp" line="175"/>
<location filename="../mainwindow.cpp" line="531"/>
<source>File url list is empty</source> <source>File url list is empty</source>
<translation> URL </translation> <translation> URL </translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="448"/> <location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>(&amp;C)</translation> <translation>(&amp;C)</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="737"/> <location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="546"/>
<source>Not supported mimedata: %1</source>
<translation> MimeData %1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="742"/>
<source>Image From Clipboard</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="760"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="742"/> <location filename="../mainwindow.cpp" line="765"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="106"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source> <source>Copy P&amp;ixmap</source>
<translation>(&amp;I)</translation> <translation>(&amp;I)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="107"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source> <source>Copy &amp;File Path</source>
<translation>(&amp;F)</translation> <translation>(&amp;F)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="125"/> <location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source> <source>Properties</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/> <location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source> <source>Stay on top</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/> <location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source> <source>Protected mode</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/> <location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source> <source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment> <comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="95"/> <location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source> <source>Zoom in</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="96"/> <location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source> <source>Zoom out</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>(&amp;H)</translation> <translation>(&amp;H)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="106"/>
<source>Fit to view</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<source>Fit to width</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="110"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>(&amp;P)</translation> <translation>(&amp;P)</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="97"/> <location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source> <source>Toggle Checkerboard</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="91"/> <location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source> <source>&amp;Open...</source>
<translation>(&amp;O)...</translation> <translation>(&amp;O)...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="93"/> <location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source> <source>Actual size</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="94"/> <location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source> <source>Toggle maximize</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="98"/> <location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source> <source>Rotate right</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="100"/> <location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source> <source>Previous image</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="101"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source> <source>Next image</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../mainwindow.cpp" line="759"/>
<location filename="../mainwindow.cpp" line="736"/> <location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source> <source>Configure...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="116"/>
<source>Help</source> <source>Help</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source> <source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment> <comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="123"/> <location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source> <source>Show in directory</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="126"/> <location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source> <source>Quit</source>
<translation>退</translation> <translation>退</translation>
</message> </message>
@ -780,7 +808,12 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="45"/> <location filename="../main.cpp" line="44"/>
<source>List supported image format suffixes, and quit program.</source>
<translation>退</translation>
</message>
<message>
<location filename="../main.cpp" line="48"/>
<source>File list.</source> <source>File list.</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -12,7 +12,7 @@ environment:
QTDIR: C:\Qt\6.7\mingw_64 QTDIR: C:\Qt\6.7\mingw_64
MINGW64: C:\Qt\Tools\mingw1120_64 MINGW64: C:\Qt\Tools\mingw1120_64
KF_BRANCH: master KF_BRANCH: master
EXIV2_VERSION: "0.28.2" EXIV2_VERSION: "0.28.3"
EXIV2_CMAKE_OPTIONS: "-DEXIV2_ENABLE_BROTLI=OFF -DEXIV2_ENABLE_INIH=OFF -DEXIV2_BUILD_EXIV2_COMMAND=OFF" EXIV2_CMAKE_OPTIONS: "-DEXIV2_ENABLE_BROTLI=OFF -DEXIV2_ENABLE_INIH=OFF -DEXIV2_BUILD_EXIV2_COMMAND=OFF"
PPIC_CMAKE_OPTIONS: "-DPREFER_QT_5=OFF" PPIC_CMAKE_OPTIONS: "-DPREFER_QT_5=OFF"
WINDEPLOYQT_ARGS: "--verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --skip-plugin-types tls,networkinformation" WINDEPLOYQT_ARGS: "--verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --skip-plugin-types tls,networkinformation"
@ -67,7 +67,7 @@ build_script:
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
# install AOM for libavif AV1 decoding support... # install AOM for libavif AV1 decoding support...
- cd 3rdparty - cd 3rdparty
#- git clone -b v3.6.0 --depth 1 https://aomedia.googlesource.com/aom #- git clone -b v3.9.1 --depth 1 https://aomedia.googlesource.com/aom
#- cd aom #- cd aom
#- mkdir build.aom #- mkdir build.aom
#- cd build.aom #- cd build.aom
@ -76,18 +76,18 @@ build_script:
#- cmake --build . --config Release --target install/strip #- cmake --build . --config Release --target install/strip
- mkdir aom - mkdir aom
- cd aom - cd aom
- curl -fsSL -o ppkg-aom.zip https://sourceforge.net/projects/pineapple-package-manager/files/packages/mingw-w64-x86_64-windows/aom-3.6.0-1.zip - curl -fsSL -o ppkg-aom.zip https://sourceforge.net/projects/pineapple-package-manager/files/packages/mingw-w64-x86_64-windows/aom-3.9.1-2.zip
- ppkg ppkg-aom.zip - ppkg ppkg-aom.zip
- 7z x ppkg-aom.zip LICENSE -y - 7z x ppkg-aom.zip LICENSE -y
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
# install libavif for avif format support of KImageFormats # install libavif for avif format support of KImageFormats
- cd %LIBAVIF% - cd %LIBAVIF%
- curl -fsSL -o libavif-v0_11_1.zip https://github.com/AOMediaCodec/libavif/archive/v0.11.1.zip - curl -fsSL -o libavif-v1_1_1.zip https://github.com/AOMediaCodec/libavif/archive/v1.1.1.zip
- 7z x libavif-v0_11_1.zip -y - 7z x libavif-v1_1_1.zip -y
- cd libavif-0.11.1 - cd libavif-1.1.1
- mkdir build - mkdir build
- cd build - cd build
- cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DAVIF_CODEC_AOM=ON - cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DAVIF_CODEC_AOM=ON -DAVIF_LOCAL_LIBYUV=ON
- cmake --build . --config Release - cmake --build . --config Release
- cmake --build . --config Release --target install/strip - cmake --build . --config Release --target install/strip
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
@ -104,9 +104,9 @@ build_script:
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
# build libexpat for libexiv2 # build libexpat for libexiv2
- cd %LIBEXPAT% - cd %LIBEXPAT%
- curl -fsSL -o R_2_5_0.zip https://github.com/libexpat/libexpat/archive/R_2_5_0.zip - curl -fsSL -o R_2_6_2.zip https://github.com/libexpat/libexpat/archive/R_2_6_2.zip
- 7z x R_2_5_0.zip -y - 7z x R_2_6_2.zip -y
- cd libexpat-R_2_5_0/expat/ - cd libexpat-R_2_6_2/expat/
- cmake -G "Ninja" . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF - cmake -G "Ninja" . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF
- cmake --build . --target install/strip - cmake --build . --target install/strip
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
@ -151,8 +151,8 @@ build_script:
- copy %APPVEYOR_BUILD_FOLDER%\3rdparty\aom\LICENSE License.aom.txt - copy %APPVEYOR_BUILD_FOLDER%\3rdparty\aom\LICENSE License.aom.txt
- copy %APPVEYOR_BUILD_FOLDER%\3rdparty\karchive\LICENSES\LGPL-2.0-or-later.txt License.KArchive.txt - copy %APPVEYOR_BUILD_FOLDER%\3rdparty\karchive\LICENSES\LGPL-2.0-or-later.txt License.KArchive.txt
- copy %APPVEYOR_BUILD_FOLDER%\3rdparty\kimageformats\LICENSES\LGPL-2.1-or-later.txt License.kimageformats.txt - copy %APPVEYOR_BUILD_FOLDER%\3rdparty\kimageformats\LICENSES\LGPL-2.1-or-later.txt License.kimageformats.txt
- copy %LIBEXPAT%\libexpat-R_2_5_0\expat\COPYING License.expat.txt - copy %LIBEXPAT%\libexpat-R_2_6_2\expat\COPYING License.expat.txt
- copy %LIBAVIF%\libavif-0.11.1\LICENSE License.libavif.txt - copy %LIBAVIF%\libavif-1.1.1\LICENSE License.libavif.txt
- copy %LIBEXIV2%\exiv2-%EXIV2_VERSION%\COPYING License.exiv2.txt - copy %LIBEXIV2%\exiv2-%EXIV2_VERSION%\COPYING License.exiv2.txt
# TODO: Qt, zlib # TODO: Qt, zlib
- cd .. - cd ..

View File

@ -74,6 +74,16 @@
</screenshot> </screenshot>
</screenshots> </screenshots>
<releases> <releases>
<release type="stable" version="0.8.1" date="2024-08-25T00:00:00Z">
<description>
<p>This release adds the following feature:</p>
<ul>
<li>New command line option to list all supported formats</li>
</ul>
<p>With contributions from:</p>
<p>albanobattistella, mmahhi, ovl-1, gallegonovato, Oğuz Ersen</p>
</description>
</release>
<release type="stable" version="0.8.0" date="2024-06-29T00:00:00Z"> <release type="stable" version="0.8.0" date="2024-06-29T00:00:00Z">
<description> <description>
<p>This release adds the following feature:</p> <p>This release adds the following feature:</p>