it works; closes #8
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
Zum Konfigurieren muss der Pfad zur Installation des gepatchten Qts angegeben werden, z.B.:
|
||||
|
||||
./bootstrap.sh && \
|
||||
QMAKE=/usr/local/Trolltech/Qt-4.6.3/bin/qmake ./configure && \
|
||||
make
|
||||
|
@@ -73,6 +73,7 @@ AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"])
|
||||
# Special Options
|
||||
AC_CHECK_PROGS([QMAKE], [qmake-qt4 qmake-mac qmake])
|
||||
test -n "$QMAKE" || AC_MSG_ERROR([qmake for Qt 4 not found!])
|
||||
AC_MSG_NOTICE([QMAKE IS: $QMAKE])
|
||||
AC_SUBST(QMAKE)
|
||||
AC_CHECK_PROGS([LRELEASE], [lrelease-qt4 lrelease-mac lrelease])
|
||||
test -n "$LRELEASE" || AC_MSG_ERROR([lrelease for Qt 4 not found!])
|
||||
|
@@ -26,7 +26,7 @@
|
||||
#include <cassert>
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
#define LOG qDebug()<<__PRETTY_FUNCTION__;
|
||||
#define LOG qDebug()<<__PRETTY_FUNCTION__
|
||||
|
||||
class SslClientAuthNetworkAccessManager: public QNetworkAccessManager {
|
||||
Q_OBJECT;
|
||||
@@ -42,7 +42,7 @@ class SslClientAuthNetworkAccessManager: public QNetworkAccessManager {
|
||||
virtual QNetworkReply* createRequest(Operation op,
|
||||
const QNetworkRequest& req,
|
||||
QIODevice* outgoingData = 0 ) {
|
||||
LOG;
|
||||
LOG<<req.url();
|
||||
QNetworkReply* rep
|
||||
(QNetworkAccessManager::createRequest(op, req, outgoingData));
|
||||
//qDebug()<<"Reply created: "<<(int)rep;
|
||||
@@ -60,7 +60,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
Browser(const QString& url, bool kiosk = false, bool proxydetection = true):
|
||||
_url(0), _home(url), _proxy(0),
|
||||
_kiosk(kiosk) {
|
||||
LOG;
|
||||
LOG<<url;
|
||||
if (!check(url))
|
||||
throw std::runtime_error(tr("access to URL %1 not allowed")
|
||||
.arg(url).toStdString());
|
||||
@@ -338,7 +338,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
QString networkError(QNetworkReply::NetworkError err) {
|
||||
LOG;
|
||||
LOG<<err;
|
||||
switch (err) {
|
||||
case QNetworkReply::NoError:
|
||||
return tr("Network connection successful, remote host can be"
|
||||
@@ -427,7 +427,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void load(QUrl page) {
|
||||
LOG;
|
||||
LOG<<page.toString();
|
||||
statusBar()->showMessage(tr("Checking: %1").arg(page.toString()));
|
||||
try {
|
||||
if (!check(page)) {
|
||||
@@ -457,7 +457,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void startDownload(QUrl url) {
|
||||
LOG;
|
||||
LOG<<url.toString();
|
||||
statusBar()->showMessage(tr("Reading: %1").arg(url.toString()));
|
||||
if (!url.isValid()) {
|
||||
statusBar()->showMessage(tr("Illegal URL: %1").arg(url.errorString()));
|
||||
@@ -469,7 +469,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void reply_error(QNetworkReply::NetworkError err) {
|
||||
LOG;
|
||||
LOG<<err;
|
||||
statusBar()->showMessage(tr("network error"));
|
||||
_error += tr("<h2>%1</h2><p>%2</p>")
|
||||
.arg(tr("Reply Error"))
|
||||
@@ -479,7 +479,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
//! intermediate proxy error
|
||||
void proxy_error(QNetworkReply::NetworkError err,
|
||||
QString errStr, QString proxy) {
|
||||
LOG;
|
||||
LOG<<err<<errStr;
|
||||
statusBar()->showMessage(tr("proxy error"));
|
||||
_error += tr("<h2>%1</h2><p>Proxy: %3</p><p>%2</p><p>%4</p>")
|
||||
.arg(tr("Possible Proxy Failed"))
|
||||
@@ -490,7 +490,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
|
||||
//! final proxy error
|
||||
void proxy_error(QNetworkReply::NetworkError err) {
|
||||
LOG;
|
||||
LOG<<err;
|
||||
statusBar()->showMessage(tr("proxy error"));
|
||||
_error = tr("<h2>%1</h2><p>%2</p>")
|
||||
.arg(tr("Connection Cannot Be Established"))
|
||||
@@ -499,7 +499,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void zoom(int i) {
|
||||
LOG;
|
||||
LOG<<100.0*i/10.0;
|
||||
statusBar()->showMessage(tr("Zoom: %1%").arg(100.0*i/10.0));
|
||||
_browser->setZoomFactor(i/10.0);
|
||||
}
|
||||
@@ -510,12 +510,12 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void on__browser_urlChanged(const QUrl& url) {
|
||||
LOG;
|
||||
LOG<<url.toString();
|
||||
if (_url) _url->setText(url.toString());
|
||||
}
|
||||
|
||||
void on__browser_linkClicked(const QUrl& url) {
|
||||
LOG;
|
||||
LOG<<url.toString();
|
||||
load(url);
|
||||
}
|
||||
|
||||
@@ -525,18 +525,18 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void on__browser_titleChanged(const QString& text) {
|
||||
LOG;
|
||||
LOG<<text;
|
||||
setWindowTitle(trUtf8("%1 - SwissSurfer").arg(text));
|
||||
}
|
||||
|
||||
void on__browser_statusBarMessage(const QString& text) {
|
||||
LOG;
|
||||
LOG<<text;
|
||||
qDebug()<<"Message: "<<text;
|
||||
if (text.size()) statusBar()->showMessage(tr("Info: %1").arg(text));
|
||||
}
|
||||
|
||||
void on__browser_loadProgress(int i) {
|
||||
LOG;
|
||||
LOG<<i;
|
||||
_progress->setValue(i);
|
||||
}
|
||||
|
||||
@@ -553,7 +553,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void on__browser_loadFinished(bool ok) {
|
||||
LOG;
|
||||
LOG<<(ok?"success":"error");
|
||||
if (!ok) {
|
||||
_browser->setHtml(tr("<html><title>Page Load Error</title>"
|
||||
"<body><h1>Page Load Error</h1>%1"
|
||||
@@ -814,7 +814,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void databaseQuotaExceeded(QWebFrame* frame, QString databaseName) {
|
||||
LOG;
|
||||
LOG<<databaseName;
|
||||
}
|
||||
|
||||
void downloadRequested(const QNetworkRequest& request) {
|
||||
@@ -830,22 +830,22 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void linkClicked(const QUrl& url) {
|
||||
LOG;
|
||||
LOG<<url.toString();
|
||||
}
|
||||
|
||||
void linkHovered(const QString& link, const QString& title,
|
||||
const QString& textContent) {
|
||||
LOG;
|
||||
LOG<<link<<title<<textContent;
|
||||
statusBar()->showMessage(tr("%1", "statusbar for hovered link %1=url")
|
||||
.arg(link));
|
||||
}
|
||||
|
||||
void loadFinished(bool ok) {
|
||||
LOG;
|
||||
LOG<<(ok?"succeess":"error");
|
||||
}
|
||||
|
||||
void loadProgress(int progress) {
|
||||
LOG;
|
||||
LOG<<progress;
|
||||
}
|
||||
|
||||
void loadStarted() {
|
||||
@@ -927,7 +927,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
}
|
||||
|
||||
void finished(QNetworkReply* reply) {
|
||||
LOG;
|
||||
LOG<<(reply->error()==QNetworkReply::NoError?"success":"error");
|
||||
if (reply->error()!=QNetworkReply::NoError) {
|
||||
_error += tr("<h2>%1</h2><p>URL: %3</p><p>%2</p>")
|
||||
.arg(tr("Network Error"))
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtNetwork/QNetworkProxy>
|
||||
|
||||
#include <smartcardauth.hxx>
|
||||
#include <QtNetwork/QSslConfiguration>
|
||||
#include <QtNetwork/QSslCertificate>
|
||||
#include <QtNetwork/QSslKey>
|
||||
@@ -24,6 +25,7 @@
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
|
||||
const QByteArray SWISSSIGN_GOLD_CA_G2
|
||||
("-----BEGIN CERTIFICATE-----\n"
|
||||
"MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJ\n"
|
||||
@@ -138,6 +140,7 @@ void notrace(QtMsgType, const char*) {
|
||||
}
|
||||
|
||||
int main(int argv, char** argc) try {
|
||||
SmartCardAuth scardauth;
|
||||
// qInstallMsgHandler(notrace);
|
||||
// std::cout.rdbuf((new std::stringstream)->rdbuf());
|
||||
// std::cerr.rdbuf((new std::stringstream)->rdbuf());
|
||||
@@ -253,6 +256,8 @@ int main(int argv, char** argc) try {
|
||||
.arg(QFileInfo(argc[0]).fileName()).toStdString()<<std::endl;
|
||||
return 1;
|
||||
}
|
||||
sslConfig.setPeerVerifyMode(QSslSocket::VerifyPeer);
|
||||
sslConfig.setOpenSslHook(&scardauth);
|
||||
QSslConfiguration::setDefaultConfiguration(sslConfig);
|
||||
//............................................................................
|
||||
if (urls.size()==0) urls<<QObject::trUtf8("http://swisssign.com");
|
||||
|
37
swisssurfer/src/pindialog.cxx
Normal file
37
swisssurfer/src/pindialog.cxx
Normal file
@@ -0,0 +1,37 @@
|
||||
#include <QtGui>
|
||||
#include "pindialog.hxx"
|
||||
|
||||
|
||||
PinDialog::PinDialog(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
{
|
||||
label=new QLabel(tr("Enter &PIN:"));
|
||||
lineEdit=new QLineEdit;
|
||||
lineEdit->setEchoMode(QLineEdit::Password);
|
||||
label->setBuddy(lineEdit);
|
||||
|
||||
okButton=new QPushButton(tr("&OK"));
|
||||
okButton->setDefault(true);
|
||||
|
||||
cancelButton=new QPushButton(tr("&Cancel"));
|
||||
|
||||
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
|
||||
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
|
||||
|
||||
QHBoxLayout* tl= new QHBoxLayout;
|
||||
tl->addWidget(label);
|
||||
tl->addWidget(lineEdit);
|
||||
QHBoxLayout* bl= new QHBoxLayout;
|
||||
bl->addStretch();
|
||||
bl->addWidget(okButton);
|
||||
bl->addWidget(cancelButton);
|
||||
QVBoxLayout* ml= new QVBoxLayout;
|
||||
ml->addLayout(tl);
|
||||
ml->addLayout(bl);
|
||||
setLayout(ml);
|
||||
}
|
||||
|
||||
QString PinDialog::pin() const {
|
||||
// TODO: Cleanup of internal strings as soon as the PIN is retrieved
|
||||
return lineEdit ? lineEdit->text() : "";
|
||||
}
|
22
swisssurfer/src/pindialog.hxx
Normal file
22
swisssurfer/src/pindialog.hxx
Normal file
@@ -0,0 +1,22 @@
|
||||
#ifndef PINDIALOG_H
|
||||
#define PINDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
class QLabel;
|
||||
class QLineEdit;
|
||||
class QPushButton;
|
||||
|
||||
class PinDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
PinDialog(QWidget *parent = 0);
|
||||
QString pin() const;
|
||||
private:
|
||||
QLabel* label;
|
||||
QLineEdit* lineEdit;
|
||||
QPushButton* okButton;
|
||||
QPushButton* cancelButton;
|
||||
};
|
||||
|
||||
#endif // PINDIALOG_H
|
@@ -1,6 +1,9 @@
|
||||
QT += webkit network gui
|
||||
CONFIG += release
|
||||
QMAKE_LIBS += -lproxyface -lcryptoki++
|
||||
QMAKE_LIBS += -lproxyface -lcryptoki++ -lssl
|
||||
QMAKE_INCDIR += ../../qt/qt-everywhere-opensource-src-4.6.3/include/Qt \
|
||||
../../openssl-act-engine/src/
|
||||
|
||||
unix {
|
||||
QMAKE_LIBS += -lproxy
|
||||
}
|
||||
@@ -18,8 +21,8 @@ TRANSLATIONS = @PACKAGENAME@_en.ts \
|
||||
@PACKAGENAME@_de.ts \
|
||||
@PACKAGENAME@_fr.ts \
|
||||
@PACKAGENAME@_it.ts
|
||||
SOURCES = main.cxx
|
||||
HEADERS = browser.hxx
|
||||
SOURCES = main.cxx smartcardauth.cxx pindialog.cxx
|
||||
HEADERS = browser.hxx smartcardauth.hxx pindialog.hxx
|
||||
FORMS = browser.ui
|
||||
RESOURCES = languages.qrc resources.qrc
|
||||
TARGET = @PACKAGENAME@
|
||||
|
163
swisssurfer/src/smartcardauth.cxx
Normal file
163
swisssurfer/src/smartcardauth.cxx
Normal file
@@ -0,0 +1,163 @@
|
||||
#include "smartcardauth.hxx"
|
||||
#include "pindialog.hxx"
|
||||
#include <private/qsslsocket_openssl_symbols_p.h>
|
||||
|
||||
#include "engine_sct.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
ENGINE* SmartCardAuth::e=NULL;
|
||||
enum_certs_s* SmartCardAuth::certs_found=NULL;
|
||||
QWidget* SmartCardAuth::parent=0;
|
||||
bool SmartCardAuth::pin_configured=false;
|
||||
bool SmartCardAuth::pin_rejected=false;
|
||||
QMutex SmartCardAuth::_mutex;
|
||||
|
||||
SmartCardAuth::SmartCardAuth(QWidget*) {
|
||||
//QSslSocketPrivate::ensureInitialized();
|
||||
|
||||
ENGINE_load_dynamic();
|
||||
e = ENGINE_by_id("dynamic");
|
||||
Q_ASSERT(e);
|
||||
|
||||
int r=ENGINE_ctrl_cmd_string(e, "SO_PATH", "../openssl-act-engine/src/.libs/libengine_act.so", 0);
|
||||
Q_ASSERT(r);
|
||||
r=ENGINE_ctrl_cmd_string(e, "ID", "act", 0);
|
||||
Q_ASSERT(r);
|
||||
r=ENGINE_ctrl_cmd_string(e, "LIST_ADD", "1", 0);
|
||||
Q_ASSERT(r);
|
||||
r=ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0);
|
||||
Q_ASSERT(r);
|
||||
|
||||
if(!r)
|
||||
{
|
||||
unsigned int err = 0;
|
||||
while((err = q_ERR_get_error()))
|
||||
{
|
||||
char *str = q_ERR_error_string(err, NULL);
|
||||
fprintf(stderr,"%s\n", str);
|
||||
}
|
||||
}
|
||||
|
||||
r=ENGINE_init(e);
|
||||
|
||||
}
|
||||
|
||||
SmartCardAuth::~SmartCardAuth() {
|
||||
q_ENGINE_finish(e);
|
||||
q_ENGINE_cleanup();
|
||||
}
|
||||
|
||||
void SmartCardAuth::setPinDlgParent(QWidget* p) {
|
||||
parent=p;
|
||||
}
|
||||
|
||||
int SmartCardAuth::client_cert_cb(SSL*, X509 **x509, EVP_PKEY **pkey)
|
||||
{
|
||||
while (!_mutex.tryLock()) QCoreApplication::processEvents();
|
||||
// NB: Keep in mind that this function is called for EVERY SSL connection to be opened.
|
||||
|
||||
for(size_t i=certs_found->num_certs;i--;)
|
||||
{
|
||||
const char *id_p = certs_found->certificate[i].id;
|
||||
|
||||
if(id_p == NULL) continue;
|
||||
|
||||
// Name has the format "slot-x-name-SwissSign_digSig" for the certificate/key we're looking for
|
||||
std::string name(certs_found->certificate[i].name);
|
||||
qDebug()<<"Certificate:"<<name.c_str();
|
||||
std::string compare("-name-SwissSign_digSig");
|
||||
|
||||
// Compare the rightmost part of the retrieved name to locate the certificate/keypair
|
||||
size_t pos = name.length() - compare.length();
|
||||
if(name.substr(pos) != compare)
|
||||
continue;
|
||||
|
||||
// Here we found a suitable certificate.
|
||||
|
||||
// Now prepare the reference to the SmartCard's private key and a copy of the certificate
|
||||
// to pass back to the caller.
|
||||
*x509 = q_X509_dup(certs_found->certificate[i].cert);
|
||||
*pkey = NULL;
|
||||
|
||||
// If we don't have a PIN yet, pop up a dialog, ask for a PIN and pass it along to the engine
|
||||
// for usage.
|
||||
if(!pin_configured)
|
||||
{
|
||||
PinDialog dlg(parent);
|
||||
int ok=dlg.exec();
|
||||
if(ok!=1) {_mutex.unlock(); return 0;} // User cancelled
|
||||
QByteArray pinByteArray=dlg.pin().toAscii();
|
||||
char *pin_str = pinByteArray.data();
|
||||
|
||||
// The engine control command takes a copy and overwrites the source array
|
||||
if(q_ENGINE_ctrl_cmd_string(e, "PIN", pin_str, 0))
|
||||
pin_configured = true;
|
||||
else
|
||||
{_mutex.unlock(); return 0;} // Engine refuses to take the PIN
|
||||
|
||||
*pkey = q_ENGINE_load_private_key(e, id_p, NULL, NULL);
|
||||
|
||||
// We do a test authorization on loading of the private key. If the operation fails at all,
|
||||
// DON'T try again (see below) or we would instantly lock the card in a single session because
|
||||
// of the retries!
|
||||
if(!*pkey)
|
||||
pin_rejected = true;
|
||||
}
|
||||
|
||||
// Second to nth iteration: We skipped the PIN dialog here, now load the key if we don't have the
|
||||
// explicit information not to do it (because the PIN is wrong)
|
||||
if(!*pkey && !pin_rejected)
|
||||
*pkey = q_ENGINE_load_private_key(e, id_p, NULL, NULL);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if(!*x509) {
|
||||
qWarning("Unable to load certificate");
|
||||
_mutex.unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!*pkey) {
|
||||
qWarning("Unable to load key");
|
||||
_mutex.unlock();
|
||||
return 0;
|
||||
}
|
||||
|
||||
_mutex.unlock();
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool SmartCardAuth::hookInitSslContext(SSL_CTX *ctx)
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
if(!certs_found)
|
||||
result = (q_ENGINE_ctrl_cmd(e, "ENUM_CERTS", 0, &certs_found, NULL, 0) != 0);
|
||||
else
|
||||
result = true;
|
||||
|
||||
#ifdef USE_CERTIFICATE_FILE
|
||||
// Load a specific intermediate certificate from a file
|
||||
//! @todo PEM-File
|
||||
BIO* cert_file= q_BIO_new_file("swsign_interm.pem", "r");
|
||||
X509* interm=q_PEM_read_bio_X509(cert_file,NULL,NULL, NULL);
|
||||
q_BIO_free(cert_file);
|
||||
|
||||
q_SSL_CTX_add_extra_chain_cert(ctx,interm);
|
||||
#else
|
||||
// Add all of the card's certificates without a private key as intermediate certs
|
||||
for(size_t i=certs_found->num_certs;i--;)
|
||||
{
|
||||
if(certs_found->certificate[i].id == NULL)
|
||||
q_SSL_CTX_add_extra_chain_cert(ctx, q_X509_dup(certs_found->certificate[i].cert));
|
||||
}
|
||||
#endif
|
||||
|
||||
q_SSL_CTX_set_client_cert_cb(ctx, client_cert_cb);
|
||||
return true;
|
||||
}
|
30
swisssurfer/src/smartcardauth.hxx
Normal file
30
swisssurfer/src/smartcardauth.hxx
Normal file
@@ -0,0 +1,30 @@
|
||||
#ifndef SMARTCARDAUTH_H
|
||||
#define SMARTCARDAUTH_H
|
||||
|
||||
#include <private/qopensslhook_p.h>
|
||||
#include <QtCore/QMutex>
|
||||
|
||||
class QWidget;
|
||||
|
||||
struct enum_certs_s;
|
||||
|
||||
class SmartCardAuth : public QOpenSslHook {
|
||||
|
||||
public:
|
||||
SmartCardAuth(QWidget* parent=0);
|
||||
~SmartCardAuth();
|
||||
static void setPinDlgParent(QWidget* parent);
|
||||
|
||||
virtual bool hookInitSslContext(SSL_CTX* ctx);
|
||||
|
||||
private:
|
||||
static int client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey);
|
||||
static ENGINE* e;
|
||||
static enum_certs_s* certs_found;
|
||||
static QWidget* parent;
|
||||
static bool pin_configured;
|
||||
static bool pin_rejected;
|
||||
static QMutex _mutex;
|
||||
};
|
||||
|
||||
#endif // SMARTCARDAUTH_H
|
@@ -113,63 +113,63 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="434"/>
|
||||
<location filename="browser.hxx" line="431"/>
|
||||
<source>Checking: %1</source>
|
||||
<oldsource>Opening: %1</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="464"/>
|
||||
<location filename="browser.hxx" line="461"/>
|
||||
<source>Reading: %1</source>
|
||||
<oldsource>Reading: %1%</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="477"/>
|
||||
<location filename="browser.hxx" line="498"/>
|
||||
<location filename="browser.hxx" line="474"/>
|
||||
<location filename="browser.hxx" line="495"/>
|
||||
<source><h2>%1</h2><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="478"/>
|
||||
<location filename="browser.hxx" line="475"/>
|
||||
<source>Reply Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="936"/>
|
||||
<location filename="browser.hxx" line="933"/>
|
||||
<source>Network Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="506"/>
|
||||
<location filename="browser.hxx" line="503"/>
|
||||
<source>Zoom: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="532"/>
|
||||
<location filename="browser.hxx" line="529"/>
|
||||
<source>%1 - SwissSurfer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="561"/>
|
||||
<location filename="browser.hxx" line="558"/>
|
||||
<source><html><title>Page Load Error</title><body><h1>Page Load Error</h1>%1</body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="905"/>
|
||||
<location filename="browser.hxx" line="925"/>
|
||||
<location filename="browser.hxx" line="935"/>
|
||||
<location filename="browser.hxx" line="902"/>
|
||||
<location filename="browser.hxx" line="922"/>
|
||||
<location filename="browser.hxx" line="932"/>
|
||||
<source><h2>%1</h2><p>URL: %3</p><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<location filename="browser.hxx" line="952"/>
|
||||
<source><h2>%1</h2><p>URL: %4</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></source>
|
||||
<oldsource><h2>%1</h2><p>URL: %3</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="906"/>
|
||||
<location filename="browser.hxx" line="903"/>
|
||||
<source>Unsuported Content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -284,109 +284,127 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="466"/>
|
||||
<location filename="browser.hxx" line="463"/>
|
||||
<source>Illegal URL: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="476"/>
|
||||
<location filename="browser.hxx" line="473"/>
|
||||
<source>network error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="486"/>
|
||||
<location filename="browser.hxx" line="497"/>
|
||||
<location filename="browser.hxx" line="483"/>
|
||||
<location filename="browser.hxx" line="494"/>
|
||||
<source>proxy error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="487"/>
|
||||
<location filename="browser.hxx" line="484"/>
|
||||
<source><h2>%1</h2><p>Proxy: %3</p><p>%2</p><p>%4</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="488"/>
|
||||
<location filename="browser.hxx" line="485"/>
|
||||
<source>Possible Proxy Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="499"/>
|
||||
<location filename="browser.hxx" line="496"/>
|
||||
<source>Connection Cannot Be Established</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="538"/>
|
||||
<location filename="browser.hxx" line="535"/>
|
||||
<source>Info: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="566"/>
|
||||
<location filename="browser.hxx" line="563"/>
|
||||
<source>download error</source>
|
||||
<oldsource>donload error</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="568"/>
|
||||
<location filename="browser.hxx" line="565"/>
|
||||
<source>done.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="842"/>
|
||||
<location filename="browser.hxx" line="839"/>
|
||||
<source>%1</source>
|
||||
<comment>statusbar for hovered link %1=url</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="904"/>
|
||||
<location filename="browser.hxx" line="901"/>
|
||||
<source>unsupported content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="438"/>
|
||||
<location filename="browser.hxx" line="435"/>
|
||||
<source>Forbidden: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="439"/>
|
||||
<location filename="browser.hxx" line="436"/>
|
||||
<source>Access Denied</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="440"/>
|
||||
<location filename="browser.hxx" line="437"/>
|
||||
<source><p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="924"/>
|
||||
<location filename="browser.hxx" line="921"/>
|
||||
<source>authentication required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="926"/>
|
||||
<location filename="browser.hxx" line="923"/>
|
||||
<source>Authentication Required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="950"/>
|
||||
<location filename="browser.hxx" line="947"/>
|
||||
<source>ssl error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="954"/>
|
||||
<location filename="browser.hxx" line="951"/>
|
||||
<source><li>%1</li></source>
|
||||
<comment>single ssl error</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="958"/>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<source>SSL Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinDialog</name>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="8"/>
|
||||
<source>Enter &PIN:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="13"/>
|
||||
<source>&OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="16"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="main.cxx" line="200"/>
|
||||
<location filename="main.cxx" line="203"/>
|
||||
<source>Usage: %1 [OPTIONS...] [<url> ...]
|
||||
Options:
|
||||
-h, --help show this help text
|
||||
@@ -417,33 +435,33 @@ Environment:
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="229"/>
|
||||
<location filename="main.cxx" line="232"/>
|
||||
<source>Cannot read PEM certificate from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="235"/>
|
||||
<location filename="main.cxx" line="238"/>
|
||||
<source>Read PEM certificates from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="242"/>
|
||||
<location filename="main.cxx" line="245"/>
|
||||
<source>Cannot read PEM RSA key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="247"/>
|
||||
<location filename="main.cxx" line="250"/>
|
||||
<source>Read private key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="252"/>
|
||||
<location filename="main.cxx" line="255"/>
|
||||
<source>Too few arguments.
|
||||
Try: %1 --help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="258"/>
|
||||
<location filename="main.cxx" line="263"/>
|
||||
<source>http://swisssign.com</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@@ -113,63 +113,63 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="434"/>
|
||||
<location filename="browser.hxx" line="431"/>
|
||||
<source>Checking: %1</source>
|
||||
<oldsource>Opening: %1</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="464"/>
|
||||
<location filename="browser.hxx" line="461"/>
|
||||
<source>Reading: %1</source>
|
||||
<oldsource>Reading: %1%</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="477"/>
|
||||
<location filename="browser.hxx" line="498"/>
|
||||
<location filename="browser.hxx" line="474"/>
|
||||
<location filename="browser.hxx" line="495"/>
|
||||
<source><h2>%1</h2><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="478"/>
|
||||
<location filename="browser.hxx" line="475"/>
|
||||
<source>Reply Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="936"/>
|
||||
<location filename="browser.hxx" line="933"/>
|
||||
<source>Network Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="506"/>
|
||||
<location filename="browser.hxx" line="503"/>
|
||||
<source>Zoom: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="532"/>
|
||||
<location filename="browser.hxx" line="529"/>
|
||||
<source>%1 - SwissSurfer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="561"/>
|
||||
<location filename="browser.hxx" line="558"/>
|
||||
<source><html><title>Page Load Error</title><body><h1>Page Load Error</h1>%1</body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="905"/>
|
||||
<location filename="browser.hxx" line="925"/>
|
||||
<location filename="browser.hxx" line="935"/>
|
||||
<location filename="browser.hxx" line="902"/>
|
||||
<location filename="browser.hxx" line="922"/>
|
||||
<location filename="browser.hxx" line="932"/>
|
||||
<source><h2>%1</h2><p>URL: %3</p><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<location filename="browser.hxx" line="952"/>
|
||||
<source><h2>%1</h2><p>URL: %4</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></source>
|
||||
<oldsource><h2>%1</h2><p>URL: %3</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="906"/>
|
||||
<location filename="browser.hxx" line="903"/>
|
||||
<source>Unsuported Content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -284,109 +284,127 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="466"/>
|
||||
<location filename="browser.hxx" line="463"/>
|
||||
<source>Illegal URL: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="476"/>
|
||||
<location filename="browser.hxx" line="473"/>
|
||||
<source>network error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="486"/>
|
||||
<location filename="browser.hxx" line="497"/>
|
||||
<location filename="browser.hxx" line="483"/>
|
||||
<location filename="browser.hxx" line="494"/>
|
||||
<source>proxy error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="487"/>
|
||||
<location filename="browser.hxx" line="484"/>
|
||||
<source><h2>%1</h2><p>Proxy: %3</p><p>%2</p><p>%4</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="488"/>
|
||||
<location filename="browser.hxx" line="485"/>
|
||||
<source>Possible Proxy Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="499"/>
|
||||
<location filename="browser.hxx" line="496"/>
|
||||
<source>Connection Cannot Be Established</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="538"/>
|
||||
<location filename="browser.hxx" line="535"/>
|
||||
<source>Info: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="566"/>
|
||||
<location filename="browser.hxx" line="563"/>
|
||||
<source>download error</source>
|
||||
<oldsource>donload error</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="568"/>
|
||||
<location filename="browser.hxx" line="565"/>
|
||||
<source>done.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="842"/>
|
||||
<location filename="browser.hxx" line="839"/>
|
||||
<source>%1</source>
|
||||
<comment>statusbar for hovered link %1=url</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="904"/>
|
||||
<location filename="browser.hxx" line="901"/>
|
||||
<source>unsupported content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="438"/>
|
||||
<location filename="browser.hxx" line="435"/>
|
||||
<source>Forbidden: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="439"/>
|
||||
<location filename="browser.hxx" line="436"/>
|
||||
<source>Access Denied</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="440"/>
|
||||
<location filename="browser.hxx" line="437"/>
|
||||
<source><p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="924"/>
|
||||
<location filename="browser.hxx" line="921"/>
|
||||
<source>authentication required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="926"/>
|
||||
<location filename="browser.hxx" line="923"/>
|
||||
<source>Authentication Required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="950"/>
|
||||
<location filename="browser.hxx" line="947"/>
|
||||
<source>ssl error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="954"/>
|
||||
<location filename="browser.hxx" line="951"/>
|
||||
<source><li>%1</li></source>
|
||||
<comment>single ssl error</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="958"/>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<source>SSL Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinDialog</name>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="8"/>
|
||||
<source>Enter &PIN:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="13"/>
|
||||
<source>&OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="16"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="main.cxx" line="200"/>
|
||||
<location filename="main.cxx" line="203"/>
|
||||
<source>Usage: %1 [OPTIONS...] [<url> ...]
|
||||
Options:
|
||||
-h, --help show this help text
|
||||
@@ -417,33 +435,33 @@ Environment:
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="229"/>
|
||||
<location filename="main.cxx" line="232"/>
|
||||
<source>Cannot read PEM certificate from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="235"/>
|
||||
<location filename="main.cxx" line="238"/>
|
||||
<source>Read PEM certificates from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="242"/>
|
||||
<location filename="main.cxx" line="245"/>
|
||||
<source>Cannot read PEM RSA key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="247"/>
|
||||
<location filename="main.cxx" line="250"/>
|
||||
<source>Read private key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="252"/>
|
||||
<location filename="main.cxx" line="255"/>
|
||||
<source>Too few arguments.
|
||||
Try: %1 --help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="258"/>
|
||||
<location filename="main.cxx" line="263"/>
|
||||
<source>http://swisssign.com</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@@ -113,63 +113,63 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="434"/>
|
||||
<location filename="browser.hxx" line="431"/>
|
||||
<source>Checking: %1</source>
|
||||
<oldsource>Opening: %1</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="464"/>
|
||||
<location filename="browser.hxx" line="461"/>
|
||||
<source>Reading: %1</source>
|
||||
<oldsource>Reading: %1%</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="477"/>
|
||||
<location filename="browser.hxx" line="498"/>
|
||||
<location filename="browser.hxx" line="474"/>
|
||||
<location filename="browser.hxx" line="495"/>
|
||||
<source><h2>%1</h2><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="478"/>
|
||||
<location filename="browser.hxx" line="475"/>
|
||||
<source>Reply Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="936"/>
|
||||
<location filename="browser.hxx" line="933"/>
|
||||
<source>Network Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="506"/>
|
||||
<location filename="browser.hxx" line="503"/>
|
||||
<source>Zoom: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="532"/>
|
||||
<location filename="browser.hxx" line="529"/>
|
||||
<source>%1 - SwissSurfer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="561"/>
|
||||
<location filename="browser.hxx" line="558"/>
|
||||
<source><html><title>Page Load Error</title><body><h1>Page Load Error</h1>%1</body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="905"/>
|
||||
<location filename="browser.hxx" line="925"/>
|
||||
<location filename="browser.hxx" line="935"/>
|
||||
<location filename="browser.hxx" line="902"/>
|
||||
<location filename="browser.hxx" line="922"/>
|
||||
<location filename="browser.hxx" line="932"/>
|
||||
<source><h2>%1</h2><p>URL: %3</p><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<location filename="browser.hxx" line="952"/>
|
||||
<source><h2>%1</h2><p>URL: %4</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></source>
|
||||
<oldsource><h2>%1</h2><p>URL: %3</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="906"/>
|
||||
<location filename="browser.hxx" line="903"/>
|
||||
<source>Unsuported Content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -284,109 +284,127 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="466"/>
|
||||
<location filename="browser.hxx" line="463"/>
|
||||
<source>Illegal URL: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="476"/>
|
||||
<location filename="browser.hxx" line="473"/>
|
||||
<source>network error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="486"/>
|
||||
<location filename="browser.hxx" line="497"/>
|
||||
<location filename="browser.hxx" line="483"/>
|
||||
<location filename="browser.hxx" line="494"/>
|
||||
<source>proxy error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="487"/>
|
||||
<location filename="browser.hxx" line="484"/>
|
||||
<source><h2>%1</h2><p>Proxy: %3</p><p>%2</p><p>%4</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="488"/>
|
||||
<location filename="browser.hxx" line="485"/>
|
||||
<source>Possible Proxy Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="499"/>
|
||||
<location filename="browser.hxx" line="496"/>
|
||||
<source>Connection Cannot Be Established</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="538"/>
|
||||
<location filename="browser.hxx" line="535"/>
|
||||
<source>Info: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="566"/>
|
||||
<location filename="browser.hxx" line="563"/>
|
||||
<source>download error</source>
|
||||
<oldsource>donload error</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="568"/>
|
||||
<location filename="browser.hxx" line="565"/>
|
||||
<source>done.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="842"/>
|
||||
<location filename="browser.hxx" line="839"/>
|
||||
<source>%1</source>
|
||||
<comment>statusbar for hovered link %1=url</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="904"/>
|
||||
<location filename="browser.hxx" line="901"/>
|
||||
<source>unsupported content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="438"/>
|
||||
<location filename="browser.hxx" line="435"/>
|
||||
<source>Forbidden: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="439"/>
|
||||
<location filename="browser.hxx" line="436"/>
|
||||
<source>Access Denied</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="440"/>
|
||||
<location filename="browser.hxx" line="437"/>
|
||||
<source><p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="924"/>
|
||||
<location filename="browser.hxx" line="921"/>
|
||||
<source>authentication required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="926"/>
|
||||
<location filename="browser.hxx" line="923"/>
|
||||
<source>Authentication Required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="950"/>
|
||||
<location filename="browser.hxx" line="947"/>
|
||||
<source>ssl error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="954"/>
|
||||
<location filename="browser.hxx" line="951"/>
|
||||
<source><li>%1</li></source>
|
||||
<comment>single ssl error</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="958"/>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<source>SSL Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinDialog</name>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="8"/>
|
||||
<source>Enter &PIN:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="13"/>
|
||||
<source>&OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="16"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="main.cxx" line="200"/>
|
||||
<location filename="main.cxx" line="203"/>
|
||||
<source>Usage: %1 [OPTIONS...] [<url> ...]
|
||||
Options:
|
||||
-h, --help show this help text
|
||||
@@ -417,33 +435,33 @@ Environment:
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="229"/>
|
||||
<location filename="main.cxx" line="232"/>
|
||||
<source>Cannot read PEM certificate from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="235"/>
|
||||
<location filename="main.cxx" line="238"/>
|
||||
<source>Read PEM certificates from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="242"/>
|
||||
<location filename="main.cxx" line="245"/>
|
||||
<source>Cannot read PEM RSA key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="247"/>
|
||||
<location filename="main.cxx" line="250"/>
|
||||
<source>Read private key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="252"/>
|
||||
<location filename="main.cxx" line="255"/>
|
||||
<source>Too few arguments.
|
||||
Try: %1 --help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="258"/>
|
||||
<location filename="main.cxx" line="263"/>
|
||||
<source>http://swisssign.com</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@@ -113,63 +113,63 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="434"/>
|
||||
<location filename="browser.hxx" line="431"/>
|
||||
<source>Checking: %1</source>
|
||||
<oldsource>Opening: %1</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="464"/>
|
||||
<location filename="browser.hxx" line="461"/>
|
||||
<source>Reading: %1</source>
|
||||
<oldsource>Reading: %1%</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="477"/>
|
||||
<location filename="browser.hxx" line="498"/>
|
||||
<location filename="browser.hxx" line="474"/>
|
||||
<location filename="browser.hxx" line="495"/>
|
||||
<source><h2>%1</h2><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="478"/>
|
||||
<location filename="browser.hxx" line="475"/>
|
||||
<source>Reply Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="936"/>
|
||||
<location filename="browser.hxx" line="933"/>
|
||||
<source>Network Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="506"/>
|
||||
<location filename="browser.hxx" line="503"/>
|
||||
<source>Zoom: %1%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="532"/>
|
||||
<location filename="browser.hxx" line="529"/>
|
||||
<source>%1 - SwissSurfer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="561"/>
|
||||
<location filename="browser.hxx" line="558"/>
|
||||
<source><html><title>Page Load Error</title><body><h1>Page Load Error</h1>%1</body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="905"/>
|
||||
<location filename="browser.hxx" line="925"/>
|
||||
<location filename="browser.hxx" line="935"/>
|
||||
<location filename="browser.hxx" line="902"/>
|
||||
<location filename="browser.hxx" line="922"/>
|
||||
<location filename="browser.hxx" line="932"/>
|
||||
<source><h2>%1</h2><p>URL: %3</p><p>%2</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<location filename="browser.hxx" line="952"/>
|
||||
<source><h2>%1</h2><p>URL: %4</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></source>
|
||||
<oldsource><h2>%1</h2><p>URL: %3</p><p>%2</p><h3>SSL Errors</h3><p><ul>%3</ul></p></oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="906"/>
|
||||
<location filename="browser.hxx" line="903"/>
|
||||
<source>Unsuported Content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -284,109 +284,127 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="466"/>
|
||||
<location filename="browser.hxx" line="463"/>
|
||||
<source>Illegal URL: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="476"/>
|
||||
<location filename="browser.hxx" line="473"/>
|
||||
<source>network error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="486"/>
|
||||
<location filename="browser.hxx" line="497"/>
|
||||
<location filename="browser.hxx" line="483"/>
|
||||
<location filename="browser.hxx" line="494"/>
|
||||
<source>proxy error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="487"/>
|
||||
<location filename="browser.hxx" line="484"/>
|
||||
<source><h2>%1</h2><p>Proxy: %3</p><p>%2</p><p>%4</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="488"/>
|
||||
<location filename="browser.hxx" line="485"/>
|
||||
<source>Possible Proxy Failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="499"/>
|
||||
<location filename="browser.hxx" line="496"/>
|
||||
<source>Connection Cannot Be Established</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="538"/>
|
||||
<location filename="browser.hxx" line="535"/>
|
||||
<source>Info: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="566"/>
|
||||
<location filename="browser.hxx" line="563"/>
|
||||
<source>download error</source>
|
||||
<oldsource>donload error</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="568"/>
|
||||
<location filename="browser.hxx" line="565"/>
|
||||
<source>done.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="842"/>
|
||||
<location filename="browser.hxx" line="839"/>
|
||||
<source>%1</source>
|
||||
<comment>statusbar for hovered link %1=url</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="904"/>
|
||||
<location filename="browser.hxx" line="901"/>
|
||||
<source>unsupported content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="438"/>
|
||||
<location filename="browser.hxx" line="435"/>
|
||||
<source>Forbidden: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="439"/>
|
||||
<location filename="browser.hxx" line="436"/>
|
||||
<source>Access Denied</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="440"/>
|
||||
<location filename="browser.hxx" line="437"/>
|
||||
<source><p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="924"/>
|
||||
<location filename="browser.hxx" line="921"/>
|
||||
<source>authentication required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="926"/>
|
||||
<location filename="browser.hxx" line="923"/>
|
||||
<source>Authentication Required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="950"/>
|
||||
<location filename="browser.hxx" line="947"/>
|
||||
<source>ssl error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="954"/>
|
||||
<location filename="browser.hxx" line="951"/>
|
||||
<source><li>%1</li></source>
|
||||
<comment>single ssl error</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="browser.hxx" line="958"/>
|
||||
<location filename="browser.hxx" line="955"/>
|
||||
<source>SSL Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PinDialog</name>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="8"/>
|
||||
<source>Enter &PIN:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="13"/>
|
||||
<source>&OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="pindialog.cxx" line="16"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="main.cxx" line="200"/>
|
||||
<location filename="main.cxx" line="203"/>
|
||||
<source>Usage: %1 [OPTIONS...] [<url> ...]
|
||||
Options:
|
||||
-h, --help show this help text
|
||||
@@ -417,33 +435,33 @@ Environment:
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="229"/>
|
||||
<location filename="main.cxx" line="232"/>
|
||||
<source>Cannot read PEM certificate from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="235"/>
|
||||
<location filename="main.cxx" line="238"/>
|
||||
<source>Read PEM certificates from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="242"/>
|
||||
<location filename="main.cxx" line="245"/>
|
||||
<source>Cannot read PEM RSA key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="247"/>
|
||||
<location filename="main.cxx" line="250"/>
|
||||
<source>Read private key from file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="252"/>
|
||||
<location filename="main.cxx" line="255"/>
|
||||
<source>Too few arguments.
|
||||
Try: %1 --help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main.cxx" line="258"/>
|
||||
<location filename="main.cxx" line="263"/>
|
||||
<source>http://swisssign.com</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
Reference in New Issue
Block a user