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:
vs: ['2022']
msvc_arch: ['x64']
qt_ver: ['6.7.2']
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v3
uses: jurplel/install-qt-action@v4
with:
arch: 'win64_msvc2019_64'
version: '6.7.2'
version: ${{ matrix.qt_ver }}
modules: 'qtimageformats'
- name: Build
shell: cmd
run: |
@ -29,10 +31,10 @@ jobs:
qmake pineapple-pictures.pro
nmake
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
with:
name: windows-msvc2022-qt6.7.2-qmake-package
name: "windows-msvc${{ matrix.vs }}-qt${{ matrix.qt_ver }}-qmake-package"
path: release/*
msvc-cmake-build:
@ -41,29 +43,69 @@ jobs:
matrix:
vs: ['2022']
msvc_arch: ['x64']
qt_ver: ['6.7.2']
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v3
uses: jurplel/install-qt-action@v4
with:
arch: 'win64_msvc2019_64'
version: '6.5.3'
version: ${{ matrix.qt_ver }}
modules: 'qtimageformats'
- name: Build
shell: cmd
run: |
:: ------ env ------
set PWD=%cd%
set VS=${{ matrix.vs }}
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"
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 --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
with:
name: windows-msvc2022-qt6.5.3-cmake-package
name: "windows-msvc${{ matrix.vs }}-qt${{ matrix.qt_ver }}-cmake-package"
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
~~~~~~~~~~~~~
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_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, actionNextPicture);
@ -96,13 +97,14 @@ void ActionManager::retranslateUi(MainWindow *mainWindow)
actionZoomOut->setText(QCoreApplication::translate("MainWindow", "Zoom out", nullptr));
actionToggleCheckerboard->setText(QCoreApplication::translate("MainWindow", "Toggle Checkerboard", 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));
actionNextPicture->setText(QCoreApplication::translate("MainWindow", "Next image", nullptr));
actionHorizontalFlip->setText(QCoreApplication::translate("MainWindow", "Flip &Horizontally", nullptr));
actionFitInView->setText("Fit in view"); // TODO: what should it called?
actionFitByWidth->setText("Fit by width"); // TODO: what should it called?
actionFitInView->setText(QCoreApplication::translate("MainWindow", "Fit to view", nullptr));
actionFitByWidth->setText(QCoreApplication::translate("MainWindow", "Fit to width", nullptr));
actionCopyPixmap->setText(QCoreApplication::translate("MainWindow", "Copy P&ixmap", nullptr));
actionCopyFilePath->setText(QCoreApplication::translate("MainWindow", "Copy &File Path", nullptr));
actionPaste->setText(QCoreApplication::translate("MainWindow", "&Paste", nullptr));

View File

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

View File

@ -23,14 +23,14 @@ GraphicsView::GraphicsView(QWidget *parent)
setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
setStyleSheet("background-color: rgba(0, 0, 0, 220);"
"border-radius: 3px;");
setAcceptDrops(true);
setAcceptDrops(false);
setCheckerboardEnabled(false);
connect(horizontalScrollBar(), &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());
@ -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.
// QImage::Format imageFormat = imageReader.imageFormat();
if (imageReader.format().isEmpty()) {
doRequestGallery = false;
showText(tr("File is not a valid image"));
} else if (imageReader.supportsAnimation() && imageReader.imageCount() > 1) {
showAnimated(filePath);
} else if (!imageReader.canRead()) {
doRequestGallery = false;
showText(tr("Image data is invalid or currently unsupported"));
} else {
QPixmap && pixmap = QPixmap::fromImageReader(&imageReader);
if (pixmap.isNull()) {
doRequestGallery = false;
showText(tr("Image data is invalid or currently unsupported"));
} else {
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)
@ -318,55 +311,6 @@ void GraphicsView::resizeEvent(QResizeEvent *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
{
return rect().size().expandedTo(transform.mapRect(sceneRect()).size().toSize())

View File

@ -15,7 +15,7 @@ class GraphicsView : public QGraphicsView
public:
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 QImage &image);
@ -48,7 +48,6 @@ public:
signals:
void navigatorViewRequired(bool required, QTransform transform);
void viewportRectChanged();
void requestGallery(const QString &filePath);
public slots:
void toggleCheckerboard(bool invertCheckerboardColor = false);
@ -60,10 +59,6 @@ private:
void wheelEvent(QWheelEvent *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 shouldIgnoreMousePressMoveEvent(const QMouseEvent *event) const;
void setCheckerboardEnabled(bool enabled, bool invertColor = false);

View File

@ -40,13 +40,20 @@ int main(int argc, char *argv[])
a.setApplicationName("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
QCommandLineParser parser;
parser.addOption(supportedImageFormats);
parser.addPositionalArgument("File list", QCoreApplication::translate("main", "File list."));
parser.addHelpOption();
parser.process(a);
if (parser.isSet(supportedImageFormats)) {
fputs(qPrintable(MainWindow::supportedImageFormats().join(QChar('\n'))), stdout);
::exit(EXIT_SUCCESS);
}
MainWindow w;
w.show();

View File

@ -33,6 +33,7 @@
#include <QTimer>
#include <QFileDialog>
#include <QStandardPaths>
#include <QStringBuilder>
#include <QProcess>
#include <QDesktopServices>
#include <QMessageBox>
@ -45,7 +46,7 @@
MainWindow::MainWindow(QWidget *parent)
: FramelessWindow(parent)
, m_am(new ActionManager)
, m_pm(new PlaylistManager(PlaylistManager::PL_SAMEFOLDER, this))
, m_pm(new PlaylistManager(this))
{
if (Settings::instance()->stayOnTop()) {
this->setWindowFlag(Qt::WindowStaysOnTopHint);
@ -55,12 +56,9 @@ MainWindow::MainWindow(QWidget *parent)
this->setMinimumSize(350, 330);
this->setWindowIcon(QIcon(":/icons/app-icon.svg"));
this->setMouseTracking(true);
this->setAcceptDrops(true);
m_pm->setAutoLoadFilterSuffix({
"*.jpg", "*.jpeg", "*.jfif",
"*.png", "*.gif", "*.svg", "*.bmp", "*.webp",
"*.tif", "*.tiff"
});
m_pm->setAutoLoadFilterSuffixes(supportedImageFormats());
m_fadeOutAnimation = new QPropertyAnimation(this, "windowOpacity");
m_fadeOutAnimation->setDuration(300);
@ -98,9 +96,6 @@ MainWindow::MainWindow(QWidget *parent)
connect(m_graphicsView, &GraphicsView::viewportRectChanged,
m_gv, &NavigatorView::updateMainViewportRegion);
connect(m_graphicsView, &GraphicsView::requestGallery,
this, &MainWindow::loadGalleryBySingleLocalFile);
m_closeButton = new ToolButton(true, m_graphicsView);
m_closeButton->setIconSize(QSize(32, 32));
m_closeButton->setFixedSize(QSize(50, 50));
@ -140,19 +135,13 @@ MainWindow::MainWindow(QWidget *parent)
m_gv->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_nextButton->setVisible(galleryFileCount > 1);
});
connect(m_pm, &PlaylistManager::currentIndexChanged, this, [this]() {
int index;
QUrl url;
std::tie(index, url) = m_pm->currentFileUrl();
if (index != -1) {
this->setWindowTitle(url.fileName());
}
});
connect(m_pm->model(), &PlaylistModel::modelReset, this, std::bind(&MainWindow::galleryCurrent, this, false, false));
connect(m_pm, &PlaylistManager::currentIndexChanged, this, std::bind(&MainWindow::galleryCurrent, this, true, false));
QShortcut * fullscreenShorucut = new QShortcut(QKeySequence(QKeySequence::FullScreen), this);
connect(fullscreenShorucut, &QShortcut::activated,
@ -180,13 +169,8 @@ MainWindow::~MainWindow()
void MainWindow::showUrls(const QList<QUrl> &urls)
{
if (!urls.isEmpty()) {
if (urls.count() == 1) {
m_graphicsView->showFileFromPath(urls.first().toLocalFile(), true);
} else {
m_graphicsView->showFileFromPath(urls.first().toLocalFile(), false);
m_pm->setPlaylist(urls);
m_pm->setCurrentIndex(0);
}
m_graphicsView->showFileFromPath(urls.first().toLocalFile());
m_pm->loadPlaylist(urls);
} else {
m_graphicsView->showText(tr("File url list is empty"));
return;
@ -212,7 +196,7 @@ void MainWindow::initWindowSize()
void MainWindow::adjustWindowSizeBySceneRect()
{
if (m_pm->count() < 1) return;
if (m_pm->totalCount() < 1) return;
QSize sceneSize = m_graphicsView->sceneRect().toRect().size();
QSize sceneSizeWithMargins = sceneSize + QSize(130, 125);
@ -243,60 +227,57 @@ void MainWindow::adjustWindowSizeBySceneRect()
// can be empty if it is NOT from a local file.
QUrl MainWindow::currentImageFileUrl() const
{
QUrl url;
std::tie(std::ignore, url) = m_pm->currentFileUrl();
return url;
return m_pm->urlByIndex(m_pm->curIndex());
}
void MainWindow::clearGallery()
{
m_pm->clear();
}
void MainWindow::loadGalleryBySingleLocalFile(const QString &path)
{
m_pm->setCurrentFile(path);
m_pm->setPlaylist({});
}
void MainWindow::galleryPrev()
{
int index;
QString filePath;
std::tie(index, filePath) = m_pm->previousFile();
if (index >= 0) {
m_graphicsView->showFileFromPath(filePath, false);
QModelIndex index = m_pm->previousIndex();
if (index.isValid()) {
m_pm->setCurrentIndex(index);
m_graphicsView->showFileFromPath(m_pm->localFileByIndex(index));
}
}
void MainWindow::galleryNext()
{
int index;
QString filePath;
std::tie(index, filePath) = m_pm->nextFile();
if (index >= 0) {
m_graphicsView->showFileFromPath(filePath, false);
QModelIndex index = m_pm->nextIndex();
if (index.isValid()) {
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.
void MainWindow::galleryCurrent()
// Only use this to update minor information.
void MainWindow::galleryCurrent(bool showLoadImageHintWhenEmpty, bool reloadImage)
{
int index;
QString filePath;
std::tie(index, filePath) = m_pm->currentFile();
if (index >= 0) {
m_graphicsView->showFileFromPath(filePath, false);
} else {
QModelIndex index = m_pm->curIndex();
if (index.isValid()) {
if (reloadImage) m_graphicsView->showFileFromPath(m_pm->localFileByIndex(index));
setWindowTitle(m_pm->urlByIndex(index).fileName());
} else if (showLoadImageHintWhenEmpty && m_pm->totalCount() <= 0) {
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)
{
updateWidgetsPosition();
@ -522,6 +503,50 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *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()
{
this->setGeometry(
@ -714,23 +739,21 @@ void MainWindow::on_actionPaste_triggered()
}
if (!clipboardImage.isNull()) {
setWindowTitle(tr("Image From Clipboard"));
m_graphicsView->showImage(clipboardImage);
clearGallery();
} else if (clipboardFileUrl.isValid()) {
QString localFile(clipboardFileUrl.toLocalFile());
m_graphicsView->showFileFromPath(localFile, true);
m_pm->setCurrentFile(localFile);
m_graphicsView->showFileFromPath(clipboardFileUrl.toLocalFile());
m_pm->loadPlaylist(clipboardFileUrl);
}
}
void MainWindow::on_actionTrash_triggered()
{
int currentFileIndex;
QUrl currentFileUrl;
std::tie(currentFileIndex, currentFileUrl) = m_pm->currentFileUrl();
if (!currentFileUrl.isLocalFile()) return;
QModelIndex index = m_pm->curIndex();
if (!m_pm->urlByIndex(index).isLocalFile()) return;
QFile file(currentFileUrl.toLocalFile());
QFile file(m_pm->localFileByIndex(index));
QFileInfo fileInfo(file.fileName());
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",
tr("Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation."));
} else {
m_pm->removeFileAt(currentFileIndex);
galleryCurrent();
m_pm->removeAt(index);
galleryCurrent(true, true);
}
}
}
@ -760,6 +783,13 @@ void MainWindow::on_actionRotateClockwise_triggered()
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()
{
galleryPrev();

View File

@ -42,10 +42,11 @@ public:
QUrl currentImageFileUrl() const;
void clearGallery();
void loadGalleryBySingleLocalFile(const QString &path);
void galleryPrev();
void galleryNext();
void galleryCurrent();
void galleryCurrent(bool showLoadImageHintWhenEmpty, bool reloadImage);
static QStringList supportedImageFormats();
protected slots:
void showEvent(QShowEvent *event) override;
@ -58,6 +59,9 @@ protected slots:
void wheelEvent(QWheelEvent *event) override;
void resizeEvent(QResizeEvent *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 closeWindow();
@ -83,6 +87,7 @@ private slots:
void on_actionZoomOut_triggered();
void on_actionToggleCheckerboard_triggered();
void on_actionRotateClockwise_triggered();
void on_actionRotateCounterClockwise_triggered();
void on_actionPrevPicture_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
@ -9,63 +9,48 @@
#include <QFileInfo>
#include <QUrl>
PlaylistManager::PlaylistManager(PlaylistType type, QObject *parent)
: QObject(parent)
, m_type(type)
PlaylistModel::PlaylistModel(QObject *parent)
: QAbstractListModel(parent)
{
}
PlaylistManager::~PlaylistManager()
PlaylistModel::~PlaylistModel()
{
}
void PlaylistManager::setPlaylistType(PlaylistManager::PlaylistType type)
{
m_type = type;
}
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 PlaylistModel::setPlaylist(const QList<QUrl> &urls)
{
beginResetModel();
m_playlist = urls;
endResetModel();
}
void PlaylistManager::setCurrentFile(const QString & filePath)
QModelIndex PlaylistModel::loadPlaylist(const QList<QUrl> & urls)
{
QFileInfo info(filePath);
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();
switch (playlistType()) {
case PL_SAMEFOLDER: {
if (dir.path() == m_currentDir) {
int index = indexOf(filePath);
m_currentIndex = index == -1 ? appendFile(filePath) : index;
} else {
int idx = indexOf(url);
return idx == -1 ? appendToPlaylist(url) : index(idx);
}
QStringList entryList = dir.entryList(
m_autoLoadSuffix,
m_autoLoadSuffixes,
QDir::Files | QDir::NoSymLinks, QDir::NoSort);
QCollator collator;
@ -73,102 +58,187 @@ void PlaylistManager::setCurrentFile(const QString & filePath)
std::sort(entryList.begin(), entryList.end(), collator);
clear();
QList<QUrl> playlist;
int index = -1;
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);
m_playlist.append(url);
playlist.append(url);
if (fileName == currentFileName) {
index = i;
idx = i;
}
}
m_currentIndex = index == -1 ? appendFile(filePath) : index;
if (idx == -1) {
idx = playlist.count();
playlist.append(url);
}
m_currentDir = dir.path();
}
break;
}
case PL_USERPLAYLIST:{
int index = indexOf(filePath);
m_currentIndex = index == -1 ? appendFile(filePath) : index;
break;
}
default:
break;
setPlaylist(playlist);
return index(idx);
}
emit currentIndexChanged(m_currentIndex);
emit loaded(m_playlist.count());
}
void PlaylistManager::setCurrentIndex(int index)
QModelIndex PlaylistModel::appendToPlaylist(const QUrl &url)
{
if (index < 0 || index >= m_playlist.count()) return;
m_currentIndex = index;
emit currentIndexChanged(m_currentIndex);
const int lastIndex = rowCount();
beginInsertRows(QModelIndex(), lastIndex, lastIndex);
m_playlist.append(url);
endInsertRows();
return index(lastIndex);
}
int PlaylistManager::appendFile(const QString &filePath)
{
int index = m_playlist.length();
m_playlist.append(QUrl::fromLocalFile(filePath));
return index;
}
// Note: this will only remove file out of the list, this will NOT delete the file
void PlaylistManager::removeFileAt(int index)
bool PlaylistModel::removeAt(int index)
{
if (index < 0 || index >= rowCount()) return false;
beginRemoveRows(QModelIndex(), index, index);
m_playlist.removeAt(index);
if (m_playlist.count() <= m_currentIndex) {
m_currentIndex--;
}
endRemoveRows();
return true;
}
int PlaylistManager::indexOf(const QString &filePath)
int PlaylistModel::indexOf(const QUrl &url) const
{
const QUrl & url = QUrl::fromLocalFile(filePath);
return m_playlist.indexOf(url);
}
int PlaylistManager::count() const
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();
}
std::tuple<int, QString> PlaylistManager::previousFile() const
QVariant PlaylistModel::data(const QModelIndex &index, int role) const
{
int count = m_playlist.count();
if (count == 0) return std::make_tuple(-1, QString());
if (!index.isValid()) return QVariant();
int index = m_currentIndex - 1 < 0 ? count - 1 : m_currentIndex - 1;
return std::make_tuple(index, m_playlist.at(index).toLocalFile());
switch (role) {
case Qt::DisplayRole:
return m_playlist.at(index.row()).fileName();
case UrlRole:
return m_playlist.at(index.row());
}
std::tuple<int, QString> PlaylistManager::nextFile() const
{
int count = m_playlist.count();
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());
return QVariant();
}
std::tuple<int, QString> PlaylistManager::currentFile() const
PlaylistManager::PlaylistManager(QObject *parent)
: QObject(parent)
{
if (m_playlist.count() == 0) return std::make_tuple(-1, QString());
connect(&m_model, &PlaylistModel::rowsRemoved, this,
[this](const QModelIndex &, int, int) {
if (m_model.rowCount() <= m_currentIndex) {
setProperty("currentIndex", m_currentIndex - 1);
}
});
return std::make_tuple(m_currentIndex, m_playlist.at(m_currentIndex).toLocalFile());
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);
}
std::tuple<int, QUrl> PlaylistManager::currentFileUrl() const
PlaylistManager::~PlaylistManager()
{
if (m_playlist.count() == 0) return std::make_tuple(-1, QUrl());
return std::make_tuple(m_currentIndex, m_playlist.at(m_currentIndex));
}
PlaylistModel *PlaylistManager::model()
{
return &m_model;
}
void PlaylistManager::setPlaylist(const QList<QUrl> &urls)
{
m_model.setPlaylist(urls);
}
QModelIndex PlaylistManager::loadPlaylist(const QList<QUrl> &urls)
{
QModelIndex idx = m_model.loadPlaylist(urls);
setProperty("currentIndex", idx.row());
return idx;
}
QModelIndex PlaylistManager::loadPlaylist(const QUrl &url)
{
QModelIndex idx = m_model.loadPlaylist(url);
setProperty("currentIndex", idx.row());
return idx;
}
int PlaylistManager::totalCount() const
{
return m_model.rowCount();
}
QModelIndex PlaylistManager::previousIndex() const
{
int count = totalCount();
if (count == 0) return QModelIndex();
return m_model.index(m_currentIndex - 1 < 0 ? count - 1 : m_currentIndex - 1);
}
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());
}
}
QUrl PlaylistManager::urlByIndex(const QModelIndex &index)
{
return m_model.urlByIndex(index.row());
}
QString PlaylistManager::localFileByIndex(const QModelIndex &index)
{
return urlByIndex(index).toLocalFile();
}
bool PlaylistManager::removeAt(const QModelIndex &index)
{
return m_model.removeAt(index.row());
}
void PlaylistManager::setAutoLoadFilterSuffixes(const QStringList &nameFilters)
{
m_model.setProperty("autoLoadFilterSuffixes", nameFilters);
}
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
#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
{
Q_OBJECT
public:
Q_PROPERTY(int currentIndex MEMBER m_currentIndex NOTIFY currentIndexChanged)
Q_PROPERTY(QStringList autoLoadFilterSuffixes WRITE setAutoLoadFilterSuffixes)
Q_PROPERTY(PlaylistModel * model READ model CONSTANT)
enum PlaylistType {
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);
explicit PlaylistManager(QObject *parent = nullptr);
~PlaylistManager();
void setPlaylistType(PlaylistType type);
PlaylistType playlistType() const;
PlaylistModel * model();
QStringList autoLoadFilterSuffix() const;
void setAutoLoadFilterSuffix(const QStringList &nameFilters);
void setPlaylist(const QList<QUrl> & url);
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 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;
void setAutoLoadFilterSuffixes(const QStringList &nameFilters);
static QList<QUrl> convertToUrlList(const QStringList & files);
signals:
void loaded(int length);
void currentIndexChanged(int index);
void totalCountChanged(int count);
private:
QList<QUrl> m_playlist;
PlaylistType m_type;
QString m_currentDir;
int m_currentIndex = -1;
QStringList m_autoLoadSuffix = {};
PlaylistModel m_model;
};

View File

@ -174,8 +174,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation type="unfinished"></translation>
</message>
@ -183,172 +183,188 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source>
<translation type="unfinished"></translation>
</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>
<name>MainWindow</name>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="737"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<location filename="../mainwindow.cpp" line="539"/>
<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>
</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>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
@ -776,7 +792,12 @@
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ca">
<TS version="2.1" language="ca_ES">
<context>
<name>AboutDialog</name>
<message>
@ -174,8 +174,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation>Arrossegueu una imatge aquí</translation>
</message>
@ -183,172 +183,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<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>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation>El fitxer no és una imatge vàlida</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<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>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<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>
<location filename="../graphicsview.cpp" line="366"/>
<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>
</context>
<context>
<name>MainWindow</name>
<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>
<translation>La llista d&apos;ubicacions és buida</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>&amp;Copia</translation>
</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>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation>Copia el &amp;mapa de píxels</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation>Copia el camí del &amp;fitxer</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation>Propietats</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation>Mantén a sobre</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation>Mode protegit</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation>Amplia</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation>Redueix</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation>Inverteix &amp;horitzontalment</translation>
</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>
<translation>&amp;Enganxa</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation>Commuta el tauler d&apos;escacs</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>&amp;Obre...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation>Mida real</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation>Commuta la maximització</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation>Commuta la maximització</translation>
</message>
<message>
<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>
<translation>Imatge anterior</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation>Imatge següent</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>Configura...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation>Ajuda</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Mostra al navegador de fitxers</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation>Mostra a la carpeta</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation>Surt</translation>
</message>
@ -776,7 +804,12 @@
<translation>Pineapple Pictures</translation>
</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>
<translation>Llista de fitxers.</translation>
</message>

View File

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="es">
<TS version="2.1" language="es_ES">
<context>
<name>AboutDialog</name>
<message>
@ -178,8 +178,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation>Arrastre una imagen aquí</translation>
</message>
@ -187,172 +187,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<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>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation>El archivo no es una imagen válida</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source>
<translation>Los datos de la imagen no son válidos o no son compatibles</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<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>
<location filename="../graphicsview.cpp" line="366"/>
<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>
</context>
<context>
<name>MainWindow</name>
<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>
<translation>La lista de ubicaciones está vacía</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>&amp;Copiar</translation>
</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>
<translation>¿Estás seguro de que quieres mover &quot;%1&quot; a la papelera de reciclaje?</translation>
</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>
<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>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation>Copiar &amp;mapa de píxeles</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation>Copiar &amp;ruta de archivo</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation>Propiedades</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation>Mantener encima</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation>Modo protegido</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Conservar la transformación</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation>Ampliar</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation>Reducir</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation>Voltear &amp;horizontalmente</translation>
</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>
<translation>&amp;Pegar</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation>Activar/desactivar el tablero de ajedrez</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>&amp;Abrir...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation>Tamaño real</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation>Maximizar/desmaximizar</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation>Girar a la derecha</translation>
</message>
<message>
<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>
<translation>Imagen anterior</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation>Imagen siguiente</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation>Mover a la papelera</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>Configurar...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation>Ayuda</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Mostrar en el Explorador de archivos</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation>Mostrar en la carpeta</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation>Salir</translation>
</message>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation>
</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>
<translation>Lista de archivos.</translation>
</message>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr">
<TS version="2.1" language="fr_FR">
<context>
<name>AboutDialog</name>
<message>
@ -178,8 +178,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation>Faites glisser l&apos;image ici</translation>
</message>
@ -187,172 +187,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<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>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation>Le fichier n&apos;est pas une image valide</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<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>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<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>
<location filename="../graphicsview.cpp" line="366"/>
<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>
</context>
<context>
<name>MainWindow</name>
<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>
<translation>La liste des URL de fichiers est vide</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>&amp;Copier</translation>
</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>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation>Copier P&amp;ixmap</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation>Copier le &amp;chemin du fichier</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation>Propriétés</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation>Rester en-haut</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation>Mode protégé</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation>Zoom avant</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation>Zoom arrière</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation>Retourner &amp;horizontalement</translation>
</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>
<translation>Co&amp;ller</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation>Dés/activer le damier</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>&amp;Ouvrir...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation>Taille actuelle</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation>Dés/activer l&apos;agrandissement</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation>Pivoter vers la droite</translation>
</message>
<message>
<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>
<translation>Image précédente</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation>Image suivant</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>Configurer</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation>Aide</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Afficher dans le navigateur de fichiers</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation>Afficher dans le dossier</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation>Quitter</translation>
</message>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation>
</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>
<translation>Liste des fichiers.</translation>
</message>

View File

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it">
<TS version="2.1" language="it_IT">
<context>
<name>AboutDialog</name>
<message>
@ -174,8 +174,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation>Trascina qui l&apos;immagine</translation>
</message>
@ -183,172 +183,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<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>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation>Il file non è un&apos;immagine valida</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source>
<translation>I dati dell&apos;immagine non sono validi o non sono attualmente supportati</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<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>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source>
<translation>Dati mime non supportati: %1</translation>
<translation type="vanished">Dati mime non supportati: %1</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<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>
<translation>L&apos;elenco degli URL dei file è vuoto</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>&amp;Copia</translation>
</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>
<translation>Sei sicuro di voler spostare &quot;%1&quot; nel cestino?</translation>
</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>
<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>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation>Copia P&amp;ixmap</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation>Copia &amp;Percorso file</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation>Proprietà</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation>Rimani in cima</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation>Modalità protetta</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Mantieni trasformazione</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation>Zoom avanti</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation>Zoom indietro</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation>Capovolgi &amp;Orizzontalmente</translation>
</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>
<translation>&amp;Incolla</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation>Attiva/disattiva scacchiera</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>&amp;Apri...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation>Dimensione reale</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation>Attiva massimizzazione</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation>Ruota a destra</translation>
</message>
<message>
<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>
<translation>Immagine precedente</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation>Immagine successiva</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation>Sposta nel cestino</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>Configura...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation>Aiuto</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Mostra in Esplora file</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation>Mostra nella directory</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation>Esci</translation>
</message>
@ -776,7 +804,12 @@
<translation>Immagini di Pineapple</translation>
</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>
<translation>Elenco file.</translation>
</message>

View File

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ko">
<TS version="2.1" language="ko_KR">
<context>
<name>AboutDialog</name>
<message>
@ -174,8 +174,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation> </translation>
</message>
@ -183,172 +183,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source>
<translation> URL </translation>
<translation type="vanished"> URL </translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation> </translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source>
<translation> </translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<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> mimedata: %1</translation>
<translation type="vanished"> mimedata: %1</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<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>
<translation> URL </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>(&amp;C)</translation>
</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>
<translation type="unfinished"></translation>
</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>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation>Pixmap (&amp;I)</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation> (&amp;F)</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation> (&amp;H)</translation>
</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>
<translation>(&amp;P)</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>(&amp;O)...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation> </translation>
</message>
<message>
<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>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation> </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation></translation>
</message>
@ -776,7 +804,12 @@
<translation> </translation>
</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>
<translation> .</translation>
</message>

View File

@ -111,7 +111,7 @@
<message>
<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>
<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>
<location filename="../aboutdialog.cpp" line="57"/>
@ -178,8 +178,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation>Dra bilde hit</translation>
</message>
@ -187,172 +187,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<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>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation>Filen er ikke et gyldig bilde</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source>
<translation>Ugyldig bildedata, eller for tiden ustøttet</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source>
<translation>Ugyldig bildedata</translation>
<translation type="vanished">Ugyldig bildedata</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="366"/>
<source>Not supported mimedata: %1</source>
<translation>Ustøttet MIME-data: %1</translation>
<translation type="vanished">Ustøttet MIME-data: %1</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<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>
<translation>Listen over filnettadresser er ugyldig</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>&amp;Kopier</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="737"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation>
<location filename="../mainwindow.cpp" line="539"/>
<source>Image data is invalid</source>
<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>
<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>
</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>
<translation type="unfinished">Kopier p&amp;ixmap</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation>Kopier %filsti</translation>
<translation>Kopier &amp;filbane</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation>Egenskaper</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation>Behold øverst</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation>Beskyttet modus</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<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>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation>Førstørr</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation>Forminsk</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation>Speilvend &amp;horisontalt</translation>
</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>
<translation>&amp;Lim inn</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation type="unfinished">Skru av/ rutemønster</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>&amp;Åpne </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation>Faktisk størrelse</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation type="unfinished">Veksle maksimering</translation>
<translation>Maksimering av/</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation>Roter til høyre</translation>
</message>
<message>
<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>
<translation>Forrige bilde</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation>Neste bilde</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation type="unfinished"></translation>
<translation>Flytt til papirkurven</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>Sett opp </translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation>Hjelp</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Vis i filutforsker</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation type="unfinished">Vis i mappe</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation>Avslutt</translation>
</message>
@ -700,7 +728,7 @@
<message>
<location filename="../settingsdialog.cpp" line="29"/>
<source>Toggle maximize</source>
<translation>Veksle maksimering</translation>
<translation>Maksimering av/</translation>
</message>
<message>
<location filename="../settingsdialog.cpp" line="33"/>
@ -780,7 +808,12 @@
<translation>Pineapple Pictures</translation>
</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>
<translation>Filliste.</translation>
</message>

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="tr">
<TS version="2.1" language="tr_TR">
<context>
<name>AboutDialog</name>
<message>
@ -178,8 +178,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation>Resmi buraya sürükleyin</translation>
</message>
@ -187,172 +187,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source>
<translation>Dosya URL listesi boş</translation>
<translation type="vanished">Dosya URL listesi boş</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation>Dosya, geçerli bir resim değil</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source>
<translation>Resim verisi geçersiz veya şuan desteklenmiyor</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<source>Image data is invalid</source>
<translation>Resim verisi geçersiz</translation>
<translation type="vanished">Resim verisi geçersiz</translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="366"/>
<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>
</context>
<context>
<name>MainWindow</name>
<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>
<translation>Dosya URL listesi boş</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>&amp;Kopyala</translation>
</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>
<translation>&quot;%1&quot; ögesini geri dönüşüm kutusuna taşımak istediğinizden emin misiniz?</translation>
</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>
<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>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation>P&amp;ixmap&apos;i Kopyala</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation>&amp;Dosya Yolunu Kopyala</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation>Özellikler</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation>Üstte tut</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation>Korumalı kip</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation>Dönüşümü koru</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation>Yaklaştır</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation>Uzaklaştır</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation>&amp;Yatay Çevir</translation>
</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>
<translation>Ya&amp;pıştır</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation>Damalı Ekrana Geç</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>&amp;...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation>Gerçek boyut</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation>Tam boyuta geç</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation>Sağa döndür</translation>
</message>
<message>
<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>
<translation>Önceki resim</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation>Sonraki resim</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation>Çöp Kutusuna Taşı</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>Yapılandır...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation>Yardım</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation>Dosya Gezgini&apos;nde Göster</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation>Dizinde göster</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation>Çıkış</translation>
</message>
@ -780,7 +808,12 @@
<translation>Ananas Resimler</translation>
</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>
<translation>Dosya list.</translation>
</message>

View File

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

View File

@ -178,8 +178,8 @@
<context>
<name>GraphicsScene</name>
<message>
<location filename="../graphicsscene.cpp" line="89"/>
<location filename="../mainwindow.cpp" line="296"/>
<location filename="../mainwindow.cpp" line="264"/>
<location filename="../graphicsscene.cpp" line="90"/>
<source>Drag image here</source>
<translation></translation>
</message>
@ -187,172 +187,200 @@
<context>
<name>GraphicsView</name>
<message>
<location filename="../graphicsview.cpp" line="351"/>
<source>File url list is empty</source>
<translation> URL </translation>
<translation type="vanished"> URL </translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="52"/>
<location filename="../graphicsview.cpp" line="51"/>
<source>File is not a valid image</source>
<translation></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="57"/>
<location filename="../graphicsview.cpp" line="62"/>
<location filename="../graphicsview.cpp" line="55"/>
<location filename="../graphicsview.cpp" line="59"/>
<source>Image data is invalid or currently unsupported</source>
<translation></translation>
</message>
<message>
<location filename="../graphicsview.cpp" line="359"/>
<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> MimeData %1</translation>
<translation type="vanished"> MimeData %1</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<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>
<translation> URL </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="448"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>&amp;Copy</source>
<translation>(&amp;C)</translation>
</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>
<translation>%1</translation>
</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>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="106"/>
<location filename="../actionmanager.cpp" line="108"/>
<source>Copy P&amp;ixmap</source>
<translation>(&amp;I)</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="107"/>
<location filename="../actionmanager.cpp" line="109"/>
<source>Copy &amp;File Path</source>
<translation>(&amp;F)</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="125"/>
<location filename="../actionmanager.cpp" line="127"/>
<source>Properties</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="112"/>
<location filename="../aboutdialog.cpp" line="39"/>
<location filename="../actionmanager.cpp" line="110"/>
<source>Stay on top</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../aboutdialog.cpp" line="42"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Protected mode</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../aboutdialog.cpp" line="45"/>
<location filename="../actionmanager.cpp" line="112"/>
<source>Keep transformation</source>
<comment>The &apos;transformation&apos; means the flip/rotation status that currently applied to the image view</comment>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="95"/>
<location filename="../actionmanager.cpp" line="96"/>
<source>Zoom in</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="96"/>
<location filename="../actionmanager.cpp" line="97"/>
<source>Zoom out</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="103"/>
<location filename="../actionmanager.cpp" line="105"/>
<source>Flip &amp;Horizontally</source>
<translation>(&amp;H)</translation>
</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>
<translation>(&amp;P)</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="97"/>
<location filename="../actionmanager.cpp" line="98"/>
<source>Toggle Checkerboard</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="91"/>
<location filename="../actionmanager.cpp" line="92"/>
<source>&amp;Open...</source>
<translation>(&amp;O)...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="93"/>
<location filename="../actionmanager.cpp" line="94"/>
<source>Actual size</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="94"/>
<location filename="../actionmanager.cpp" line="95"/>
<source>Toggle maximize</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="98"/>
<location filename="../actionmanager.cpp" line="99"/>
<source>Rotate right</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="100"/>
<source>Rotate left</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="102"/>
<source>Previous image</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="101"/>
<location filename="../actionmanager.cpp" line="103"/>
<source>Next image</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="109"/>
<location filename="../mainwindow.cpp" line="736"/>
<location filename="../mainwindow.cpp" line="759"/>
<location filename="../actionmanager.cpp" line="111"/>
<source>Move to Trash</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="113"/>
<location filename="../actionmanager.cpp" line="115"/>
<source>Configure...</source>
<translation>...</translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="114"/>
<location filename="../actionmanager.cpp" line="116"/>
<source>Help</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="117"/>
<location filename="../actionmanager.cpp" line="119"/>
<source>Show in File Explorer</source>
<comment>File Explorer is the name of explorer.exe under Windows</comment>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="123"/>
<location filename="../actionmanager.cpp" line="125"/>
<source>Show in directory</source>
<translation></translation>
</message>
<message>
<location filename="../actionmanager.cpp" line="126"/>
<location filename="../actionmanager.cpp" line="128"/>
<source>Quit</source>
<translation>退</translation>
</message>
@ -780,7 +808,12 @@
<translation></translation>
</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>
<translation></translation>
</message>

View File

@ -12,7 +12,7 @@ environment:
QTDIR: C:\Qt\6.7\mingw_64
MINGW64: C:\Qt\Tools\mingw1120_64
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"
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"
@ -67,7 +67,7 @@ build_script:
- cd %APPVEYOR_BUILD_FOLDER%
# install AOM for libavif AV1 decoding support...
- 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
#- mkdir build.aom
#- cd build.aom
@ -76,18 +76,18 @@ build_script:
#- cmake --build . --config Release --target install/strip
- mkdir 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
- 7z x ppkg-aom.zip LICENSE -y
- cd %APPVEYOR_BUILD_FOLDER%
# install libavif for avif format support of KImageFormats
- cd %LIBAVIF%
- curl -fsSL -o libavif-v0_11_1.zip https://github.com/AOMediaCodec/libavif/archive/v0.11.1.zip
- 7z x libavif-v0_11_1.zip -y
- cd libavif-0.11.1
- curl -fsSL -o libavif-v1_1_1.zip https://github.com/AOMediaCodec/libavif/archive/v1.1.1.zip
- 7z x libavif-v1_1_1.zip -y
- cd libavif-1.1.1
- mkdir 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 --target install/strip
- cd %APPVEYOR_BUILD_FOLDER%
@ -104,9 +104,9 @@ build_script:
- cd %APPVEYOR_BUILD_FOLDER%
# build libexpat for libexiv2
- cd %LIBEXPAT%
- curl -fsSL -o R_2_5_0.zip https://github.com/libexpat/libexpat/archive/R_2_5_0.zip
- 7z x R_2_5_0.zip -y
- cd libexpat-R_2_5_0/expat/
- curl -fsSL -o R_2_6_2.zip https://github.com/libexpat/libexpat/archive/R_2_6_2.zip
- 7z x R_2_6_2.zip -y
- 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 --build . --target install/strip
- 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\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 %LIBEXPAT%\libexpat-R_2_5_0\expat\COPYING License.expat.txt
- copy %LIBAVIF%\libavif-0.11.1\LICENSE License.libavif.txt
- copy %LIBEXPAT%\libexpat-R_2_6_2\expat\COPYING License.expat.txt
- copy %LIBAVIF%\libavif-1.1.1\LICENSE License.libavif.txt
- copy %LIBEXIV2%\exiv2-%EXIV2_VERSION%\COPYING License.exiv2.txt
# TODO: Qt, zlib
- cd ..

View File

@ -74,6 +74,16 @@
</screenshot>
</screenshots>
<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">
<description>
<p>This release adds the following feature:</p>