Compare commits
25 Commits
qt-5-15-re
...
0.4.2
Author | SHA1 | Date | |
---|---|---|---|
deed477d49 | |||
a98b69eb6c | |||
f7cc22a032 | |||
05f808a26d | |||
7e7c36ea72 | |||
6d460a27d7 | |||
552d0fe072 | |||
b146150528 | |||
aecc3cf163 | |||
9c460f2ede | |||
6316431dcc | |||
713057412f | |||
7a69bb2fa2 | |||
50170eb4aa | |||
858c9e0ccf | |||
2b4bbc91a7 | |||
2b51194143 | |||
356fc6f670 | |||
a9ce8b0154 | |||
1449844fdd | |||
b3011f47e4 | |||
9b1b125d01 | |||
6d8f353602 | |||
4d8d98b2ff | |||
e658fb20a9 |
4
.github/workflows/macos.yml
vendored
4
.github/workflows/macos.yml
vendored
@ -10,7 +10,9 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v2.10.0
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: '5.15.2'
|
||||
- name: Run a qt project
|
||||
run: |
|
||||
cmake ./
|
||||
|
@ -28,9 +28,9 @@ endif ()
|
||||
#LibExiv2_FOUND
|
||||
set (PPIC_CPP_FILES
|
||||
app/main.cpp
|
||||
app/framelesshandler.cpp
|
||||
app/framelesswindow.cpp
|
||||
app/mainwindow.cpp
|
||||
app/actionmanager.cpp
|
||||
app/graphicsview.cpp
|
||||
app/graphicsscene.cpp
|
||||
app/bottombuttongroup.cpp
|
||||
@ -43,12 +43,13 @@ set (PPIC_CPP_FILES
|
||||
app/metadatamodel.cpp
|
||||
app/metadatadialog.cpp
|
||||
app/exiv2wrapper.cpp
|
||||
app/playlistmanager.cpp
|
||||
)
|
||||
|
||||
set (PPIC_HEADER_FILES
|
||||
app/framelesshandler.h
|
||||
app/framelesswindow.h
|
||||
app/mainwindow.h
|
||||
app/actionmanager.h
|
||||
app/graphicsview.h
|
||||
app/graphicsscene.h
|
||||
app/bottombuttongroup.h
|
||||
@ -61,6 +62,7 @@ set (PPIC_HEADER_FILES
|
||||
app/metadatamodel.h
|
||||
app/metadatadialog.h
|
||||
app/exiv2wrapper.h
|
||||
app/playlistmanager.h
|
||||
)
|
||||
|
||||
set (PPIC_QRC_FILES
|
||||
@ -74,7 +76,7 @@ set (PPIC_RC_FILES
|
||||
set (EXE_NAME ppic)
|
||||
|
||||
# Translation
|
||||
file (GLOB PPIC_TS_FILES translations/*.ts)
|
||||
file (GLOB PPIC_TS_FILES app/translations/*.ts)
|
||||
set (PPIC_CPP_FILES_FOR_I18N ${PPIC_CPP_FILES})
|
||||
|
||||
qt5_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES})
|
||||
|
@ -8,9 +8,14 @@ Yet another image viewer.
|
||||
|
||||

|
||||
|
||||
## Summary
|
||||
|
||||
Pineapple Pictures is a lightweight image viewer that allows you view JPEG, PNG, GIF, SVG, PSD, KRA, XCF, TGA, AVIF and some other frequently used image formats files quickly and easily, and also provide a Stay-on-Top window setting that allows you pin the window so you can use it to pin a reference image at the top and then you can work with other software.
|
||||
|
||||
## Get it!
|
||||
|
||||
- [GitHub Release Page](https://github.com/BLumia/pineapple-pictures/releases)
|
||||
- [SourceForge](https://sourceforge.net/projects/pineapple-pictures/)
|
||||
- Archlinux AUR: [pineapple-pictures](https://aur.archlinux.org/packages/pineapple-pictures/) | [pineapple-pictures-git](https://aur.archlinux.org/packages/pineapple-pictures-git/)
|
||||
- Debian (sid / testing): `sudo apt install pineapple-pictures`
|
||||
- [Itch.io Store](https://blumia.itch.io/pineapple-pictures)
|
||||
|
@ -8,9 +8,14 @@
|
||||
|
||||

|
||||
|
||||
## 简介
|
||||
|
||||
菠萝看图是一个轻量图像查看器,允许你简单快捷的查看 JPEG, PNG, GIF, SVG, PSD, KRA, XCF, TGA, AVIF 等常用格式的图像文件,并提供了置顶窗口的选项以便你在使用其它软件时也可以将参考图片固定在顶端。
|
||||
|
||||
## 立即获取!
|
||||
|
||||
- [GitHub Release 页面](https://github.com/BLumia/pineapple-pictures/releases) | [gitee 发布页面](https://gitee.com/blumia/pineapple-pictures/releases)
|
||||
- [SourceForge](https://sourceforge.net/projects/pineapple-pictures/)
|
||||
- Archlinux AUR: [pineapple-pictures](https://aur.archlinux.org/packages/pineapple-pictures/) | [pineapple-pictures-git](https://aur.archlinux.org/packages/pineapple-pictures-git/)
|
||||
- Debian (sid / testing): `sudo apt install pineapple-pictures`
|
||||
- [Itch.io 商店](https://blumia.itch.io/pineapple-pictures)
|
||||
|
@ -131,7 +131,7 @@ SOFTWARE.
|
||||
|
||||
m_licenseTextEdit->setText(licenseStr.join('\n').arg(qApp->applicationDisplayName(), mitLicense));
|
||||
|
||||
m_3rdPartyLibsTextEdit->setText(thirdPartyLibsStr.join('\n').arg(QStringLiteral("<i>%1</i>")).arg(qApp->applicationDisplayName()));
|
||||
m_3rdPartyLibsTextEdit->setText(thirdPartyLibsStr.join('\n').arg(QStringLiteral("<i>%1</i>").arg(qApp->applicationDisplayName())));
|
||||
m_3rdPartyLibsTextEdit->setOpenExternalLinks(true);
|
||||
|
||||
m_tabWidget->addTab(m_helpTextEdit, tr("&Help"));
|
||||
|
69
app/actionmanager.cpp
Normal file
69
app/actionmanager.cpp
Normal file
@ -0,0 +1,69 @@
|
||||
#include "actionmanager.h"
|
||||
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
||||
#define CREATE_NEW_ACTION(window, action)\
|
||||
action = new QAction(window);\
|
||||
action->setObjectName(QString::fromUtf8( #action ));\
|
||||
window->addAction(action);
|
||||
|
||||
ActionManager::ActionManager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
ActionManager::~ActionManager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ActionManager::setupAction(MainWindow *mainWindow)
|
||||
{
|
||||
CREATE_NEW_ACTION(mainWindow, actionZoomIn);
|
||||
CREATE_NEW_ACTION(mainWindow, actionZoomOut);
|
||||
CREATE_NEW_ACTION(mainWindow, actionCopyPixmap);
|
||||
CREATE_NEW_ACTION(mainWindow, actionCopyFilePath);
|
||||
CREATE_NEW_ACTION(mainWindow, actionPaste);
|
||||
CREATE_NEW_ACTION(mainWindow, actionToggleCheckerboard);
|
||||
CREATE_NEW_ACTION(mainWindow, actionToggleStayOnTop);
|
||||
CREATE_NEW_ACTION(mainWindow, actionToggleProtectMode);
|
||||
CREATE_NEW_ACTION(mainWindow, actionSettings);
|
||||
CREATE_NEW_ACTION(mainWindow, actionHelp);
|
||||
CREATE_NEW_ACTION(mainWindow, actionProperties);
|
||||
CREATE_NEW_ACTION(mainWindow, actionQuitApp);
|
||||
|
||||
retranslateUi(mainWindow);
|
||||
|
||||
QMetaObject::connectSlotsByName(mainWindow);
|
||||
}
|
||||
|
||||
void ActionManager::retranslateUi(MainWindow *mainWindow)
|
||||
{
|
||||
Q_UNUSED(mainWindow);
|
||||
|
||||
actionZoomIn->setText(QCoreApplication::translate("MainWindow", "Zoom in", nullptr));
|
||||
actionZoomOut->setText(QCoreApplication::translate("MainWindow", "Zoom out", 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));
|
||||
actionToggleCheckerboard->setText(QCoreApplication::translate("MainWindow", "Toggle Checkerboard", nullptr));
|
||||
actionToggleStayOnTop->setText(QCoreApplication::translate("MainWindow", "Stay on top", nullptr));
|
||||
actionToggleProtectMode->setText(QCoreApplication::translate("MainWindow", "Protected mode", nullptr));
|
||||
actionSettings->setText(QCoreApplication::translate("MainWindow", "Configure...", nullptr));
|
||||
actionHelp->setText(QCoreApplication::translate("MainWindow", "Help", nullptr));
|
||||
actionProperties->setText(QCoreApplication::translate("MainWindow", "Properties", nullptr));
|
||||
actionQuitApp->setText(QCoreApplication::translate("MainWindow", "Quit", nullptr));
|
||||
}
|
||||
|
||||
void ActionManager::setupShortcuts()
|
||||
{
|
||||
actionZoomIn->setShortcut(QKeySequence(QKeySequence::ZoomIn));
|
||||
actionZoomOut->setShortcut(QKeySequence(QKeySequence::ZoomOut));
|
||||
actionQuitApp->setShortcuts({
|
||||
QKeySequence(Qt::Key_Space),
|
||||
QKeySequence(Qt::Key_Escape)
|
||||
});
|
||||
}
|
||||
|
33
app/actionmanager.h
Normal file
33
app/actionmanager.h
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef ACTIONMANAGER_H
|
||||
#define ACTIONMANAGER_H
|
||||
|
||||
#include <QAction>
|
||||
|
||||
class MainWindow;
|
||||
|
||||
class ActionManager
|
||||
{
|
||||
public:
|
||||
ActionManager();
|
||||
~ActionManager();
|
||||
|
||||
void setupAction(MainWindow * mainWindow);
|
||||
void retranslateUi(MainWindow *MainWindow);
|
||||
void setupShortcuts();
|
||||
|
||||
public:
|
||||
QAction *actionZoomIn;
|
||||
QAction *actionZoomOut;
|
||||
QAction *actionCopyPixmap;
|
||||
QAction *actionCopyFilePath;
|
||||
QAction *actionPaste;
|
||||
QAction *actionToggleCheckerboard;
|
||||
QAction *actionToggleStayOnTop;
|
||||
QAction *actionToggleProtectMode;
|
||||
QAction *actionSettings;
|
||||
QAction *actionHelp;
|
||||
QAction *actionProperties;
|
||||
QAction *actionQuitApp;
|
||||
};
|
||||
|
||||
#endif // ACTIONMANAGER_H
|
@ -1,149 +0,0 @@
|
||||
#include "framelesshandler.h"
|
||||
|
||||
#include <QMouseEvent>
|
||||
#include <QWidget>
|
||||
#include <QWindow>
|
||||
#include <QDebug>
|
||||
#include <QApplication>
|
||||
|
||||
FramelessHandler::FramelessHandler(QWidget *parent)
|
||||
: QObject(parent)
|
||||
, m_parentWidget(parent)
|
||||
{
|
||||
m_parentWidget->setMouseTracking(true);
|
||||
m_parentWidget->installEventFilter(this);
|
||||
}
|
||||
|
||||
bool FramelessHandler::eventFilter(QObject *o, QEvent *evt)
|
||||
{
|
||||
if (evt->type() != QEvent::MouseButtonPress &&
|
||||
evt->type() != QEvent::MouseButtonRelease &&
|
||||
evt->type() != QEvent::MouseMove) {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Q_ASSERT(o == m_parentWidget);
|
||||
|
||||
if (QApplication::activePopupWidget()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (evt->type()) {
|
||||
case QEvent::MouseButtonPress: {
|
||||
if (m_parentWidget->isMaximized()) break;
|
||||
QMouseEvent *e = static_cast<QMouseEvent *>(evt);
|
||||
const QRect widgetRect = m_parentWidget->rect();
|
||||
const QPoint cursorPoint = m_parentWidget->mapFromGlobal(e->globalPos());
|
||||
if (!widgetRect.contains(cursorPoint)) return false;
|
||||
if (e->button() & Qt::LeftButton) {
|
||||
m_oldMousePos = e->pos();
|
||||
m_clickedOnWindow = true;
|
||||
mouseMoveEvent(e);
|
||||
return true;
|
||||
}
|
||||
} break;
|
||||
case QEvent::MouseButtonRelease: {
|
||||
if (m_parentWidget->isMaximized()) break;
|
||||
QMouseEvent *e = static_cast<QMouseEvent *>(evt);
|
||||
if (e->button() & Qt::LeftButton) {
|
||||
qDebug() << "released";
|
||||
m_clickedOnWindow = false;
|
||||
return true;
|
||||
}
|
||||
} break;
|
||||
case QEvent::MouseMove: {
|
||||
if (m_parentWidget->isMaximized()) break;
|
||||
QMouseEvent *e = static_cast<QMouseEvent *>(evt);
|
||||
mouseMoveEvent(e);
|
||||
return true;
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void FramelessHandler::mouseMoveEvent(QMouseEvent * evt)
|
||||
{
|
||||
QPoint pos = m_parentWidget->mapFromGlobal(evt->globalPos());
|
||||
Qt::Edges mode = Qt::Edges();
|
||||
if (pos.x() <= m_borderWidth) {
|
||||
mode.setFlag(Qt::LeftEdge);
|
||||
} else if (pos.x() >= m_parentWidget->width() - m_borderWidth) {
|
||||
mode.setFlag(Qt::RightEdge);
|
||||
}
|
||||
|
||||
if (pos.y() <= m_borderWidth) {
|
||||
mode.setFlag(Qt::TopEdge);
|
||||
} else if (pos.y() >= m_parentWidget->height() - m_borderWidth) {
|
||||
mode.setFlag(Qt::BottomEdge);
|
||||
}
|
||||
|
||||
setMouseCursor(mode);
|
||||
|
||||
if ((evt->button() & Qt::LeftButton) == Qt::NoButton && !m_clickedOnWindow) {
|
||||
return;
|
||||
}
|
||||
|
||||
qDebug() << evt->button() << m_clickedOnWindow;
|
||||
|
||||
if (mode) {
|
||||
startSystemResize(mode);
|
||||
} else {
|
||||
if (!startSystemMove()) {
|
||||
m_parentWidget->move(evt->globalPos() - m_oldMousePos);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void FramelessHandler::setMouseCursor(Qt::Edges edge)
|
||||
{
|
||||
switch (edge) {
|
||||
case Qt::TopEdge:
|
||||
case Qt::BottomEdge:
|
||||
m_parentWidget->setCursor(Qt::SizeVerCursor);
|
||||
m_parentWidget->window()->setCursor(Qt::SizeVerCursor);
|
||||
break;
|
||||
case Qt::LeftEdge:
|
||||
case Qt::RightEdge:
|
||||
m_parentWidget->setCursor(Qt::SizeHorCursor);
|
||||
m_parentWidget->window()->setCursor(Qt::SizeHorCursor);
|
||||
break;
|
||||
case Qt::TopEdge | Qt::LeftEdge:
|
||||
case Qt::BottomEdge | Qt::RightEdge:
|
||||
m_parentWidget->setCursor(Qt::SizeFDiagCursor);
|
||||
m_parentWidget->window()->setCursor(Qt::SizeFDiagCursor);
|
||||
break;
|
||||
case Qt::BottomEdge | Qt::LeftEdge:
|
||||
case Qt::TopEdge | Qt::RightEdge:
|
||||
m_parentWidget->setCursor(Qt::SizeBDiagCursor);
|
||||
m_parentWidget->window()->setCursor(Qt::SizeBDiagCursor);
|
||||
break;
|
||||
default:
|
||||
m_parentWidget->setCursor(Qt::ArrowCursor);
|
||||
m_parentWidget->window()->setCursor(Qt::ArrowCursor);
|
||||
break;
|
||||
}
|
||||
|
||||
// qDebug() << "setMouseCursor" << edge;
|
||||
}
|
||||
|
||||
bool FramelessHandler::startSystemResize(Qt::Edges edges)
|
||||
{
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
|
||||
return m_parentWidget->window()->windowHandle()->startSystemResize(edges);
|
||||
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool FramelessHandler::startSystemMove()
|
||||
{
|
||||
#if not QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
|
||||
return m_parentWidget->window()->windowHandle()->startSystemMove();
|
||||
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
|
||||
return false;
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
#ifndef FRAMELESSHANDLER_H
|
||||
#define FRAMELESSHANDLER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QPoint>
|
||||
|
||||
// This concept takes from Qt's QWidgetResizeHandler, but it's not
|
||||
// a public Qt API so we cannot relay on it...
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QMouseEvent;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class FramelessHandler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit FramelessHandler(QWidget *parent = nullptr);
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject *o, QEvent *event) override;
|
||||
|
||||
void mouseMoveEvent(QMouseEvent *evt);
|
||||
void setMouseCursor(Qt::Edges edge);
|
||||
|
||||
bool startSystemResize(Qt::Edges edges);
|
||||
bool startSystemMove();
|
||||
|
||||
private:
|
||||
QWidget * m_parentWidget = nullptr;
|
||||
QPoint m_oldMousePos;
|
||||
bool m_clickedOnWindow = false;
|
||||
static constexpr int m_borderWidth = 8;
|
||||
};
|
||||
|
||||
#endif // FRAMELESSHANDLER_H
|
@ -1,13 +1,20 @@
|
||||
#include "framelesswindow.h"
|
||||
#include "framelesshandler.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#endif // _WIN32
|
||||
|
||||
FramelessWindow::FramelessWindow(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, m_centralLayout(new QVBoxLayout(this))
|
||||
, m_framelessHandler(new FramelessHandler(this))
|
||||
{
|
||||
// We should use Qt::WindowMinMaxButtonsHint here but there is a bug in Qt
|
||||
// that will make pressing Meta+Up cause the app fullscreen under Windows,
|
||||
// so for now we only use the Qt::WindowMinimizeButtonHint flag here.
|
||||
// https://bugreports.qt.io/browse/QTBUG-91226
|
||||
this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
|
||||
|
||||
m_centralLayout->setMargin(0);
|
||||
@ -23,3 +30,90 @@ void FramelessWindow::setCentralWidget(QWidget *widget)
|
||||
m_centralLayout->addWidget(widget);
|
||||
m_centralWidget = widget;
|
||||
}
|
||||
|
||||
bool FramelessWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
// https://stackoverflow.com/questions/43505580/qt-windows-resizable-frameless-window
|
||||
// Too lazy to do this now.. just stackoverflow it and did a copy and paste..
|
||||
Q_UNUSED(eventType)
|
||||
MSG* msg = static_cast<MSG*>(message);
|
||||
|
||||
if (msg->message == WM_NCHITTEST) {
|
||||
if (isMaximized()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
*result = 0;
|
||||
const LONG borderWidth = 8;
|
||||
RECT winrect;
|
||||
GetWindowRect(reinterpret_cast<HWND>(winId()), &winrect);
|
||||
|
||||
// must be short to correctly work with multiple monitors (negative coordinates)
|
||||
short x = msg->lParam & 0x0000FFFF;
|
||||
short y = (msg->lParam & 0xFFFF0000) >> 16;
|
||||
|
||||
bool resizeWidth = minimumWidth() != maximumWidth();
|
||||
bool resizeHeight = minimumHeight() != maximumHeight();
|
||||
if (resizeWidth) {
|
||||
//left border
|
||||
if (x >= winrect.left && x < winrect.left + borderWidth) {
|
||||
*result = HTLEFT;
|
||||
}
|
||||
//right border
|
||||
if (x < winrect.right && x >= winrect.right - borderWidth) {
|
||||
*result = HTRIGHT;
|
||||
}
|
||||
}
|
||||
if (resizeHeight) {
|
||||
//bottom border
|
||||
if (y < winrect.bottom && y >= winrect.bottom - borderWidth) {
|
||||
*result = HTBOTTOM;
|
||||
}
|
||||
//top border
|
||||
if (y >= winrect.top && y < winrect.top + borderWidth) {
|
||||
*result = HTTOP;
|
||||
}
|
||||
}
|
||||
if (resizeWidth && resizeHeight) {
|
||||
//bottom left corner
|
||||
if (x >= winrect.left && x < winrect.left + borderWidth &&
|
||||
y < winrect.bottom && y >= winrect.bottom - borderWidth)
|
||||
{
|
||||
*result = HTBOTTOMLEFT;
|
||||
}
|
||||
//bottom right corner
|
||||
if (x < winrect.right && x >= winrect.right - borderWidth &&
|
||||
y < winrect.bottom && y >= winrect.bottom - borderWidth)
|
||||
{
|
||||
*result = HTBOTTOMRIGHT;
|
||||
}
|
||||
//top left corner
|
||||
if (x >= winrect.left && x < winrect.left + borderWidth &&
|
||||
y >= winrect.top && y < winrect.top + borderWidth)
|
||||
{
|
||||
*result = HTTOPLEFT;
|
||||
}
|
||||
//top right corner
|
||||
if (x < winrect.right && x >= winrect.right - borderWidth &&
|
||||
y >= winrect.top && y < winrect.top + borderWidth)
|
||||
{
|
||||
*result = HTTOPRIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
if (*result != 0)
|
||||
return true;
|
||||
|
||||
QWidget *action = QApplication::widgetAt(QCursor::pos());
|
||||
if (action == this) {
|
||||
*result = HTCAPTION;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
#else
|
||||
return QWidget::nativeEvent(eventType, message, result);
|
||||
#endif // _WIN32
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ QT_BEGIN_NAMESPACE
|
||||
class QVBoxLayout;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class FramelessHandler;
|
||||
class FramelessWindow : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -16,12 +15,12 @@ public:
|
||||
|
||||
void setCentralWidget(QWidget * widget);
|
||||
|
||||
signals:
|
||||
protected:
|
||||
bool nativeEvent(const QByteArray& eventType, void* message, long* result) override;
|
||||
|
||||
private:
|
||||
QVBoxLayout * m_centralLayout = nullptr;
|
||||
QWidget * m_centralWidget = nullptr; // just a pointer, doesn't take the ownership.
|
||||
FramelessHandler * m_framelessHandler = nullptr;
|
||||
};
|
||||
|
||||
#endif // FRAMELESSWINDOW_H
|
||||
|
@ -7,6 +7,14 @@
|
||||
#include <QScrollBar>
|
||||
#include <QMimeData>
|
||||
#include <QImageReader>
|
||||
#include <QStyleOptionGraphicsItem>
|
||||
|
||||
// TODO: remove this once we drop older Qt support.
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)
|
||||
#define COMPAT_CONSTCOLOR constexpr
|
||||
#else
|
||||
#define COMPAT_CONSTCOLOR const
|
||||
#endif
|
||||
|
||||
GraphicsView::GraphicsView(QWidget *parent)
|
||||
: QGraphicsView (parent)
|
||||
@ -25,12 +33,10 @@ GraphicsView::GraphicsView(QWidget *parent)
|
||||
connect(verticalScrollBar(), &QScrollBar::valueChanged, this, &GraphicsView::viewportRectChanged);
|
||||
}
|
||||
|
||||
void GraphicsView::showFileFromUrl(const QUrl &url, bool doRequestGallery)
|
||||
void GraphicsView::showFileFromPath(const QString &filePath, bool doRequestGallery)
|
||||
{
|
||||
emit navigatorViewRequired(false, 0);
|
||||
|
||||
QString filePath(url.toLocalFile());
|
||||
|
||||
if (filePath.endsWith(".svg")) {
|
||||
showSvg(filePath);
|
||||
} else if (filePath.endsWith(".gif")) {
|
||||
@ -43,12 +49,15 @@ void GraphicsView::showFileFromUrl(const QUrl &url, bool doRequestGallery)
|
||||
// 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.canRead()) {
|
||||
doRequestGallery = false;
|
||||
showText(tr("Image data is invalid or currently unsupported"));
|
||||
} else {
|
||||
const QPixmap & pixmap = QPixmap::fromImageReader(&imageReader);
|
||||
if (pixmap.isNull()) {
|
||||
doRequestGallery = false;
|
||||
showText(tr("Image data is invalid or currently unsupported"));
|
||||
} else {
|
||||
showImage(pixmap);
|
||||
@ -108,12 +117,7 @@ void GraphicsView::setScene(GraphicsScene *scene)
|
||||
|
||||
qreal GraphicsView::scaleFactor() const
|
||||
{
|
||||
int angle = static_cast<int>(m_rotateAngle);
|
||||
if (angle == 0 || angle == 180) {
|
||||
return qAbs(transform().m11());
|
||||
} else {
|
||||
return qAbs(transform().m12());
|
||||
}
|
||||
return QStyleOptionGraphicsItem::levelOfDetailFromTransform(transform());
|
||||
}
|
||||
|
||||
void GraphicsView::resetTransform()
|
||||
@ -161,9 +165,9 @@ void GraphicsView::checkAndDoFitInView(bool markItOnAnyway)
|
||||
}
|
||||
}
|
||||
|
||||
void GraphicsView::toggleCheckerboard()
|
||||
void GraphicsView::toggleCheckerboard(bool invertCheckerboardColor)
|
||||
{
|
||||
setCheckerboardEnabled(!m_checkerboardEnabled);
|
||||
setCheckerboardEnabled(!m_checkerboardEnabled, invertCheckerboardColor);
|
||||
}
|
||||
|
||||
void GraphicsView::mousePressEvent(QMouseEvent *event)
|
||||
@ -208,10 +212,13 @@ void GraphicsView::resizeEvent(QResizeEvent *event)
|
||||
if (m_enableFitInView) {
|
||||
QTransform tf;
|
||||
tf.rotate(m_rotateAngle);
|
||||
if (isThingSmallerThanWindowWith(tf) && scaleFactor() >= 1) {
|
||||
bool originalSizeSmallerThanWindow = isThingSmallerThanWindowWith(tf);
|
||||
if (originalSizeSmallerThanWindow && scaleFactor() >= 1) {
|
||||
// no longer need to do fitInView()
|
||||
// but we leave the m_enableFitInView value unchanged in case
|
||||
// user resize down the window again.
|
||||
} else if (originalSizeSmallerThanWindow && scaleFactor() < 1) {
|
||||
resetScale();
|
||||
} else {
|
||||
fitInView(sceneRect(), Qt::KeepAspectRatio);
|
||||
}
|
||||
@ -253,7 +260,7 @@ void GraphicsView::dropEvent(QDropEvent *event)
|
||||
if (urls.isEmpty()) {
|
||||
showText(tr("File url list is empty"));
|
||||
} else {
|
||||
showFileFromUrl(urls.first(), true);
|
||||
showFileFromPath(urls.first().toLocalFile(), true);
|
||||
}
|
||||
} else if (mimeData->hasImage()) {
|
||||
QImage img = qvariant_cast<QImage>(mimeData->imageData());
|
||||
@ -294,17 +301,19 @@ bool GraphicsView::shouldIgnoreMousePressMoveEvent(const QMouseEvent *event) con
|
||||
return false;
|
||||
}
|
||||
|
||||
void GraphicsView::setCheckerboardEnabled(bool enabled)
|
||||
void GraphicsView::setCheckerboardEnabled(bool enabled, bool invertColor)
|
||||
{
|
||||
m_checkerboardEnabled = enabled;
|
||||
m_isLastCheckerboardColorInverted = invertColor;
|
||||
if (m_checkerboardEnabled) {
|
||||
// Prepare background check-board pattern
|
||||
QPixmap tilePixmap(0x20, 0x20);
|
||||
tilePixmap.fill(QColor(35, 35, 35, 170));
|
||||
tilePixmap.fill(invertColor ? QColor(220, 220, 220, 170) : QColor(35, 35, 35, 170));
|
||||
QPainter tilePainter(&tilePixmap);
|
||||
QColor color(45, 45, 45, 170);
|
||||
tilePainter.fillRect(0, 0, 0x10, 0x10, color);
|
||||
tilePainter.fillRect(0x10, 0x10, 0x10, 0x10, color);
|
||||
COMPAT_CONSTCOLOR QColor color(45, 45, 45, 170);
|
||||
COMPAT_CONSTCOLOR QColor invertedColor(210, 210, 210, 170);
|
||||
tilePainter.fillRect(0, 0, 0x10, 0x10, invertColor ? invertedColor : color);
|
||||
tilePainter.fillRect(0x10, 0x10, 0x10, 0x10, invertColor ? invertedColor : color);
|
||||
tilePainter.end();
|
||||
|
||||
setBackgroundBrush(tilePixmap);
|
||||
|
@ -11,7 +11,7 @@ class GraphicsView : public QGraphicsView
|
||||
public:
|
||||
GraphicsView(QWidget *parent = nullptr);
|
||||
|
||||
void showFileFromUrl(const QUrl &url, bool requestGallery = false);
|
||||
void showFileFromPath(const QString &filePath, bool requestGallery = false);
|
||||
|
||||
void showImage(const QPixmap &pixmap);
|
||||
void showImage(const QImage &image);
|
||||
@ -38,7 +38,7 @@ signals:
|
||||
void requestGallery(const QString &filePath);
|
||||
|
||||
public slots:
|
||||
void toggleCheckerboard();
|
||||
void toggleCheckerboard(bool invertCheckerboardColor = false);
|
||||
|
||||
private:
|
||||
void mousePressEvent(QMouseEvent * event) override;
|
||||
@ -53,13 +53,14 @@ private:
|
||||
|
||||
bool isThingSmallerThanWindowWith(const QTransform &transform) const;
|
||||
bool shouldIgnoreMousePressMoveEvent(const QMouseEvent *event) const;
|
||||
void setCheckerboardEnabled(bool enabled);
|
||||
void setCheckerboardEnabled(bool enabled, bool invertColor = false);
|
||||
void applyTransformationModeByScaleFactor();
|
||||
|
||||
void resetWithScaleAndRotate(qreal scaleFactor, qreal rotateAngle);
|
||||
|
||||
bool m_enableFitInView = false;
|
||||
bool m_checkerboardEnabled = false;
|
||||
bool m_isLastCheckerboardColorInverted = false;
|
||||
qreal m_rotateAngle = 0;
|
||||
};
|
||||
|
||||
|
15
app/main.cpp
15
app/main.cpp
@ -1,4 +1,7 @@
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include "playlistmanager.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QCommandLineParser>
|
||||
#include <QDir>
|
||||
@ -34,18 +37,12 @@ int main(int argc, char *argv[])
|
||||
|
||||
parser.process(a);
|
||||
|
||||
QStringList urlStrList = parser.positionalArguments();
|
||||
QList<QUrl> urlList;
|
||||
for (const QString & str : urlStrList) {
|
||||
QUrl url = QUrl::fromLocalFile(str);
|
||||
if (url.isValid()) {
|
||||
urlList.append(url);
|
||||
}
|
||||
}
|
||||
|
||||
MainWindow w;
|
||||
w.show();
|
||||
|
||||
QStringList urlStrList = parser.positionalArguments();
|
||||
QList<QUrl> && urlList = PlaylistManager::convertToUrlList(urlStrList);
|
||||
|
||||
if (!urlList.isEmpty()) {
|
||||
w.showUrls(urlList);
|
||||
w.adjustWindowSizeBySceneRect();
|
||||
|
@ -10,6 +10,8 @@
|
||||
#include "aboutdialog.h"
|
||||
#include "metadatamodel.h"
|
||||
#include "metadatadialog.h"
|
||||
#include "actionmanager.h"
|
||||
#include "playlistmanager.h"
|
||||
|
||||
#include <QMouseEvent>
|
||||
#include <QMovie>
|
||||
@ -20,18 +22,15 @@
|
||||
#include <QScreen>
|
||||
#include <QMenu>
|
||||
#include <QShortcut>
|
||||
#include <QDir>
|
||||
#include <QCollator>
|
||||
#include <QClipboard>
|
||||
#include <QMimeData>
|
||||
#include <QWindow>
|
||||
#include <QTimer>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#endif // _WIN32
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
FramelessWindow(parent)
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: FramelessWindow(parent)
|
||||
, m_am(new ActionManager)
|
||||
, m_pm(new PlaylistManager(PlaylistManager::PL_SAMEFOLDER, this))
|
||||
{
|
||||
if (Settings::instance()->stayOnTop()) {
|
||||
this->setWindowFlag(Qt::WindowStaysOnTopHint);
|
||||
@ -42,6 +41,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
this->setWindowIcon(QIcon(":/icons/app-icon.svg"));
|
||||
this->setMouseTracking(true);
|
||||
|
||||
m_pm->setAutoLoadFilterSuffix({"*.jpg", "*.jpeg", "*.jfif", "*.png", "*.gif", "*.svg", "*.bmp", "*.webp"});
|
||||
|
||||
m_fadeOutAnimation = new QPropertyAnimation(this, "windowOpacity");
|
||||
m_fadeOutAnimation->setDuration(300);
|
||||
m_fadeOutAnimation->setStartValue(1);
|
||||
@ -112,11 +113,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
connect(m_bottomButtonGroup, &BottomButtonGroup::toggleWindowMaximum,
|
||||
this, &MainWindow::toggleMaximize);
|
||||
connect(m_bottomButtonGroup, &BottomButtonGroup::zoomInBtnClicked,
|
||||
this, [ = ](){ m_graphicsView->zoomView(1.25); });
|
||||
this, &MainWindow::on_actionZoomIn_triggered);
|
||||
connect(m_bottomButtonGroup, &BottomButtonGroup::zoomOutBtnClicked,
|
||||
this, [ = ](){ m_graphicsView->zoomView(0.75); });
|
||||
this, &MainWindow::on_actionZoomOut_triggered);
|
||||
connect(m_bottomButtonGroup, &BottomButtonGroup::toggleCheckerboardBtnClicked,
|
||||
this, [ = ](){ m_graphicsView->toggleCheckerboard(); });
|
||||
this, &MainWindow::toggleCheckerboard);
|
||||
connect(m_bottomButtonGroup, &BottomButtonGroup::rotateRightBtnClicked,
|
||||
this, [ = ](){
|
||||
m_graphicsView->resetScale();
|
||||
@ -129,19 +130,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
m_gv->setOpacity(0, false);
|
||||
m_closeButton->setOpacity(0, false);
|
||||
|
||||
connect(this, &MainWindow::galleryLoaded, this, [this]() {
|
||||
m_prevButton->setVisible(isGalleryAvailable());
|
||||
m_nextButton->setVisible(isGalleryAvailable());
|
||||
connect(m_pm, &PlaylistManager::loaded, this, [this](int galleryFileCount) {
|
||||
m_prevButton->setVisible(galleryFileCount > 1);
|
||||
m_nextButton->setVisible(galleryFileCount > 1);
|
||||
});
|
||||
|
||||
QShortcut * quitAppShorucut = new QShortcut(QKeySequence(Qt::Key_Space), this);
|
||||
connect(quitAppShorucut, &QShortcut::activated,
|
||||
std::bind(&MainWindow::quitAppAction, this, false));
|
||||
|
||||
QShortcut * quitAppShorucut2 = new QShortcut(QKeySequence(Qt::Key_Escape), this);
|
||||
connect(quitAppShorucut2, &QShortcut::activated,
|
||||
std::bind(&MainWindow::quitAppAction, this, false));
|
||||
|
||||
QShortcut * prevPictureShorucut = new QShortcut(QKeySequence(Qt::Key_PageUp), this);
|
||||
connect(prevPictureShorucut, &QShortcut::activated,
|
||||
this, &MainWindow::galleryPrev);
|
||||
@ -154,7 +147,13 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
connect(fullscreenShorucut, &QShortcut::activated,
|
||||
this, &MainWindow::toggleFullscreen);
|
||||
|
||||
m_am->setupAction(this);
|
||||
|
||||
centerWindow();
|
||||
|
||||
QTimer::singleShot(0, this, [this](){
|
||||
m_am->setupShortcuts();
|
||||
});
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
@ -166,11 +165,11 @@ void MainWindow::showUrls(const QList<QUrl> &urls)
|
||||
{
|
||||
if (!urls.isEmpty()) {
|
||||
if (urls.count() == 1) {
|
||||
m_graphicsView->showFileFromUrl(urls.first(), true);
|
||||
m_graphicsView->showFileFromPath(urls.first().toLocalFile(), true);
|
||||
} else {
|
||||
m_graphicsView->showFileFromUrl(urls.first(), false);
|
||||
m_files = urls;
|
||||
m_currentFileIndex = 0;
|
||||
m_graphicsView->showFileFromPath(urls.first().toLocalFile(), false);
|
||||
m_pm->setPlaylist(urls);
|
||||
m_pm->setCurrentIndex(0);
|
||||
}
|
||||
} else {
|
||||
m_graphicsView->showText(tr("File url list is empty"));
|
||||
@ -211,77 +210,44 @@ void MainWindow::adjustWindowSizeBySceneRect()
|
||||
// can be empty if it is NOT from a local file.
|
||||
QUrl MainWindow::currentImageFileUrl() const
|
||||
{
|
||||
if (m_currentFileIndex != -1) {
|
||||
return m_files.value(m_currentFileIndex);
|
||||
}
|
||||
QUrl url;
|
||||
std::tie(std::ignore, url) = m_pm->currentFileUrl();
|
||||
|
||||
return QUrl();
|
||||
return url;
|
||||
}
|
||||
|
||||
void MainWindow::clearGallery()
|
||||
{
|
||||
m_currentFileIndex = -1;
|
||||
m_files.clear();
|
||||
m_pm->clear();
|
||||
}
|
||||
|
||||
void MainWindow::loadGalleryBySingleLocalFile(const QString &path)
|
||||
{
|
||||
QFileInfo info(path);
|
||||
QDir dir(info.path());
|
||||
QString currentFileName = info.fileName();
|
||||
QStringList entryList = dir.entryList({"*.jpg", "*.jpeg", "*.jfif", "*.png", "*.gif", "*.svg", "*.bmp"},
|
||||
QDir::Files | QDir::NoSymLinks, QDir::NoSort);
|
||||
|
||||
QCollator collator;
|
||||
collator.setNumericMode(true);
|
||||
|
||||
std::sort(entryList.begin(), entryList.end(), collator);
|
||||
|
||||
clearGallery();
|
||||
|
||||
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_files.append(url);
|
||||
if (fileName == currentFileName) {
|
||||
m_currentFileIndex = i;
|
||||
}
|
||||
}
|
||||
|
||||
emit galleryLoaded();
|
||||
m_pm->setCurrentFile(path);
|
||||
}
|
||||
|
||||
void MainWindow::galleryPrev()
|
||||
{
|
||||
int count = m_files.count();
|
||||
if (!isGalleryAvailable()) {
|
||||
return;
|
||||
int index;
|
||||
QString filePath;
|
||||
std::tie(index, filePath) = m_pm->previousFile();
|
||||
|
||||
if (index >= 0) {
|
||||
m_graphicsView->showFileFromPath(filePath, false);
|
||||
m_pm->setCurrentIndex(index);
|
||||
}
|
||||
|
||||
m_currentFileIndex = m_currentFileIndex - 1 < 0 ? count - 1 : m_currentFileIndex - 1;
|
||||
|
||||
m_graphicsView->showFileFromUrl(m_files.at(m_currentFileIndex), false);
|
||||
}
|
||||
|
||||
void MainWindow::galleryNext()
|
||||
{
|
||||
int count = m_files.count();
|
||||
if (!isGalleryAvailable()) {
|
||||
return;
|
||||
int index;
|
||||
QString filePath;
|
||||
std::tie(index, filePath) = m_pm->nextFile();
|
||||
|
||||
if (index >= 0) {
|
||||
m_graphicsView->showFileFromPath(filePath, false);
|
||||
m_pm->setCurrentIndex(index);
|
||||
}
|
||||
|
||||
m_currentFileIndex = m_currentFileIndex + 1 == count ? 0 : m_currentFileIndex + 1;
|
||||
|
||||
m_graphicsView->showFileFromUrl(m_files.at(m_currentFileIndex), false);
|
||||
}
|
||||
|
||||
bool MainWindow::isGalleryAvailable()
|
||||
{
|
||||
if (m_currentFileIndex < 0 || m_files.isEmpty() || m_currentFileIndex >= m_files.count()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void MainWindow::showEvent(QShowEvent *event)
|
||||
@ -315,6 +281,42 @@ void MainWindow::leaveEvent(QEvent *event)
|
||||
return FramelessWindow::leaveEvent(event);
|
||||
}
|
||||
|
||||
void MainWindow::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->buttons() & Qt::LeftButton && !isMaximized()) {
|
||||
m_clickedOnWindow = true;
|
||||
m_oldMousePos = event->pos();
|
||||
// qDebug() << m_oldMousePos << m_graphicsView->transform().m11()
|
||||
// << m_graphicsView->transform().m22() << m_graphicsView->matrix().m12();
|
||||
event->accept();
|
||||
}
|
||||
|
||||
return FramelessWindow::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void MainWindow::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->buttons() & Qt::LeftButton && m_clickedOnWindow && !isMaximized()) {
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
|
||||
if (!window()->windowHandle()->startSystemMove()) {
|
||||
move(event->globalPos() - m_oldMousePos);
|
||||
}
|
||||
#else
|
||||
move(event->globalPos() - m_oldMousePos);
|
||||
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
|
||||
event->accept();
|
||||
}
|
||||
|
||||
return FramelessWindow::mouseMoveEvent(event);
|
||||
}
|
||||
|
||||
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
m_clickedOnWindow = false;
|
||||
|
||||
return FramelessWindow::mouseReleaseEvent(event);
|
||||
}
|
||||
|
||||
void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
{
|
||||
switch (Settings::instance()->doubleClickBehavior()) {
|
||||
@ -338,19 +340,33 @@ void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
void MainWindow::wheelEvent(QWheelEvent *event)
|
||||
{
|
||||
QPoint numDegrees = event->angleDelta() / 8;
|
||||
bool needZoom = false, zoomIn = false;
|
||||
bool needWeelEvent = false, wheelUp = false;
|
||||
bool actionIsZoom = event->modifiers().testFlag(Qt::ControlModifier)
|
||||
|| Settings::instance()->mouseWheelBehavior() == ActionZoomImage;
|
||||
|
||||
// NOTE: Only checking angleDelta since the QWheelEvent::pixelDelta() doc says
|
||||
// pixelDelta() value is driver specific and unreliable on X11...
|
||||
// We are not scrolling the canvas, just zoom in or out, so it probably
|
||||
// doesn't matter here.
|
||||
if (!numDegrees.isNull() && numDegrees.y() != 0) {
|
||||
needZoom = true;
|
||||
zoomIn = numDegrees.y() > 0;
|
||||
needWeelEvent = true;
|
||||
wheelUp = numDegrees.y() > 0;
|
||||
}
|
||||
|
||||
if (needZoom) {
|
||||
m_graphicsView->zoomView(zoomIn ? 1.25 : 0.8);
|
||||
if (needWeelEvent) {
|
||||
if (actionIsZoom) {
|
||||
if (wheelUp) {
|
||||
on_actionZoomIn_triggered();
|
||||
} else {
|
||||
on_actionZoomOut_triggered();
|
||||
}
|
||||
} else {
|
||||
if (wheelUp) {
|
||||
galleryPrev();
|
||||
} else {
|
||||
galleryNext();
|
||||
}
|
||||
}
|
||||
event->accept();
|
||||
} else {
|
||||
FramelessWindow::wheelEvent(event);
|
||||
@ -372,97 +388,38 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event)
|
||||
QImage clipboardImage;
|
||||
QUrl clipboardFileUrl;
|
||||
|
||||
const QMimeData * clipboardData = QApplication::clipboard()->mimeData();
|
||||
if (clipboardData->hasImage()) {
|
||||
QVariant imageVariant(clipboardData->imageData());
|
||||
if (imageVariant.isValid()) {
|
||||
clipboardImage = qvariant_cast<QImage>(imageVariant);
|
||||
}
|
||||
} else if (clipboardData->hasText()) {
|
||||
QString clipboardText(clipboardData->text());
|
||||
if (clipboardText.startsWith("PICTURE:")) {
|
||||
QString maybeFilename(clipboardText.mid(8));
|
||||
if (QFile::exists(maybeFilename)) {
|
||||
clipboardFileUrl = QUrl::fromLocalFile(maybeFilename);
|
||||
}
|
||||
}
|
||||
}
|
||||
QAction * copyPixmap = m_am->actionCopyPixmap;
|
||||
QAction * copyFilePath = m_am->actionCopyFilePath;
|
||||
|
||||
QAction * copyPixmap = new QAction(tr("Copy P&ixmap"));
|
||||
connect(copyPixmap, &QAction::triggered, this, [ = ](){
|
||||
QClipboard *cb = QApplication::clipboard();
|
||||
cb->setPixmap(m_graphicsView->scene()->renderToPixmap());
|
||||
});
|
||||
QAction * copyFilePath = new QAction(tr("Copy &File Path"));
|
||||
connect(copyFilePath, &QAction::triggered, this, [ = ](){
|
||||
QClipboard *cb = QApplication::clipboard();
|
||||
cb->setText(currentFileUrl.toLocalFile());
|
||||
});
|
||||
copyMenu->addAction(copyPixmap);
|
||||
if (currentFileUrl.isValid()) {
|
||||
copyMenu->addAction(copyFilePath);
|
||||
}
|
||||
|
||||
QAction * pasteImage = new QAction(tr("&Paste Image"));
|
||||
connect(pasteImage, &QAction::triggered, this, [ = ](){
|
||||
clearGallery();
|
||||
m_graphicsView->showImage(clipboardImage);
|
||||
});
|
||||
QAction * paste = m_am->actionPaste;
|
||||
|
||||
QAction * pasteImageFile = new QAction(tr("&Paste Image File"));
|
||||
connect(pasteImageFile, &QAction::triggered, this, [ = ](){
|
||||
m_graphicsView->showFileFromUrl(clipboardFileUrl, true);
|
||||
});
|
||||
|
||||
QAction * stayOnTopMode = new QAction(tr("Stay on top"));
|
||||
connect(stayOnTopMode, &QAction::triggered, this, [ = ](){
|
||||
toggleStayOnTop();
|
||||
});
|
||||
QAction * stayOnTopMode = m_am->actionToggleStayOnTop;
|
||||
stayOnTopMode->setCheckable(true);
|
||||
stayOnTopMode->setChecked(stayOnTop());
|
||||
|
||||
QAction * protectedMode = new QAction(tr("Protected mode"));
|
||||
connect(protectedMode, &QAction::triggered, this, [ = ](){
|
||||
toggleProtectedMode();
|
||||
});
|
||||
QAction * protectedMode = m_am->actionToggleProtectMode;
|
||||
protectedMode->setCheckable(true);
|
||||
protectedMode->setChecked(m_protectedMode);
|
||||
|
||||
QAction * toggleSettings = new QAction(tr("Configure..."));
|
||||
connect(toggleSettings, &QAction::triggered, this, [ = ](){
|
||||
SettingsDialog * sd = new SettingsDialog(this);
|
||||
sd->exec();
|
||||
sd->deleteLater();
|
||||
});
|
||||
|
||||
QAction * helpAction = new QAction(tr("Help"));
|
||||
connect(helpAction, &QAction::triggered, this, [ = ](){
|
||||
AboutDialog * ad = new AboutDialog(this);
|
||||
ad->exec();
|
||||
ad->deleteLater();
|
||||
});
|
||||
|
||||
QAction * propertiesAction = new QAction(tr("Properties"));
|
||||
connect(propertiesAction, &QAction::triggered, this, [ = ](){
|
||||
MetadataModel * md = new MetadataModel();
|
||||
md->setFile(currentFileUrl.toLocalFile());
|
||||
|
||||
MetadataDialog * ad = new MetadataDialog(this);
|
||||
ad->setMetadataModel(md);
|
||||
ad->exec();
|
||||
ad->deleteLater();
|
||||
});
|
||||
QAction * toggleSettings = m_am->actionSettings;
|
||||
QAction * helpAction = m_am->actionHelp;
|
||||
QAction * propertiesAction = m_am->actionProperties;
|
||||
|
||||
if (copyMenu->actions().count() == 1) {
|
||||
menu->addActions(copyMenu->actions());
|
||||
} else {
|
||||
menu->addMenu(copyMenu);
|
||||
}
|
||||
if (!clipboardImage.isNull()) {
|
||||
menu->addAction(pasteImage);
|
||||
} else if (clipboardFileUrl.isValid()) {
|
||||
menu->addAction(pasteImageFile);
|
||||
|
||||
if (canPaste()) {
|
||||
menu->addAction(paste);
|
||||
}
|
||||
|
||||
menu->addSeparator();
|
||||
menu->addAction(stayOnTopMode);
|
||||
menu->addAction(protectedMode);
|
||||
@ -475,15 +432,11 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event)
|
||||
}
|
||||
menu->exec(mapToGlobal(event->pos()));
|
||||
menu->deleteLater();
|
||||
copyMenu->deleteLater();
|
||||
|
||||
return FramelessWindow::contextMenuEvent(event);
|
||||
}
|
||||
|
||||
QSize MainWindow::sizeHint() const
|
||||
{
|
||||
return QSize(710, 530);
|
||||
}
|
||||
|
||||
void MainWindow::centerWindow()
|
||||
{
|
||||
this->setGeometry(
|
||||
@ -517,6 +470,11 @@ void MainWindow::updateWidgetsPosition()
|
||||
m_gv->move(width() - m_gv->width(), height() - m_gv->height());
|
||||
}
|
||||
|
||||
void MainWindow::toggleCheckerboard()
|
||||
{
|
||||
m_graphicsView->toggleCheckerboard(QGuiApplication::queryKeyboardModifiers().testFlag(Qt::ShiftModifier));
|
||||
}
|
||||
|
||||
void MainWindow::toggleProtectedMode()
|
||||
{
|
||||
m_protectedMode = !m_protectedMode;
|
||||
@ -536,6 +494,24 @@ bool MainWindow::stayOnTop()
|
||||
return windowFlags().testFlag(Qt::WindowStaysOnTopHint);
|
||||
}
|
||||
|
||||
bool MainWindow::canPaste()
|
||||
{
|
||||
const QMimeData * clipboardData = QApplication::clipboard()->mimeData();
|
||||
if (clipboardData->hasImage()) {
|
||||
return true;
|
||||
} else if (clipboardData->hasText()) {
|
||||
QString clipboardText(clipboardData->text());
|
||||
if (clipboardText.startsWith("PICTURE:")) {
|
||||
QString maybeFilename(clipboardText.mid(8));
|
||||
if (QFile::exists(maybeFilename)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void MainWindow::quitAppAction(bool force)
|
||||
{
|
||||
if (!m_protectedMode || force) {
|
||||
@ -560,3 +536,114 @@ void MainWindow::toggleMaximize()
|
||||
showMaximized();
|
||||
}
|
||||
}
|
||||
|
||||
QSize MainWindow::sizeHint() const
|
||||
{
|
||||
return QSize(710, 530);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionZoomIn_triggered()
|
||||
{
|
||||
if (m_graphicsView->scaleFactor() < 1000) {
|
||||
m_graphicsView->zoomView(1.25);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionZoomOut_triggered()
|
||||
{
|
||||
m_graphicsView->zoomView(0.8);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionCopyPixmap_triggered()
|
||||
{
|
||||
QClipboard *cb = QApplication::clipboard();
|
||||
cb->setPixmap(m_graphicsView->scene()->renderToPixmap());
|
||||
}
|
||||
|
||||
void MainWindow::on_actionCopyFilePath_triggered()
|
||||
{
|
||||
QUrl currentFileUrl(currentImageFileUrl());
|
||||
if (currentFileUrl.isValid()) {
|
||||
QClipboard *cb = QApplication::clipboard();
|
||||
cb->setText(currentFileUrl.toLocalFile());
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionPaste_triggered()
|
||||
{
|
||||
QImage clipboardImage;
|
||||
QUrl clipboardFileUrl;
|
||||
|
||||
const QMimeData * clipboardData = QApplication::clipboard()->mimeData();
|
||||
if (clipboardData->hasImage()) {
|
||||
QVariant imageVariant(clipboardData->imageData());
|
||||
if (imageVariant.isValid()) {
|
||||
clipboardImage = qvariant_cast<QImage>(imageVariant);
|
||||
}
|
||||
} else if (clipboardData->hasText()) {
|
||||
QString clipboardText(clipboardData->text());
|
||||
if (clipboardText.startsWith("PICTURE:")) {
|
||||
QString maybeFilename(clipboardText.mid(8));
|
||||
if (QFile::exists(maybeFilename)) {
|
||||
clipboardFileUrl = QUrl::fromLocalFile(maybeFilename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!clipboardImage.isNull()) {
|
||||
m_graphicsView->showImage(clipboardImage);
|
||||
clearGallery();
|
||||
} else if (clipboardFileUrl.isValid()) {
|
||||
QString localFile(clipboardFileUrl.toLocalFile());
|
||||
m_graphicsView->showFileFromPath(localFile, true);
|
||||
m_pm->setCurrentFile(localFile);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionToggleCheckerboard_triggered()
|
||||
{
|
||||
m_graphicsView->toggleCheckerboard();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionToggleStayOnTop_triggered()
|
||||
{
|
||||
toggleStayOnTop();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionToggleProtectMode_triggered()
|
||||
{
|
||||
toggleProtectedMode();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionSettings_triggered()
|
||||
{
|
||||
SettingsDialog * sd = new SettingsDialog(this);
|
||||
sd->exec();
|
||||
sd->deleteLater();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionHelp_triggered()
|
||||
{
|
||||
AboutDialog * ad = new AboutDialog(this);
|
||||
ad->exec();
|
||||
ad->deleteLater();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionProperties_triggered()
|
||||
{
|
||||
QUrl currentFileUrl = currentImageFileUrl();
|
||||
if (!currentFileUrl.isValid()) return;
|
||||
|
||||
MetadataModel * md = new MetadataModel();
|
||||
md->setFile(currentFileUrl.toLocalFile());
|
||||
|
||||
MetadataDialog * ad = new MetadataDialog(this);
|
||||
ad->setMetadataModel(md);
|
||||
ad->exec();
|
||||
ad->deleteLater();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionQuitApp_triggered()
|
||||
{
|
||||
quitAppAction(false);
|
||||
}
|
||||
|
@ -12,6 +12,8 @@ class QGraphicsOpacityEffect;
|
||||
class QGraphicsView;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class ActionManager;
|
||||
class PlaylistManager;
|
||||
class ToolButton;
|
||||
class GraphicsView;
|
||||
class NavigatorView;
|
||||
@ -32,33 +34,53 @@ public:
|
||||
void loadGalleryBySingleLocalFile(const QString &path);
|
||||
void galleryPrev();
|
||||
void galleryNext();
|
||||
bool isGalleryAvailable();
|
||||
|
||||
signals:
|
||||
void galleryLoaded();
|
||||
|
||||
protected slots:
|
||||
void showEvent(QShowEvent *event) override;
|
||||
void enterEvent(QEvent *event) override;
|
||||
void leaveEvent(QEvent *event) override;
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||
void wheelEvent(QWheelEvent *event) override;
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
void contextMenuEvent(QContextMenuEvent *event) override;
|
||||
|
||||
QSize sizeHint() const override;
|
||||
|
||||
void centerWindow();
|
||||
void closeWindow();
|
||||
void updateWidgetsPosition();
|
||||
void toggleCheckerboard();
|
||||
void toggleProtectedMode();
|
||||
void toggleStayOnTop();
|
||||
bool stayOnTop();
|
||||
bool canPaste();
|
||||
void quitAppAction(bool force = false);
|
||||
void toggleFullscreen();
|
||||
void toggleMaximize();
|
||||
|
||||
protected:
|
||||
QSize sizeHint() const override;
|
||||
|
||||
private slots:
|
||||
void on_actionZoomIn_triggered();
|
||||
void on_actionZoomOut_triggered();
|
||||
void on_actionCopyPixmap_triggered();
|
||||
void on_actionCopyFilePath_triggered();
|
||||
void on_actionPaste_triggered();
|
||||
void on_actionToggleCheckerboard_triggered();
|
||||
void on_actionToggleStayOnTop_triggered();
|
||||
void on_actionToggleProtectMode_triggered();
|
||||
void on_actionSettings_triggered();
|
||||
void on_actionHelp_triggered();
|
||||
void on_actionProperties_triggered();
|
||||
void on_actionQuitApp_triggered();
|
||||
|
||||
private:
|
||||
ActionManager *m_am;
|
||||
PlaylistManager *m_pm;
|
||||
|
||||
QPoint m_oldMousePos;
|
||||
QPropertyAnimation *m_fadeOutAnimation;
|
||||
QPropertyAnimation *m_floatUpAnimation;
|
||||
QParallelAnimationGroup *m_exitAnimationGroup;
|
||||
@ -69,9 +91,7 @@ private:
|
||||
NavigatorView *m_gv;
|
||||
BottomButtonGroup *m_bottomButtonGroup;
|
||||
bool m_protectedMode = false;
|
||||
|
||||
QList<QUrl> m_files;
|
||||
int m_currentFileIndex = -1;
|
||||
bool m_clickedOnWindow = false;
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
@ -37,9 +37,7 @@ void MetadataModel::setFile(const QString &imageFilePath)
|
||||
appendSection(QStringLiteral("Image"), tr("Image", "Section name."));
|
||||
appendSection(QStringLiteral("Camera"), tr("Camera", "Section name."));
|
||||
appendSection(QStringLiteral("AdvancedPhoto"), tr("Advanced photo", "Section name."));
|
||||
#if 0
|
||||
appendSection(QStringLiteral("GPS"), tr("GPS", "Section name."));
|
||||
#endif // 0
|
||||
appendSection(QStringLiteral("File"), tr("File", "Section name."));
|
||||
|
||||
appendProperty(QStringLiteral("Image"), QStringLiteral("Image.Dimensions"),
|
||||
@ -124,6 +122,20 @@ void MetadataModel::setFile(const QString &imageFilePath)
|
||||
QStringLiteral("Exif.Photo.DigitalZoomRatio"), tr("Digital zoom"));
|
||||
appendExivPropertyIfExist(wrapper, QStringLiteral("AdvancedPhoto"),
|
||||
QStringLiteral("Exif.Photo.ExifVersion"), tr("EXIF version"));
|
||||
|
||||
appendExivPropertyIfExist(wrapper, QStringLiteral("GPS"),
|
||||
QStringLiteral("Exif.GPSInfo.GPSLatitudeRef"), tr("Latitude reference"));
|
||||
appendExivPropertyIfExist(wrapper, QStringLiteral("GPS"),
|
||||
QStringLiteral("Exif.GPSInfo.GPSLatitude"), tr("Latitude"));
|
||||
appendExivPropertyIfExist(wrapper, QStringLiteral("GPS"),
|
||||
QStringLiteral("Exif.GPSInfo.GPSLongitudeRef"), tr("Longitude reference"));
|
||||
appendExivPropertyIfExist(wrapper, QStringLiteral("GPS"),
|
||||
QStringLiteral("Exif.GPSInfo.GPSLongitude"), tr("Longitude"));
|
||||
appendExivPropertyIfExist(wrapper, QStringLiteral("GPS"),
|
||||
QStringLiteral("Exif.GPSInfo.GPSAltitudeRef"), tr("Altitude reference"));
|
||||
appendExivPropertyIfExist(wrapper, QStringLiteral("GPS"),
|
||||
QStringLiteral("Exif.GPSInfo.GPSAltitude"), tr("Altitude"));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
164
app/playlistmanager.cpp
Normal file
164
app/playlistmanager.cpp
Normal file
@ -0,0 +1,164 @@
|
||||
#include "playlistmanager.h"
|
||||
|
||||
#include <QCollator>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QUrl>
|
||||
|
||||
PlaylistManager::PlaylistManager(PlaylistType type, QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_type(type)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
PlaylistManager::~PlaylistManager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
m_playlist = urls;
|
||||
}
|
||||
|
||||
void PlaylistManager::setCurrentFile(const QString & filePath)
|
||||
{
|
||||
QFileInfo info(filePath);
|
||||
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 {
|
||||
QStringList entryList = dir.entryList(
|
||||
m_autoLoadSuffix,
|
||||
QDir::Files | QDir::NoSymLinks, QDir::NoSort);
|
||||
|
||||
QCollator collator;
|
||||
collator.setNumericMode(true);
|
||||
|
||||
std::sort(entryList.begin(), entryList.end(), collator);
|
||||
|
||||
clear();
|
||||
|
||||
int index = -1;
|
||||
for (int i = 0; i < entryList.count(); i++) {
|
||||
const QString & fileName = entryList.at(i);
|
||||
const QString & oneEntry = dir.absoluteFilePath(fileName);
|
||||
const QUrl & url = QUrl::fromLocalFile(oneEntry);
|
||||
m_playlist.append(url);
|
||||
if (fileName == currentFileName) {
|
||||
index = i;
|
||||
}
|
||||
}
|
||||
m_currentIndex = index == -1 ? appendFile(filePath) : index;
|
||||
m_currentDir = dir.path();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PL_USERPLAYLIST:{
|
||||
int index = indexOf(filePath);
|
||||
m_currentIndex = index == -1 ? appendFile(filePath) : index;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
emit loaded(m_playlist.count());
|
||||
}
|
||||
|
||||
void PlaylistManager::setCurrentIndex(int index)
|
||||
{
|
||||
if (index < 0 || index >= m_playlist.count()) return;
|
||||
m_currentIndex = index;
|
||||
}
|
||||
|
||||
int PlaylistManager::appendFile(const QString &filePath)
|
||||
{
|
||||
int index = m_playlist.length();
|
||||
m_playlist.append(QUrl::fromLocalFile(filePath));
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
int PlaylistManager::indexOf(const QString &filePath)
|
||||
{
|
||||
const QUrl & url = QUrl::fromLocalFile(filePath);
|
||||
return m_playlist.indexOf(url);
|
||||
}
|
||||
|
||||
std::tuple<int, QString> PlaylistManager::previousFile() const
|
||||
{
|
||||
int count = m_playlist.count();
|
||||
if (count == 0) return std::make_tuple(-1, QString());
|
||||
|
||||
int index = m_currentIndex - 1 < 0 ? count - 1 : m_currentIndex - 1;
|
||||
return std::make_tuple(index, m_playlist.at(index).toLocalFile());
|
||||
}
|
||||
|
||||
std::tuple<int, QString> PlaylistManager::nextFile() const
|
||||
{
|
||||
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());
|
||||
}
|
||||
|
||||
std::tuple<int, QString> PlaylistManager::currentFile() const
|
||||
{
|
||||
if (m_playlist.count() == 0) return std::make_tuple(-1, QString());
|
||||
|
||||
return std::make_tuple(m_currentIndex, m_playlist.at(m_currentIndex).toLocalFile());
|
||||
}
|
||||
|
||||
std::tuple<int, QUrl> PlaylistManager::currentFileUrl() const
|
||||
{
|
||||
if (m_playlist.count() == 0) return std::make_tuple(-1, QUrl());
|
||||
|
||||
return std::make_tuple(m_currentIndex, m_playlist.at(m_currentIndex));
|
||||
}
|
||||
|
||||
QList<QUrl> PlaylistManager::convertToUrlList(const QStringList &files)
|
||||
{
|
||||
QList<QUrl> urlList;
|
||||
for (const QString & str : qAsConst(files)) {
|
||||
QUrl url = QUrl::fromLocalFile(str);
|
||||
if (url.isValid()) {
|
||||
urlList.append(url);
|
||||
}
|
||||
}
|
||||
|
||||
return urlList;
|
||||
}
|
48
app/playlistmanager.h
Normal file
48
app/playlistmanager.h
Normal file
@ -0,0 +1,48 @@
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class PlaylistManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
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);
|
||||
~PlaylistManager();
|
||||
|
||||
void setPlaylistType(PlaylistType type);
|
||||
PlaylistType playlistType() const;
|
||||
|
||||
QStringList autoLoadFilterSuffix() const;
|
||||
void setAutoLoadFilterSuffix(const QStringList &nameFilters);
|
||||
|
||||
void clear();
|
||||
|
||||
void setPlaylist(const QList<QUrl> & urls);
|
||||
void setCurrentFile(const QString & filePath);
|
||||
void setCurrentIndex(int index);
|
||||
int appendFile(const QString & filePath);
|
||||
int indexOf(const QString & filePath);
|
||||
|
||||
std::tuple<int, QString> previousFile() const;
|
||||
std::tuple<int, QString> nextFile() const;
|
||||
std::tuple<int, QString> currentFile() const;
|
||||
std::tuple<int, QUrl> currentFileUrl() const;
|
||||
|
||||
static QList<QUrl> convertToUrlList(const QStringList & files);
|
||||
|
||||
signals:
|
||||
void loaded(int length);
|
||||
|
||||
private:
|
||||
QList<QUrl> m_playlist;
|
||||
PlaylistType m_type;
|
||||
QString m_currentDir;
|
||||
int m_currentIndex = -1;
|
||||
QStringList m_autoLoadSuffix = {};
|
||||
};
|
||||
|
@ -28,6 +28,13 @@ DoubleClickBehavior Settings::doubleClickBehavior()
|
||||
return stringToDoubleClickBehavior(result);
|
||||
}
|
||||
|
||||
MouseWheelBehavior Settings::mouseWheelBehavior()
|
||||
{
|
||||
QString result = m_qsettings->value("mouse_wheel_behavior", "close").toString().toLower();
|
||||
|
||||
return stringToMouseWheelBehavior(result);
|
||||
}
|
||||
|
||||
void Settings::setStayOnTop(bool on)
|
||||
{
|
||||
m_qsettings->setValue("stay_on_top", on);
|
||||
@ -40,6 +47,12 @@ void Settings::setDoubleClickBehavior(DoubleClickBehavior dcb)
|
||||
m_qsettings->sync();
|
||||
}
|
||||
|
||||
void Settings::setMouseWheelBehavior(MouseWheelBehavior mwb)
|
||||
{
|
||||
m_qsettings->setValue("mouse_wheel_behavior", mouseWheelBehaviorToString(mwb));
|
||||
m_qsettings->sync();
|
||||
}
|
||||
|
||||
QString Settings::doubleClickBehaviorToString(DoubleClickBehavior dcb)
|
||||
{
|
||||
static QMap<DoubleClickBehavior, QString> _map {
|
||||
@ -51,6 +64,16 @@ QString Settings::doubleClickBehaviorToString(DoubleClickBehavior dcb)
|
||||
return _map.value(dcb, "close");
|
||||
}
|
||||
|
||||
QString Settings::mouseWheelBehaviorToString(MouseWheelBehavior mwb)
|
||||
{
|
||||
static QMap<MouseWheelBehavior, QString> _map {
|
||||
{ActionZoomImage, "zoom"},
|
||||
{ActionPrevNextImage, "switch"}
|
||||
};
|
||||
|
||||
return _map.value(mwb, "zoom");
|
||||
}
|
||||
|
||||
DoubleClickBehavior Settings::stringToDoubleClickBehavior(QString str)
|
||||
{
|
||||
static QMap<QString, DoubleClickBehavior> _map {
|
||||
@ -62,6 +85,16 @@ DoubleClickBehavior Settings::stringToDoubleClickBehavior(QString str)
|
||||
return _map.value(str, ActionCloseWindow);
|
||||
}
|
||||
|
||||
MouseWheelBehavior Settings::stringToMouseWheelBehavior(QString str)
|
||||
{
|
||||
static QMap<QString, MouseWheelBehavior> _map {
|
||||
{"zoom", ActionZoomImage},
|
||||
{"switch", ActionPrevNextImage}
|
||||
};
|
||||
|
||||
return _map.value(str, ActionZoomImage);
|
||||
}
|
||||
|
||||
Settings::Settings()
|
||||
: QObject(qApp)
|
||||
{
|
||||
|
@ -8,8 +8,16 @@ enum DoubleClickBehavior {
|
||||
ActionCloseWindow,
|
||||
ActionMaximizeWindow,
|
||||
|
||||
ActionStart = ActionDoNothing,
|
||||
ActionEnd = ActionMaximizeWindow
|
||||
DCActionStart = ActionDoNothing,
|
||||
DCActionEnd = ActionMaximizeWindow
|
||||
};
|
||||
|
||||
enum MouseWheelBehavior {
|
||||
ActionZoomImage,
|
||||
ActionPrevNextImage,
|
||||
|
||||
MWActionStart = ActionZoomImage,
|
||||
MWActionEnd = ActionPrevNextImage
|
||||
};
|
||||
|
||||
class Settings : public QObject
|
||||
@ -20,12 +28,16 @@ public:
|
||||
|
||||
bool stayOnTop();
|
||||
DoubleClickBehavior doubleClickBehavior();
|
||||
MouseWheelBehavior mouseWheelBehavior();
|
||||
|
||||
void setStayOnTop(bool on);
|
||||
void setDoubleClickBehavior(DoubleClickBehavior dcb);
|
||||
void setMouseWheelBehavior(MouseWheelBehavior mwb);
|
||||
|
||||
static QString doubleClickBehaviorToString(DoubleClickBehavior dcb);
|
||||
static QString mouseWheelBehaviorToString(MouseWheelBehavior mwb);
|
||||
static DoubleClickBehavior stringToDoubleClickBehavior(QString str);
|
||||
static MouseWheelBehavior stringToMouseWheelBehavior(QString str);
|
||||
|
||||
private:
|
||||
Settings();
|
||||
|
@ -11,29 +11,44 @@ SettingsDialog::SettingsDialog(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
, m_stayOnTop(new QCheckBox)
|
||||
, m_doubleClickBehavior(new QComboBox)
|
||||
, m_mouseWheelBehavior(new QComboBox)
|
||||
{
|
||||
this->setWindowTitle(tr("Settings"));
|
||||
|
||||
QFormLayout * settingsForm = new QFormLayout(this);
|
||||
|
||||
static QMap<DoubleClickBehavior, QString> _map {
|
||||
static QMap<DoubleClickBehavior, QString> _dc_map {
|
||||
{ ActionDoNothing, tr("Do nothing") },
|
||||
{ ActionCloseWindow, tr("Close the window") },
|
||||
{ ActionMaximizeWindow, tr("Toggle maximize") }
|
||||
};
|
||||
|
||||
QStringList dropDown;
|
||||
for (int dcb = ActionStart; dcb <= ActionEnd; dcb++) {
|
||||
dropDown.append(_map.value(static_cast<DoubleClickBehavior>(dcb)));
|
||||
static QMap<MouseWheelBehavior, QString> _mw_map {
|
||||
{ ActionZoomImage, tr("Zoom in and out") },
|
||||
{ ActionPrevNextImage, tr("View next or previous item") }
|
||||
};
|
||||
|
||||
QStringList dcbDropDown;
|
||||
for (int dcb = DCActionStart; dcb <= DCActionEnd; dcb++) {
|
||||
dcbDropDown.append(_dc_map.value(static_cast<DoubleClickBehavior>(dcb)));
|
||||
}
|
||||
|
||||
QStringList mwbDropDown;
|
||||
for (int mwb = MWActionStart; mwb <= MWActionEnd; mwb++) {
|
||||
mwbDropDown.append(_mw_map.value(static_cast<MouseWheelBehavior>(mwb)));
|
||||
}
|
||||
|
||||
settingsForm->addRow(tr("Stay on top when start-up"), m_stayOnTop);
|
||||
settingsForm->addRow(tr("Double-click behavior"), m_doubleClickBehavior);
|
||||
settingsForm->addRow(tr("Mouse wheel behavior"), m_mouseWheelBehavior);
|
||||
|
||||
m_stayOnTop->setChecked(Settings::instance()->stayOnTop());
|
||||
m_doubleClickBehavior->setModel(new QStringListModel(dropDown));
|
||||
m_doubleClickBehavior->setModel(new QStringListModel(dcbDropDown));
|
||||
DoubleClickBehavior dcb = Settings::instance()->doubleClickBehavior();
|
||||
m_doubleClickBehavior->setCurrentIndex(static_cast<int>(dcb));
|
||||
m_mouseWheelBehavior->setModel(new QStringListModel(mwbDropDown));
|
||||
MouseWheelBehavior mwb = Settings::instance()->mouseWheelBehavior();
|
||||
m_mouseWheelBehavior->setCurrentIndex(static_cast<int>(mwb));
|
||||
|
||||
connect(m_stayOnTop, &QCheckBox::stateChanged, this, [ = ](int state){
|
||||
Settings::instance()->setStayOnTop(state == Qt::Checked);
|
||||
@ -43,6 +58,10 @@ SettingsDialog::SettingsDialog(QWidget *parent)
|
||||
Settings::instance()->setDoubleClickBehavior(static_cast<DoubleClickBehavior>(index));
|
||||
});
|
||||
|
||||
connect(m_mouseWheelBehavior, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [ = ](int index){
|
||||
Settings::instance()->setMouseWheelBehavior(static_cast<MouseWheelBehavior>(index));
|
||||
});
|
||||
|
||||
this->setMinimumSize(300, 61); // not sure why it complain "Unable to set geometry"
|
||||
setWindowFlag(Qt::WindowContextHelpButtonHint, false);
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ public slots:
|
||||
private:
|
||||
QCheckBox * m_stayOnTop = nullptr;
|
||||
QComboBox * m_doubleClickBehavior = nullptr;
|
||||
QComboBox * m_mouseWheelBehavior = nullptr;
|
||||
};
|
||||
|
||||
#endif // SETTINGSDIALOG_H
|
||||
|
@ -4,158 +4,158 @@
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="23"/>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="26"/>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="27"/>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="28"/>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="32"/>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="36"/>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="45"/>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="48"/>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="50"/>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="52"/>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="53"/>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="63"/>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="65"/>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="66"/>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="70"/>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="71"/>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="115"/>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="139"/>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="141"/>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="77"/>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="79"/>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="80"/>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="81"/>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="82"/>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="83"/>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="84"/>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="86"/>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="114"/>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="137"/>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="138"/>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="140"/>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -163,7 +163,7 @@
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsscene.cpp" line="16"/>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -171,28 +171,28 @@
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="254"/>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="46"/>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="48"/>
|
||||
<location filename="../app/graphicsview.cpp" line="52"/>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<source>Image data is invalid or currently unsupported</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="262"/>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="269"/>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -200,67 +200,82 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||
<source>&Paste Image</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||
<source>&Paste Image File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
||||
<location filename="../app/mainwindow.cpp" line="417"/>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
||||
<location filename="../app/mainwindow.cpp" line="424"/>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../app/metadatadialog.cpp" line="80"/>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -268,249 +283,279 @@
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="36"/>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="37"/>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="43"/>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="38"/>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="28"/>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="35"/>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="39"/>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="41"/>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="46"/>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="48"/>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="51"/>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="53"/>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="55"/>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="57"/>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="59"/>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="61"/>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="68"/>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="70"/>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="73"/>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="75"/>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="77"/>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="80"/>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="82"/>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="84"/>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="86"/>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="89"/>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="91"/>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="93"/>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="95"/>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="97"/>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="99"/>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="101"/>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="103"/>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="105"/>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="107"/>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="109"/>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="112"/>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="114"/>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="116"/>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="118"/>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="120"/>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="122"/>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="124"/>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="126"/>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="135"/>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="153"/>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -518,45 +563,60 @@
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="15"/>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="20"/>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="21"/>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="22"/>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="30"/>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="31"/>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="28"/>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="32"/>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
@ -4,162 +4,158 @@
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="23"/>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="26"/>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation>Starten Sie die Anwendung mit dem Bilddateipfad als Argument zum Laden der Datei.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="27"/>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation>Das Ziehen und Ablegen von Bilddateien in das Fenster wird ebenfalls unterstützt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="28"/>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation>Erklärung der Kontextmenüoptionen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="32"/>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation>Sicher stellen, dass das Fenster über allen anderen Fenstern bleibt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="36"/>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation>Es vermeiden, das Fenster versehentlich zu schließen. (z.B. durch Doppelklick auf das Fenster)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="45"/>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Version: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="48"/>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>Copyright © 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="50"/>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>Logo entworfen von %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="52"/>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation>Gemacht mit Qt %1 (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="53"/>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation>Quellcode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="63"/>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>Mitwirkenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="65"/>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>Liste der Mitwirkenden auf GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="66"/>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>Vielen Dank an alle, die zu diesem Projekt beigetragen haben.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="70"/>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>Übersetzer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="71"/>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation>Ich möchte den folgenden Personen danken, die sich freiwillig zur Übersetzung dieser Anwendung gemeldet haben.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="115"/>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation type="unfinished">%1 basiert auf den folgenden freien Softwarebibliotheken:</translation>
|
||||
<translation>%1 basiert auf den folgenden freien Softwarebibliotheken:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="139"/>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation>&Besonderer Dank</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="141"/>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation>&Bibliotheken von Drittanbietern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="77"/>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation>Ihre Rechte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="79"/>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation>%1 wird unter der MIT-Lizenz veröffentlicht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="80"/>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation>Diese Lizenz gewährt Menschen eine Reihe von Freiheiten:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="81"/>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation>Sie dürfen %1 für jeden Zweck verwenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="82"/>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation>Sie dürfen %1 verteilen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="83"/>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation>Sie können untersuchen, wie %1 funktioniert, und es ändern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="84"/>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation>Sie können geänderte Versionen von %1 verteilen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="86"/>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation>Die MIT-Lizenz garantiert Ihnen diese Freiheit. Niemand darf es jemals wegnehmen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="114"/>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation>Von %1 verwendete Bibliotheken von Drittanbietern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<translation type="vanished">%1 basiert auf den folgenden freien Softwarebibliotheken:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="137"/>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="138"/>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation>&Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="140"/>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation>&Lizenz</translation>
|
||||
</message>
|
||||
@ -167,7 +163,7 @@
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsscene.cpp" line="16"/>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation>Ziehen Sie das Bild hierher</translation>
|
||||
</message>
|
||||
@ -175,28 +171,28 @@
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="254"/>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>Die Datei-URL-Liste ist leer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="46"/>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation>Datei ist kein gültiges Bild</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="48"/>
|
||||
<location filename="../app/graphicsview.cpp" line="52"/>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<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="../app/graphicsview.cpp" line="262"/>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation>Bilddaten sind ungültig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="269"/>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation>Nicht unterstützte Mimedaten: %1</translation>
|
||||
</message>
|
||||
@ -204,67 +200,82 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>Die Datei-URL-Liste ist leer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation>P&ixmap kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation>&Dateipfad kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||
<source>&Paste Image</source>
|
||||
<translation>Bild &einfügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||
<source>&Paste Image File</source>
|
||||
<translation>Bilddatei &einfügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation>Eigenschaften</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
||||
<location filename="../app/mainwindow.cpp" line="417"/>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation>Oben bleiben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
||||
<location filename="../app/mainwindow.cpp" line="424"/>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation>Geschützter Modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation>Konfigurieren …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation>Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../app/metadatadialog.cpp" line="80"/>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation>Bildmetadaten</translation>
|
||||
</message>
|
||||
@ -272,249 +283,279 @@
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="36"/>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Ursprung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="37"/>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Bild</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="43"/>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="38"/>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Fotoapparat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="28"/>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation>%1-Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="35"/>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Beschreibung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="39"/>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Erweitertes Foto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="41"/>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>GPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="46"/>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Maße</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="48"/>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation>Seitenverhältnis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="51"/>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="53"/>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation>Objekttyp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="55"/>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation>Ordnerpfad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="57"/>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation>Größe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="59"/>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation>Datum erstellt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="61"/>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation>Datum geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="68"/>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation>Bewertung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="70"/>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation>Kommentare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="73"/>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation>Autoren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="75"/>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation>Datum genommen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="77"/>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation>Programmname</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="80"/>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation>Horizontale Auflösung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="82"/>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation>Vertikale Auflösung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="84"/>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation>Auflösungseinheit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="86"/>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation>Farbdarstellung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="89"/>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation>Kamerahersteller</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="91"/>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation>Kameramodell</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="93"/>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation>Blendenzahl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="95"/>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation>Belichtungszeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="97"/>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation>ISO-Geschwindigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="99"/>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation>Belichtungskorrektur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="101"/>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation>Brennweite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="103"/>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation>Maximale Blende</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="105"/>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation>Messmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="107"/>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation>Flash-Modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="109"/>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation>35 mm Brennweite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="112"/>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation>Objektivmodell</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="114"/>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation>Helligkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="116"/>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation>Belichtungsprogramm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="118"/>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation>Sättigung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="120"/>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation>Schärfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="122"/>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation>Weißabgleich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="124"/>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Digitaler Zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="126"/>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation>EXIF-Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="135"/>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation>Breitengrad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation>Längengrad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation>Höhe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation>%1 × %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="153"/>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation>%1 : %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation>Eigenschaft</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation>Wert</translation>
|
||||
</message>
|
||||
@ -522,45 +563,60 @@
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="15"/>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation>Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="20"/>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation>Nichts tun</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="21"/>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation>Fenster schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="22"/>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation>Maximieren umschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="30"/>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation>Beim Start oben bleiben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="31"/>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation>Doppelklickverhalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="28"/>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation>Pineapple Pictures</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="32"/>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation>Dateiliste.</translation>
|
||||
</message>
|
624
app/translations/PineapplePictures_es.ts
Normal file
624
app/translations/PineapplePictures_es.ts
Normal file
@ -0,0 +1,624 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="es">
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>Acerca de</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation>Lanza la aplicación con la ruta del archivo de imagen como argumento para cargar el archivo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation>También se admite la función de arrastrar y soltar el archivo de imagen en la ventana.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation>Explicación de la opción del menú contextual:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation>Haz que la ventana se quede encima de todas las demás ventanas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation>Evita cerrar la ventana accidentalmente. (por ejemplo, haciendo doble clic en la ventana)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versión: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>Derechos reservados (c) 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>Logo diseñado por %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation>Construido con Qt %1 (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation>Código fuente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>Colaboradores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>Lista de colaboradores en GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>Gracias a todas las personas que contibuyen a este proyecto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>Traductores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation>Me gustaría dar las gracias a las siguientes personas que se ofrecieron a traducir esta solicitud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation>%1 está construido sobre las siguientes bibliotecas de software libre:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation>&Agradecimiento especial</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<source>Image data is invalid or currently unsupported</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -4,162 +4,158 @@
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="23"/>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>À propos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="26"/>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation>Lancer l'application avec le chemin du fichier image comme argument pour charger le fichier.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="27"/>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation>Le glisser-déposer du fichier image sur la fenêtre est également pris en charge.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="28"/>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation>Explication des options du menu contextuel :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="32"/>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation>Faire en sorte que la fenêtre reste au-dessus de toutes les autres fenêtres.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="36"/>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation>Éviter de fermer la fenêtre accidentellement. (par exemple en cliquant deux fois sur la fenêtre)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="45"/>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Version : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="48"/>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>Copyright © 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="50"/>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>Logo conçu par %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="52"/>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation>Fait avec Qt %1 (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="53"/>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation>Code source</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="63"/>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>Contributeurs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="65"/>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>Liste des contributeurs sur GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="66"/>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>Merci à toutes les personnes qui ont contribué à ce projet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="70"/>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>Traducteurs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="71"/>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation>Je tiens à remercier les personnes suivantes qui se sont portées volontaires pour traduire cette application.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="115"/>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation type="unfinished">%1 est basé sur les bibliothèques de logiciels libres suivantes :</translation>
|
||||
<translation>%1 est basé sur les bibliothèques de logiciels libres suivantes :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="139"/>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation>&Remerciement spécial</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="141"/>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation>&Bibliothèques tierces</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="77"/>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation>Vos droits</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="79"/>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation>%1 est publié sous licence MIT.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="80"/>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation>Cette licence accorde aux personnes un certain nombre de libertés :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="81"/>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation>Vous êtes libre d'utiliser %1, dans n'importe quel but</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="82"/>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation>Vous êtes libre de distribuer %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="83"/>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation>Vous pouvez étudier le fonctionnement de %1 et le modifier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="84"/>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation>Vous pouvez distribuer des versions modifiées de %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="86"/>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation>La licence MIT vous garantit cette liberté. Personne n'est autorisé à l'enlever.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="114"/>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation>Bibliothèques tierces utilisées par %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<translation type="vanished">%1 est basé sur les bibliothèques de logiciels libres suivantes :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="137"/>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Aide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="138"/>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation>&À propos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="140"/>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation>&Licence</translation>
|
||||
</message>
|
||||
@ -167,7 +163,7 @@
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsscene.cpp" line="16"/>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation>Faites glisser l'image ici</translation>
|
||||
</message>
|
||||
@ -175,28 +171,28 @@
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="254"/>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>La liste des URL du fichier est vide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="46"/>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation>Le fichier n'est pas une image valide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="48"/>
|
||||
<location filename="../app/graphicsview.cpp" line="52"/>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<source>Image data is invalid or currently unsupported</source>
|
||||
<translation>Les données d'image ne sont pas valides ou ne sont actuellement pas prises en charge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="262"/>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation>Les données d'image ne sont pas valides</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="269"/>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation>Mimedata non pris en charge : %1</translation>
|
||||
</message>
|
||||
@ -204,67 +200,82 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>La liste des URL de fichiers est vide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation>&Copier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation>Copier P&ixmap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation>Copier le &chemin du fichier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||
<source>&Paste Image</source>
|
||||
<translation>&Coller l'image</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||
<source>&Paste Image File</source>
|
||||
<translation>&Coller le fichier d'image</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation>Propriétés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
||||
<location filename="../app/mainwindow.cpp" line="417"/>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation>Rester en-haut</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
||||
<location filename="../app/mainwindow.cpp" line="424"/>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation>Mode protégé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation>Configurer…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation>Aide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../app/metadatadialog.cpp" line="80"/>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation>Métadonnées d'image</translation>
|
||||
</message>
|
||||
@ -272,249 +283,279 @@
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="36"/>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Origine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="37"/>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Image</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="43"/>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Fichier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="38"/>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Appareil photo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="28"/>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation>Fichier %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="35"/>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Description</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="39"/>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Photo avancée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="41"/>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>GPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="46"/>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Dimensions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="48"/>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation>Rapport d'aspect</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="51"/>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation>Nom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="53"/>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation>Type d'élément</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="55"/>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation>Chemin du dossier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="57"/>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation>Taille</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="59"/>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation>Date créée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="61"/>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation>Date modifiée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="68"/>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation>Évaluation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="70"/>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation>Commentaires</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="73"/>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation>Auteurs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="75"/>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation>Date prise</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="77"/>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation>Nom du programme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="80"/>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation>Résolution horizontale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="82"/>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation>Résolution verticale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="84"/>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation>Unité de résolution</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="86"/>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation>Représentation des couleurs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="89"/>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation>Fabricant de l'appareil photo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="91"/>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation>Modèle d'appareil photo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="93"/>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation>Nombre d'ouverture</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="95"/>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation>Temps d'exposition</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="97"/>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation>Vitesse ISO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="99"/>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation>Biais d'exposition</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="101"/>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation>Distance focale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="103"/>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation>Ouverture maximale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="105"/>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation>Mode de mesure</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="107"/>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation>Mode flash</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="109"/>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation>Distance focale de 35 mm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="112"/>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation>Modèle d'objectif</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="114"/>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation>Luminosité</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="116"/>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation>Programme d'exposition</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="118"/>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation>Saturation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="120"/>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation>Netteté</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="122"/>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation>Balance des blancs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="124"/>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Zoom numérique</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="126"/>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation>Version EXIF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="135"/>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation>Référence de latitude</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation>Latitude</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation>Référence de longitude</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation>Longitude</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation>Référence d'altitude</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation>Altitude</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation>%1 × %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="153"/>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation>%1 : %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation>Propriété</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation>Valeur</translation>
|
||||
</message>
|
||||
@ -522,45 +563,60 @@
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="15"/>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation>Paramètres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="20"/>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation>Ne rien faire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="21"/>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation>Fermer la fenêtre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="22"/>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation>Activer/désactiver l'agrandissement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="30"/>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation>Rester en-haut lors du démarrage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="31"/>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation>Comportement du double-clic</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="28"/>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation>Pineapple Pictures</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="32"/>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation>Liste des fichiers.</translation>
|
||||
</message>
|
@ -4,162 +4,158 @@
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="23"/>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>Om</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="26"/>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation>Kjør programmer ved å angi en filsti som argument for å laste inn filen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="27"/>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation>Å dra og slippe filen i vinduet støttes også.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="28"/>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation>Forklaring av alternativer i bindeleddsmeny:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="32"/>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation>Få vinduet til å alltid ligge over andre vinduer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="36"/>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation>Unngå lukking av vinduet ved feiltagelser (f.eks. ved dobbeltklikking av vinduet)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="45"/>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versjon: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="48"/>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>Opphavsrett © 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="50"/>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>Logo designet av %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="52"/>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation>Bygd med Qt %1 (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="53"/>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation>Kildekode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="63"/>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>Bidragsytere</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="65"/>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>Liste over bidragsytere på GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="66"/>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>Takk til alle som har bidratt til prosjektet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="70"/>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>Oversettere</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="71"/>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation>Takk til følgende dugnadsoversettere.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="115"/>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation type="unfinished">%1 er bygd med følgende friprog-bibliotek:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="139"/>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation>&Spesiell takk til</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="141"/>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation>&Tredjepartslisenser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="77"/>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation>Dine rettigheter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="79"/>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation>%1 er MIT-lisensiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="80"/>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation>Lisensen gir den en rekke friheter:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="81"/>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation>Du kan bruke %1 som du vil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="82"/>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation>Du kan dele %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="83"/>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation>Du kan se kildekoden til %1 og endre den</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="84"/>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation>Du kan distribuere endrede versjoner av %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="86"/>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation>MIT-lisensen garanterer deg disse frihetene.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="114"/>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation>Tredjepartsbibliotek brukt av %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<translation type="vanished">%1 er bygd med følgende friprog-bibliotek:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="137"/>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Hjelp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="138"/>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation>&Om</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="140"/>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation>&Lisens</translation>
|
||||
</message>
|
||||
@ -167,7 +163,7 @@
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsscene.cpp" line="16"/>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation>Dra bilde hit</translation>
|
||||
</message>
|
||||
@ -175,28 +171,28 @@
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="254"/>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>Listen over filnettadresser er tom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="46"/>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation>Filen er ikke et gyldig bilde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="48"/>
|
||||
<location filename="../app/graphicsview.cpp" line="52"/>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<source>Image data is invalid or currently unsupported</source>
|
||||
<translation>Ugyldig bildedata, eller for tiden ustøttet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="262"/>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation>Ugyldig bildedata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="269"/>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation>Ustøttet MIME-data: %1</translation>
|
||||
</message>
|
||||
@ -204,67 +200,82 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>Listen over filnettadresser er ugyldig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Kopier p&ixmap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation>Kopier %filsti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||
<source>&Paste Image</source>
|
||||
<translation>&Lim inn bilde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||
<source>&Paste Image File</source>
|
||||
<translation>&Lim inn bildefil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation>Egenskaper</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
||||
<location filename="../app/mainwindow.cpp" line="417"/>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation>Behold øverst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
||||
<location filename="../app/mainwindow.cpp" line="424"/>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation>Beskyttet modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation>Førstørr</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation>Forminsk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation>&Lim inn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation>Sett opp …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation>Hjelp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation>Avslutt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../app/metadatadialog.cpp" line="80"/>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation>Bilde-metadata</translation>
|
||||
</message>
|
||||
@ -272,249 +283,279 @@
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="36"/>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Opprinnelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="37"/>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Bilde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="43"/>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="38"/>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Kamera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="28"/>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation>%1-fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="35"/>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Beskrivelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="39"/>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Avansert bilde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="41"/>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>GPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="46"/>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Dimensjoner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="48"/>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Størrelsesforhold</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="51"/>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation>Navn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="53"/>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation>Elementstype</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="55"/>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation>Mappesti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="57"/>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation>Størrelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="59"/>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation>Dato opprettet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="61"/>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation>Dato endret</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="68"/>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation>Vurdering</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="70"/>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation>Kommentarer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="73"/>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Opphavsmenn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="75"/>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation>Dato tatt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="77"/>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation>Programnavn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="80"/>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation>Vannrett oppløsning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="82"/>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation>Loddrett oppløsning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="84"/>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation>Oppløsningsenhet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="86"/>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation>Fargerepresentasjon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="89"/>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Kamerafabrikat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="91"/>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation>Kameramodell</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="93"/>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation>Blenderåpning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="95"/>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation>Eksponeringstid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="97"/>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation>ISO-hastighet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="99"/>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Eksponeringskorrigering</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="101"/>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation>Brennvidde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="103"/>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Maks. blenderåpning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="105"/>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Målingsmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="107"/>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation>Blitz-modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="109"/>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">35 mm-brennvidde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="112"/>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation>Linsemodell</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="114"/>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation>Lysstyrke</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="116"/>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Eksponeringsprogram</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="118"/>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation>Metning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="120"/>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation>Skarphet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="122"/>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation>Hvitbalanse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="124"/>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Digital forstørrelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="126"/>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation>EXIF-versjon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="135"/>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation>Breddegradsreferanse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation>Breddegrad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation>Lengdegradsreferanse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation>Lengdegrad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation>Høydereferanse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation>Høyde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation>%1 x %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="153"/>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation>%1 : %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation>Egenskap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation>Verdi</translation>
|
||||
</message>
|
||||
@ -522,45 +563,60 @@
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="15"/>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation>Innstillinger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="20"/>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation>Ikke gjør noe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="21"/>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation>Lukk vinduet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="22"/>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation>Veksle maksimering</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="30"/>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation>Zoom inn og ut</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation>Vis neste eller forrige element</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation>Behold i forgrunnen ved oppstart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="31"/>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation>Dobbeltklikksoppførsel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation>Musehjulsoppførsel</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="28"/>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation type="unfinished">Ananasbilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="32"/>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation>Filliste.</translation>
|
||||
</message>
|
624
app/translations/PineapplePictures_nl.ts
Normal file
624
app/translations/PineapplePictures_nl.ts
Normal file
@ -0,0 +1,624 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="nl">
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>Over</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation>Start het programma met het opgegeven afbeeldingsbestandspad.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation>U kunt tevens afbeeldingen naar het venster slepen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation>Rechtermuisknopmenu-uitleg:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation>Houdt het venster boven andere vensters.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation>Voorkomt per ongeluk sluiten (bijv. door te dubbelklikken op het venster).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versie: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>Copyright (c) 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>Logo gemaakt door %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation>Gebouwd met Qt %1 (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation>Broncode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>Bijdragers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>Lijst met bijdragers op GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>Met dank aan alle personen die hebben bijgedragen aan dit project.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>Vertalers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation>Ik wil graag de volgende mensen bedanken die vrijwillig hebben bijgedragen aan vertalingen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation>%1 is gebouwd met de volgende vrijesoftwarebibliotheken:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation>&Met dank aan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation>Ex&terne bibliotheken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation>Uw rechten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation>%1 is uitgebracht onder de MIT-licentie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation>Deze licentie biedt een hoop vrijheden:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation>U mag %1 gratis gebruiken, voor welk doeleinde dan ook</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation>U mag %1 vrij verspreiden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation>U kunt bekijken hoe %1 werkt en aanpassingen doen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation>U mag aangepaste versie van %1 vrij verspreiden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation>De MIT-licentie garandeert u deze vrijheid, en niemand mag deze vrijheid wegnemen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation>Door %1 gebruikte externe bibliotheken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Hulp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation>&Over</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation>&Licentie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation>Sleep een afbeelding hierheen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>De bestandspadlijst is leeg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation>Het bestand is geen afbeelding</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<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="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation>Beschadigde afbeeldingsgegevens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation>Niet-ondersteunde mime-gegevens: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>De bestandspadlijst is leeg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation>&Kopiëren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation>P&ixmap kopiëren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation>&Bestandspad kopiëren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation>Eigenschappen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation>Altijd bovenop</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation>Beschermde modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation>&Plakken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation>Instellen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation>Hulp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation>Afsluiten</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation>Afbeeldingsmetagegevens</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Oorsprong</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Afbeelding</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Bestand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Camera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation>%1-bestand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Omschrijving</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Uitgebreide foto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>GPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Afmetingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation>Beeldverhouding</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation>Naam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation>Soort item</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation>Bestandspad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation>Grootte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation>Gemaakt op</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation>Bewerkt op</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation>Waardering</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation>Opmerkingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation>Makers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation>Genomen op</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation>Programmanaam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation>Horizontale resolutie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation>Verticale resolutie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation>Resolutie-eenheid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation>Kleurweergave</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation>Camerafabrikant</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation>Cameramodel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation>Openingsverhouding</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation>Belichtingstijd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation>ISO-snelheid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation>Belichtingsvertekening</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation>Focale lengte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation>Max. opening</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation>Metermodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation>Flitsmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation>35mm focale lengte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation>Lensmodel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation>Helderheid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation>Belichtingsprogramma</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation>Verzadiging</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation>Scherpte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation>Witbalans</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Digitale zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation>EXIF-versie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation>Breedtegraadverwijzing</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation>Breedtegraad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation>Lengtegraadverwijzing</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation>Lengtegraad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation>Hoogteverwijzing</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation>Hoogte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation>%1 x %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation>%1 : %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation>Eigenschap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation>Waarde</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation>Instellingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation>Niets doen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation>Venster sluiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation>Maximaliseren/Demaximaliseren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation>In-/Uitzoomen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation>Ga naar volgende of vorige item</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation>Automatisch altijd bovenop</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation>Dubbelklikgedrag</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation>Scrollwielgedrag</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation>Pineapple Afbeeldingen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation>Bestandslijst.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -4,158 +4,158 @@
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="23"/>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>О программе</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="26"/>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Запустите приложение, указав путь к файлу изображения в качестве аргумента для загрузки файла.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="27"/>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Перетаскивание файла изображения в окно также поддерживается.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="28"/>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Объяснение пунктов контекстного меню:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="32"/>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Сделать окно поверх всех остальных окон.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="36"/>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Избежать случайного закрытия окна (например, двойным щелчком по окну).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="45"/>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Версия: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="48"/>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>Авторское право (c) 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="50"/>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>Логотип разработан %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="52"/>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation>Создано с использованием Qt %1 (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="53"/>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation>Исходный код</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="63"/>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>Участники</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="65"/>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>Список участников на GitHub</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="66"/>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>Спасибо всем, кто внес свой вклад в этот проект.</translation>
|
||||
<translation>Спасибо всем, кто внёс свой вклад в этот проект.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="70"/>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>Переводчики</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="71"/>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Я хотел бы поблагодарить следующих людей, которые вызвались перевести это приложение.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="115"/>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>%1 собран на следующих бесплатных библиотеках программного обеспечения:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="139"/>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation>&Особая благодарность</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="141"/>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation>&Сторонние библиотеки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="77"/>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ваши Права</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="79"/>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation>%1 выпущен под лицензией MIT.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="80"/>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Эта лицензия дает людям ряд свобод:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="81"/>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation>Вы можете использовать %1, для любых целей</translation>
|
||||
<translation>Вы можете свободно использовать %1 для любых целей</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="82"/>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation>Вы можете свободно распространять %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="83"/>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Вы можете изучать, как работает %1, и изменять его</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="84"/>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation>Вы можете распространять измененные версии %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="86"/>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Лицензия MIT гарантирует вам эту свободу. Никому и никогда не разрешается забирать её.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="114"/>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation>Сторонние библиотеки, используемые %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="137"/>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Помощь</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="138"/>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation>&О программе</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="140"/>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation>&Лицензия</translation>
|
||||
</message>
|
||||
@ -163,7 +163,7 @@
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsscene.cpp" line="16"/>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation>Перетащите изображение сюда</translation>
|
||||
</message>
|
||||
@ -171,96 +171,111 @@
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="254"/>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Список URL-адресов файлов пуст</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="46"/>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Файл не является действительным изображением</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="48"/>
|
||||
<location filename="../app/graphicsview.cpp" line="52"/>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<source>Image data is invalid or currently unsupported</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Данные изображения недействительны или в настоящее время не поддерживаются</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="262"/>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Данные изображения недействительны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="269"/>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Неподдерживаемые mimedata: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Список URL-адресов файлов пуст</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation>&Копировать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Копировать P&ixmap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation>Копировать &Путь к файлу</translation>
|
||||
<translation>Копировать &путь к файлу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||
<source>&Paste Image</source>
|
||||
<translation>&Вставить изображение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||
<source>&Paste Image File</source>
|
||||
<translation>&Вставить файл изображения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation>Свойства</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
||||
<location filename="../app/mainwindow.cpp" line="417"/>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Поверх всех окон</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
||||
<location filename="../app/mainwindow.cpp" line="424"/>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation>Защищенный режим</translation>
|
||||
<translation>Защищённый режим</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||
<source>Configure...</source>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation>Увеличить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation>Уменьшить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation>&Вставить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation>Настроить...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation>Помощь</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation>Выход</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../app/metadatadialog.cpp" line="80"/>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation>Метаданные изображения</translation>
|
||||
</message>
|
||||
@ -268,249 +283,279 @@
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="36"/>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Происхождение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="37"/>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Изображение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="43"/>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="38"/>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Камера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="28"/>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation>%1 Файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="35"/>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>Описание</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="39"/>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Расширенное фото</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="41"/>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>GPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="46"/>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Размеры</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="48"/>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation>Соотношение сторон</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="51"/>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation>Название</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="53"/>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation>Тип элемента</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="55"/>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation>Путь к папке</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="57"/>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation>Размер</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="59"/>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation>Дата создания</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="61"/>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation>Дата изменения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="68"/>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation>Рейтинг</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="70"/>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation>Комментарии</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="73"/>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation>Авторы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="75"/>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Дата захвата</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="77"/>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation>Название программы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="80"/>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation>Горизонтальное разрешение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="82"/>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation>Вертикальное разрешение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="84"/>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation>Единица разрешения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="86"/>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Цветовое представление</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="89"/>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation>Производитель камеры</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="91"/>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation>Модель камеры</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="93"/>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>F-stop</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="95"/>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation>Экспозиция</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="97"/>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation>ISO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="99"/>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation>Смещение экспозиции</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="101"/>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation>Фокусное расстояние</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="103"/>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation>Максимальная апертура</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="105"/>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Режим замера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="107"/>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Режим вспышки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="109"/>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation>Фокусное расстояние 35 мм</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="112"/>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation>Модель объектива</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="114"/>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation>Яркость</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="116"/>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation>Программа экспозиции</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="118"/>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation>Насыщенность</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="120"/>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation>Четкость</translation>
|
||||
<translation>Чёткость</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="122"/>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation>Баланс белого</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="124"/>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Цифровой зум</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="126"/>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation>Версия EXIF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="135"/>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation>Ссылка на широту</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation>Широта</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation>Ссылка на долготу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation>Долгота</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation>Ссылка на высоту</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation>Высота</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation>%1 x %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="153"/>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation>%1 : %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Свойство</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation>Значение</translation>
|
||||
</message>
|
||||
@ -518,45 +563,60 @@
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="15"/>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation>Настройки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="20"/>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation>Ничего не делать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="21"/>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation>Закрыть окно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="22"/>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Развернуть окно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="30"/>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation>Увеличение или уменьшение изображения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation>Следующее или предыдущее изображение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Поверх всех окон при запуске</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="31"/>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Поведение при двойном щелчке</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation>Поведение колеса мыши</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="28"/>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Pineapple Pictures</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="32"/>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation>Список файлов.</translation>
|
||||
</message>
|
624
app/translations/PineapplePictures_si.ts
Normal file
624
app/translations/PineapplePictures_si.ts
Normal file
@ -0,0 +1,624 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="si">
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>පිළිබඳව</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>අනුවාදය: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>ප්රකාශන හිමිකම (ඇ) 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>ලාංඡනය %1 විසින් නිර්මාණය කරන ලදි</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>සහදායකයින්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>ගිට්හබ් හි සහදායකයින්ගේ ලැයිස්තුව</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>මෙම ව්යාපෘතියට දායක වූ සියලු දෙනාටම ස්තූතියි.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>පරිවර්තකයින්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation>මෙම යෙදුම පරිවර්තනය කිරීමට ස්වේච්ඡාවෙන් ඉදිරිපත් වූ පහත සඳහන් පුද්ගලයින්ට මම ස්තූතිවන්ත වෙමි.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation>ඔබගේ අයිතිවාසිකම්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation>ඕනෑම කටයුත්තක් සඳහා %1 භාවිතා කිරීමට ඔබට නිදහස තිබේ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation>%1 බෙදා හැරීමට ඔබට නිදහස තිබේ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation>%1 ක්රියා කරන ආකාරය අධ්යයනය කර එය වෙනස් කළ හැකිය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation>%1 හි වෙනස් කළ අනුවාදයන් ඔබට බෙදා හැරීමට හැකිය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation>&උපකාර</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation>&පිළිබඳව</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation>&බලපත්රය</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation type="unfinished">ගොනු ඒ.ස.නි. (url) ලැයිස්තුව හිස් ය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation>ගොනුව වලංගු නොවන රූපයකි</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<source>Image data is invalid or currently unsupported</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation>රූපයේ දත්ත වලංගු නොවේ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>ගොනු ඒ.ස.නි. (url) ලැයිස්තුව හිස් ය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation>&පිටපත්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>පින්තූරය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>ගොනුව</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation>ගොනු %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>විස්තරය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>මාන</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation>දර්ශන අනුපාතය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation>නම</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation>ගොනුවේ මාර්ගය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation>ප්රමාණය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation>සෑදූ දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation>වෙනස් කළ දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation>ශ්රේණිගත කිරීම</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation>අදහස්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation>කතුවරුන්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation>ගත් දිනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation>වැඩසටහනේ නම</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation>තිරස් විභේදනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation>සිරස් විභේදනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation>විභේදන ඒකකය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation>වර්ණ නිරූපණය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation>නිරාවරණ කාලය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation>නිරාවරණ නැඹුරුව</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation>කාච ආකෘතිය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation>දීප්තිය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation>නිරාවරණ වැඩසටහන</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation>තියුණු බව</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>සංඛ්යාංක විශාලනය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation>අක්ෂාංශ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation>දේශාංශ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation>උන්නතාංශය</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation>%1 x %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation>%1 : %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation>අගය</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation>සැකසුම්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation>කිසිවක් නොකරන්න</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation>කවුළුව වහන්න</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation>පයින්ඇපල් පික්චර්ස්</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation>ගොනු ලැයිස්තුව.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -4,162 +4,158 @@
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="23"/>
|
||||
<location filename="../aboutdialog.cpp" line="23"/>
|
||||
<source>About</source>
|
||||
<translation>关于</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="26"/>
|
||||
<location filename="../aboutdialog.cpp" line="26"/>
|
||||
<source>Launch application with image file path as argument to load the file.</source>
|
||||
<translation>以图片文件的路径作为参数运行程序即可直接打开图片文件。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="27"/>
|
||||
<location filename="../aboutdialog.cpp" line="27"/>
|
||||
<source>Drag and drop image file onto the window is also supported.</source>
|
||||
<translation>也支持拖放图片文件到窗口内来加载图片。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="28"/>
|
||||
<location filename="../aboutdialog.cpp" line="28"/>
|
||||
<source>Context menu option explanation:</source>
|
||||
<translation>菜单项说明:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="32"/>
|
||||
<location filename="../aboutdialog.cpp" line="32"/>
|
||||
<source>Make window stay on top of all other windows.</source>
|
||||
<translation>使窗口始终至于其它非置顶窗口上方。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="36"/>
|
||||
<location filename="../aboutdialog.cpp" line="36"/>
|
||||
<source>Avoid close window accidentally. (eg. by double clicking the window)</source>
|
||||
<translation>避免窗口意外关闭。(如:不小心双击了窗口触发了关闭窗口行为)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="45"/>
|
||||
<location filename="../aboutdialog.cpp" line="45"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>版本: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="48"/>
|
||||
<location filename="../aboutdialog.cpp" line="48"/>
|
||||
<source>Copyright (c) 2020 %1</source>
|
||||
<translation>版权所有 (c) 2020 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="50"/>
|
||||
<location filename="../aboutdialog.cpp" line="50"/>
|
||||
<source>Logo designed by %1</source>
|
||||
<translation>Logo 由 %1 设计</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="52"/>
|
||||
<location filename="../aboutdialog.cpp" line="52"/>
|
||||
<source>Built with Qt %1 (%2)</source>
|
||||
<translation>使用 Qt %1 (%2) 进行构建</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="53"/>
|
||||
<location filename="../aboutdialog.cpp" line="53"/>
|
||||
<source>Source code</source>
|
||||
<translation>源代码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="63"/>
|
||||
<location filename="../aboutdialog.cpp" line="63"/>
|
||||
<source>Contributors</source>
|
||||
<translation>贡献者</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="65"/>
|
||||
<location filename="../aboutdialog.cpp" line="65"/>
|
||||
<source>List of contributors on GitHub</source>
|
||||
<translation>GitHub 上的贡献者列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="66"/>
|
||||
<location filename="../aboutdialog.cpp" line="66"/>
|
||||
<source>Thanks to all people who contributed to this project.</source>
|
||||
<translation>感谢所有参与此项目的朋友。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="70"/>
|
||||
<location filename="../aboutdialog.cpp" line="70"/>
|
||||
<source>Translators</source>
|
||||
<translation>翻译者</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="71"/>
|
||||
<location filename="../aboutdialog.cpp" line="71"/>
|
||||
<source>I would like to thank the following people who volunteered to translate this application.</source>
|
||||
<translation>我想要感谢下列自愿参与翻译此应用程序的朋友。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="115"/>
|
||||
<location filename="../aboutdialog.cpp" line="115"/>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<comment>Free as in freedom</comment>
|
||||
<translation>%1 采用了下列自由软件程序库进行构建:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="139"/>
|
||||
<location filename="../aboutdialog.cpp" line="139"/>
|
||||
<source>&Special Thanks</source>
|
||||
<translation>致谢(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="141"/>
|
||||
<location filename="../aboutdialog.cpp" line="141"/>
|
||||
<source>&Third-party Libraries</source>
|
||||
<translation>第三方程序库(&T)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="77"/>
|
||||
<location filename="../aboutdialog.cpp" line="77"/>
|
||||
<source>Your Rights</source>
|
||||
<translation>用户的权利</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="79"/>
|
||||
<location filename="../aboutdialog.cpp" line="79"/>
|
||||
<source>%1 is released under the MIT License.</source>
|
||||
<translation>%1 是在 MIT 许可协议下发布的。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="80"/>
|
||||
<location filename="../aboutdialog.cpp" line="80"/>
|
||||
<source>This license grants people a number of freedoms:</source>
|
||||
<translation>此许可证赋予人们以下自由的权利:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="81"/>
|
||||
<location filename="../aboutdialog.cpp" line="81"/>
|
||||
<source>You are free to use %1, for any purpose</source>
|
||||
<translation>任何人都可以为了任何目的自由地使用 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="82"/>
|
||||
<location filename="../aboutdialog.cpp" line="82"/>
|
||||
<source>You are free to distribute %1</source>
|
||||
<translation>任何人都可以自由地分发 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="83"/>
|
||||
<location filename="../aboutdialog.cpp" line="83"/>
|
||||
<source>You can study how %1 works and change it</source>
|
||||
<translation>任何人都可以自由地研究 %1 的工作原理并对其进行修改</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="84"/>
|
||||
<location filename="../aboutdialog.cpp" line="84"/>
|
||||
<source>You can distribute changed versions of %1</source>
|
||||
<translation>任何人都可以自由地分发修改过的 %1 版本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="86"/>
|
||||
<location filename="../aboutdialog.cpp" line="86"/>
|
||||
<source>The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.</source>
|
||||
<translation>此软件通过 MIT 许可证赋予用户上述自由,任何人无权剥夺。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="114"/>
|
||||
<location filename="../aboutdialog.cpp" line="114"/>
|
||||
<source>Third-party Libraries used by %1</source>
|
||||
<translation>%1 使用的第三方程序库</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 is built on the following free software libraries:</source>
|
||||
<translation type="vanished">%1 采用了下列自由软件程序库进行构建:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="137"/>
|
||||
<location filename="../aboutdialog.cpp" line="137"/>
|
||||
<source>&Help</source>
|
||||
<translation>帮助(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="138"/>
|
||||
<location filename="../aboutdialog.cpp" line="138"/>
|
||||
<source>&About</source>
|
||||
<translation>关于(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="140"/>
|
||||
<location filename="../aboutdialog.cpp" line="140"/>
|
||||
<source>&License</source>
|
||||
<translation>软件许可证(&L)</translation>
|
||||
</message>
|
||||
@ -167,7 +163,7 @@
|
||||
<context>
|
||||
<name>GraphicsScene</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsscene.cpp" line="16"/>
|
||||
<location filename="../graphicsscene.cpp" line="16"/>
|
||||
<source>Drag image here</source>
|
||||
<translation>拖放图片至此</translation>
|
||||
</message>
|
||||
@ -175,28 +171,28 @@
|
||||
<context>
|
||||
<name>GraphicsView</name>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="254"/>
|
||||
<location filename="../graphicsview.cpp" line="261"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>文件 URL 列表为空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="46"/>
|
||||
<location filename="../graphicsview.cpp" line="53"/>
|
||||
<source>File is not a valid image</source>
|
||||
<translation>文件不是有效的图片文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="48"/>
|
||||
<location filename="../app/graphicsview.cpp" line="52"/>
|
||||
<location filename="../graphicsview.cpp" line="56"/>
|
||||
<location filename="../graphicsview.cpp" line="61"/>
|
||||
<source>Image data is invalid or currently unsupported</source>
|
||||
<translation>图像数据无效或暂未支持</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="262"/>
|
||||
<location filename="../graphicsview.cpp" line="269"/>
|
||||
<source>Image data is invalid</source>
|
||||
<translation>图片数据无效</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/graphicsview.cpp" line="269"/>
|
||||
<location filename="../graphicsview.cpp" line="276"/>
|
||||
<source>Not supported mimedata: %1</source>
|
||||
<translation>不受支持的 MimeData 格式:%1</translation>
|
||||
</message>
|
||||
@ -204,67 +200,82 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||
<location filename="../mainwindow.cpp" line="175"/>
|
||||
<source>File url list is empty</source>
|
||||
<translation>文件 URL 列表为空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||
<location filename="../mainwindow.cpp" line="386"/>
|
||||
<source>&Copy</source>
|
||||
<translation>复制(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||
<location filename="../actionmanager.cpp" line="48"/>
|
||||
<source>Copy P&ixmap</source>
|
||||
<translation>复制位图(&I)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||
<location filename="../actionmanager.cpp" line="49"/>
|
||||
<source>Copy &File Path</source>
|
||||
<translation>复制文件路径(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||
<source>&Paste Image</source>
|
||||
<translation>粘贴图像(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||
<source>&Paste Image File</source>
|
||||
<translation>粘贴图像文件(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||
<location filename="../actionmanager.cpp" line="56"/>
|
||||
<source>Properties</source>
|
||||
<translation>属性</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
||||
<location filename="../app/mainwindow.cpp" line="417"/>
|
||||
<location filename="../aboutdialog.cpp" line="31"/>
|
||||
<location filename="../actionmanager.cpp" line="52"/>
|
||||
<source>Stay on top</source>
|
||||
<translation>总在最前</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
||||
<location filename="../app/mainwindow.cpp" line="424"/>
|
||||
<location filename="../aboutdialog.cpp" line="35"/>
|
||||
<location filename="../actionmanager.cpp" line="53"/>
|
||||
<source>Protected mode</source>
|
||||
<translation>保护模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||
<location filename="../actionmanager.cpp" line="46"/>
|
||||
<source>Zoom in</source>
|
||||
<translation>放大</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="47"/>
|
||||
<source>Zoom out</source>
|
||||
<translation>缩小</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="50"/>
|
||||
<source>&Paste</source>
|
||||
<translation>粘贴(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="51"/>
|
||||
<source>Toggle Checkerboard</source>
|
||||
<translation>切换棋盘格</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="54"/>
|
||||
<source>Configure...</source>
|
||||
<translation>设置...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||
<location filename="../actionmanager.cpp" line="55"/>
|
||||
<source>Help</source>
|
||||
<translation>帮助</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../actionmanager.cpp" line="57"/>
|
||||
<source>Quit</source>
|
||||
<translation>退出</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MetadataDialog</name>
|
||||
<message>
|
||||
<location filename="../app/metadatadialog.cpp" line="80"/>
|
||||
<location filename="../metadatadialog.cpp" line="80"/>
|
||||
<source>Image Metadata</source>
|
||||
<translation>图像元信息</translation>
|
||||
</message>
|
||||
@ -272,249 +283,279 @@
|
||||
<context>
|
||||
<name>MetadataModel</name>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="36"/>
|
||||
<location filename="../metadatamodel.cpp" line="36"/>
|
||||
<source>Origin</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>来源</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="37"/>
|
||||
<location filename="../metadatamodel.cpp" line="37"/>
|
||||
<source>Image</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>图像</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="43"/>
|
||||
<location filename="../metadatamodel.cpp" line="41"/>
|
||||
<source>File</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="38"/>
|
||||
<location filename="../metadatamodel.cpp" line="38"/>
|
||||
<source>Camera</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>照相机</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="28"/>
|
||||
<location filename="../metadatamodel.cpp" line="28"/>
|
||||
<source>%1 File</source>
|
||||
<translation>%1 文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="35"/>
|
||||
<location filename="../metadatamodel.cpp" line="35"/>
|
||||
<source>Description</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>说明</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="39"/>
|
||||
<location filename="../metadatamodel.cpp" line="39"/>
|
||||
<source>Advanced photo</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>高级照片</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="41"/>
|
||||
<location filename="../metadatamodel.cpp" line="40"/>
|
||||
<source>GPS</source>
|
||||
<comment>Section name.</comment>
|
||||
<translation>GPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="46"/>
|
||||
<location filename="../metadatamodel.cpp" line="44"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>分辨率</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="48"/>
|
||||
<location filename="../metadatamodel.cpp" line="46"/>
|
||||
<source>Aspect Ratio</source>
|
||||
<translation>纵横比</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="51"/>
|
||||
<location filename="../metadatamodel.cpp" line="49"/>
|
||||
<source>Name</source>
|
||||
<translation>名称</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="53"/>
|
||||
<location filename="../metadatamodel.cpp" line="51"/>
|
||||
<source>Item type</source>
|
||||
<translation>项目类型</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="55"/>
|
||||
<location filename="../metadatamodel.cpp" line="53"/>
|
||||
<source>Folder path</source>
|
||||
<translation>文件夹路径</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="57"/>
|
||||
<location filename="../metadatamodel.cpp" line="55"/>
|
||||
<source>Size</source>
|
||||
<translation>大小</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="59"/>
|
||||
<location filename="../metadatamodel.cpp" line="57"/>
|
||||
<source>Date Created</source>
|
||||
<translation>创建日期</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="61"/>
|
||||
<location filename="../metadatamodel.cpp" line="59"/>
|
||||
<source>Date Modified</source>
|
||||
<translation>修改日期</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="68"/>
|
||||
<location filename="../metadatamodel.cpp" line="66"/>
|
||||
<source>Rating</source>
|
||||
<translation>分级</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="70"/>
|
||||
<location filename="../metadatamodel.cpp" line="68"/>
|
||||
<source>Comments</source>
|
||||
<translation>备注</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="73"/>
|
||||
<location filename="../metadatamodel.cpp" line="71"/>
|
||||
<source>Authors</source>
|
||||
<translation>作者</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="75"/>
|
||||
<location filename="../metadatamodel.cpp" line="73"/>
|
||||
<source>Date taken</source>
|
||||
<translation>拍摄日期</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="77"/>
|
||||
<location filename="../metadatamodel.cpp" line="75"/>
|
||||
<source>Program name</source>
|
||||
<translation>程序名称</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="80"/>
|
||||
<location filename="../metadatamodel.cpp" line="78"/>
|
||||
<source>Horizontal resolution</source>
|
||||
<translation>水平分辨率</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="82"/>
|
||||
<location filename="../metadatamodel.cpp" line="80"/>
|
||||
<source>Vertical resolution</source>
|
||||
<translation>垂直分辨率</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="84"/>
|
||||
<location filename="../metadatamodel.cpp" line="82"/>
|
||||
<source>Resolution unit</source>
|
||||
<translation>分辨率单位</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="86"/>
|
||||
<location filename="../metadatamodel.cpp" line="84"/>
|
||||
<source>Colour representation</source>
|
||||
<translation>颜色表示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="89"/>
|
||||
<location filename="../metadatamodel.cpp" line="87"/>
|
||||
<source>Camera maker</source>
|
||||
<translation>照相机制造商</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="91"/>
|
||||
<location filename="../metadatamodel.cpp" line="89"/>
|
||||
<source>Camera model</source>
|
||||
<translation>照相机型号</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="93"/>
|
||||
<location filename="../metadatamodel.cpp" line="91"/>
|
||||
<source>F-stop</source>
|
||||
<translation>光圈值</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="95"/>
|
||||
<location filename="../metadatamodel.cpp" line="93"/>
|
||||
<source>Exposure time</source>
|
||||
<translation>曝光时间</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="97"/>
|
||||
<location filename="../metadatamodel.cpp" line="95"/>
|
||||
<source>ISO speed</source>
|
||||
<translation>ISO 速度</translation>
|
||||
<translation>ISO 感光度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="99"/>
|
||||
<location filename="../metadatamodel.cpp" line="97"/>
|
||||
<source>Exposure bias</source>
|
||||
<translation>曝光补偿</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="101"/>
|
||||
<location filename="../metadatamodel.cpp" line="99"/>
|
||||
<source>Focal length</source>
|
||||
<translation>焦距</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="103"/>
|
||||
<location filename="../metadatamodel.cpp" line="101"/>
|
||||
<source>Max aperture</source>
|
||||
<translation>最大光圈</translation>
|
||||
<translation>镜头最大光圈</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="105"/>
|
||||
<location filename="../metadatamodel.cpp" line="103"/>
|
||||
<source>Metering mode</source>
|
||||
<translation>测光模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="107"/>
|
||||
<location filename="../metadatamodel.cpp" line="105"/>
|
||||
<source>Flash mode</source>
|
||||
<translation>闪光灯模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="109"/>
|
||||
<location filename="../metadatamodel.cpp" line="107"/>
|
||||
<source>35mm focal length</source>
|
||||
<translation>35mm 焦距</translation>
|
||||
<translation>换算至 35mm 焦距</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="112"/>
|
||||
<location filename="../metadatamodel.cpp" line="110"/>
|
||||
<source>Lens model</source>
|
||||
<translation>镜头型号</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="114"/>
|
||||
<location filename="../metadatamodel.cpp" line="112"/>
|
||||
<source>Brightness</source>
|
||||
<translation>亮度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="116"/>
|
||||
<location filename="../metadatamodel.cpp" line="114"/>
|
||||
<source>Exposure program</source>
|
||||
<translation>曝光程序</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="118"/>
|
||||
<location filename="../metadatamodel.cpp" line="116"/>
|
||||
<source>Saturation</source>
|
||||
<translation>饱和度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="120"/>
|
||||
<location filename="../metadatamodel.cpp" line="118"/>
|
||||
<source>Sharpness</source>
|
||||
<translation>清晰度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="122"/>
|
||||
<location filename="../metadatamodel.cpp" line="120"/>
|
||||
<source>White balance</source>
|
||||
<translation>白平衡</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="124"/>
|
||||
<location filename="../metadatamodel.cpp" line="122"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>数字缩放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="126"/>
|
||||
<location filename="../metadatamodel.cpp" line="124"/>
|
||||
<source>EXIF version</source>
|
||||
<translation>EXIF 版本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="135"/>
|
||||
<location filename="../metadatamodel.cpp" line="127"/>
|
||||
<source>Latitude reference</source>
|
||||
<translation>纬度基准</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="129"/>
|
||||
<source>Latitude</source>
|
||||
<translation>纬度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="131"/>
|
||||
<source>Longitude reference</source>
|
||||
<translation>经度基准</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="133"/>
|
||||
<source>Longitude</source>
|
||||
<translation>经度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="135"/>
|
||||
<source>Altitude reference</source>
|
||||
<translation>海拔基准</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="137"/>
|
||||
<source>Altitude</source>
|
||||
<translation>海拔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../metadatamodel.cpp" line="147"/>
|
||||
<source>%1 x %2</source>
|
||||
<translation>%1 x %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="153"/>
|
||||
<location filename="../metadatamodel.cpp" line="165"/>
|
||||
<source>%1 : %2</source>
|
||||
<translation>%1 : %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Property</source>
|
||||
<translation>属性</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/metadatamodel.cpp" line="288"/>
|
||||
<location filename="../metadatamodel.cpp" line="300"/>
|
||||
<source>Value</source>
|
||||
<translation>值</translation>
|
||||
</message>
|
||||
@ -522,45 +563,60 @@
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="15"/>
|
||||
<location filename="../settingsdialog.cpp" line="16"/>
|
||||
<source>Settings</source>
|
||||
<translation>设定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="20"/>
|
||||
<location filename="../settingsdialog.cpp" line="21"/>
|
||||
<source>Do nothing</source>
|
||||
<translation>什么也不做</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="21"/>
|
||||
<location filename="../settingsdialog.cpp" line="22"/>
|
||||
<source>Close the window</source>
|
||||
<translation>关闭窗口</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="22"/>
|
||||
<location filename="../settingsdialog.cpp" line="23"/>
|
||||
<source>Toggle maximize</source>
|
||||
<translation>最大化窗口</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="30"/>
|
||||
<location filename="../settingsdialog.cpp" line="27"/>
|
||||
<source>Zoom in and out</source>
|
||||
<translation>放大和缩小</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="28"/>
|
||||
<source>View next or previous item</source>
|
||||
<translation>查看下一项或上一项</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="41"/>
|
||||
<source>Stay on top when start-up</source>
|
||||
<translation>启动时保持窗口总在最前</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/settingsdialog.cpp" line="31"/>
|
||||
<location filename="../settingsdialog.cpp" line="42"/>
|
||||
<source>Double-click behavior</source>
|
||||
<translation>双击时的行为</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="43"/>
|
||||
<source>Mouse wheel behavior</source>
|
||||
<translation>鼠标滚轮行为</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="28"/>
|
||||
<location filename="../main.cpp" line="31"/>
|
||||
<source>Pineapple Pictures</source>
|
||||
<translation>菠萝看图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../app/main.cpp" line="32"/>
|
||||
<location filename="../main.cpp" line="35"/>
|
||||
<source>File list.</source>
|
||||
<translation>文件列表。</translation>
|
||||
</message>
|
@ -1,6 +1,10 @@
|
||||
<ul>
|
||||
<li><u>Chinese (Simplified)</u>: Percy Hong</li>
|
||||
<li><u>Dutch</u>: Heimen Stoffels</li>
|
||||
<li><u>French</u>: J. Lavoie, K. Herbert</li>
|
||||
<li><u>German</u>: K. Herbert, J. Lavoie</li>
|
||||
<li><u>Norwegian Bokmål</u>: Allan Nordhøy</li>
|
||||
<li><u>Russian</u>: Artem</li>
|
||||
</ul>
|
||||
<li><u>Russian</u>: Sergey Shornikov, Artem</li>
|
||||
<li><u>Sinhala</u>: HelaBasa</li>
|
||||
<li><u>Spanish</u>: William(ѕ)ⁿ</li>
|
||||
</ul>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<summary>Image Viewer</summary>
|
||||
<summary xml:lang="zh-CN">图像查看器</summary>
|
||||
<description>
|
||||
<p>Pineapple Pictures is a lightweight and easy to use image viewer, comes with a handy navigation thumbnail when zoom-in, and doesn't contains any image management support.</p>
|
||||
<p>Pineapple Pictures is a lightweight and easy-to-use image viewer that comes with a handy navigation thumbnail when zoom-in, and doesn't contain any image management support.</p>
|
||||
<p xml:lang="zh-CN">菠萝看图是一个轻量级易用的图像查看器,在图片放大时提供了方便的鸟瞰导航功能,且不包含任何图片管理功能。</p>
|
||||
</description>
|
||||
<url type="homepage">https://github.com/BLumia/pineapple-pictures</url>
|
||||
|
@ -19,6 +19,7 @@ CONFIG += c++11 lrelease embed_translations
|
||||
SOURCES += \
|
||||
app/aboutdialog.cpp \
|
||||
app/main.cpp \
|
||||
app/framelesswindow.cpp \
|
||||
app/mainwindow.cpp \
|
||||
app/graphicsview.cpp \
|
||||
app/bottombuttongroup.cpp \
|
||||
@ -30,10 +31,13 @@ SOURCES += \
|
||||
app/settingsdialog.cpp \
|
||||
app/metadatamodel.cpp \
|
||||
app/metadatadialog.cpp \
|
||||
app/exiv2wrapper.cpp
|
||||
app/exiv2wrapper.cpp \
|
||||
app/actionmanager.cpp \
|
||||
app/playlistmanager.cpp
|
||||
|
||||
HEADERS += \
|
||||
app/aboutdialog.h \
|
||||
app/framelesswindow.h \
|
||||
app/mainwindow.h \
|
||||
app/graphicsview.h \
|
||||
app/bottombuttongroup.h \
|
||||
@ -45,15 +49,20 @@ HEADERS += \
|
||||
app/settingsdialog.h \
|
||||
app/metadatamodel.h \
|
||||
app/metadatadialog.h \
|
||||
app/exiv2wrapper.h
|
||||
app/exiv2wrapper.h \
|
||||
app/actionmanager.h \
|
||||
app/playlistmanager.h
|
||||
|
||||
TRANSLATIONS = \
|
||||
translations/PineapplePictures.ts \
|
||||
translations/PineapplePictures_zh_CN.ts \
|
||||
translations/PineapplePictures_de.ts \
|
||||
translations/PineapplePictures_fr.ts \
|
||||
translations/PineapplePictures_nb_NO.ts \
|
||||
translations/PineapplePictures_ru.ts
|
||||
app/translations/PineapplePictures.ts \
|
||||
app/translations/PineapplePictures_zh_CN.ts \
|
||||
app/translations/PineapplePictures_de.ts \
|
||||
app/translations/PineapplePictures_es.ts \
|
||||
app/translations/PineapplePictures_fr.ts \
|
||||
app/translations/PineapplePictures_nb_NO.ts \
|
||||
app/translations/PineapplePictures_nl.ts \
|
||||
app/translations/PineapplePictures_ru.ts \
|
||||
app/translations/PineapplePictures_si.ts
|
||||
|
||||
# Default rules for deployment.
|
||||
qnx: target.path = /tmp/$${TARGET}/bin
|
||||
@ -64,7 +73,7 @@ RESOURCES += \
|
||||
assets/resources.qrc
|
||||
|
||||
# Generate from svg:
|
||||
# magick convert -background none app-icon.svg -define icon:auto-resize="16,32,48,64,128,256" app-icon.ico
|
||||
# magick convert -density 512x512 -background none app-icon.svg -define icon:auto-resize app-icon.ico
|
||||
RC_ICONS = assets/icons/app-icon.ico
|
||||
|
||||
# Windows only, for rc file (we're not going to use the .rc file in this repo)
|
||||
|
Reference in New Issue
Block a user